欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
基于51單片機控制的四組交通燈proteus+代碼
[打印本頁]
作者:
dsddddd
時間:
2018-12-3 20:54
標題:
基于51單片機控制的四組交通燈proteus+代碼
單片機控制的交通燈。仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(28.09 KB, 下載次數: 50)
下載附件
2018-12-4 03:03 上傳
單片機源程序如下:
#include <REG51.H>
unsigned char t0,t1; //定義全局變量,用來保存延時時間循環次數
void delay0_5s1()
{
for(t0=0;t0<0x0a;t0++) // 采用全局變量t0作為循環控制變量
{
TH1=0x3c; // 設置定時器初值
TL1=0xb0;
TR1=1; // 啟動T1
while(!TF1); // 查詢計數是否溢出,即定時50ms時間到,TF1=1
TF1=0; // 50ms定時時間到,將定時器溢出標志位TF1清零
}
}
//函數功能:實現0.5秒~128秒延時,延時時間為0.5秒×t
void delay_t1(unsigned char t)
{
for(t1=0;t1<t;t1++) // 采用全局變量t0作為循環控制變量
delay0_5s1();
}
//函數功能:外部中斷0中斷函數,緊急情況處理,當CPU響應外部中斷
//0的中斷請求時,自動執行該函數,實現兩個方向紅燈同時亮10秒
void int_0() interrupt 0 // 緊急情況中斷
{
unsigned char i,j,k,l,m;
i=P1; // 保護現場,暫存P1口、t0、t1、TH1、TH0
j=t0;
k=t1;
l=TH1;
m=TH0;
P1=0xdb; // 兩個方向都是紅燈
delay_t1(20); // 延時10秒
P1=i; // 恢復現場,恢復進入中斷前P1口、t0、t1、TH1、TH0
t0=j;
t1=k;
TH1=l;
TH0=m;
}
//函數功能:外部中斷1中斷函數,特殊情況處理,當CPU響應外部中斷
//1的中斷請求時,自動執行該函數,實現A道放行5秒
void int_1() interrupt 2 // 特殊情況中斷
{
unsigned char i,j,k,l,m;
EA=0; //關中斷
i=P1; // 保護現場,暫存P1口、t0、t1、TH1、TH0
j=t0;
k=t1;
l=TH1;
m=TH0;
EA=1; // 開中斷
P1=0xf3; // A道放行
delay_t1(10); // 延時5秒
EA=0; // 關中斷
P1=i; // 恢復現場,恢復進入中斷前P1口、t0、t1、TH1、TH0
t0=j;
t1=k;
TH1=l;
TH0=m;
EA=1; //開中斷
}
void main() //主函數
{
unsigned char k;
TMOD=0x10; // T1工作在方式1
EA=1; // 開放總中斷允許位
EX0=1; // 開外部中斷0中斷允許位
IT0=1; // 設置外部中斷0為下降沿觸發
EX1=1; // 開外部中斷1中斷允許位
IT1=1; // 設置外部中斷1為下降沿觸發
while(1) {
P1=0xf3; // A綠燈,B紅燈,延時5秒
delay_t1(10);
for(k=0;k<3;k++) // A綠燈閃爍3次
{
P1=0xf3;
delay0_5s1(); // 延時0.5秒
P1=0xfb;
delay0_5s1(); // 延時0.5秒
}
P1=0xeb; // A黃燈,B紅燈,延時2秒
delay_t1(4);
P1=0xde; // A紅燈,B綠燈,延時5秒
delay_t1(10);
for(k=0;k<3;k++) // B綠燈閃爍3次
{
P1=0xde;
delay0_5s1(); // 延時0.5秒
P1=0xdf;
delay0_5s1(); // 延時0.5秒
}
P1=0xdd; // A紅燈,B黃燈,延時2秒
delay_t1(4);
}
}
復制代碼
所有資料51hei提供下載:
四組交通燈.rar
(66.71 KB, 下載次數: 24)
2018-12-3 20:52 上傳
點擊文件名下載附件
交通燈
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1