|
單片機(jī)交通燈仿真圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (33.77 KB, 下載次數(shù): 55)
下載附件
2017-5-30 21:25 上傳
原理圖:

單片機(jī)源程序如下:
- #include "reg51.h"
- unsigned char t0,t1;//定義全局變量,用來保存延時(shí)時(shí)間的循環(huán)次數(shù)
- unsigned char i,j,k,l,m;
- void delay0_10s1()
- {
- for(t0=0;t0<20;t0++)//采用全局變量作為循環(huán)控制變量
- {
- TH1=(65536-46080)/256;// 由于晶振為11.0592,故所記次數(shù)應(yīng)為46080,計(jì)時(shí)器每隔50000微秒發(fā)起一次中斷。
- TL1=(65536-46080)%256;//46080的來歷,為50000*11.0592/12
- TR1 = 1;//啟動(dòng)T1
- while(!TF1);//查出計(jì)數(shù)是否溢出,即50ms定時(shí)時(shí)間一到,TF1 = 1
- TF1 = 0;
- }
- }
- void delay_t1 (unsigned char t)
- {
- for (t1 = 0;t1<t; t1++)
- delay0_10s1();
- }
- void int_0() interrupt 0//緊急情況中斷
- {
- unsigned char i,j,k,l,m;
- i = P1;
- j = t0;
- k = t1;
- l = TH1;
- m = TL1;
- P1 = 0xdb;
- delay_t1 (20);
- P1 = i;
- t0 = j;
- t1 = k;
- TH1 = l;
- TL1= m;
- }
- void main() //主函數(shù)
- {
- //unsigned char k;
- TMOD = 0x10;//T1設(shè)置為工作方式1
- EA = 1; //開總中斷允許位
- EX0 = 1; //開外部中斷0允許位
- IT0 = 1; //設(shè)置外部中斷0為下降沿觸發(fā)
- while(1)
- {
- P1 = 0xde; //A紅燈,B綠燈,延時(shí)10秒
- delay_t1(20);
- P1 = 0xdd; //A紅燈,B黃燈,延時(shí)3秒
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
仿真:
交通燈系統(tǒng)控制電路.rar
(93.93 KB, 下載次數(shù): 15)
2017-5-30 21:19 上傳
點(diǎn)擊文件名下載附件
這是仿真圖 下載積分: 黑幣 -5
程序:
交通信號(hào)燈.rar
(22.8 KB, 下載次數(shù): 25)
2017-5-30 21:20 上傳
點(diǎn)擊文件名下載附件
這是源程序 下載積分: 黑幣 -5
|
|