交通信号系统是保障交通安全高效的重要设施。51单片机价格低廉、体积小、低功耗、抗干扰性好等优点,适用于交通信号系统中,本实验利用51单片机IO口的开关量的输入输出功能及内部CPU运算功能,设计一个简易的交通信号灯系统,要求如下:
包括:建立工程、资源、样式、库等具体操作说明。
Proteus建立一个新建一个项目,分别添加AT89C51,分别两个黄色红色绿色LED,两个button按键,若干个vcc和gnd。
包括:本系统包括的软硬件功能模块及相互关系,应用图表示并有简要说明
6个LED都通过共阳连接AT89C51 因此io为低电平的时候 LED灯点亮。
K1,K2两个按键分别连接AT89C51 P1.0 P1.1两个IO口,当按键按下时,IO口为低电平,松开则为高电平。
东西向的红黄绿LED灯分别对接AT89C51 p2.0,p2.1,p2.2三个io口
南北向的红黄绿LED灯分别对接 AT89C51P2.3,P2.4,P2.5 三个io口
包括:每个模块的功能说明及详细代码,代码的关键部分应的注解。
为实现三种工作模式 设定了如下几个函数
- #include "reg52.h"
- sbit LED0=P2^0;
- sbit LED1=P2^1;
- sbit LED2=P2^2;
- sbit LED3=P2^3;
- sbit LED4=P2^4;
- sbit LED5=P2^5;
- sbit K1=P1^0;
- sbit K2=P1^1;
-
- void delay(unsigned int time)
- {
- unsigned int j = 0;
- for(;time>0;time--)
- for(j=0;j<125;j++);
-
- }
-
- void Normal()//正常模式
- {
- LED0=1; //东西红灯熄灭
- LED2=0;//东西绿灯
- LED3=0;//南北红灯
- delay(5000);
- LED2=~LED2;//东西绿灯熄灭
-
- LED1=0;
- delay(500);
- LED1=1;
- delay(500);
- LED1=0;
- delay(500); //东西黄灯闪烁
- LED1=1;
- delay(500);
- LED1=0;
- delay(500);
- LED1=1;
从keil5中输出了一个Hex文件,在proteus中的AT89C51中打开该Hex文件。