下載手機汽配人

一共十個開關兩個控制交通燈,八個控制兩位數(shù)碼管,實現(xiàn)十種不同現(xiàn)象,求C51單片機程序,能快點嗎?謝謝!

提問者:網(wǎng)友 2018-07-15
最佳回答
10個開關,2個控制交通燈,共輸出3種狀態(tài)紅、綠、黃、全滅。其中全滅開關狀態(tài)為00,黃燈開關狀態(tài)為01,綠燈開關狀態(tài)為10,紅燈狀態(tài)為11. 8個開關控制兩位數(shù)碼管,數(shù)碼管采用7段數(shù)碼管,2位數(shù)碼管共14段顯示??梢圆捎?行4列的矩陣開關顯示。這樣正好需要8個開關。每個數(shù)碼管可顯示0-9. 例如交通燈規(guī)律是綠燈40秒,閃爍4秒(也就是綠燈和全滅間隔顯示),黃燈3秒,紅燈20秒。 以上過程一個循環(huán)的子程序如下: void one_circle(void) { ligntcontrol(2); // 輸出綠燈,狀態(tài)10,十進制是2. for(i=0;i<40;i++) { numdisplay(40-i); //數(shù)字從40顯示到1,每間隔1秒變化 delay(1000); //延時1秒 } for(i=0;i<4;i++) { numdisplay(4-i); //數(shù)字從4顯示到1,每間隔1秒變化 lightcontrol(0); //輸出全滅 delay(500); //延時500ms lightcontrol(2); //輸出綠燈 delay(500); //延時500ms } lightcontrol(1); //輸出黃燈 for(i=0;i<3;i++) { numdisplay(3-i); //數(shù)字從3顯示到1,每間隔1秒變化 delay(1000); //延時1秒 } lightcontrol(3); //輸出紅燈 for(i=0;i<20;i++) { numdisplay(20-i); //數(shù)字從20顯示到1,每間隔1秒變化 delay(1000); //延時1秒 } } QQ1340621316
回答者:網(wǎng)友
產(chǎn)品精選
搜索問答
還沒有汽配人賬號?立即注冊

我要提問

汽配限時折扣

本頁是網(wǎng)友提供的關于“一共十個開關兩個控制交通燈,八個控制兩位數(shù)碼管,實現(xiàn)十種不同現(xiàn)象,求C51單片機程序,能快點嗎?謝謝!”的解答,僅供您參考,汽配人網(wǎng)不保證該解答的準確性。