《控制交通灯的程序设计.doc》由会员分享,可在线阅读,更多相关《控制交通灯的程序设计.doc(21页珍藏版)》请在三一文库上搜索。
1、控制交通灯的程序设计#include unsignedcharcodedis_721=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1, 0x86,0x8e,0xbf,0x89,0x8c,0x00,0xff;/共阳数码管段码 unsignedchardatadisbuf6=0x00,0x00,0x00,0x00,0x00,0x00;/显示缓冲区:时分秒使用unsignedchardatacount_timedx=2,10,5,10,25;/东西方向倒计时时间unsignedchardatacount_ti
2、menb=2,25,10,5,10;/南北方向倒计时时间unsignedchardataHour=14,Minite=06,Second=0,Halfsec=0;/定义时钟位unsignedcharxdata*ledaddr=0x2000;/锁存器选通地址 unsignedchardataMs=0,Lightcode=0,Light_step,Led_step,Light_num; unsignedintdataFault_dx=0,Fault_nb=0,Fault_total=0,Countdx=0,Countnb=0; sbitp10=P10;/第0位数码管位控制端sbitp11=P11;
3、/第1位数码管位控制端sbitp12=P12;/第2位数码管位控制端sbitp13=P13;/第3位数码管位控制端sbitp14=P14;/第4位数码管位控制端sbitp15=P15;/第5位数码管位控制端sbitp16=P16;/发光二极管选通sbitp17=P17;/按键选通 sbitp33=P33;/k1键用于切换四种功能 /*/ /*1毫秒延时函数*/voiddelay1ms(intt) unsignedinti,j;for(i=0;it;i+)for(j=0;j120;j+); /*/ /*键盘扫描函数*/unsignedchargetkey(void) unsignedcharYi
4、wei;unsignedchartest=0x00,tim; *ledaddr=test; if(p17=0&tim=0)/判断是否有按键按下 p17=1; tim=1; test=0xfe;delay1ms(5); for(Yiwei=0;Yiwei8;Yiwei+)/处理按键 *ledaddr=test;if(p17=0)break;elsetest=(test=4)&(Light_step=1)&(Light_step4)Light_num=0; if(key3=5)/KL2键用于修改东西方向倒计时,加1 count_timedxLight_num+;if(count_timedxLight_num=99) count_timedxLight_num=99; if(key3=1)/KL6键用于修改东西方向倒计时,减1 count_timedxLight_num-;if(count_timedxLight_num1)count_timedxLight_num=1;