模擬交通燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (21.98 KB, 下載次數: 95)
下載附件
2017-11-13 22:54 上傳
0.png (53.33 KB, 下載次數: 87)
下載附件
2017-11-13 22:53 上傳
模擬交通燈單片機源程序如下:
- # include <absacc.h>
- # define PORTB XBYTE[0X7FFA]
- # define CONTROL XBYTE[0X7FF8]
- void delaylong(void);
- void delayshort(void) ;
- void main(void)
- {
-
- CONTROL=0X02;//設定工作方式
- PORTB=0XFF;//關閉所有LED
-
- while(1)
- {
- PORTB=0X36;//南北綠,東西紅
- delaylong();
- PORTB=0X37;//東西紅
- delayshort();
- PORTB=0X35;//南北黃,東西紅 南北黃燈閃第1次
- delayshort();
- PORTB=0X37;//東西紅
- delayshort();
- PORTB=0X35;//南北黃,東西紅 南北黃燈閃第2次
- delayshort();
- PORTB=0X37;//東西紅
- delayshort();
- PORTB=0X35;//南北黃,東西紅 南北黃燈閃第3次
- delayshort();
- PORTB=0X1B;//東西綠,南北紅
- delaylong();
- PORTB=0X3B;//南北紅
- delayshort();
- PORTB=0X2B;//東西黃,南北紅 南北黃燈閃第1次
- delayshort();
- PORTB=0X3B;//南北紅
- delayshort();
- PORTB=0X2B;//東西黃,南北紅 南北黃燈閃第2次
- delayshort();
- PORTB=0X3B;//南北紅
- delayshort();
- PORTB=0X2B;//東西黃,南北紅 南北黃燈閃第3次
- delayshort();
- }
- }
- //延時函數
- void delaylong()
- {
- unsigned j,k,m;
- for(j=0;j<30000;j++);
- for(k=0;k<30000;k++);
- for(m=0;m<30000;m++);
- for(j=0;j<30000;j++);
- for(k=0;k<30000;k++);
- for(m=0;m<30000;m++);
- for(j=0;j<30000;j++);
- for(k=0;k<30000;k++);
- for(m=0;m<30000;m++);
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
實驗四.rar
(60.02 KB, 下載次數: 21)
2017-11-13 13:05 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|