交通信号灯的控制
时间:09-14
来源:互联网
点击:
此程序是在黄莺老师的源程序上加以修改,在单片机板子上运行成功,这里是板子的硬件资料http://www.51hei.com/mcu/1019.html,数码管是四位共阳管子,程序没有进行仿真测试
#include reg51.h>#define uint unsigned int#define uchar unsigned charuint temp,temp1,temp2,num,shi,ge,i,j;uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};sbit WX1=P0^0;sbit WX2=P0^1;sbit WX3=P0^2;sbit WX4=P0^3;sbit NBL=P2^2;sbit NBY=P2^1;sbit NBR=P2^0;sbit DXL=P2^5;sbit DXY=P2^4;sbit DXR=P2^3;void init(){P0=0xff;P2=0xff;temp=0;temp1=0;temp2=0;shi=0;ge=0;TMOD=0x21; TH0=0x3c; //50msTL0=0xb0;EA=1;ET0=1;TF0=0;TR0=1;}void delay(uchar z){uchar x,y;for(x=110;x>0;x--)for(y=z;y>0;y--);}void display(){shi=num/10;ge=num%10;P1=table[ge];WX3=1;WX2=0;WX1=0;WX4=0;delay(10);WX2=1;P1=table[shi];WX2=1;WX3=0;WX1=0;WX4=0;delay(10);WX3=1; }void time0() interrupt 1 using 1{temp++;temp1++;TH0=0x3c;TL0=0xb0;TR0=1; }void main(){init();while(1){if(temp==0){DXR=1;NBY=1;DXL=0;NBR=0;num=21;temp1=0;for(i=20;i>0;i--){num--;while(temp1!=20){display();}temp1=0;}}if(temp==400) {DXY=1;NBR=0;DXL=0;num=3;j=0; for(i=7;i>0;i--){j++;if(j%2==0){num--;}temp2=temp;DXL=!DXL; //灯闪烁while(temp-temp2!=10){display();};} }if(temp==470){ DXL=1;DXY=0;NBR=0;num=3;temp1=0;for(i=3;i>0;i--){num--;while(temp1!=20){display();}temp1=0;}if(temp==530){DXY=1;DXR=0;NBR=1;NBL=0;num=26;temp1=0;for(i=25;i>0;i--){num--;while(temp1!=20){display();}temp1=0;}}if(temp==1030){DXY=1;DXR=0;NBL=0;num=3;j=0; for(i=7;i>0;i--){j++;if(j%2==0){num--;}temp2=temp;NBL=!NBL; //灯闪烁while(temp-temp2!=10){display();};} }if(temp==1100){ DXL=1;DXR=0;NBY=0;num=3;temp1=0;for(i=3;i>0;i--){num--;while(temp1!=20){display();}temp1=0;}temp=0;}}}}
- 基于ARM的新型智能交通信号灯系统设计(07-05)
- FPGA系统设计的仿真验证之: 仿真测试文件(Testbench)的设计方法(06-05)
- 解析基于FPGA的智能控制器设计及测试方法(06-11)
- 单片机应用电路板的故障诊断方法及实现(10-25)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)