標(biāo)題: 51單片機(jī)交通燈控制實(shí)驗(yàn) [打印本頁]

作者: 123qqqccy    時間: 2022-11-27 21:16
標(biāo)題: 51單片機(jī)交通燈控制實(shí)驗(yàn)
這是我的實(shí)驗(yàn),
交通燈控制的,
平時都是東西南北交替20s,
異常60s,
是自己一點(diǎn)一點(diǎn)寫的,
請大家多多指教

實(shí)驗(yàn)一:交通燈控制實(shí)驗(yàn)
實(shí)驗(yàn)學(xué)時:2;實(shí)驗(yàn)類型:驗(yàn)證    ;實(shí)驗(yàn)要求:必做
一、實(shí)驗(yàn)?zāi)康?br /> 1.    了解51單片機(jī)芯片的引腳及編程特點(diǎn)。
2.    熟悉匯編及C語言編寫程序的方法。
3.    掌握定時器和中斷的應(yīng)用,同時使用定時中斷和外部中斷。
4.    熟悉Keil軟件的使用方法。
5.    學(xué)會使用各類程序下載器的實(shí)用。
二、實(shí)驗(yàn)內(nèi)容
1.學(xué)習(xí)如何使用程序下載器下載程序至開發(fā)板。
2.設(shè)計C語言程序。
3.根據(jù)C語言程序結(jié)合所學(xué)知識編譯程序。
三、實(shí)驗(yàn)原理、方法和手段
用單片機(jī)設(shè)計一個十字路口交通燈模擬控制系統(tǒng),要求東西、南北兩個方向都通行20秒,警告3秒,禁止20秒,同時要考慮到東西、南北兩個方向出現(xiàn)異常情況,出現(xiàn)異常情況器該方向通行60秒。


四、實(shí)驗(yàn)條件
1.臺式電腦一臺,且至少要具備一個usb串行口。
2.單片機(jī)仿真實(shí)驗(yàn)板一塊
3.usb串口連接線一條
4.杜邦線若干
五、實(shí)驗(yàn)步驟
程序內(nèi)容:
  主程序中實(shí)現(xiàn)交通燈正常運(yùn)行過程;
  兩種異常用外中斷0和外中斷1管理,外接開關(guān)模擬異常發(fā)生;
  在中斷服務(wù)程序中實(shí)現(xiàn)異常處理,在主程序中開放外中斷0和外中斷1,設(shè)置為邊沿觸發(fā)方式;
  500ms信號由定時計數(shù)器0,選擇方式1,定時50ms,循環(huán)10次產(chǎn)生,定時計數(shù)器0采用查詢方式。

1.實(shí)驗(yàn)預(yù)習(xí):在實(shí)驗(yàn)前每位同學(xué)都需要對本次實(shí)驗(yàn)進(jìn)行認(rèn)真的預(yù)習(xí),學(xué)習(xí)仿真系統(tǒng)的過程,編制好相應(yīng)的實(shí)驗(yàn)程序。
2.實(shí)驗(yàn)記錄:學(xué)生記錄實(shí)驗(yàn)過程如何變化。
3.實(shí)驗(yàn)報告:畫出并分析各程序流程圖,寫出各程序主要功能能,編制各程序的替代程序。實(shí)驗(yàn)報告要獨(dú)立完成,字跡工整,圖表清晰,分析認(rèn)真全面。
八、其它說明
進(jìn)行硬件實(shí)驗(yàn)室注意連線規(guī)范,防止由于短路引起的器件損壞,所有硬件設(shè)備不可帶電插拔。
程序參考:
while(1)                    
     {
    P1=0x21;    //狀態(tài)1,東西方向綠燈,南北方向紅燈20s
    delay1s(40);
    P1=0x41;    //狀態(tài)2,東西方向黃燈,南北方向紅燈3s
    delay1s(6);
    P1=0x12;    //狀態(tài)3,南北方向綠燈,東西方向紅燈20s
    delay1s(40);
    P1=0x14;    //狀態(tài)4,南北方向黃燈,東西方向紅燈3s
    delay1s(6);
    }
}
void  int_0(void)  interrupt  0
{
      unsigned  char  i1,i2;
      i1=P1;
      for(i2=0;i2<60;i2++)
    {
    P1=0x21;
    delay1s(1);
    P1=0x00;
    delay1s(1);
    }
    P1=i1;
}
void  int_1(void)  interrupt  2
{
      unsigned  char  j1,j2;
      j1=P1;
      for(j2=0;j2<60;j2++)
    {
    P1=0x12;
    delay1s(1);
    P1=0x00;
    delay1s(1);
    }
    P1=j1;
}
//延時500ms函數(shù)      
void delay1s(unsigned  char  m)     
{
    unsigned  char k1,k2;
    TH0=0x3C;TL0=0xB0;
    TR0=1;
    for (k1=0;k1<m;k1++)
        {
        for (k2=0;k2<10;k2++)
            {
            while(!TF0);
            TF0=0;
            TH0=0x3C;TL0=0xB0;
            }
        }
}


作者: gzn    時間: 2023-7-1 10:46
請問這個要分時控制嗎

作者: riyou2008    時間: 2023-7-5 06:39
多謝了,先收藏慢慢學(xué)習(xí)!
作者: 22659    時間: 2023-7-7 10:17
多謝了,先收藏慢慢學(xué)習(xí)!




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1