這是我的實驗,
交通燈控制的,
平時都是東西南北交替20s,
異常60s,
是自己一點一點寫的,
請大家多多指教
實驗一:交通燈控制實驗
實驗學時:2;實驗類型:驗證 ;實驗要求:必做
一、實驗目的
1. 了解51單片機芯片的引腳及編程特點。
2. 熟悉匯編及C語言編寫程序的方法。
3. 掌握定時器和中斷的應用,同時使用定時中斷和外部中斷。
4. 熟悉Keil軟件的使用方法。
5. 學會使用各類程序下載器的實用。
二、實驗內容
1.學習如何使用程序下載器下載程序至開發板。
2.設計C語言程序。
3.根據C語言程序結合所學知識編譯程序。
三、實驗原理、方法和手段
用單片機設計一個十字路口交通燈模擬控制系統,要求東西、南北兩個方向都通行20秒,警告3秒,禁止20秒,同時要考慮到東西、南北兩個方向出現異常情況,出現異常情況器該方向通行60秒。
51hei.png (16.88 KB, 下載次數: 68)
下載附件
2022-11-27 22:10 上傳
四、實驗條件
1.臺式電腦一臺,且至少要具備一個usb串行口。
2.單片機仿真實驗板一塊
3.usb串口連接線一條
4.杜邦線若干
五、實驗步驟
程序內容:
主程序中實現交通燈正常運行過程;
兩種異常用外中斷0和外中斷1管理,外接開關模擬異常發生;
在中斷服務程序中實現異常處理,在主程序中開放外中斷0和外中斷1,設置為邊沿觸發方式;
500ms信號由定時計數器0,選擇方式1,定時50ms,循環10次產生,定時計數器0采用查詢方式。
1.實驗預習:在實驗前每位同學都需要對本次實驗進行認真的預習,學習仿真系統的過程,編制好相應的實驗程序。
2.實驗記錄:學生記錄實驗過程如何變化。
3.實驗報告:畫出并分析各程序流程圖,寫出各程序主要功能能,編制各程序的替代程序。實驗報告要獨立完成,字跡工整,圖表清晰,分析認真全面。
八、其它說明
進行硬件實驗室注意連線規范,防止由于短路引起的器件損壞,所有硬件設備不可帶電插拔。
程序參考:
while(1)
{
P1=0x21; //狀態1,東西方向綠燈,南北方向紅燈20s
delay1s(40);
P1=0x41; //狀態2,東西方向黃燈,南北方向紅燈3s
delay1s(6);
P1=0x12; //狀態3,南北方向綠燈,東西方向紅燈20s
delay1s(40);
P1=0x14; //狀態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函數
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;
}
}
}
|