1、四川理工学院课 程 设 计 书系别 计算机科学系 专业 计算机科学与技术 班级 04 级 4 班 题目 汽车信号灯控制系统 教师 凌 军 朱 文 忠 学生 岳 星 军 单片机原理及应用课程设计2内容提要本设计为汽车信号灯控制系统,其主要分为五章,第一章为设计概述,主要介绍设计的任务、目标,以及设计所用设备器材,第二章为硬件设计方案,主要是介绍本设计的设计思路,所选芯片,以及相关芯片资料的介绍。并且在此之上画出了原理框图和电路原理图,在原理图的基础上叙述了设计连线和原理说明。第三章为软件设计,其主要介绍本设计中采用何种软件设计方案及相关的流程图,在流程图的基础上,写出本系统的程序。第四章为调试及
2、运行结果,它是在完成本系统的硬件、软件设计的基础之上,对本系统进行测试,看是否满足题目要求,最后以表格的方式对测试的结果给予反应,直接明了。第五章为设计心得总结,主要是介绍在经过本次设计后,自己的一些心得体会。最后还给出了本设计的一些参考文献。单片机原理及应用课程设计3前言单片机原理及应用是一门实践性很强的课程;其课程设计目的在于综合运用所学知识,全面掌握单片微型计算机及其接口的工作原理、编程和使用方法;在设计中,通过小组协作提出并论证设计方案,进行软、硬件调试,最后获得正确的结果,可以加深和巩固对理论知识的更好掌握,进一步建立计算机应用系统体概念,初步掌握单片机软、硬件开发方法,为以后进行实
3、际的单片机软、硬件应用开发奠定良好的基础。本设计是利用 AT89C51 单片机来实现的汽车信号灯控制系统,在系统中利用 5 个开关来模拟汽车驾驶操作,然后用 6 个灯来作为汽车信号灯;当拨动开关改变相应的状态时,单片机就会检测到相关类型的状态后,根据内部程序,来驱动相关的汽车信号灯(发光二极管)闪烁或长亮,以次达到设计的目的和要求。本次课程设计由岳星军、陈元厚和胡长应三人协同完成。其中岳星军主要负责硬件方案及原理设计,陈元厚主要负责软件方案及程序设计,胡长应主要负责协调测试。单片机原理及应用课程设计4目 录第一章 设计概述51.1 设计任务51.2 设计要求51.3 设备器材5第二章 硬件设计
4、方案62.1 设计思路62.2 硬件选择及论证62.3 AT89C51 单片机介绍62.4 74LS240 芯片介绍112.5 硬件原理框图112.6 电路原理图122.7 设计连线132.8 工作原理说明13第三章 软件设计方案143.1 软件设计思想143.2 程序流程图143.3 程序清单15第四章 调试及运行结果19第五章 设计总结20参考资料21单片机原理及应用课程设计5第一章 设计概述1.1 设计任务在本课程设计中,其设计任务为设计并制作出汽车信号灯微机控制系统,控制的信号灯有仪表板左/右转弯灯、左/右头灯和左/ 右尾灯共六类灯,在不同的驾驶操作控制下可驱动相对应的汽车信号灯闪烁或
5、长亮。1.2 设计要求在本系统中,要求所需执行的操作由相应的开关状态反映,其驾驶操作与灯光信号对应关系如下:。(1) 左 /右转弯(合上左/右开关):仪表板左/右转弯灯、左/ 右头灯、左/右尾灯闪烁。(2) 紧急开关合上:所有灯闪烁。(3) 刹车(合上刹车开关):左右尾灯亮。(4) 左/右转弯刹车:仪表板左/右转弯灯、左/右头灯、左/ 右尾灯闪烁,右/左尾灯亮。(5) 刹车、合上紧急开关:尾灯亮、仪表板灯、头灯闪烁。(6) 左/右转弯刹车,并合上紧急开关:右/左尾灯亮,其余灯闪烁。(7) 停靠(合上停靠开关):头灯、尾灯以 30Hz 的频率闪烁。1.3 设备器材在本设计中,所用到的设备器材如下
6、所示:(1)计算机一台;(2)DVCCdv52196 实验箱一台;(3)在实验箱内选择 AT89C51 单片机一片,发光二极管 6 只;(4)另外再需导线若干。单片机原理及应用课程设计6第二章 硬件设计方案2.1 设计思路本系统中要求设计汽车信号灯控制系统,在驾驶汽车时有左转弯、右转弯、刹车、合紧急开关、停靠五个操作;所以可以用五个开关来模拟这几个操作,当单片机检测到相关操作后,然后判断属于那一类操作,再通过软件来驱动控制相应的信号灯闪烁或长亮。以此来实现对汽车信号灯的控制。当合上左转弯开关后,仪表板左转弯灯、左头灯、左尾灯闪烁;当合上右转弯开关后,仪表板右转弯灯、右头灯、右尾灯闪烁。当刹车开
7、关合上时,左右尾灯长亮;合上停靠开关后,头灯、尾灯以 30Hz 的频率闪烁;在紧急开关合上后,所有灯都闪烁。还可以同时合上转弯开关和刹车开关,合上刹车开关和紧急开关,以及合上转弯开关、刹车开关和紧急开关。都可以驱动对应的汽车信号灯闪烁或长亮。2.2 硬件选择及论证基于上述的设计思想以及所学单片机知识,并且设计环境。所以我们在设计时,选择了五个开关、AT89C51 单片机、74LS240 芯片以及 6 只发光二极管。其中 AT89C51 做为控制核心,当 5 个开关的状态发生改变后,单片机检测到开关信号后就通过软件输出相关信号,在经过 74LS240 芯片来驱动 6 个汽车信号灯根据开关的相应状
8、态闪烁或长亮。2.3 AT89C51 单片机介绍AT89C51 是 ATMEL 公司生产的低电压,高性能的 CMOS 8 位单片机,片内含4K bytes 的可反复擦写和只读程序存储器(PEROM)和 128 bytes 的随机存取数据存储器,器件采用 ATMEL 公司的高密度、非易失性存储技术,兼容标准MCS-51 指令系统,片内置通用 8 位中央处理器和 FLASH 存储单元。其引脚图如图 2-1 所示。 内部结构图如图 2-2 所示。其主要性能参数为: 与 MCS-51 产品指令系统完全兼容单片机原理及应用课程设计7 4k 字节可重擦写 Flash 闪速存储器 1000 次擦写周期 全静
9、态操作: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 向量两级中断结构,一个全双单片机原理及应用课程设计8工串行通信口,片内振荡器及时钟电路.同时,AT89C51 可隆至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式.空闲方式停止 CPU 的工作,
10、但允许 RAM,定时/计数器,串行通信口及中断系统继续工作.掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一硬件复位。引脚功能说明: Vcc:电源电压 GND:地 P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口 ,也即地址/ 数据总路线复用口.作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口写”1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线从那时起转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。图 2-2 AT89C51 内部结构图在 Flash 编程时,P0 口接收指令字节 ,而在
11、程序校验时 ,输出指令字节,校验时,要求外接电阻。中断控制片内Flash存储器 片内RAMETC定时器 1定时器 0CPU振荡器 总线控制 I/O 接口 串行接口P0 P2 P1 P3外部中断TXD RXD计数器输出单片机原理及应用课程设计9 P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口,P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路.对端口写”1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。Flash 编程和程序校验期间,P1 接收低 8 位地址。 P2 口:P2
12、是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路.对端口写”1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX DPTR 指令) 时,P2 口送出高 8 位地址数据.在访问 8 位地址的外部数据存储器(如执行 MOVX RI 指令)时,P2 口线上的内容(也即特殊功能寄存器(SFR)区中R2 寄存器的内容),在整个访问期间不改变。Flash 编程或校验时,P2 亦接收高
13、位地址和其它控制信号。 P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路.对端口写”1”,通过内部的上拉电阻把端口拉到高电平,些时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能 ,如下表所示:I/O 口线 专用功能P3.0 RxD(串行数据接收)P3.1 TxD(串行数据发送)P3.2 _INT0(外部中断 0 请求输入)P3.3 _INT1(外部中断 1 请求输入)单片机原理及应用课程设计10P3
14、.4 T0(定时器 0 外部计数脉冲输入)P3.5 T1(定时器 1 外部计数脉冲输入)P3.6 _WR(外部数据存储器写信号)P3.7 _RD(外部数据存储器读信号)P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号 . RST:复位输入 .当振荡器工作时 ,RST 引脚出现两个机器周期以上高电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存许)输出脉冲用于锁存地址的低 8 位字节.即使不访问外部存储器,ALE 仍以时钟振荡频率的 1/6 输出固定的正脉冲信号,因些它可对外输出时钟或用于定时目的 .要注意的是:每当访问外部数据存储
15、器时将跳过一个 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,当然这必须是