求51单片机PWM汇编语言程序(用来控制3个红、绿、蓝LED灯,让这3个LED灯产生均色变化)

我就是想用51单片机采用PWM方式来控制3个LED灯,产生七彩效果的程序。

1、程序实现上应该不难,假设用3个8位变量来调节这三个灯,理想上可以得到256单色灰度效果。但通常能做到16等级灰度,也能看到一定效果。
2、这三个PWM周期相同,占空比不同,亮度就各有不同。
3、确保单片机管脚输出1时(100%,或单独调节满刻度),三个LED灯的驱动电流均达到饱和。并且合成色为白色。且根据最佳观测距离,选择相应视角的灯管。并考虑其安装位置。
4、若为256等级灰度,总共有2^24个组合渐变。且渐变过程还有更多组合。建议16等级实现先。
5、三个for循环,逐个调节PWMR、PWMG、PWMB参量。在定时器的最小定时管理单元中逐个判断,是否达到翻转调节。并控制各LED的亮灭。
【以上纯属理论分析,程序及效果自行完成】
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-21
为啥一定是汇编的,如果你一定要用汇编我可以告诉你一个办法。编写好C代码,在软件仿真时就会出现生产的汇编代码。这样你也可直接拷贝出来用。其实C代码是一样用的追问

请问一下,你有没有这种程序呢?C的也行,只要是用PWM来控制的七彩灯程序都有行。我是刚开始学。

追答

我有PMW的C 程序,是控制灯光亮暗点。对你有帮助么

追问

如果方便的的话请发我邮箱好吗[email protected]
谢谢!

追答

很简单,就是配置PCA寄存器为PMW方式。然后你改变对应的PWM计数器的值,PMW端口输出的占空比就会随计数器的值变化而变化。PMW的程序就是配置寄存器和随程序需要改变PMW计数器的初值这个过程。你用的什么型号的51?把型号给我,我帮你配置一下试试。

本回答被提问者采纳
第2个回答  2011-03-22
用汇编语言控制PWM,编写起来很简单。
不用考虑C语言里面杂七杂八的概念,只是研究单片机本身的东西就行了。
让这3个LED灯产生均色变化,是什么意思?追问

也就是用PWM控制3个LED灯,LED灯由暗到亮的交叉变化,(也就 是七彩LED灯)

追答

均色变化、交叉变化,都是不好理解的词汇。
请解释的再通俗一些。
----
题目要求,表达不清,这程序可怎么写?

采纳答案是错误的。
AT89S52,怎么配置PCA寄存器为PMW方式?

第3个回答  2011-03-21
对不住,我没有听说过PWM汇编语言!
第4个回答  2011-03-24
为啥不用c呢?追问

你有C的吗?能否发个给我呢?[email protected]
非常感谢!

相似回答