|
功能介绍:十字路口的交通灯,对向方向两两轮流放行,并通过数码管显示倒计时
特点:不使用锁存器控制数码管,通过对P3口发送16进制数值对其整体控制,但是共阴数码管用单片机直驱时亮度并不高
主要硬件介绍:STC89C52RC单片机,晶振11.0592MHz
/* 函数定义 */
void delay(uint z); //毫秒级延时函数
void EW_Straight(void); //东西直行函数
void EW_LeftTurn(void); //东西左转函数
void SN_Straight(void); //南北直行函数
void SN_LeftTurn(void); //南北左转函数
void EW_YellowBling(void); //东西黄灯函数
void SN_YellowBling(void); //南北黄灯函数
void EWSN_YellowBling(void); //东西南北黄灯函数
/* 数码管段选表 */
uchar code Digitron_Data[] = {
0x6F, //"0"
0x0A, //"1"
0xF6, //"2"
0xCE, //"3"
0x9B, //"4"
0xCD, //"5"
0xED, //"6"
0x0E, //"7"
0xEF, //"8"
0xCF, //"9"
};
部分代码预览2:
for(t=31;t>0;t--) //东西直行 31s
{
EW_Straight(); //东西直行函数
de= t / 10; //求模
un = t % 10; //求余
for (i = 100; i > 0; i--)
{ //数码管动态循环显示 每次10ms共100次
P1 = Digitron_Data[de];
P3 = 0x04;
delay(5); //数码管十位显示
P1 = Digitron_Data[un];
P3 = 0x08;
delay(5); //数码管十位显示
}
}
部分代码预览3:
for(t=3;t>0;t--) //东西黄灯 3s
{
P1 = Digitron_Data[t];
P3 = 0x08; //数码管倒计时显示
EW_YellowBling(); //东西黄灯函数
delay(1000); //每次循环延时一秒钟
}
Keil工程及代码:
Traffic Light原理图及PCB图.7z
(782.8 KB, 下载次数: 14)
|
评分
-
查看全部评分
|