51单片机控制的交通灯系统实验报告.pdf

上传人:tbuqq 文档编号:5244555 上传时间:2020-03-02 格式:PDF 页数:14 大小:259.99KB
返回 下载 相关 举报
51单片机控制的交通灯系统实验报告.pdf_第1页
第1页 / 共14页
51单片机控制的交通灯系统实验报告.pdf_第2页
第2页 / 共14页
51单片机控制的交通灯系统实验报告.pdf_第3页
第3页 / 共14页
51单片机控制的交通灯系统实验报告.pdf_第4页
第4页 / 共14页
51单片机控制的交通灯系统实验报告.pdf_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《51单片机控制的交通灯系统实验报告.pdf》由会员分享,可在线阅读,更多相关《51单片机控制的交通灯系统实验报告.pdf(14页珍藏版)》请在三一文库上搜索。

1、系统实验报告 基于51单片机的交通灯设计 专业:XX 学 生 姓 名:xx XX 学号: 指 导 教 师:wwwwwwwwwww 2000年x月x日 目录 1 设计任务和性能指标 1 1.1设计任务 1 1.2性能指标 1 2 设计方案 2 2.1任务分析 2 2.2方案设计 2 3 系统硬件设计 3 3.1单片机的最小系统 3 3.2电源电路 4 3.3数码管显示时间电路设计4 3.4信号灯控制电路设计 5 4 系统软件设计 5 4.1主程序设计 5 5 调试及性能分析 6 5.1 调试分析 6 5.1.1 软件调试 6 5.1.2 硬件调试 6 5.1.3 系统功能调试 6 6 心得体会

2、6 参考文献 8 附录1 系统原理图 9 附录3程序清单 10 附录3元器件清单 .14 1 设计任务和性能指标 1.1 设计任务 利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道 和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红 灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线 外。用红、绿、黄发光二极管作信号灯。如图上图所示。设东西向为主干道, 南北为支干道。 1.2 性能指标 1. 状态1:仅亮灯,数码管不工作。 按下键 4,红/黄/绿三色灯交替亮: 红(20秒黄绿(20秒 黄 红 2. 状态2:灯和数码管相结合,模拟十字路口的

3、交通灯 在以上功能的基础上数码管倒计时显示时间。 南 北 东 西 2 设计方案 2.1 任务分析 模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯 的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字 路口的车辆及行人交通,计时牌显示路口通行转换剩余时间等 2.2 方案设计 根据设计的要求可知,系统的硬件原理框图如下图所示。 单 片 机 键盘 LED 显示 三色指示灯 系统硬件框图 单片机选用 AT89S52,它与 8051系列单片机全兼容,但其内部带有4KB的FLASH RO M,设计时无需外接程序存储器,为设计和调试带来极大的方便。南北向和东西向各采

4、用2 个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系 统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的IO口不够用 时,可以考虑扩展8255或8155满足系统的要求。 2. 软件方案 根据设计要求,程序框图如图1所示。软件可由汇编语言完成,也可由C语言完成。软 件设计可以分为以下几个功能模块: 主程序:初始化及键盘监控。 计时程序模块:为定时器的中断服务子程序,完成0.1秒 #define uchar unsigned char #define uint unsigned int sbit key1=P10 。 sbit key2=P11 。

5、 sbit key3=P12 。 sbit key4=P13 。 sbit smgwe1=P04 。 sbit smgwe2=P05 。 sbit smgwe3=P06 。 sbit smgwe4=P07 。 sbit smgdot=P27 。 sbit south_green=P20。 sbit south_red=P21。 sbit south_yellow=P22 。 sbit east_green=P23。 sbit east_red=P24。 sbit east_yellow=P25 。 sbit num_a=P00。 sbit num_b=P01 。 sbit num_c=P02。

6、 sbit num_d=P03 。 uchar count。 uchar type=1。 uchar num。 uchar south_dispnum=10,east_dispnum=5 。 void delay_ms(uint z uchar x,y。 for(x=0 。x for(y=0 。y。 void timer0_init( TMOD=0x01 。 TH0=(65536-50000/256 。 TL0=(65536-50000%256 。 ET0=1。 EA=1。 TR0=1。 void display(uchar south_dispnum,uchar east_dispnum u

7、char south_dispnum1,south_dispnum2 。 uchar east_dispnum1,east_dispnum2。 south_dispnum1=south_dispnum/10 。 south_dispnum2=south_dispnum%10 。 east_dispnum1=east_dispnum/10。 east_dispnum2=east_dispnum%10。 smgwe1=1。 smgwe2=0。 smgwe3=0。 smgwe4=0。 num_d=south_dispnum1/8 。 num_c=south_dispnum1%8/4 。 num_b=

8、south_dispnum1%4/2 。 num_a=south_dispnum1%2 。 delay_ms(1。 smgwe1=0。 smgwe2=1。 smgwe3=0。 smgwe4=0。 num_d=south_dispnum2/8 。 num_c=south_dispnum2%8/4 。 num_b=south_dispnum2%4/2 。 num_a=south_dispnum2%2 。 delay_ms(1。 smgwe1=0。 smgwe2=0。 smgwe3=1。 smgwe4=0。 num_d=east_dispnum1/8。 num_c=east_dispnum1%8/4

9、。 num_b=east_dispnum1%4/2。 num_a=east_dispnum1%2。 delay_ms(1。 smgwe1=0。 smgwe2=0。 smgwe3=0。 smgwe4=1。 num_d=east_dispnum2/8。 num_c=east_dispnum2%8/4。 num_b=east_dispnum2%4/2。 num_a=east_dispnum2%2。 delay_ms(1。 void traffic_light( switch(type case 1: south_red=1。 south_green=0。 south_yellow=0 。 east_

10、red=0。 east_green=1。 east_yellow=0。 display(south_dispnum,east_dispnum 。 if(east_dispnum=0 east_dispnum=5。 south_dispnum=5。 type=2。 break。 case 2:south_red=1。 south_green=0。 / south_yellow=0 。 east_red=0。 east_green=0。 / east_yellow=0 。 display(south_dispnum,east_dispnum 。 if(east_dispnum=0 south_di

11、spnum=5。 east_dispnum=10。 type=3。 break。 case 3:south_red=0。 south_green=1。 south_yellow=0 。 east_red=1。 east_green=0。 east_yellow=0 。 display(south_dispnum,east_dispnum 。 if(south_dispnum=0 south_dispnum=5。 east_dispnum=5。 type=4。 break。 case 4:south_red=0。 south_green=0。 / south_yellow=0 。 east_re

12、d=1。 east_green=0。 / east_yellow=0 。 display(south_dispnum,east_dispnum 。 if(east_dispnum=0 south_dispnum=10。 east_dispnum=5。 type=1。 break。 void main( timer0_init( 。 while(1 traffic_light( 。 void timer0_isr( interrupt 1 TH0=(65536-50000/256 。 TL0=(65536-50000%256 。 count+。 if(count=5 if(type=2 east

13、_yellow=!east_yellow 。 if(type=4 south_yellow=!south_yellow 。 if(count=20 count=0。 south_dispnum-。 east_dispnum-。 附录1 元器件清单 数量 器件类型原理图符号封装 Used Part Type Designator Footprint Description = = = = = 排阻 3 10K排阻 RP1 RP3 SIP9 RP4 = = = = = 电阻 1 0.1u C9 RAD0.2 2 20p C5 C6 RAD0.2 1 22u C12 RB.2/.4 1 470u C7 RB.2/.4 = = = = = 晶振 1 11.0592M XTAL1 XTAL1 = = = = = 三极管 10 9013 Q1 Q2 Q3 TO-92C NPN Transistor Q4 Q5 Q6 Q7 Q8 Q9 Q10 = = = = = 集成块 1 74LS47 U2 DIP16 1 AT89S51 U1 DIP40 1 LM7805 U5 TO-220S = = = = = 按键 4 数码管 DS1 DS2 LED08 DS3 DS4 = = = = = 1 整流桥 D1 BRIDGE_C = = = = = 9V变压器

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1