- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
左右来回循环的流水灯
设计要求
8 个发光二极管 LED0~LED7经限流电阻分别接至 P1 口的 P1.0~ P1.7引脚上,
阳极共同接高电平。 编程实现制作左右来回循环的节日彩灯, 显示规律如下图所
示。
题 37 图 节日彩灯的花样显示的规律
为了使显示效果更加绚丽多彩, P1端口 8 个引脚分别接有不同颜色的发光二
极管。具体如题 37 表所示。
题 37 表 P1 口 8 个引脚的不同颜色的发光二极管
P1 口引脚 发光二极管的颜色
P1.0 红色 LED
P1.1 蓝色 LED
P1.2 绿色 LED
P1.3 黄色 LED
P1.4 红色 LED
P1.5 蓝色 LED
P1.6 绿色 LED
P1.7 黄色 LED
使用 C51 编流水灯程序以及设计相应的硬件电路十分简单, 且有多种方法。 本方案力求程
序最简化最清晰原则,用 NS 图(盒图)表示算法如下:
程序中设置中间变量 temp 用来给 P1 口赋值,命令 _crol_ 和_cror_ 用于使 temp左移或右移,
例如当 temp 时,执行 _crol_(temp,1) 之后 temp应用此两条语句必须
把头文件 intrins.h包含进来。
全部代码如下:
#includereg51.h
#includeintrins.h
unsigned char temp; // 定义字符变量 temp,temp 左移或右移并给连接
LED 的 P1 口赋值
int a; // 定义延迟函数 delay()
void delay(void);
void main()
{
temp=0xfe; //给 temp 赋初值
P1=temp; //temp 赋值给 P1 口,第一个 LED (红色)点亮
while(1) // 主程序,括号中的程序将一直循环
{
for(a=0;a7;a++) // 左移部分, LED 从左到右依次点亮
{
temp=_crol_(temp,1); //_crol_ 语句控制变量 temp 左移
delay(); // 每个灯点亮之后延迟一会在点下一个灯
P1=temp;
}
for(a=0;a7;a++) // 右移部分, LED 从右到左依次点亮
{
temp=_cror_(temp,1); // 第 8 个灯点亮后开始右移程序,
您可能关注的文档
最近下载
- 中国石化工程建设标准建设项目hse管理手册、管理程序、作业指导书_.docx VIP
- 统编版2025年专题07 修辞与仿写 五升六语文暑假专项提升试卷.pdf
- 烟气热值计算.xls VIP
- 最新ISO9001-2015质量管理体系及FCCA质量技术验厂全套文件.docx
- 升罐乙烯发生器说明书.docx
- 辽宁城市道路挖掘修复费收费标准.doc VIP
- 【中小学】上下册第二章第三节第3课时 黄河的治理和开发课件公开课教案教学设计课件.pptx VIP
- SK水环真空泵说明书.docx VIP
- 2025至2030中国动力电池回收利用产业链价值与政策环境研究报告.docx
- 人工智能有效赋能高中历史教学实践.pdf VIP
原创力文档


文档评论(0)