当前位置:文档之家› 单片机交通灯实验报告

单片机交通灯实验报告

三、
本实验主要用到51单片机左时中断控制L E D的跳转和数码管的倒计时,同时用查询 法来检测按键,并做岀相应的状态切换。
四、
LED,7段数码管,AT89C52单片机,导线
五、
(1)通过Proteus做仿真图;
仿真图如下:
2*创rzA^o
ISAA1.
RP1
92£DJf.
ei^iyc^r::聲蠶翠一一防
^h4-8J4-
RF3g
ranz P3.VT>1 cazomj »3ywn
runw rcjaAO:mviuafqwjhrvjr*j»fVMXMmv/A&i
(2 )用Keil软件编写程序调试;
代”
交通灯程序:/***************** * *"(弋码说 明************程序实现简单的十字交通路口指示灯功能。
sbit ngreen=PlA4;
sbit ered=PlA5;〃东西方向的红灯
sbit eyellow=PlA6;
sbit egreen=PlA7;
sbit jian=P3A2;
uchar time,num=O,nn=O,aa= 1 ,flag2=0;
bit flag=O,flagl=O;
uint number,temp 1 ,temp2,sum2=BB,sum 1 =AA;
TL0=(65536-50000)%256;
TRO=1;
EA=1;
ETO=1;
SCON = 0x50;
Tபைடு நூலகம்1 = OxFD;
TL1 =TH1;
PCON = 0x00;
// ES = 1;
TRI = 1;
)
void display(uchar num)
〃数码管现实函数
#define AA 15
#define BB 20〃设初值
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7(1,0x07,
0x7f,0x6f}; sbit add二PIT; sbit act=PlA0: sbit nred=PlA2; sbit nyellow=PlA3;
void delay(uint z)〃延时函数
{
uint x,y;
for(x=z;x>0;x—) for(y=l 10;y>0;y—);
}
void init()〃初始化函数
{
templ=AA;
temp2=BB;
TMODI=Ox21;//设置定时器1为工作方式2
THO=(65536-5OOOO)/256;
一、
通过仿真和实物搭建相结合,完成交义口交通灯的设计,并掌握C51编程的 操作。
二、
模拟控制就是以红、绿、黄色4组6个发光二极管表示交通信号灯。每组有两位数码倒 计时显示。
(1)正常情况下A、B道轮流放行,A道放行15秒钟,B道放行20秒
(2)一道有车而另一道无车时,使有车车道放行
(3)有紧急车辆通过时,A、B道均为红灯,每个口都有2组2位数码管,共6个灯
按键act是功能选择键,按第一下后,再按add键实现倒计时增加, 最后一次增加的值作为倒计•时数的值,
act按第二下后,再按Jdd键实现交通灯方向变换,act按第三下倒计 时继续。
*/
#includeHreg51.hM
#define uchar unsigned char
#define uint unsigned int
相关主题