课 程 设 计 书
系别 计算机科学系
专业 计算机科学与技术
题目 汽车信号灯控制系统
内容提要
本设计为汽车信号灯控制系统,其主要分为五章,第一章为设计概述,主要介绍设计的任务、目标,以及设计所用设备器材,第二章为硬件设计方案,主要是介绍本设计的设计思路,所选芯片,以及相关芯片资料的介绍。并且在此之上画出了原理框图和电路原理图,在原理图的基础上叙述了设计连线和原理说明。第三章为软件设计,其主要介绍本设计中采用何种软件设计方案及相关的流程图,在流程图的基础上,写出本系统的程序。第四章为调试及运行结果,它是在完成本系统的硬件、软件设计的基础之上,对本系统进行测试,看是否满足题目要求,最后以表格的方式对测试的结果给予反应,直接明了。第五章为设计心得总结,主要是介绍在经过本次设计后,自己的一些心得体会。最后还给出了本设计的一些参考文献。
前言
单片机原理及应用是一门实践性很强的课程;其课程设计目的在于综合运用所学知识,全面掌握单片微型计算机及其接口的工作原理、编程和使用方法;在设计中,通过小组协作提出并论证设计方案,进行软、硬件调试,最后获得正确的结果,可以加深和巩固对理论知识的更好掌握,进一步建立计算机应用系统体概念,初步掌握单片机软、硬件开发方法,为以后进行实际的单片机软、硬件应用开发奠定良好的基础。
本设计是利用AT89C51单片机来实现的汽车信号灯控制系统,在系统中利用5个开关来模拟汽车驾驶操作,然后用6个灯来作为汽车信号灯;当拨动开关改变相应的状态时,单片机就会检测到相关类型的状态后,根据内部程序,来驱动相关的汽车信号灯(发光二极管)闪烁或长亮,以次达到设计的目的和要求。
本次课程设计由岳星军、陈元厚和胡长应三人协同完成。其中岳星军主要负责硬件方案及原理设计,陈元厚主要负责软件方案及程序设计,胡长应主要负责协调测试。
目 录
第一章 设计概述……………………………………………………………………5
1.1 设计任务………………………………………………………………………5
1.2 设计要求………………………………………………………………………5
1.3 设备器材………………………………………………………………………5
第二章 硬件设计方案………………………………………………………………6
2.1 设计思路………………………………………………………………………6
2.2 硬件选择及论证………………………………………………………………6
2.3 AT89C51单片机介绍…………………………………………………………6
2.4 74LS240芯片介绍……………………………………………………………11
2.5 硬件原理框图…………………………………………………………………11
2.6 电路原理图……………………………………………………………………12
2.7 设计连线………………………………………………………………………13
2.8 工作原理说明…………………………………………………………………13
第三章 软件设计方案……………………………………………………………14
3.1 软件设计思想…………………………………………………………………14
3.2 程序流程图……………………………………………………………………14
3.3 程序清单………………………………………………………………………15
第四章 调试及运行结果…………………………………………………………19
第五章 设计总结…………………………………………………………………20
参考资料……………………………………………………………………………21
第一章 设计概述
1.1 设计任务
在本课程设计中,其设计任务为设计并制作出汽车信号灯微机控制系统,控制的信号灯有仪表板左/右转弯灯、左/右头灯和左/右尾灯共六类灯,在不同的驾驶操作控制下可驱动相对应的汽车信号灯闪烁或长亮。
1.2 设计要求
在本系统中,要求所需执行的操作由相应的开关状态反映,其驾驶操作与灯光信号对应关系如下:。
(1) 左/右转弯(合上左/右开关):仪表板左/右转弯灯、左/右头灯、左/右尾灯闪烁。
(2) 紧急开关合上:所有灯闪烁。
(3) 刹车(合上刹车开关):左右尾灯亮。
(4) 左/右转弯刹车:仪表板左/右转弯灯、左/右头灯、左/右尾灯闪烁,右/左尾灯亮。
(5) 刹车、合上紧急开关:尾灯亮、仪表板灯、头灯闪烁。
(6) 左/右转弯刹车,并合上紧急开关:右/左尾灯亮,其余灯闪烁。
(7) 停靠(合上停靠开关):头灯、尾灯以30Hz的频率闪烁。
1.3 设备器材
在本设计中,所用到的设备器材如下所示:
(1)计算机一台;
(2)DVCC—dv52196实验箱一台;
(3)在实验箱内选择AT89C51单片机一片,发光二极管6只;
(4)另外再需导线若干。
硬件设计方案
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闪速存储器
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的静态逻辑操作,并支持两种软件可选的节电工作模式.空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作.掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一硬件复位。
引脚功能说明:
Vcc:电源电压
GND:地
P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总路线复
用口.作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写”1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线从那时起转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
图2-2 AT89C51内部结构图
在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接电阻。
P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可
驱动(吸收或输出电流)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 RxD(串行数据接收)
P3.1 TxD(串行数据发送)
P3.2 _____
INT0(外部中断0请求输入)
P3.3 _____
INT1(外部中断1请求输入)
P3.4 T0(定时器0外部计数脉冲输入)
P3.5 T1(定时器1外部计数脉冲输入)
P3.6 ___
WR(外部数据存储器写信号)
P3.7 ___
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。
2.4 74LS240芯片介绍
74LS240是八反相缓冲器/线驱动器芯片,这种八缓冲器和线驱动器是为提高三态输出存储地址驱动器、时钟驱动器和总线定向接收器和发射器的性能和集成度而特意设计的,设计者可按需要将原码、反码输出、对称G非(有效低电平输出控制)输入和互补输入G和G非组合使用。此电路的特点是,扇出高、扇入好、噪声容限高(400mV)。可用来驱动小到133Ω的终端负载线。其引脚图入图2-3所示。
图2-3 74LS240引脚图
2.5 硬件原理框图
在本系统中要求制作出汽车信号灯微机控制系统,控制的信号灯有仪表板左、右转弯灯,左、右头灯和左、右尾灯共六类灯,在不同操作控制下可驱动对应的灯闪烁或长亮。在系统中,利用开关在状态的变化来模拟汽车驾驶操作。单片机检测到相应的开关状态类别,产生与此状态相符合的控制信号,使信号灯闪烁或长亮。由于本设计在DVCC—dv52196实验箱上模拟的实现,其本身很多电路无法改变,所以其硬件框图如图2-4所示。
图2-4 系统硬件框图
根据图2-4可知,可以合上开关来改变状态,即合上相应的开关后,就代表一种汽车驾驶操作。然后单片机检测到相应状态,然后判断属于那一类别,再利用软件来产生相应控制信号,经74LS240后来驱动汽车信号灯(发光二极管)在闪烁或长亮。
2.6 电路原理图
本设计是在DVCC—dv52196实验箱平台上设计的,所以根据设计环境和图2-4的系统框图,可得本系统的电路原理图如图2-5所示。
图2-5 汽车信号灯控制系统原理图
2.7 设计连线
由图2-5中可得本设计的连线为:5个开关K1—K5分别接到单片机的P3.1—P3.5口,然后发光二极管L1—L6分别连接到单片机的P1.0—P1.5口。其余不再需要任何连线,因为在DVCC—dv52196实验箱内已经连接好,可以直接使用。这样很大程度简化了连线的步骤,使设计方便快捷。
2.8 工作原理说明
由于在本设计在DVCC—dv52196实验箱平台上,利用PC机资源和DVCC—dv52196实验箱上的资源,其内部很多芯片之间的连接都已经接好,所以很方便的实现设计要求。
由汽车信号灯控制系统原理图2-4中可以看出,本系统中AT89C51为控制核心,其中P3.0—P3.4做为输入口,P1.0—P1.5为输出口。当相应开关合上的的时候,开关状态将发生变化,从而产生输入信号;在单片机读入开关状态后,通过软件来判断属于那一类信号,并实现汽车信号灯的控制,然后输出到P1.0—P1.5口,经过74LS240后来驱动汽车信号灯(发光二极管)做出相应的闪烁或长亮;比如当K1左转弯开关拨动的时候,单片机就驱动汽车信号灯L1、L3闪烁,当合上开关K2的时候,L2、L4亮。当K1K2同时合上的时候,所有灯都熄灭;当再拔动其他开关的时候也随即产生与之相对应的信号驱动汽车信号灯闪烁或长亮。
第三章 软件设计方案
3.1 软件设计思想
软件部分与硬件部分一起构成一个完整的系统,对整个系统来说起着重要的作用。在本设计中使用了散传程序的设计方法,它根据系统的某种运算结果,分别转向各个处理程序。该方法利用JMP @A+DPTR,根据运算结果,确定A和DPTR的内容,从而实现转移。用该方法 设计的程序结构简单、转移表短,但转移表大小加上各个程序长度必须小于256字节。
3.2 程序流程图
根据软件的设计思想,可画出本系统程序流程图如图3-1所示。
3.3 程序清单
;----------------------------------------
;----------单片机及应用原理课程设计------
;-------------汽车信号灯控制系统---------
;------------L1左转弯灯,L2右转弯灯-------
;------------L3左头灯,L4右头灯-----------
;------------L5左尾灯,L6右尾灯-----------
;----------------------------------------
ORG 0000H
LJMP BEGAIN
BEGAIN: MOV P3,0FFH ;P3口置“1”,为输入做准备
MOV A,P3
ANL A,#1Fh ;读如开关状态
MOV DPTR,#TABLE
RL A ;累加器乘2
JMP @A+DPTR
TABLE: AJMP GO0 ;同时打开
AJMP GO1 ;K1合上,K2打开
AJMP GO2 ;K2合上K1打开
AJMP GO3 ;K1K2同时合上
AJMP GO4 ;K3合上
AJMP GO5 ;K1,K3和尚
AJMP GO6 ;k2k3合上
AJMP GO7 ;K1K2K3合上
AJMP GO8 ; K4合上
AJMP GO9 ;K1K4合上
AJMP GO10 ;K2K4合上
AJMP GO11 ;K1,K2,K4合上
AJMP GO12 ;k3,k4合上
AJMP GO13 ;K1,K3,K4合上
AJMP GO14 ;k2,k3,k4合上
AJMP GO15 ;k1,k2,k3,k4合上
AJMP GO16 ;K5合上
GO0: MOV P1,#00 ;所有开关同时打开,所有灯都熄灭
LJMP BEGAIN
GO1: MOV P1,#00000101B ;K1合上,其余打开,L1、L3亮
;表示左边转弯
LOOP: LCALL DELAY ;延时1S
MOV P1,#00H
LCALL DELAY ;延时1S
LJMP BEGAIN
GO2: MOV P1,#00001010B;k2合上,其余打开,表示右边转弯
LJMP LOOP ;调用延时程序
GO3: LJMP GO0 ;K1K2同时合上,所有灯熄灭
GO4: MOV P1,#00111111B ;K4合上,刹车,所有灯闪烁
LJMP LOOP
LJMP BEGAIN
GO5: LJMP GO0 ;所有灯熄灭
GO6: LJMP GO0 ;所有灯熄灭
GO7: LJMP GO0 ;所有灯熄灭
GO8: MOV p1,#00110000b ;K5合上,停靠,L5L6闪烁
LJMP LOOP
GO9: MOV P1,#00001101B ;K1K4合上,左转弯并刹车
CPL P1.0 ;L1闪烁
CPL P1.2 ;L3闪烁
LCALL DELAY ;调用延时程序
CPL P1.3 ;L4长亮
LJMP BEGAIN
GO10: CPL P1.1 ;L2闪烁
CPL P1.3 ;L4闪烁
LCALL DELAY
CPL P1.5 ;L6长亮
LJMP BEGAIN
GO11: LJMP GO0 ;所有灯熄灭
GO12: CPL P1.0 ;L1—L4闪烁
CPL P1.1
CPL P1.2
CPL P1.3
LCALL DELAY
SETB P1.4 ;L5长亮
SETB P1.5 ;L6长亮
LJMP BEGAIN
GO13: MOV P1,#00001111B ;L1—L4闪烁
LJMP LOOP
LJMP BEGAIN
GO14: LJMP GO13
GO15: LJMP GO0
GO16: MOV P1,#00111100B ;L3、L4、L5、L6闪烁
LJMP LOOP
LJMP BEGAIN
DELAY: MOV R5,#2 ;延时子程序
DEL0: MOV R6,#255
DEL1: MOV R7,#98
DEL2: DJNZ R7,DEL2
DJNZ R6,DEL1
DJNZ R5,DEL0
RET
END
调试及运行结果
通过设计和编写程序代码,运行程序后,其结果为当拨动相应的开关后,其对应的汽车信号指示灯状态将发生变化,闪烁或长亮,直到下一个动作为止,刚开始时候,其信号灯的动作与实际的操作不匹配,经过小组成员的协同努力,最终在运行程序后能得到与要求相匹配的结果,其具体的调试结果如下表所示。
驾驶信号操作 调试结果
左转弯灯L1 右转弯灯
L2 左头灯
L3 右头灯
L4 左尾灯
L5 右尾灯
L6
合上左转
开关 闪烁 —— 闪烁 —— 闪烁 ——
合上右转
开关 —— 闪烁 —— 闪烁 —— 闪烁
合紧急开关 闪烁 闪烁 闪烁 闪烁 闪烁 闪烁
合上刹车
开关 —— —— —— —— 亮 亮
左转弯时
刹车 闪烁 —— 闪烁 —— 闪烁 亮
右转弯时刹车 —— 闪烁 —— 闪烁 亮 闪烁
刹车、并合紧急开关 闪烁 闪烁 闪烁 闪烁 亮 亮
左转弯/刹车/合紧急开关 闪烁 闪烁 闪烁 闪烁 闪烁 亮
右转弯/刹车/合紧急开关 闪烁 闪烁 闪烁 闪烁 亮 闪烁
停靠开关 —— —— 30Hz
闪烁 30Hz
闪烁 30Hz
闪烁 30Hz
闪烁
设计总结
通过一周的单片机课程设计,在小组成员的协同努力下,最终完成汽车信号灯控制系统的设计;在设计中综合运用所学的知识,理论与实际相结合,提出并论证设计方案,然后进行软、硬件调试,最后获得正确的结果。以此加深了对所学理论知识的巩固,加强了建立计算机应用系统整体概念,初步掌握了单片机软、硬件开发方法,为以后进行实际的单片机软、硬件应用开发奠定了良好的基础。与此同时,也加强了我们对问题的分析解决能力,为以后的毕业设计做了充分的准备。
在本次课程设计中受到2位指导老师的耐心指导,使我们进一步学习到了对问题的分析及解决方法的能力;在此一并表示衷心的感谢!
[参考资料]
[1] 贾金玲等.单片机原理及应用.成都:电子科技大学出版社,2004
[2] 胡汉才.单片机原理及其接口技术.北京:清华大学出版社,2004
[3] 张毅刚.MCS-51单片机原理及应用. 哈尔滨:哈尔滨工业大学出版社,1990
[4] 潘新民.单片机实用系统. 北京:人民邮政出版社,2001