基于单片机控制的交通灯设计含完整C程序 原理图
电子与信息工程学院
课 程 设 计 报 告
(2010— 2011学年 第 2 学期)
课程名称: 单片机课程设计
班 级:
学 号:
姓 名:
指导教师:
2011年 03月
目的
实习是在教师指导下,学生运用所学理论知识及实验方法解决实际问题的一种实践活动,通过这些活动培养学生分析问题和解决问题的能力。具体表现在构造一个控制系统框架的能力;检索和阅读文献资料的能力;综合运用所学专业知识使之对所设计系统具有独立调试的能力和故障处理的能力;绘图能力;计算机运用能力;逻辑思维能力与形象思维能力;文字及口头表达的能力;撰写实习报告的能力
内容和要求
任务1:交通灯
(1)基本要求:以单片机为核心设计一个完整的交通灯模拟系统。所谓模拟就是以每组有绿,红,黄色3支共两组发光二极管表示交通信号灯,数码管2只共两组以递减的方式表示各色信号灯的时间。
在双干线路口上,交通信号灯的变化是定时的。假定:
⑴. 放行线,绿灯亮放行25秒,黄灯亮警告5秒,然后红灯亮禁止。
⑵. 禁止线,红灯亮禁止30 秒,然后绿灯亮放行。
使两条路线交替地成为放行线和禁止线,就可以实现定时交通控制。假定以P1口线接6支发光二极管(即交通信号灯),因为电路中有反相器的关系,所以口线输出高电平则“信号灯”熄灭,口线输出低电平则“信号灯“亮。
(2)进阶要求一:在基本要求的基础上,要求红绿灯时间可通过按键设置,例如红灯60秒,绿灯52秒,黄灯8秒。提示:时间设置一定是要遵循以下规律:红灯时间=绿灯时间+黄灯时间;
任务2:秒表
要求:至少包括4个功能:时间清零;启动计时;暂停计时;继续计时;计时最小单位0.1 秒,最大计时时间999.9秒
3.过程(如实际程序开发、电子制作,详细说明有关原理、开发过程、调试过程、结果)
一.交通灯
芯片介绍
SST89E58RD:是8位FLASH FLEX51系列单片机。FLASH FLEX51是在高级FLASH CMOS半导体工艺下设计和生产出来的单片机产品之一。单片机有40K片内FLASH EEPROM程序存储器,它利用SST的超级FLASH专利技术,这些都是SST的领先技术。超级FLASH存储器被分为两个独立的程序存储器块,基本FLASH Block0占用32K字节片内程序存储空间,二级FLASH Block1占用8K字节的片内程序存储器空间;8K字节的二级FLASH块能被映射到32K字节低地址空间它也能从程序计数器中被隐藏掉而用做一个独立的类似EEPROM的数据存储器。其具有以下特点:兼容80C51系列,内置超级FLASH存储器的单片机;工作电压Vdd=4.5~5.5;1K*8的内部RAM(256Bytes+768Bytes,可以放心使用C语言编程)等。
8155:Intel8155是可编程RAM/IO芯片,为40脚双列直插式封装。有256*8位静态RAM,
2个8位和1个6位可编程并行I/O接口,以及1个14位可编程定时器/计数器。可直
与MCS-51单片机相接,是MCS-51单片机应用系统中应用最多的芯片之一
其内部结构图和引脚图如图1所示
图1
1.数码管显示模块
在交通灯系统中,四位数码管是用来显示交通灯倒计时时间的,一路显示放行线时间,一路显示禁止线时间
四位数码管的电路如图2:
图2
四位八段数码管,属共阴逆序,高电平有效,所以不带小数点的0-f的段码如下:
{0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH};
PROTEUS 仿真图如图3:
图3四位数码管的显示使用了并行扩展芯片8155,8155与单片机SST89E58RD的接口如图4
图4
8155的高8位数据地址线与单片机的P0口相连,CE与AD15相连,IO/M与AD8相连
数码管的八位段选与PB口相连,四位位选与PA口相连。
用C语言初始化8155和显示程序如下:
#define PA8155 XBYTE[0x7101]
#define PB8155 XBYTE[0x7102]
#define COM8155 XBYTE[0x7100]
COM8155=0x03;
2.发光二极管模块
用两组分别为红黄绿共六盏LED灯来模拟实际的交通信号灯,时间上遵循红灯时间等
于绿灯时间加黄灯时间。LED灯是低电平有效,硬件电路图如图5所示:
图5
LED的控制是在定时器0的中断中实现的,每一秒时间到后,会根据实时时间(current_time)与红黄绿时间比较,来确定相应的两盏灯亮,程序如下所示:
if(current_