交通灯C语言程序.doc

交通灯C语言程序.doc

ID:58671976

大小:28.50 KB

页数:8页

时间:2020-10-15

交通灯C语言程序.doc_第1页
交通灯C语言程序.doc_第2页
交通灯C语言程序.doc_第3页
交通灯C语言程序.doc_第4页
交通灯C语言程序.doc_第5页
资源描述:

《交通灯C语言程序.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#defineucharunsignedchar#defineuintunsignedintuchardatabuf[4];uchardatasec_dx=20;//东西数默认uchardatasec_nb=30;//南北默认值uchardataset_timedx=20;//设置东西方向的时间uchardataset_timenb=30;//设置南北方向的时间intn;uchardatacountt0;//定时器0中断次数//定义5组开关sbitk4=P3^7;//切换方向sbitk1=P3^5;//时间加sbitk2=P3^6;//时间减sbitk3=P

2、3^4;//确认sbitk5=P3^1;//禁止//P3^2//只允许东西方向通行,中断0//P3^3//只允许南北方向通行,中断1sbitRed_nb=P2^6;//南北红灯标志sbitYellow_nb=P2^5;//南北黄灯标志sbitGreen_nb=P2^4;//南北绿灯标志sbitRed_dx=P2^3;//东西红灯标志sbitYellow_dx=P2^2;//东西黄灯标志sbitGreen_dx=P2^1;//东西绿灯标志sbitBuzz=P3^0;bitBuzzer_Indicate;bitset=0;//调时方向切换键标志=1时,南北,=0时,东西bitdx_nb=0;//

3、东西南北控制位bitshanruo=0;ucharcodetable[11]={//共阴极字型码0x3f,//--00x06,//--10x5b,//--20x4f,//--30x66,//--40x6d,//--50x7d,//--60x07,//--70x7f,//--80x6f,//--90x00//--NULL};//函数的声明部分voiddelay(intms);//延时子程序voidkey();//按键扫描子程序voidkey_to1();//键处理子程序voidkey_to2();voidkey_to3();voiddisplay();//显示子程序voidlogo();//开

4、机LOGOvoidBuzzer();//主程序voidmain(){TMOD=0X11;//定时器设置TH0=0X3C;//定时器0置初值0.05STL0=0XB0;EA=1;//开总中断ET0=1;//定时器0中断开启TR0=1;//启动定时0EX0=1;//开外部中断0EX1=1;//开外部中断1logo();P2=0Xc3;//开始默认状态,东西绿灯,南北黄灯sec_nb=sec_dx+5;//默认南北通行时间比东西多5秒while(1){key();//调用按键扫描程序display();//调用显示程序Buzzer();}}//函数的定义部分voidkey(void)//按键扫描子

5、程序{if(k1!=1)//当K1(时间加)按下时{display();//调用显示,用于延时消抖if(k1!=1){TR0=0;//关定时器shanruo=0;P2=0x00;if(set==0)set_timedx++;//南北加1Selseset_timenb++;//东西加1Sif(set_timenb==100)set_timenb=1;if(set_timedx==100)set_timedx=1;//加到100置1sec_nb=set_timenb;//设置的数值赋给东西南北sec_dx=set_timedx;//do{display();}while(k1!=1);}}if(

6、k2!=1)//当K2(时间减)按键按下时{display();//调用显示,用于延时消抖if(k2!=1){TR0=0;//关定时器shanruo=0;P2=0x00;if(set==0)set_timedx--;//南北减1Selseset_timenb--;//东西减1Sif(set_timenb==0)set_timenb=99;if(set_timedx==0)set_timedx=99;//减到1重置99sec_nb=set_timenb;//设置的数值赋给东西南北sec_dx=set_timedx;do{display();//调用显示,用于延时}while(k2!=1);}}

7、if(k3!=1)//当K3(确认)键按下时{display();//调用显示,用于延时消抖if(k3!=1){TR0=1;//启动定时器Buzzer_Indicate=0;sec_nb=set_timenb;//从中断回复,仍显示设置过的数值sec_dx=set_timedx;//显示设置过的时间if(set==0)//时间倒时到0时{P2=0X00;//东西绿灯,南北红灯Green_dx=1;Red_nb

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。