|
先上圖


/* 程序效果:?jiǎn)纹瑱C(jī)模擬控制交通燈程序,規(guī)則如下:當(dāng)南北通車時(shí),此時(shí)南北的綠燈亮,東西的紅燈亮,之后南北的綠燈閃爍3次,過后黃燈亮,延時(shí)片刻,轉(zhuǎn)東西綠燈亮同時(shí)南北紅燈亮,之后東西的綠燈閃爍3次,過后黃燈亮,延時(shí)片刻;數(shù)碼管顯示的值都同步,結(jié)束。全部代碼由http://www.51hei.com站長(zhǎng)開發(fā)(由于站長(zhǎng)對(duì)交通燈的規(guī)則不是特別了解,產(chǎn)生于事實(shí)沖突,敬請(qǐng)包涵) */ #include<reg52.h> //頭文件 #define uchar unsigned char//宏定義 #define uint unsigned int uchar code table[]={0x00,0x01,0x02,0x03, //數(shù)碼管顯示的值 0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11, 0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19, 0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27, 0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35, 0x36,0x37,0x38,0x39,0x40,0x41,0x42,0x43, 0x44,0x45}; void delay(uint x)//延時(shí)子函數(shù) { uint i,j; for(i=x;i>0;i--) for(j=500;j>0;j--); } void main() //主函數(shù) { uchar i; //定義局部變量 P1=table[0]; //數(shù)碼管顯示0 delay(400); //延時(shí)一會(huì)兒,在此之前所有數(shù)碼管全為0, while(1) //所有的交通燈都亮 { for(i=0;i<45;i++) //南北通車較多,故延時(shí)較多 { P2=0x0a; //南北綠燈亮,東西紅燈亮 P1=table[i]; delay(200); } for(i=0;i<3;i++) //南北綠燈閃爍3次,同時(shí)東西紅燈亮 { P2=0x0a; delay(200); P2=0x02; delay(200); } P2=0x22; //南北黃燈亮,同時(shí)東西紅燈亮 delay(600); //延時(shí)片刻 for(i=0;i<35;i++) //東西開始通車,由于車輛較少,故延時(shí)較少 { P2=0x11; //南北的紅燈亮 ,東西的綠燈亮 P1=table[i]; delay(200); } for(i=0;i<3;i++) //東西的綠燈閃爍3次 { P2=0x11; delay(200); P2=0x10; delay(200); } P2=0x14; //東西的黃燈亮 delay(600); //延時(shí)片刻 } } |