找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3283|回复: 5
收起左侧

求帮忙,我这单片机程序为什么不能pwm调光

[复制链接]
ID:210484 发表于 2017-6-12 16:21 | 显示全部楼层 |阅读模式
  1. #include <REG51.h>
  2. sfr AUXR = 0x8e;
  3. sfr P3M0 = 0xB2;
  4. sfr P3M1 = 0xB1;
  5. sbit led = P3^3;
  6. sbit ledgao =P3^4;  //调亮
  7. sbit leddi =P3^5;   //调暗

  8. sbit fmq =P3^1;    //蜂鸣器
  9. static unsigned char num;
  10. static unsigned char light;
  11. #define kg_NO()   led=1
  12. #define kg_OFF()  led=0

  13.         void Timer0Init(void)                //100微妙@11.0592MHz
  14. {
  15.         AUXR |= 0x7F;                //定时器时钟12T模式
  16.         TMOD &= 0xF0;                //设置定时器模式
  17.         TL0 = 0xA4;                //设定初值
  18.         TH0 = 0xFF;                //设定初值
  19.         ET0 = 1;        //开定时器
  20.         TR0=1;  //定时器0中断
  21. }
  22. void tm0_isr() interrupt 1   //定时器0中断
  23. {
  24.         light++;
  25.         if(light>100)
  26.         {
  27.                 light=0;
  28.         }
  29. }
  30. void main()
  31. {
  32.         EA=1;
  33.         Timer0Init();
  34.         P3M0 = 0x00;
  35.         P3M1 = 0x0A;
  36. ledgao =1;
  37.   leddi =1;

  38. fmq =0;
  39.         num=3;
  40.         while(1)
  41.         {
  42.         if(ledgao==0)
  43.         {        
  44.                 num++;
  45.         if(num>100)
  46.         {
  47.                 num=100;
  48.                 fmq=!fmq;
  49.                 }

  50.         }
  51.         if(leddi==0)
  52.         {
  53.                 num--;
  54.                 if(num<=1)
  55.                 {
  56.                         num=1;
  57.                         fmq=!fmq;
  58.                 }
  59.         
  60. if(light<=num)
  61. {
  62.         kg_NO();
  63. }
  64. if(light>num)
  65. {
  66. kg_OFF();
  67. }
  68.         }
  69. }
  70. }
复制代码


回复

使用道具 举报

ID:123289 发表于 2017-6-12 22:00 | 显示全部楼层
如果硬件有问题也会造成楼主所提现象。
回复

使用道具 举报

ID:201358 发表于 2017-6-12 22:44 | 显示全部楼层
学习中
回复

使用道具 举报

ID:210484 发表于 2017-6-13 09:17 | 显示全部楼层
yzwzfyz 发表于 2017-6-12 22:00
如果硬件有问题也会造成楼主所提现象。

我是用仿真软件电路仿真,电路很简单应该不会有问题
回复

使用道具 举报

ID:159139 发表于 2017-6-14 19:43 来自手机 | 显示全部楼层
你的主程序只用执行一次吗?好象有些部分需要while(1)一下吧。
回复

使用道具 举报

ID:210484 发表于 2017-6-15 08:41 | 显示全部楼层
3760609865 发表于 2017-6-14 19:43
你的主程序只用执行一次吗?好象有些部分需要while(1)一下吧。

主程序里有用while(1)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表