流水灯控制实验.docx

流水灯控制实验.docx

ID:51793369

大小:53.82 KB

页数:5页

时间:2020-03-15

流水灯控制实验.docx_第1页
流水灯控制实验.docx_第2页
流水灯控制实验.docx_第3页
流水灯控制实验.docx_第4页
流水灯控制实验.docx_第5页
资源描述:

《流水灯控制实验.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、此文档收集于网络,如有侵权,请联系网站删除流水灯控制实验一、实验目的:1、掌握KeilC51软件与proteus软件联合仿真调试的方法。2、掌握如何用程序与查表等方法实现流水效果。3、掌握按键去抖原理及处理方法。二、实验内容:1、用Proteus设计一流水灯控制电路。利用P1口控制8个发光二极管L1—L8。P3.3口接一按键K1。参考电路如下图所示。其中74LS240为8反相三态缓冲器。2、用中断或查询方式编写程序,每按动一次K1键,演示不同的流水效果。若用KEY表示按键的次数,则其对应的流水效果如

2、下:①KEY=0:L1-L8全亮;②KEY=1:L1-L8先全灭,然后自右向左单管点亮,如此循环;③KEY=2:L1-L8先全灭,然后自右向左依次点亮,如此循环;④KEY=3:L1-L8先全亮,然后自左向右依次熄灭,如此循环;⑤KEY=4:L1-L8先全灭,然后整体闪烁,如此循环;⑥KEY=5:自行设计效果。以上移位及闪烁时间间隔均设置为0.3秒。按动5次按键后,再按键时,流水效果从头开始循环。三、实验原理及步骤:1.实验步骤:(1)用Proteus设计流水灯控制电路。(2)在KeilC51中编写流

3、水灯控制程序,编译通过后,与Proteus联合调试。(3)按动K1键,观察是否达到演示效果。(4)试用中断和查询两种方式编写程序,比较二者的区别。四、程序设计与调试:1.实验电路图如图1所示。2.实验源程序见附录。此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除图1五、实验总结:1.实验设计时注意按键电平抖动问题,可在检测到按键按下后延时5—10ms,待前沿抖动消失后,再检测按键状态,若发现仍保持闭合状态,则确真正有键按下。2.74LS240的使用方法:74LS240是八反相三态缓冲器

4、/线驱动器。实验时G引脚接地,输出电平与输入反相。3.用中断方式时,电路效率高,按下按键后,程序立即响应对应的中断程序;用查询方式编程时,按下按键时会有检测不到按键按下的情况,且效率较低。六、思考题1.按键若不加去抖处理即不加延时检测程序时,按下一次按键后会有多次响应,会跳过一个或几个流水效果,因此遇到按键检测问题时,一定要注意延时消抖后再次检测。此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除附录1.查询方式程序此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除#incl

5、udecharcodetab[10]={0x00,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff};charcodetabunsignedcharnum=0;sbitkey=P3^3;voidkeyscan(){if(key==0){delay_ms(10);if(key==0){num++;}if(num==6)num=0;}}voidallon(){while(num==0){P1=tab[9];keyscan();}}voidr2lo

6、nd(){unsignedchart=0;for(t=0;t<9&&(num==1);t++){P1=tab[t];delay_ms(200);keyscan();}}voidr2lon(){chart;P1=0x00;delay_ms(200);{for(t=1;t<9&&(num==2);t++){P1=tab[t]

7、P1;delay_ms(200);keyscan();}}}voidl2roff(){unsignedcharm,t;{P1=0xff;delay_ms(200);keyscan(

8、);for(t=8;t>0&&(num==3);t--){m=(~tab[t])&(P1);P1=m;delay_ms(200);keyscan();}}}voidallblink(){while(num==4){P1=tab[0];delay_ms(200);keyscan();P1=tab[9];delay_ms(200);keyscan();}}voidown(){chark;此文档仅供学习与交流此文档收集于网络,如有侵权,请联系网站删除for(k=1;k<5&&(num==5);k++){P

9、1=tab[k]

10、tab[9-k];delay_ms(200);keyscan();}}voiddelay_ms(t){inti;for(;t>0;t--)for(i=0;i<124;i++);}voidmain(){keyscan();while(1){switch(num){case0:allon();break;case1:r2lond();break;case2:r2lon();break;case3:l2roff();break;case4:allblink

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

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

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