文档详情

51单片机设计交通灯仿真图.doc

发布:2017-09-16约5.77千字共8页下载文档
文本预览下载声明
/**************************************************************** * *第一个状态:主干道、支干道均亮红灯5S * *第二个状态:主干道亮绿灯30S、支干道亮红灯 * *第三个状态:主干道绿灯闪3次转亮黄灯、支干道亮红灯3S * *第四个状态:主干道亮红灯、支干道亮绿灯25S * *第五个状态:主干道亮红灯、支干道绿灯闪3次转亮黄灯3S * *返回到第二个状态 * * * ***************************************************************/ /* 11.0952M晶振*/ #includereg51.h//头文件 #includeintrins.h//头文件 #define uchar unsigned char//宏定义 #define uint unsigned int//宏定义 sbit RED_ZHU = P1^0; sbit YELLOW_ZHU = P1^1; sbit GREEN_ZHU = P1^2; sbit RED_ZHI = P1^3; sbit YELLOW_ZHI = P1^4; sbit GREEN_ZHI = P1^5; uint aa, bai,shi,ge,bb; //定义变量 /*数码管显示0-9*/ uint code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; /*子函数声明*/ void delay(uint z); void delay0(uint z); //void init(uint a); void display(uint shi,uint ge); void xtimer0(); void init1(); void init2(); void init3(); void init4(); void init5(); void xint1(); void xint0(); void LED_ON(); void LED_OFF(); /********************************************************* 主函数 *********************************************************/ void main() { P0=0XFF; P1=0xFF; P2=0xFF; EA=1;//打开外部中断 EX0=1;//允许外部中断0中断 IT0=0;//INT0为沿触发方式 init1(); while(1) { init2();//第2个状态 init3(); //第3个状态 init4(); //第4个状态 init5();//第5个状态 } } void init1()//第一个状态:主干道、支干道均亮红灯5S { uint temp; temp=6;//变量赋初值 TMOD=0x01;//定时器0工作于方式1 TH0=0x4c; TL0=0x00;//定时器赋初值 EA=1;//开外部中断 ET0=1;//开定时中断 TR0=1;//开定时器0 while(1) { RED_ZHU=0; //第一个状态主干道、支干道均亮红灯5S RED_ZHI=0; GREEN_ZHU=1; GREEN_ZHI=1; YELLOW_ZHU=1; YELLOW_ZHI=1; if(aa==10)//定时20*50MS=1S { aa=0;//定时完成一次后清0 temp--;//变量自增 //delay(10); if(temp250)//定时100S { temp=6;
显示全部
相似文档