VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 657|回复: 1

51中断函数看不懂

[复制链接]
84_avatar_middle
最佳答案
0 
在线会员 发表于 2018-5-7 19:32:10 | 显示全部楼层 |阅读模式
3驿站币
要做一个基于51单片机的智能灯控制,然后这里有一段中断函数虽然有注释,但还是不明白什么意思
用的是keil4,做智能灯根据光强度自动调节亮度

void Timer0_isr(void) interrupt 1
{
        static unsigned char countFan =0;
        TH0=(65536-3000)/256;                  //重新赋值
        TL0=(65536-3000)%256;

        countFan++;
        if(countFan<pwmVal)           //led1 占空比调节
        {          
                led=0;                          //打开
        }
        else if(pwmVal<=5)        //关闭时间段
        {
                 led=1;                        //关闭
                if(countFan == 5)         countFan=0;  //一个周期结束
        }
}

其中pwmVal=1+ligh/20
     ligh=(float)ReadADC(0)*99/255;
    (float)ReadADC(0)是AD模块得到的值

问题:if语句为什么要进行countFan<pwmVal和pwmVal<=5的比较,这一个周期会实现什么样的效果?





上一篇:有提取字符串中文字符的源码吗
下一篇:VC++中error2018怎么解决?
81_avatar_middle
最佳答案
3 
online_supermod 发表于 2018-5-7 23:59:10 | 显示全部楼层
楼主这个的专业性有点太强了,暂时帮不上忙了。。。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-11-20 05:53

Powered by Discuz! X3.4

© 2009-2019 cctry.com

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