《单片机》课程设计实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
物理与机电工程学院课程设计报告
课程名称:单片机课程设计
系部:物理与机电工程学院
专业班级:09 电子信息工程(1)班
学生姓名:
指导教师:
完成时间:
报告成绩:
评阅意见:
评阅教师日期
题目:交通灯设计
一、设计任务与要求
1、设计任务:十字路口红绿交通灯
北
西
东
南
利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用红、绿、黄发光二极管作信号灯。如图上图所示。设东西向为主干道,南北为支干道。
2、设计基本要求:
(1)车辆通行繁忙的十字交叉路口,设计一交通灯控制器,设东西方向通行时间为40秒,当剩余3秒时黄灯亮,南北方向通行时间为25秒,当剩余3秒时黄灯亮。
(2)东西、南北方向各用三个(绿、黄、红)LED表示,并用数码管显示
东西、南北方向的剩余时间。
(3)可利用按键修改时间参数。
二、方案设计与论证
本次实训单片机交通灯控制要求用单片机编写程序,并且自制电路板,最后要能实现东西方向通行时间为40秒,当剩余时间为3秒时黄灯亮,南北方向通行时间为25秒,当剩余3秒时黄灯亮的基本功能。东西方向通行,可用绿色的LED显示通行信号,同时南北方向须禁行,可用红色的LED显示禁行信号,并且用数码管显示禁行倒计时的数字显示,当倒计时为3秒时开始亮黄灯,作为警示信号,同时设计可以随时修改时间参数的按键。
方案一、STC89C52+点阵式LED显示
采用独立式的稳压电源。显示采用点阵式LED显示。这种方案实现复杂,需完成大量的软件工作,但同时其功能强大,可以显示各种英文字符,汉字,图形等。
方案二、STC89C52+七段共阳极数码管
电源供电可采用手机充电器提供的电源,不用的手机充电器可以改装成电源,其输出的电压稳定可靠,足以供给单片机及外围电路的正常工作,如果需要设计比较复杂的电路,或需多种电源,就需要其他电源电路的支持。显示采用LED灯和数码管。用89C52的P2口直接控制交通灯,此方案硬件实现简单,软件实现也比较容易,它极大能力的节省了89C52I/O口的使用,为系统功能扩展提供了必要的条件。采用这样的设计成本较低,易实现,系统可靠性高。
综上所述:方案二优势明显,采用方案二。
三、硬件电路设计
3.1硬件框图:
如图所示
3.2元件介绍
1、STC89C52芯片
(1)、功能特性
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash STC89C52。
STC89C52
主要功能特性:
○1与MCS-51单片机兼容
○28K字节在系统可编程Flash存储器1000次插写周期
○3全静态操作:0Hz-33Hz三级加密程序存储器
○432个可编程I/O口线
○5三个16为位定时器、计数器八个中断源全双工UART串行通道、低功耗空闲和掉电模式
○6掉电后中断可唤醒
○7看门狗定时器
○8双数据指针
○9掉电标识符
(2)管脚说明
P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8 个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可
以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0T2(定
时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的
捕捉/重载触发信号和方向控制)P1.5MOSI(在线系统编程用)
P1.6MISO(在线系统编程用)P1.7SCK(在线系统编程用)
P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱
动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可
以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8 位地址字节和一些控制信号。
P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能
P3.0RXD(串行输入口) P3.1TXD(串行输出口) P3.2INTO(外中断0)
P3.3INT1(外中断1) P3.4TO(定时/计数器0) P3.5T1(定时/计数器1)
P3.6WR(外部数据存储器写选通) P3.7RD(外部数据存储器读选通) 此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。
RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电
平将是单片机复位。
ALE/PROG——当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。
PSEN——程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当