打印

晚生初学,烦各位解释一下。

[复制链接]
1954|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yyangcj|  楼主 | 2009-11-16 16:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
include <reg51.h>  //模拟PWM输出控制灯的10个亮度级

sbit p_out=P1^0;       //宏定义P1.0为p_out,波形的输出脚
unsigned char scale;   //占空比控制变量

void main(void)       // 主程序
{ unsigned int n;    //延时循环变量
  TMOD=0x02;   //定时器0,工作模式2(0000,0010),8位定时模式
  TH0=0x06;    //写入预置初值6到定时器0,使250微秒溢出一次(12MHz)
  TL0=0x06;    //写入预置值
  TR0=1;       //启动定时器
  ET0=1;       //允许定时器0中断
  EA=1;        //允许总中断
  LED8=0x00;   //开启LED8
  LED8_LED=0x06;
while(1)       //无限循环,实际应用中,这里是做主要工作
   { for(n=0;n<20000;n++);  //每过一段时间,就自动加一个档次的亮度
     scale++;    //占空比控制变量scale加1
     if(scale>=100)  scale=0;  //如果scale=10,使scale为0
   }
}
timer0() interrupt 1    //定时器0中断服务程序  
  { static  unsigned int   tt ;   //tt用来保存当前时间在一秒中的比例位置
    tt++;    //每250微秒增加1
    if(tt>=100)   //25毫秒的时钟周期
      { tt=0;  //使tt=0,开始新的PWM周期
        p_out=0;  //使LED灯亮
      }
if(scale==tt)  //????
  p_out=1;        //使LED灯灭




请问问号这句(scale==tt)何解?
       }

相关帖子

沙发
123654789| | 2009-11-16 17:43 | 只看该作者
测试 是否 等于

使用特权

评论回复
板凳
ejack| | 2009-11-16 17:43 | 只看该作者
scale是量化后的占空比。tt是周期性时间变量。
在单位周期内,满足占空比条件后,翻转LED控制管脚将灯熄灭。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
yyangcj + 1
地板
haoge1388645| | 2009-11-17 11:13 | 只看该作者
这还要解释?

使用特权

评论回复
5
dudu_q| | 2009-11-17 14:35 | 只看该作者
呵呵~LZ已经说了初学了嘛

使用特权

评论回复
6
ppsen| | 2009-11-17 22:06 | 只看该作者
楼主最好画一下图自己在琢磨一下,这样才会有进步

使用特权

评论回复
7
huangqi412| | 2009-11-18 08:33 | 只看该作者
流程图...

使用特权

评论回复
8
yyangcj|  楼主 | 2009-12-8 11:04 | 只看该作者
好的,谢过各位了。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

50

主题

117

帖子

0

粉丝