单片机课程设计报告书
- 格式:doc
- 大小:340.00 KB
- 文档页数:19
课程设计报告(2010— 2011学年第 2 学期)
课程名称:单片机课程设计
班级:
学号:
姓名:
指导教师:
2011年 03月
三、过程(如实际程序开发、电子制作,详细说明有关原理、开发过程、调试过程、结果)
交通灯:
(一)、功能描述:
这是一个交通灯模拟系统,每组有绿,红,黄色3支共两组发光二极管表示交通信
号灯,数码管2只共两组以递减的方式表示各色信号灯的时间。在双干线路口上,交通
信号灯的变化是定时的。初始时间设定为红灯30秒,绿灯25秒,黄灯5秒,在此基础
上可通过按键修改红绿灯的时间。
(二)、硬件部分:
电源模块:
1、模块功能简介:此模块为整个系统提供稳定的5V电压。
2、电路图:
3、所用芯片介绍:
LM2576系列开关稳压集成电路是线性三端稳压器件的替代品,它具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力,从而为MCU的稳定、可靠工作提供了强有力的保证。
主要特性:最大输出电流:3A;最高输入电压:LM2576为40V,LM2576HV为60V;输出电压:3.3V、5V、12V、15V和ADJ(可调)等可选;振动频率:52kHz;转换效率:75%~88%(不同电压输出时的效率不同)。
单片机最小系统模块:
1、模块功能介绍:本系统包括时钟电路和复位电路。本课程设计采用的单片机是SST89E58,晶振采用12MHz。
2、电路图:
以上电路包括时钟电路和复位电路。
时钟电路是由振荡电路和分频电路组成,其中振荡电路是由反相器以及并联外接的石英晶体和电容构成,用于产生振荡脉冲;分频电路则用于把振荡脉冲分频,以得到所需要的时钟信号。晶振采用12MHz。
复位电路是采用的按键电平复位,通过使复位端经电阻与VCC电源接通而实现的。
3、所用芯片介绍:
SST89E58是通用的8位系列兼容微处理器,工作电压在4.5V和5.5V之间;部RAM 共有1KB;4个8位并行双向I/O口(32个I/O引脚);有4个中断源(2个定时器中断和2个外部中断);采用40引脚双列直插式的封装形式。
8段数码管显示模块:
1、模块功能介绍:此模块用来显示实验中药显示的时间等数字。这是由条形发光二极管组成“8”字形的LED显示器。发光响应快,亮度强,高频特性好。
2、电路图:
为了给发光二极管加驱动电压,上图中公共引脚的接法为共阳极接法,把发光二极管的阳极连在一起作为阳极公共引脚,这样阴极引脚上加低电平时即可导通点亮。
3、显示原理介绍:
本次课程设计中为并排使用的4位数码管,采用动态显示方式。显示时通过位控信号采用扫描的方法逐位地循环点亮各位数码管。虽然在任一时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果一样。
动态显示需要为各位提供段控和位控,把段码表预先存放在存储器中,使用时通过查表就可以得到段码。而通过并行口输出的相互独立的位码则是起选通作用的,用于选择显示位。因此,需要用到接口芯片的两个数据口。本设计中所用的是8155,下面介绍。
4、所用芯片介绍:
见下页
8155:
芯片引脚介绍:
CE:芯片片选端。
/RD、/WR:读写信号。
ALE:地址锁存信号。
IO/E:为IO/RAM选择线,低电平选择RAM,高电平选择I/O。
PA0~PA7为端口A。PB0~PB7为端口B。PC0~PC7为端口C。
在设计中,使用PB口为位码输出口,以PB7~PB4输出位控线。PA口为段码输出口,加接74HC244进行段控输出驱动。因为8155只能输出显示段码而不具有控制功能,所以动态显示要靠程序实现。
LED灯模块:
1、模块功能介绍:此模块用来作为模拟交通灯的红黄绿灯的闪烁。
2、电路图:
3、显示原理介绍:
本设计中使用两组发光二极管,采用共阳极接法,阳极公共引脚接+5V,阴极引脚上加低电平时即可导通点亮。
按键模块:
1、模块功能介绍:此模块用来作为开关选择。
2、电路图:
使用时,用跳线将所需引脚与相应开关相连接。
(三)、软件部分:
1、设计思想:
此次设计是在基本功能上修改的,实现了可修改红黄绿灯时间的功能。
首先,基本功能是两组发光二极管表示交通灯信号,4个数码管分2组以递减的方式表示各色信号灯的时间。然后,在此基础之上,要求红绿灯时间可通过按键设置,则需要用到相应存储单元来控制时间。
2、流程图:
交通灯的基本功能大致可分为两部分,一部分为信号灯的控制,另一部分为数码管时间的显示,这两部分都是通过相应的关系控制的。可分为4种情况:(1)、A组红灯亮,B组绿灯亮;(2)、A组红灯继续亮,B组黄灯亮;(3)、B组红灯亮,A组绿灯亮;(4)、B组红灯继续亮,A组黄灯亮。
流程图如下:
(四)、程序的调试与运行:
秒表程序设计过程中,初步完成时遇到2个bug:
1、未开始时,按两下暂停键,秒表也会开始计数;后来加了开始键计数单元,来判断有没有开始,若没有开始,暂停键不作用。
2、暂停后,按开始键也会继续;后来加了暂停键计数单元来判断暂停键是否按过,若已按过,开始键则不作用。
总电路图:
这是总的PCB图,其中电源模块没有画出来。