1、DXP交通信号指示灯单片机一、实验目的1、了解单片机的使用方法及简单电路的制作2、学会基础的单片机编程,并学会用proteus对电路进行仿真。二、实验要求1. 设定南北,东西方向交通灯显示时间一样。2. 设定红绿灯均显示30秒,红灯绿灯切换时黄灯显示2秒。3. 要求红黄绿灯用发光二极管表示,并且显示出时间。三、设计原理1、考虑到交通信号指示灯的实际切换情况,将实验要求的第二部分进行了修改,即绿灯三十秒倒计时,然后黄灯两秒倒计时,另一个方向仅红灯进行三十二秒倒计时,然后循环。具体情况对比见下框图原指示灯跳转时间框图修改后指示灯跳转时间框图注:由于为了更直观,特将绿灯时间修改为31秒,即第一个显示
2、30秒,倒计时到0秒,持续时间是31秒;黄灯、红灯原理同绿灯。2、在C程序中利用一个1秒的循环程序进行计时,并将其中一部分在主程序中进行,设变量为i=69,则数码管显示值的算法见下框图四、电路图设计注:为了焊接方便,单片机的P1.0P1.7并未依次对应数码管的ah,实际为a-P1.1 b-P1.0 c-P1.5 d-P1.6 e-P1.7 f-P1.2 g-P1.3 h-P1.4,在程序中将有体现五、程序设计P0=0x04;P1=TABC;P2=0xf6;delay(h);P1=0xff;P0=0x08;P1=TABD;P2=0xf6;delay(h);P1=0xff; if(i=35)a=i
3、-35;d=i-35;A=a/10;B=a%10;C=d/10;D=d%10; while(g-)if(g15&g30&g45)Y=1;P0=0x01;P1=TABA;r=0;delay(h);P1=0xff;P0=0x02;P1=TABB;r=0;delay(h);P1=0xff;P0=0x04;P1=TABC;r=0;delay(h);P1=0xff;#include #define uchar unsigned char #define uint unsigned int uchar TAB10=0x18,0xde,0x34,0x94,0xd2,0x91,0x11,0xdc,0x10,0
4、x90;sbit Y=P21;sbit R=P22;sbit y=P24;sbit r=P23;void delay(uint k)unsigned char h,m;while(k-)for(h=5;h0;h-)for(m=214;m0;m-); void main() uint i=69,g,a,b,c,d,e,f,h,j=0,A,B,C,D;while(i-)P2=0xff;g=58;h=2;if(i=38)a=i-38;d=i-35;A=a/10;B=a%10;C=d/10;D=d%10;while(g-)P0=0x01;P1=TABA;P2=0xf6;delay(h);P1=0xff
5、;P0=0x02;P1=TABB;P2=0xf6;delay(h);P1=0xff; P0=0x08;P1=TABD;r=0;delay(h);P1=0xff;if(i3)b=i-1;e=i-4;A=b/10;B=b%10;C=e/10;D=e%10;while(g-)P0=0x01;P1=TABA;P2=0xdb;delay(h);P1=0xff;P0=0x02;P1=TABB;P2=0xdb;delay(h);P1=0xff;P0=0x04;P1=TABC;P2=0xdb;delay(h);P1=0xff;P0=0x08;P1=TABD;P2=0xdb;delay(h);P1=0xff;i
6、f(i0)c=i-1;f=i-1;A=c/10;B=c%10;C=f/10;D=f%10;while(g-) if(g15&g30&g45)y=1;P0=0x01;P1=TABA;R=0;delay(h);P1=0xff;P0=0x02;P1=TABB;R=0;delay(h);P1=0xff;P0=0x04;P1=TABC;R=0;delay(h);P1=0xff;P0=0x08;P1=TABD;R=0;delay(h);P1=0xff;六、实验仿真结果以上为四种转换的状态图,其余为上图的循环七、实验总结本次实验利用单片机来实现,相对来说就比较简单,在审题时发现题目的要求与实际情况不符,因此对要求做了相应的变动,使程序更加符合实际情况。在进行单片机编程时开始找不到几个灯变换过程中的逻辑关系,后静下心来一想,利用较简单的if语句实现功能,根据算法的不同分好计算区间。后在程序中进行了一些改进,如将数码管的现实频率调高到58HZ,在实际测试时很那看出其闪烁,效果良好。有对黄灯做了改进,也利用if语句使黄灯闪烁,1秒闪烁2次,在实际测试中效果良好。所以说本次实验相当成功。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1