|
代碼如下
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
//數(shù)碼管共陽極/*0,1,2,3,4,5,6,7,8,9,A,b,C,*/
uchar code SEG7[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//數(shù)碼管位碼
sbit q1=P3^0;
sbit q2=P3^1;
sbit q3=P3^4;
sbit q4=P3^5;
//紅綠黃燈端口定義--------東西紅燈
sbit hong=P2^0;
//紅綠黃燈端口定義--------東西黃燈
sbit huang=P2^1;
//紅綠黃燈端口定義--------東西綠燈
sbit lv=P2^2;
//紅綠黃燈端口定義--------南北紅燈
sbit hong1=P2^3;
//紅綠黃燈端口定義--------南北黃燈
sbit huang1=P2^4;
//紅綠黃燈端口定義--------南北綠燈
sbit lv1=P2^5;
//定義變量------倒計時變量
uint t1=15;
//定義變量------南北延時時間
uint time=15;
uint time1=15;
//定義變量------定時器計時變量
uint jishu1=0;
//定義變量------執(zhí)行步驟標志位
uchar bz=0;
//定義變量------運行標志
uchar yunxing=1;
//定義變量------顯示倒計時時間變量
uint jishu3=0;
//延時函數(shù)ms
void _delay_ms(uint i)
{
uchar j;
for(;i>0;i--)
{
for(j=0;j<120;j++);
}
}
//顯示倒計時函數(shù)-----倒計時秒顯示
void dispaly()
{
//顯示倒計時十位--東西
P1=SEG7[t1%100/10];q1=1;_delay_ms(2);q1=0;
//顯示倒計時個位--東西
P1=SEG7[t1%10];q2=1;_delay_ms(2);q2=0;
//顯示倒計時十位--南北
P1=SEG7[t1%100/10];q3=1;_delay_ms(2);q3=0;
//顯示倒計時個位--南北
P1=SEG7[t1%10];q4=1;_delay_ms(2);q4=0;
}
//主函數(shù)
void main()
{ //-------定時器0配置
TMOD=0x01; //方式1
//使能定時器0
ET0=1;
//定時器的初值
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
//停止開啟定時器0
TR0=1;
//使能中斷
EA=1;
while(1)
{
//顯示交通燈運行
if(yunxing==1)
{
dispaly();
//東西紅滅 黃滅 綠亮
//南北紅亮 黃滅 綠滅
if(bz==0)
{
hong=1; huang=1; lv=0;
hong1=0;huang1=1;lv1=1;
if(t1==0){bz=1;t1=3;}
}
//東西紅滅 黃閃 綠滅
//南北紅亮 黃滅 綠滅
if(bz==1)
{
if(jishu1<10){hong=1; huang=0; lv=1;}
if(jishu1>10){hong=1; huang=1; lv=1;}
hong1=0; huang1=1;lv1=1;
if(t1==0){bz=2; t1=time1; }
}
//東西紅亮 黃滅 綠滅
//南北紅滅 黃滅 綠亮
if(bz==2)
{
hong=0; huang=1;lv=1;
hong1=1; huang1=1;lv1=0;
if(t1==3){bz=3;t1=3;}
}
//東西紅亮 黃滅 綠滅
//南北紅滅 黃閃 綠滅
if(bz==3)
{
hong=0;huang=1;lv=1;
if(jishu1<10){hong1=1; huang1=0;lv1=1;}
if(jishu1>10){hong1=1; huang1=1;lv1=1;}
if(t1==0){bz=0; t1=time1; }
}
}
}
}
//定時器0中斷服務(wù)函數(shù)用于倒計時變量減去1--到達1s后倒計時減去1
void Time0() interrupt 1
{
//重裝初值50ms;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
//時間緩沖+1;
jishu1=jishu1+1;
if(jishu1>19)
{jishu1=0;if(t1>0)t1=t1-1;}
}
|
-
-
交通燈倒計時.rar
2020-11-3 08:29 上傳
點擊文件名下載附件
20.55 KB, 下載次數(shù): 11
|