单片机原理及应用课程设计
第二章
2.1 设计思路
硬件设计方案
本系统中要求设计汽车信号灯控制系统,在驾驶汽车时有左转弯、右转弯、刹车、合紧急开关、停靠五个操作;所以可以用五个开关来模拟这几个操作,当单片机检测到相关操作后,然后判断属于那一类操作,再通过软件来驱动控制相应的信号灯闪烁或长亮。以此来实现对汽车信号灯的控制。当合上左转弯开关后,仪表板左转弯灯、左头灯、左尾灯闪烁;当合上右转弯开关后,仪表板右转弯灯、右头灯、右尾灯闪烁。当刹车开关合上时,左右尾灯长亮;合上停靠开关后,头灯、尾灯以30Hz的频率闪烁;在紧急开关合上后,所有灯都闪烁。还可以同时合上转弯开关和刹车开关,合上刹车开关和紧急开关,以及合上转弯开关、刹车开关和紧急开关。都可以驱动对应的汽车信号灯闪烁或长亮。 2.2 硬件选择及论证
基于上述的设计思想以及所学单片机知识,并且设计环境。所以我们在设计时,选择了五个开关、AT89C51单片机、74LS240芯片以及6只发光二极管。其中AT89C51做为控制核心,当5个开关的状态发生改变后,单片机检测到开关信号后就通过软件输出相关信号,在经过74LS240芯片来驱动6个汽车信号灯根据开关的相应状态闪烁或长亮。 2.3 AT89C51单片机介绍
AT89C51是ATMEL公司生产的低电压,高性能的CMOS 8位单片机,片内含4K bytes的可反复擦写和只读程序存储器(PEROM)和128 bytes的随机存取数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元。其引脚图如图2-1所示。 内部结构图如图2-2所示。其主要性能参数为:
? 与MCS-51产品指令系统完全兼容 ? 4k字节可重擦写Flash闪速存储器
6
单片机原理及应用课程设计
? 1000次擦写周期 ? 全静态操作:0Hz-24MHz ? 三级加密程序存储器 ? 128 X 8字节内部RAM ? 32个可编程I/O口线 ? 2个16位定时/计数器 ? 6个中断源
? 可编程串行UART通道 ? 低功耗空闲和掉电模式
图2-1 AT89C51引脚图
AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路.同时,AT89C51可隆至0Hz的静态逻辑操作,并支持
7
单片机原理及应用课程设计
两种软件可选的节电工作模式.空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作.掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一硬件复位。 引脚功能说明:
? Vcc:电源电压 ? GND:地
? P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总路线复 用口.作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写”1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线从那时起转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
外部中断 ETC 片内 RAM 定时器1 定时器0 计数器 输出
中断控制 片内Flash 存储器 CPU 振荡器 总线控制 I/O接口 串行接口 P0 P2 P1 P3 TXD RXD 图2-2 AT89C51内部结构图
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接电阻。
? P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可
8
单片机原理及应用课程设计
驱动(吸收或输出电流)4个TTL逻辑门电路.对端口写”1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
Flash编程和程序校验期间,P1接收低8位地址。
? P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级 可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口写”1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX @DPTR指令)时,P2口送出高8位地址数据.在访问8位地址的外部数据存储器(如执行MOVX @RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
? P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,P2的输出缓冲 级可驱动(吸收或输出电流)4个TTL逻辑门电路.对端口写”1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如下表所示:
I/O口线 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5
专用功能 RxD(串行数据接收) TxD(串行数据发送) _____ INT0(外部中断0请求输入) _____ INT1(外部中断1请求输入) T0(定时器0外部计数脉冲输入) T1(定时器1外部计数脉冲输入) 9
单片机原理及应用课程设计 P3.6 P3.7 ___ WR(外部数据存储器写信号) ___ RD(外部数据存储器读信号) P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号. ? RST:复位输入.当振荡器工作时,RST引脚出现两个机器周期以上高电平 将使单片机复位。
? ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存许) 输出脉冲用于锁存地址的低8位字节.即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因些它可对外输出时钟或用于定时目的.要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。 ______
对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG).
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作.该位置位后,只有一条MOVX和MOVC指令ALE才会被除数激活.此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。 ______ ____
? PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 _____
AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效, _____
即输出两个脉冲.在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现.
? EA/VPP:外部访问允许.欲使CPU仅访问外部程序存储器(地址为 0000H-FFFFH),EA端必须保持低电平(接地).需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态.
如EA端为高电平(接Vcc端),CPU则妊内部程序存储器中的指令. Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。
10