单片机led多灯闪烁用汇编语言写出只有一个LED灯亮用外部中断1完成依次移位用外部中断0恢复成最开始样子按一下

想控制一个灯让这个灯渐渐的變亮,然后渐渐变暗最好是源程序啊... 想控制一个灯,让这个灯渐渐的变亮然后渐渐变暗,最好是源程序啊

这个要用到软件的pwm因为51的沒有硬件的pwm所以只好自己写软件的了。首先要做一个软件三角波发生器子程序,频率自己定就是变亮变暗的周期。此函数的返回值作為pwm的输入值再做一个pwm的模拟程序,占空比(0-100)是三角波发生器的输出pwm模拟程序控制某个端口输出1和0的占空比来控制灯 的明暗。pwm的思路昰:检查设置值是否不等于0是则端口置1,程序开始加1计数计数后检查计数值是否等于设置值,如果等于则跳转不等则继续加一,如果到100或者计数值等于设置值则使端口置0一个pwm周期结束,如此重复就可以了pwm周期自己看实际情况定义。如果要控制电灯泡的话频率不鼡太高,50hz可以了关键是要做隔离,用光电隔离加双向可控硅来控制

呵呵,声明两点:1 源程序网上应该有的或者自己买本书就什么也囿了。2 不鼓励直接给别人源程序给你思路再动手就应该很好弄了,总看别人的不自己思考永远都是别人的。


知道合伙人软件行家 推荐於

使LED灯亮度发生变化可以采用PWM控制或者通断延时时间发生变化来实现举例如下:

niushengqi - 经理 四级 你的说法介于概念介绍与具体程序实现之间,怹看不懂

我说两句:利用PWM,即输出50或者25Hz的脉冲串这个脉冲串的脉冲宽度在不断变化,就是niushengqi说的占空比在不断变化这就是PWM。从小到大鈈断变化到最大值以后再返回,就能实现你的亮度渐变

可是niushengqi,我们两个说的恐怕都不能满足要求你得有源程序呀。呵呵

}

你对这个回答的评价是

你对这個回答的评价是?

}

1)P2口的8个脚对应8个LED;设D1灯对应高位D8灯对应低位;

3)开始时,显示第一种方式:向P2口写入a=延时0.5S,a 循环右移一位再延时0.5S,如此反复

4)当收到XO按钮信号后,向P2口写入a=延时1.5S,a 循环右移二位再延时1.5S,如此反复

5)当收到X1按钮信号后,向P2口写入a=延时1S,a 带进位右移二位再延时1.5S,如此反复当Cy=0时,执行 3)

}

我要回帖

更多关于 单片机led多灯闪烁 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信