1 / 10
文档名称:

单片机交通灯实验报告.doc

格式:doc   大小:28KB   页数:10页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

单片机交通灯实验报告.doc

上传人:hnet653 2021/12/31 文件大小:28 KB

下载得到文件列表

单片机交通灯实验报告.doc

文档介绍

文档介绍:1 / 10
实验目的
通过仿真和实物搭建相结合,完成交叉口交通灯的设计,并掌握C51编程的操作。
二、实验内容及要求
模拟控制就是以红、绿、黄色4组6个发光二极管表示交通信号灯。每组有两位数码倒计时显示。
正常情况下A、B道轮流放行,A道放行15秒钟,B道放行20秒
一道有车而另一道无车时,使有车车道放行
有紧急车辆通过时,A、B道均为红灯,每个口都有2组2位数码管,共6个灯
实验原理
本实验主要用到51单片机定时中断控制LED的跳转和数码管的倒计时,同时用查询法来检测按键,并做出相应的状态切换。
实验仪器、材料
LED,7段数码管,AT89C52单片机,导线
实验过程及原始记录
〔1通过Proteus做仿真图;
仿真图如下:
用Keil软件编写程序调试;
交通灯程序:
/*******************代码说明************
程序实现简单的十字交通路口指示灯功能。
按键act是功能选择键,按第一下后,再按add键实现倒计时增加,最后一次增加的值作为倒计时数的值,
act按第二下后,再按add键实现交通灯方向变换,act按第三下倒计时继续。
*/
#include ""
#define uchar unsigned char
#define uint unsigned int
2 / 10
#define AA 15
#define BB 20 //设初值
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
sbit add=P1^1; //aad键
sbit act=P1^0; //act键
sbit nred=P1^2; //南北方向的红灯
sbit nyellow=P1^3;
sbit ngreen=P1^4;
sbit ered=P1^5; //东西方向的红灯
sbit eyellow=P1^6;
sbit egreen=P1^7;
sbit jian=P3^2;
uchar time,num=0,nn=0,aa=1,flag2=0;
bit flag=0,flag1=0;
uint number,temp1,temp2,sum2=BB,sum1=AA;
void delay<uint z> //延时函数
{
uint x,y;
for<x=z;x>0;x-->
for<y=110;y>0;y-->;
}
void init<> //初始化函数
{
temp1=AA;
temp2=BB;
TMOD|=0x21;//设置定时器1为工作方式2
TH0=<65536-50000>/256;
TL0=<65536-50000>%256;
TR0=1;
EA=1;
ET0=1;
3 / 10
SCON = 0x50;
TH1 = 0xFD;
TL1 = TH1;
PCON = 0x00;
// ES = 1;
TR1 = 1;
}
void display<uchar num>