资源描述:
《流水灯实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、流水灯实验报告实验名称流水灯控制实验实验时间2019年月日学生姓名实验地点同组人员专业班级一、实验目的1、会使用单片机4个并行I/O端口连接外部设备并构建单片机最小应用系统。2、能使用工具软件绘制单片机硬件原理图、能编写简单的汇编程序。3、会编写常见的顺序程序、循环程序、延时子程序和查表程序。二、实验主要仪器设备和材料Keil软件;Proteus软件三、任务设计要求采用STC89C52单片机构建最小系统,在P0-2口外接24只发光二极管,编程实现24只灯的花样显示控制。P0接口的8个led灯并行串口AT8
2、9C52单片机四、总体设计方案P1接口的8个led灯P2接口的8个led灯电源电路复位电路时钟电路五、硬件电路设计根据设计任务,首先进行系统硬件的设计。其硬件原理图由LED显示电路和单片机最小系统组成,如图所示,其中包括时钟电路采用内部时钟方式,复位电路采用上电自动复位。由于单片机的I/O口的高电平驱动能力只有微安级,而灌电流可以达到3毫安以上,因此采用低电平驱动。P1、P2、P3分别控制8个led灯。六、软件程序设计1、软件设计思路开始如果通过上图所示电路图完成实验要求,通过数组,分别同时控P0、P1、
3、P2分别控制8个led灯,从而协调控制24个灯实现花样流水灯效果。编写数组主循环逐个点亮24灯同时闪烁逐个熄灭2、程序清单及说明#include#include#defineuintunsignedint#defineucharunsignedcharucharcodetable[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};//逐个点亮0~7ucharcodetable1[]={0x7f,0x3f,0x1f,0x0f,0x
4、07,0x03,0x01,0x00};//逐个点亮7~0ucharcodetable2[]={0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};//逐个灭0~7ucharcodetable3[]={0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};//逐个灭7~0voiddelayms(uintt);//延时voidshan()//全部闪烁{uinth;uintt_1;for(h=0;h<5;h++){t_1=1000;P0=P1=P3=0x
5、ff;delayms(t_1);P0=P1=P3=0x00;delayms(t_1);t_1=t_1-200;}P0=P1=P3=0x00;}voidmain()//主函数{while(1){uchari;P0=P1=P3=0xff;for(i=0;i<8;i++)//逐个点亮{P0=table1[i];delayms(500);}for(i=0;i<8;i++){P1=table[i];delayms(500);}for(i=0;i<8;i++){P3=table1[i];delayms(500);}s
6、han();//全部闪烁for(i=0;i<8;i++)//逐个熄灭{P3=table2[i];delayms(500);}for(i=0;i<8;i++){P1=table3[i];delayms(500);}for(i=0;i<8;i++){P0=table2[i];delayms(500);}}}voiddelayms(uintt){uintx,y;for(x=t;x>0;x--)for(y=50;y>0;y--);}七、软硬件仿真调试分析1、仿真调试结果图片1逐个点亮图片224灯闪烁图片3逐个熄灭
7、2、性能测试及结果分析通过仿真结果发现通过上述系统可以实现实验要求,24个灯逐个点亮,24个灯全亮后,24个灯一起闪烁,闪烁5次后,然后24个灯逐个熄灭。由此证明系统满足实验要求。八、项目总结在本次流水灯试验中,使用循环程序、数组语句实现了实验要求,设计过程中遇到了很多的问题,但经过努力,最终设计出了合理的解决方案。通过此次实验,对多个led灯的控制能力进一步得到提升。九、项目设计报告成绩实验报告成绩:指导教师签字:年月日