《基于89C51单片机交通灯课程设计要点.pdf》由会员分享,可在线阅读,更多相关《基于89C51单片机交通灯课程设计要点.pdf(14页珍藏版)》请在三一文库上搜索。
1、华北水利水电学院 基于 C51 单片机 交通灯课程设计实验报告 姓名:田坤 班级:125 专业:电子信息科学与技术 指导老师:辛艳辉刘明堂 2013 年 1 月 16 日 摘要 近年来,随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术 日益更新。 在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用, 正在不断的应用到实际生活中,并且根据具体硬件结构软硬件结合,加以完善。 十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井 然秩序呢?靠的就是交通信号灯的自动指挥系统。交通信号灯控制方式很多。本系统采用 MCS-51系列单片机
2、STC89C51为中心器件来设计交通灯控制器,实现了通过信号灯对路面状况 的智能控制。 从一定程度上解决了交通路口堵塞、车辆停车等待时间不合理、急车强通等问题。 系统具有结构简单、可靠性高、成本低、实时性好、安装维护方便等优点,有广泛的应用前景。 关键词: 交通灯单片机数码管 一 . 总体设计思路 1.1 设计目的及思路 设计目的 了解交通灯管理的基本工作原理,熟练掌握STC89C51的工作原理和应用编程,熟悉 STC89C51单片机并行接口的各种工作方式和应用,并了解计数器/ 定时器的工作方式和应用编 程外部中断的方法,掌握多位LED显示问题的解决。 设计思路 (1)分析目前交通路口的基本控
3、制技术,提出自己的交通控制的初步方案。 (2)确定系统交通控制的总体设计,增加了倒计时显示提示。 (3)进行显示电路。 (4)进行软件系统的设计。 1.2 实际交通灯显示时序及状态转换的理论分析 图 1 所示为红绿灯转换的状态图。 S1 S2 图 1 红绿灯状态转换图 表 1 十字路口指示灯燃亮方案 说明: (1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯,此道车辆通 过,行人禁止通行。时间为60 秒。 (2)黄灯闪烁5 秒,警示车辆和行人红、绿灯的状态即将切换。 (3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过,行人通行。 时间为 80 秒。
4、东西方向车流大通行时间长。 (4) 这样如上表的时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安全畅通的通行。 (5)此表可根据车流量动态设定红绿灯初始值。 共四种状态,分别设定为S1、S2、S3、S4,交通灯以这四种状态为一个周期,循环执行如下 图所示: 程序就是在上述四种状态下循环转化的。一个周期四个状态,在正常模式下共花费1 分 10 秒。 状态S1 S2 S3 S4 时间30s 5s 30s 5s 东西道红灯亮红灯亮绿灯亮黄灯亮 南北道绿灯亮黄灯亮红灯亮红灯亮 图 2 交通灯状态循环图 S4 S3 二. 具体设计方案 2.1 方案要求: 本设计要求与交通信号实际控制一致,采用LE
5、D模拟信号灯,信号灯分东西、南北二组, 分别有红、黄、绿三色。其工作状态由程序控制,启动、停止按钮分别控制信号灯的启动与停 止。白天 / 黑夜转换开关可对信号进行控制转换。并且要求能用两位数码管(或者一位数码管) 来显示红灯或者绿灯等待的时间,在黄灯的时候数码管不显示。信号灯的控制要求如下: 假设东西方向交通繁忙为主干道,车流量为南北交通的两倍。因此东西方向的绿灯通行 时间为是南北方向上的两倍。 开始时东西方向绿灯先亮,南北为红灯。 按下启动按钮开始工作,按下停止按钮,停止工作。白天/ 黑夜转换开关闭合时为黑夜 工作状态,这时只有黄灯来回闪烁,断开为白天工作状态。白天工作状态要求:东西方向绿灯
6、 亮 40s,然后黄灯闪三下(1 下/ 秒,共 5 秒) ,然后红灯亮20s,而南北方向为红灯亮40s 然后 绿灯亮 20s,然后黄灯也闪三下;如此周期循环下去。 示意图 2.2 方案分析 根据十字路口交通灯的要求,可将本系统分为三个模块,第一模块是控制模块,主要负责 整个系统的控制和运算,从而使各模块正常工作,第二个模块式显示模块包括LED灯和数码管; 第三是电源模块,给各模块提供电源,让各模块工作。其系统设计结构如图: 2.3 89C51 单片机引脚功能说明 89C51 外部引脚图:(可以直接拷入ASM 程序文件中,作注释使用,十分方便) P1.0 1 40Vcc P1.1 2 39P0.
7、0 P1.2 3 38P0.1 P1.3 4 37P0.2 P1.4 5 36P0.3 P1.5 6 35P0.4 P1.6 7 34P0.5 P1.7 8 33P0.6 RST/Vpd 9 32P0.7 RXD P3.0 10 31-EA/Vpp (内 1/外 0 程序地址选择) TXD P3.1 11 30ALE/-P (地址锁存输出) -INT0 P3.2 12 29-PSEN (外部程序读选通输出) -INT1 P3.3 13 28P2.7 T0 P3.4 14 27P2.6 T1 P3.5 15 26P2.5 -WR P3.6 16 25P2.4 -RD P3.7 17 24P2.3
8、 X2 18 23P2.2 X1 19 22P2.1 GND 20 21P2.0 图 3. 系统设计结构图 引脚说明: 电源引脚 Vcc(40 脚):典型值5V。 Vss(20 脚):接低电平。 外部晶振 X1、 X2 分别与晶体两端相连接。当采用外部时钟信号时,X2 接振荡信号,X1 接地 输入输出口引脚: P0 口: I/O 双向口。作输入口时,应先软件置“ 1” 。 P1 口: I/O 双向口。作输入口时,应先软件置“ 1” 。 P2 口: I/O 双向口。作输入口时,应先软件置“ 1” 。 P3 口: I/O 双向口。作输入口时,应先软件置“ 1” 。 控制引脚: RST/Vpd 、A
9、LE/-PROG 、-PSEN、 -EA/Vpp 组成了 MSC-51 的控制总线。 RST/Vpd (9 脚):复位信号输入端(高电平有效)。 第二功能:加 +5V 备用电源,可以实现掉电保护RAM 信息不丢失。 ALE/-PROG(30 脚):地址锁存信号输出端。 第二功能:编程脉冲输入。 -PSEN(29 脚):外部程序存储器读选通信号。 -EA/Vpp(31 脚):外部程序存储器使能端。 第二功能:编程电压输入端(+21V )。 图 6. 单片机 8051 的内部结构 2.4 单片机最小系统 时钟电路 图 7. 时钟电路 XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,
10、使用外部振荡器时,外部 振荡信号应直接加到XTAL1,而 XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如 晶振为 12MHz ,时钟频率就为6MHz 。晶振的频率可以在1MHz-24MHz内选择。 电容取 30PF左右。 系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个 用于构成振荡器的高增益反相放大器。引脚 XTAL1和 XTAL2分别是此放大器的输入端和输出端。 这个放大器与作为反馈元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及 电容 C1和 C2构成并联谐振电路,接在放大器的反馈回路中。对外接电容的值虽然没有严格的 要求,
11、但电容的大小会影响震荡器频率的高低、震荡器的稳定性、起振的快速性和温度的稳定 性。因此,此系统电路的晶体振荡器的值为12MHz ,电容应尽可能的选择陶瓷电容,电容值约 为 22F。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少 寄生电容,更好地保证震荡器稳定和可靠地工作。 复位电路 在振荡器运行时,有两个机器周期 (24 个振荡周期) 以上的高电平出现在此引腿时,将使 单片机复位,只要这个脚保持高电平,51 芯片便循环复位。复位后P0 P3口均置 1 引脚表现 为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯 片为 ROM 的 00
12、H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引 脚 RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个 机器周期的S5P2, 由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式, 此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时, C取 22F,Rs约为 200 , Rk约为 1K。复位操作不会对内部RAM 有所影响。 常用的复位电路如下图所示: 图 8. 复位电路图 显示电路 显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单 片机应用系统中常用的显示器有:发光二极管LED显示器
13、、液晶LCD显示器、 CRT显示器等。 LED数码管是现在最常用的显示器之一。发光二极管(LED )由特殊的半导体材料砷化镓、磷砷 化镓等制成, 可以单独使用,也可以组装成分段式或点阵式LED显示器件 (半导体显示器) 。分 段式显示器( LED数码管)由7 条线段围成8 字型,每一段包含一个发光二极管。外加正向电 压时二极管导通,发出清晰的光。 只要按规律控制各发光段亮、灭,就可以显示各种字形或号。 LED数码管有共阳、共阴之分。本系统采用的是两位共阴极数码管 三电路图和程序 图 10. 交通灯电路图 具体程序: #include #define uchar unsigned char #d
14、efine uint unsigned int uint num,shi,ge; sbit red=P10; sbit yel=P11; sbit gre=P12; void delay() uint a; for(a=500;a0;a-); uchar code arry_duan=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; void initial() EA=1; ET0=1; TMOD=0x01; TH0=0x4c; TL0=0xd0; void display(int Y) shi=Y/10; ge=Y%10; TR0=1; w
15、hile(shi|ge!=0) P2=0xfe; P3=arry_duanshi; delay(); P2=0xfd; P3= arry_duange; delay(); TR0=0; void timer0() interrupt 1 TH0=0x4c; TL0=0xd0; num+; if(num=20) num=0; ge-; if(ge=-1) ge=9; shi-; main() initial(); while(1) red=0; yel=0; gre=1; display(40); red=0; yel=1; gre=0; display(3); red=1; yel=0; gre=0; display(20); red=0; yel=1; gre=0; display(3); 程序编译和 .hex 文件创建截图 仿真截图 四实验心得体会 通过本次试验我复习了单片机程序的编写,电路的连接以及程序的调试仿真, 更加深刻的感受到了单片机的强大功能,通过实验也加强了动手操作的能力,和同 学一起更加懂得了相互合作的重要性,以后我会更加努力的把本专业知识学好学 精,争取为国家做到属于自己应做的奉献。 五课程设计参考资料 1 电子系统综合设计郭勇北京大学出版社 2 数字电子技术基础阎石高教出版社 3 模拟电子技术基础童诗白高教出版社 4. 单片机原理及应用张毅刚高等教育出版社
链接地址:https://www.31doc.com/p-5207587.html