欢迎来到天天文库
浏览记录
ID:51802116
大小:34.00 KB
页数:5页
时间:2020-03-15
《基于PIC16F877A单片机的交通灯设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、软件流程说明当东西红灯亮,南北绿灯亮时,东西方向数码管倒计时40秒,南北数码管倒计时30秒;切换成南北黄灯亮,东西红灯亮,同时南北数码管倒计时10秒,黄灯亮10秒;然后切换成南北红灯亮,东西绿灯亮,南北数码管倒计时40秒,东西数码管倒计时30秒;切换成南北红灯亮,东西黄灯亮,同时东西方向数码管倒计时10秒,黄灯亮10秒;一直循环下去,再一次切换成东西红灯亮,南北绿灯亮时,南北方向数码管倒计时30秒……仿真电路图:#includeunsignedcharLED1=0;unsignedcharLED2=0;un
2、signedcharLED3=0;unsignedcharLED4=0;unsignedcharLED_L=0;constunsignedchartable[18]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0X60,0X25,0X3c,0X23,0X34,0X74,0XF7,0XFF};voidtimer1init(void)//初始化{T1CON=0X01;//打开定时器1TMR1IF=0;//清除TMR1中断标志TMR1IE=1;//TMR1中断允许TMR
3、1H=0xF6;//赋初值,以便TMR1每2MS左右中断一次TMR1L=0x3D;PIR1=0;//清除所有中断标志PEIE=1;//允许外围总中断GIE=1;//总中断开关打开}voidinterruptT1(void)//中断处理{if(TMR1IF==1)//如果是定时器1中断{TMR1IF=0;//清除定时器1中断标志TMR1H=0XF6;//重新复初值TMR1L=0x3D;switch(LED_L){case0://点亮第一个数码管RE2=1;RE1=0;RE0=0;PORTB=table[LED1];LED_
4、L=1;break;case1://点亮第二个数码管RE2=0;RE1=1;RE0=0;PORTB=table[LED2];LED_L=2;break;case2://点亮第三个数码管RE2=1;RE1=1;RE0=0;PORTB=table[LED3];LED_L=3;break;case3://点亮第四个数码管RE2=0;RE1=0;RE0=1;PORTB=table[LED4];LED_L=0;break;default://语句dLED_L=0;break;}}}delay()//延时500ms{intj,k;f
5、or(j=0;j<500;j++)for(k=0;k<49;k++){}}delay_s(intn)//延时n秒{inti;for(i=0;i6、00;PORTE=0X00;timer1init();//定时器1初始化LED1=3;LED2=0;LED3=3;LED4=5;//数码管赋初值while(1){PORTA=0X01;PORTC=0X40;//东西红灯亮,南北绿灯亮LED1=3;LED2=0;LED3=4;LED4=0;//东西倒数40S,南北倒数30Sfor(i=0;i<40;i++){delay_s(1);LED2=LED2-1;LED4--;if(LED2==0XFF){LED2=9;LED1--;}if(LED4==0XFF){LED4=9;LE7、D3--;}if(i==29){PORTA=0X02;//南北黄灯亮10S{LED1=1;LED2=0;LED3=1;LED4=0;}if(LED2==0XFF){LED2=9;LED1--;}if(LED4==0XFF){LED4=9;LED3--;}if(LED2==0XFF&LED4==0XFF){}}}PORTA=0X04;PORTC=0X10;//东西绿灯亮,南北红灯亮LED1=4;LED2=0;LED3=3;LED4=0;//东西倒数40S,南北倒数30Sfor(i=0;i<40;i++){delay_s(18、);LED4=LED4-1;LED2--;if(LED4==0XFF){LED4=9;LED3--;}if(LED2==0XFF){LED2=9;LED1--;}if(i==29){PORTC=0X20;//东西黄灯亮10S{LED1=1;LED2=0;LED3=1;LED4=0;}if(LED4==0XFF){LE
6、00;PORTE=0X00;timer1init();//定时器1初始化LED1=3;LED2=0;LED3=3;LED4=5;//数码管赋初值while(1){PORTA=0X01;PORTC=0X40;//东西红灯亮,南北绿灯亮LED1=3;LED2=0;LED3=4;LED4=0;//东西倒数40S,南北倒数30Sfor(i=0;i<40;i++){delay_s(1);LED2=LED2-1;LED4--;if(LED2==0XFF){LED2=9;LED1--;}if(LED4==0XFF){LED4=9;LE
7、D3--;}if(i==29){PORTA=0X02;//南北黄灯亮10S{LED1=1;LED2=0;LED3=1;LED4=0;}if(LED2==0XFF){LED2=9;LED1--;}if(LED4==0XFF){LED4=9;LED3--;}if(LED2==0XFF&LED4==0XFF){}}}PORTA=0X04;PORTC=0X10;//东西绿灯亮,南北红灯亮LED1=4;LED2=0;LED3=3;LED4=0;//东西倒数40S,南北倒数30Sfor(i=0;i<40;i++){delay_s(1
8、);LED4=LED4-1;LED2--;if(LED4==0XFF){LED4=9;LED3--;}if(LED2==0XFF){LED2=9;LED1--;}if(i==29){PORTC=0X20;//东西黄灯亮10S{LED1=1;LED2=0;LED3=1;LED4=0;}if(LED4==0XFF){LE
此文档下载收益归作者所有