单片机控制左右来回循环的流水灯

单片机控制左右来回循环的流水灯

ID:40818267

大小:76.50 KB

页数:6页

时间:2019-08-08

单片机控制左右来回循环的流水灯_第1页
单片机控制左右来回循环的流水灯_第2页
单片机控制左右来回循环的流水灯_第3页
单片机控制左右来回循环的流水灯_第4页
单片机控制左右来回循环的流水灯_第5页
资源描述:

《单片机控制左右来回循环的流水灯》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、左右来回循环的流水灯设计要求8个发光二极管LED0~LED7经限流电阻分别接至P1口的P1.0~P1.7引脚上,阳极共同接高电平。编程实现制作左右来回循环的节日彩灯,显示规律如下图所示。题37图节日彩灯的花样显示的规律为了使显示效果更加绚丽多彩,P1端口8个引脚分别接有不同颜色的发光二极管。具体如题37表所示。题37表P1口8个引脚的不同颜色的发光二极管P1口引脚发光二极管的颜色P1.0红色LEDP1.1蓝色LEDP1.2绿色LEDP1.3黄色LEDP1.4红色LEDP1.5蓝色LEDP1.6绿色LEDP1.7黄色LED使用C51编流水灯程序以及设计相应的硬件电路十分简单,

2、且有多种方法。本方案力求程序最简化最清晰原则,用NS图(盒图)表示算法如下:程序中设置中间变量temp用来给P1口赋值,命令_crol_和_cror_用于使temp左移或右移,例如当temp=11111110B时,执行_crol_(temp,1)之后temp=11111101,应用此两条语句必须把头文件包含进来。全部代码如下:#include#includeunsignedchartemp;//定义字符变量temp,temp左移或右移并给连接LED的P1口赋值inta;//定义延迟函数delay()voiddel

3、ay(void);voidmain(){temp=0xfe;//给temp赋初值P1=temp;//temp赋值给P1口,第一个LED(红色)点亮while(1)//主程序,括号中的程序将一直循环{for(a=0;a<7;a++)//左移部分,LED从左到右依次点亮{temp=_crol_(temp,1);//_crol_语句控制变量temp左移delay();//每个灯点亮之后延迟一会在点下一个灯P1=temp;}for(a=0;a<7;a++)//右移部分,LED从右到左依次点亮{temp=_cror_(temp,1);//第8个灯点亮后开始右移程序,LED从右向左点亮

4、delay();P1=temp;}}}voiddelay()//延时子程序{inti,j;//定义局部变量i,jfor(i=200;i>0;i--)//i,j不断计数占用CPU时间,达到延时目的for(j=1;j<150;j++);}电路连接如下:voiddelay()(){unsignedinti;for(i=0;i<1500;i++)}voidfun(void){unsignedchari;for(i=0;i<8;i++){P0=1<

5、);}}voidL_M()//左{unsignedchara,b,i,temp;unsignedints;temp=0xfe;P1=temp;for(s=0;s<300000;s++);for(i=0;i<8;i++){a=temp<>(8-i);P1=a

6、b;for(s=0;s<300000;s++);}}voidR_M()//右{unsignedchara,b,i,temp;unsignedints;temp=0x7f;P1=temp;for(s=0;s<300000;s++);for(i=0;i<8;i++){a=temp>>i;b=temp<<(

7、8-i);P1=a

8、b;for(s=0;s<300000;s++);}}#include#include//intrins.h库中含有循环移位函数  #defineuintunsignedint#defineucharunsignedcharuchartemp;//定义全局变量tempdelay()//延时子函数{uinti,j;for(i=1;i<400;i++)for(j=1;j<400;j++);}voidmain()//主函数{temp=0xfe;P0=temp;while(1){temp=_crol_(temp,1);//_

9、crol_字符循环左移 _cror_字符循环右移 delay();P0=temp;}}

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。