1、 微机原理及应用大作业交通与汽车工程学院课程大作业说明书课 程 名 称: 微机原理及应用大作业 课 程 代 码: 8404431 题 目: 交通灯控制系统设计 年级/专业/班: 2004级车辆工程汽电班 学 生 姓 名: 张华民 学 号: 200403060301 开 始 时 间: 2007 年 6 月 11 日完 成 时 间: 2007 年 6 月 22 日课程大作业成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日 目 录摘要 2 1引言 3 11单片机的产生与发展 312单片机在汽
2、车工业上的应用 31.3本设计的主要内容 42任务与分析 521本课程设计的任务 522交通灯方案设计 5221十字路口交通灯控制系统设计方案论证 5222 交通灯应用系统的总体设计框图 623交通灯控制系统总体设计过程 6231系统整体硬件电路设计 6232系统软件算法分析设计 1024系统调试过程 14结论 15致谢 16参考文献 17附录1: 18附录2: 19 附录3: 20 附录电路原理图 21摘 要单片机由于其集成度高,可靠性好,易于使用等优点使其得到了广泛的应用。因此为了进一步巩固和学习单片机的知识,本课程设计为基于8031单片机为控制核心的交通灯控制系统,在硬件电路部分,此设计
3、的采用MCS-51系列中的8031单片机,74LS139译码器及8282地址锁存器,扩展外部数据存储器RAM6116、程序存储器EPROM2732,以LED显示器模拟代表红黄绿交通灯接至由8255A扩展I/O并行口上,另外,本设计采用译码器法选中各芯片,再通过软件部分的编程使单片机控制交通灯的红、黄、绿转换,实现交通灯控制所应有的功能,进而达到用单片机进行控制的目的。关键词:单片机、交通灯、 存储器、8255A1 引 言11单片机的产生与发展单片机自20世纪70年代问世以来,为满足时代发展的要求,以其极高的性能价格比受到了人们的重视和关注,单片机是计算机技术、大规模集成电路技术和控制技术的综合
4、产物,经过30多年的发展历程,单片机应用已十分广泛和深入,已经对人类社会的发展和进步产生了巨大的影响,尤其是MCS-51系列的单片机,凭借其集成度高,处理能力强,可靠性好,价格低廉,体积小,重要量轻,开发也较容易等优点得到了广大工程人员的认可,并且已经广泛用于各种测控领域,以更好地实现自动化。单片机的发展历史可分为四个阶段:第一阶段(1974-1976):单片机初级阶段。因工艺术限制,单片机采用双片的形式而且功能比较简单。第二阶段(1976-1978):低性能单片机阶段。以Intel公司制造的MCS-48单片机为代表,这种单片机片内集成有8位CPU、并行I/O口、8位定时器/计数器RAM和RO
5、M等,不足之处为串行口,中断处理比较简单。第三阶段(1978-现在):高性能单片机阶段。这个阶段推出的单片机普遍带有串行口,多级中断系统,16 位定时器/计数器,片内ROM、RAM容量加大,寻址范围可达64K第四阶段(1982-现在):8位单片机巩固发展及16位单片机、32位单片机推出阶段。1.2单片机在汽车工业上的应用单片机以其卓越的性能,得到了广泛的应用,已深入到各个领域,汽车工业作为支持我们国民经济发展的一大支柱,它的发展速度非常迅速,发展规模也不断壮大,是一个迅速发展的工业,特别是电子应用于汽车上,令多种新功能得以实现,由于单片机的测控的优越性,使其在汽车工业上的应用和发展是非常迅速的
6、,但总的来说,单片机在汽车上的应用分为以下三部分: (1)汽车发动机控制:涡轮增压、燃料喷射控制;(2)汽车舒适装置:遥控防盗系统,自动空调系统,影音播放系统,卫星导航系统; (3)汽车操控和制动:刹车防抱死系统(ABS),循迹系统(TCS),防滑系统(ASR),电子稳定系统(ESP) ; 在汽车技术中,无论是过程控制技术、数据采集还是测控技术,都离不开单片机, 在汽车领域中,机电一体化技术将发挥愈来愈重要的作用,总之单片机在这种集机械、微电子和计算机技术为一体的综合技术中已经扮演了非常重要的角色了。1.3本设计的主要内容单片机应用系统设计不但要熟练掌握单片机程序设计语言和编程技术,而且还要具
7、备扎实的单片机硬件方面的理论和实践知识。而本设计的意旨在于更好地掌握和巩固学习单片机的相关知识,为将来的工作和学习打下更加坚实的基础。本设计的主要内容包括如下几点:(1)能实现A、B两车道的定时放行时间。(2)能实现当一道有车而另一道无车时,交通灯控制系统能立即让有车的车道放行的功能。(3)若有紧急车辆要求通过时(如救护车),此系统应能禁止普通车辆通行,而让紧急车辆通行。在器件的选择上,采用MCS-51系列的8031单片机,由于其内部没有程序存储器,所以根据需要在片外扩展了程序存储器EPROM2732,并且也扩展外部数据存储器RAM6116,通过这些过程可以更好的掌握和巩固有关数据存储器及程序
8、存储器扩展的基本知识,另外,通过8255A扩展I/O并行接口,可以了解和掌握8255A芯片的使用及扩展I/O口的基本知识。还有,在已经设计好的硬件电路的基础上,通过汇编语言的软件编程在一定程度上能更了解硬件电路的功能,是对硬件功能方面的一种完善,而且通过此设计的过程,可以更好的掌握和学习单片机常用的指令。 因此,本设计的实践意义是很明确的,旨在更好的学习掌握单片机的相关知识,从而掌握好专业技能。2任务与分析21本课程设计的任务本设计的主要任务就是利用单片机实现十字路口的交通灯系统控制的功能。十字路口的交通灯系统所具有的功能如下(设东西道为A道,南北道为B道):(1) A道放行时间为2分钟,B道
9、放行时间为1.5分钟;(2) 绿灯表示放行信号,红灯表示停止信号;(3) 绿亮转红灯时,黄灯持续亮2秒;(4) 当一道有车而另一道无车时,交通灯控制系统能立即让有车的车道放行;(5) 若有紧急车辆要求通过时(如救护车),此系统应能禁止普通车辆通行,而让紧急车辆通行。22 交通灯方案设计(或分析)221十字路口交通灯控制系统设计方案论证(1)方案一本方案采用MCS-51系列的8031单片机作为中心处理部件,由于8031内部没有集成程序存储器,所以需要在外部扩展程序存储器,扩展空间为8KB,不扩展数据存储器。用6个LED显示器分别模拟代替红黄绿交通灯显示,并将LED分别接至P1口的P1.0至P1.
10、5,即将P0口做为直接输出口,LED为共阳极连接,接高电平,所以当向P1中的某端口写入“0”时,可以点亮其相应的LED交通灯。另外,在紧急车辆通过的时候,采用外部实时中断方式(INTO),低电平触发中断方式。在AB两车道分别接两个车辆探测传感器,用于检测车道上是否有车辆,并将检测到的模拟信号输入A/D模数转换,然后将转换后的数字信号输入单片机端口P1.5和P1.6(分别代表两车道的车辆信号),当检测到一车道有车,一车道无车时,通过向INTO端口输入低电平,便可实现中断的功能。(2)方案二本方案仍然采用MCS-51系列的8031单片机作为中心处理部件,如上方案一,在8031片外扩展程序存储器,扩
11、展空间为4K,与方案一不同的是,此方案还扩展了外部数据存储器RAM,并且通过8255A芯片来扩展I/O并行接口,选择用8255A主要是为了学习掌握8255A扩展外部I/O并行接口的方法以及了解8255A芯片的使用方法, 由于在8031片外有三种芯片,所以此方案采用74LS139译码器,以其输出信号作为外部数据存储器RAM、程序存储器ERPOM、以及8255A的片选信号,另外,由于P0口为地址总线和数据总线分时复用口,故还需要一个地址锁存器,本人选择的地址锁存器型号为8282,用以保存8031与外部芯片之间的地址信号。对于有紧急车辆通过的情况,如方案一,采用外部中断INT0实时中断处理方式,低电
12、平有效。以及对于一车道有车,一车道无车时的处理情况仍然如方案一。222 交通灯应用系统的总体设计框图本人选择方案二的系统设计方法,之所以选择方案二其主要的原因是方案二选用的器件比较全面,芯片包括8031,数据存储器RAM和程序存储器EPROM,译码器,锁存器,8255AI/O扩展芯片,以及LED显示器。通过这些芯片的硬件电路设计,可以更好的了解各种芯片的使用方法,更好地理清各硬件电路部分的联接关系,另外,通过实践可以对数据存储器、程序存储器以及外部I/O端口的扩展方法有更好的掌握,从而从总体上对单片机原理及应用方面的知识有更全面的了解。对此方案的总体设计图如右图1所示:23交通灯控制系统总体设
13、计过程231系统整体硬件电路设计1简单介绍各主要元器件结构及其功能(1)8031单片机:在此单片机上集成了微处理器(CPU),内部数据存储器(RAM),以及输入输出端口。8031单片机采用40只引脚的双列直插封装方式(见图2),各引脚的功能如下: 时钟引脚X1及 X2:用于接晶体振荡器,此次设计用的晶振频率为6MHZ。RESET脚:是复位信号输入端,高电平有效。 ALE脚:地址锁存允许信号,用于锁存单片机输出的地 址信号,高电平有效 图1方案总体设计流程图 PSEN脚:程序存储器输出控制端,在单片机访问外部程序存储器时,此引脚输出的负 脉冲作为读外部程序存储器的选通信号,接至程序存储器的OE端
14、。低电平有效。EA脚:其功能为内外程序存储器选择控制端。当EA为高电平时,单片机访问内部程序存储器,当EA为低电平时,单片机直接访问片外程序存储器。本设计用的是8031,由于8031内部无程序存储器,所以此引脚应接地。低电平有效。I/O口引脚:共4个,分别是P0、P1、P2、P3,均为8位口。这4个I/O口可分别作为基本的Input、Output端口。其中P0口可作为数据总线和地址总线(低8位)分时复用的端口,P2口可作为地址总线的高8位,即 图2 8031单片机 P0口和P2口地起构成16位地址总线,可供寻址的地址范围是:64KB。P3口具有第二功能,即可以产生中断,定时计数等功能。RD、W
15、R引脚:为读和写选通信号,RD用于将单片机的数据写入外设中,WR用于从外设中读取数据。低电平有效(2)数据存储器RAM6116(2K X 8):如右图3所示。其容量为2K,8根数据总线D0D7,11根地址总线A0A10,E脚为片选择信号输入线,低电平有效,还有G和W引脚,分别为读和写选通信号,与单片机的RD和WR相连。 图3 数据存储器(3)程序存储器EPROM2732(4K X 8):如右图4所示。其容量为4K,8根数据总线D0D7,12根地址总线A0A11;CE为片选信号输入端;OE为输出允许控制端,与单片机PSEN连接。(4)8255A:如图5所示。它具有3个8位的并行I/O口,具有三种
16、工作方式。共有40个引脚,采用双列直插式封装。D0D7:三态双向数据线,与单片机数据总线连接,用以传递数据信。 CS:片选信号输入端,低电平有效。PA0PA7:A口输入/输出线 PB0PB7:B口输入/输出线PC0PC7:C口输入/输出线 图4 程序存器RESET脚:复位信号线A1、A0:地址线,用来选择8255A的内部端口。(5)地址锁存器8282:如下图6所示。D0D7:8位数据输入线Q0Q7:8位数据输出线STB:数据输入锁存选通信号,高电平有效。当该信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存。 OE:数据输出允许信号,低电平有效。(6)译码器74LS139: 如下图7
17、所示74LS139是一种双2-4译码器,这两个译码器完全独立。有两输入,四输出,其输出结果可以作为片选信号。其中E引脚必须为低电平,通过B、A引脚的组合输出4种结果,分别有Y0,Y1,Y2,Y3,它们均为低电平有效。 图5 8255A芯片由于其余器件比较简单,故在此不作说明。 图6 8282锁存器 图7 74LS139译码器2机型以及元器件的选择本设计所用的元器件如表1所示: 表1 元器件列表 附:导线若干 器件名称芯片型号数量(块)单片机MCS-51系列80311数据存储器RAM61161程序存储器EPROM27321I/O扩展芯片8255A1地址锁存器82821译码器74LS1391车辆传
18、感器能达要求即可2电阻(RES)常用电阻3电容(CAP)常用电容3晶体振荡器XTAL(6MHZ)1单阐刀开关SW-SPST1按扭开关SW-PB1交通灯LED12 3根据所选的元器件用PROTEL绘制电路原理图:(1)准备工作从Protel软件的Library元件库中挑选出设计所需要的各种元件(注:元件名称、 型号及数量见表1),然后将各元件的排放位置进行合理的布局,以便于后面的绘图工作。(2)电气连接绘制地址总线AB与各芯片的地址线连接,要注意应该低位地址接低位地址,高位地址接高位地址,同理,数据总线的控制总线即可类似操作。(3)进行电路原理图的编译 当所有导线连接完毕后,要进行电路原理图的编
19、译以确定是否有错误的电气连接,如果发展有错误根据编译信息对错误的地方进行检查,然后再重新编译,直至正确。4各部分硬件电路设计:(1)时钟电路图: 本设计采用内部时钟方式,如图8所示:(2)外部中断触发电路由图9可知,此电路由一电阻R外接+5V的电源,另加一单阐刀开关S,并接地。当S断开时INTO引 图8 时钟电路脚为高电平;当S闭合时INTO引脚为低电平,即此电路的功能是当闭合S开关时输入一低电脉冲,即采用电平触发方式产生中断,从而实现当车道有紧急车辆时让紧急车辆优先通过的功能。 (3)复位电路设计 本复位电路如图10所示,采用的是手动按键电平触发方式 图9外部中断触发电路复位电路,此电平复位
20、是通过REST端经电阻与电源+5V接通而实现的。(4)交通灯及传感器硬件电路设计硬件电路如图11所示,因为东西道为A道,南北道为B道,故在东、西、南、北四个方向分别布置3个交通灯(红、黄、绿),B道绿、黄、红三个交通灯分别与PA0、PA1、PA2相连,同理,A道绿、黄、红三交通灯分别与PA3、PA4、PA5。 图10 复位电路并且将在这四个方向上的交通灯的LED阳极分别相连并接+5V电源, 故要控制交通灯的亮与灭,只需要在其相应的端口引脚上写入“0”与“1”即可。另:在两车道上分别放置两个能够反应车道上有无车辆的传感器两个,将其采集到的信号分别输入PB口的PB6及PB7端口,让单片机进行数据处
21、理。图11 交通灯及传感器硬件电路(5)电路原理图(见附录电路原理图)2.3.2系统软件算法分析设计 任何一个应用系统,它们都有着自己的硬件系统和软件系统, 少了任何一个部分都不可能称之为一个完整的应用系统,它们之间是相互依存的一个整体,硬件系统是软件系统的一个基础和前提,为软件系统提供了一个操作平台;而软件系统是硬件系统的灵魂 ,它对硬件系统起到扩充和完善的作用。可想而知软件系统与硬件系统同等重要,下面为交通灯系统的软件方面的具体设计过程:1确定各芯片的寻址范围及端口地址电路原理图绘制好后,数据存储器及程序存储器的空间地址范围在此交通灯应用系统中已经是确定了的,但是这样还不够,还应该根据电路
22、的连接通过计算从而确定各芯片的地址空间范围,这不仅仅是设计的需要,而且也能够更好的进行空间的合理分配,以达到充分利用空间资源的目的,以下是各芯片的地址空间范围以及相关端口地址的确定过程:由74LS139的工作原理,并且根据电路图连接,确定各片选信号输入如下:EBA组合方式010001000选中芯片611627328255A表2 各芯片片选信号(1)数据存储器6116的寻址范围的确定:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.010111000000000001011111111111111表3 数据存储器地址范
23、围由表3第二行可得数据存储器起始地址为:B800H;由第三行可得其末地址为:BFFFH故数据存储器6116的寻址范围为:B800HBFFFH(2)程序存储器2732的寻址范围的确定:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.001110000000000000111111111111111表4 程序存储器地址范围由表4第二行可得程序存储器起始地址为:7000H;由第三行可得其末地址为:7FFFF故程序存储器2732的寻址范围为:7000H7FFFFH(3)规定PA口为作为在输出端口,工作于方式0,PB口作为输入
24、端口,工作于方式0,PC口为输出端口,工作于方式0,方式控制字为:工作方式选择控制字见表5:D7D6D5D4D3D2D1D010000010表5 8255A方式控制字故由表5可知方式控制字为:10000010B=82H(4)确定8255A的控制字寄存器地址端口,A端口地址,B端口地址及C端口地址控制字寄存器端口地址的确定 由电路原理图可知,A0、A1分别接至单片机地址P0.0、P0.1,控制字寄存器地址确定过程如下表:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.00011111111111111表6 控制字寄存器
25、端口地址故由表6可知控制字寄存器的端口地址为:3FFFFHA端口地址的确定 当A0、A1口分别写入“0”,表明对A口数据进行操作,其端口地址的确定过程如下:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.00011111111111100表7 8255A的A端口地址故由表7可知A端口地址为:3FFCHB端口地址的确定 当A0、A1口分别写入“1”,“0”时,表明对B口进行操作,其端口地址的确定过程如下:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0
26、.1P0.00011111111111101表8 8255A的B端口地址故由表8知B端口地址为:3FFDHC端口地址的确定 当A0、A1口分别写入“0”,“1”时,表明对C口进行操作,其端口地址的确定过程如下:P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.00011111111111110表9 8255A的C端口地址故表9可知C端口地址为:3FFEH2绘制系统程序流程图(1)主程序流程框图如下:图3 主程序流程框图(2)中断服务流程框图如下:图4 中断服务程序流程图3 根据程序流程框图用汇编语言编写程序(见附录)2
27、4系统调试过程 通过上面的硬件设计和软件设计过程, 交通灯控制系统设计的工作已经基本完成,接下来的工作就是对所设计好的应用系统进行调试。通过调试可以检查出系统出现的一些错误,从而进行下一步的修改,直至调试成功。(1) 在调试工作面板上按电路图连接好电路;(2) 在PC机上运行汇编语言编程软件,并输入已编好的程序代码;(3) 先对程序进行编译,如果有错误还得对程序进行修改,如果编译正确可以进行下一步操作;(4) 打开仿真开关,观察交通灯,发现交通灯按预先设计好的规律变化,调试成功。结 论通过此这次课程设计的学习,我不仅掌握了单片机的工作原理及其基本知识,并且对各种芯片的使用方法亦有了进一步的认识
28、,对数据存储器和程序存储器的扩展以及I/O并行口的扩展知识有了更深的了解,从整体上把握了单片本的知识,收获很大。单片机应用系统的设计最主要的部分是硬件部分和软件部分,单片机应用系统是指以单片机芯片为核心的,通过配以一定的外围电路和软件,从而达能实现某种或几种功能的应用系统的目的。硬件部分仅仅只是我们实现某种功能的基础和平台,软件部分是硬件部分的灵魂,没有软件部分,单片机无法执行工作,软件是对硬件功能的扩展和完善。致 谢本设计是在唐岚老师的悉心指导下完成的。她的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远
29、。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多为人处世的道理。本设计从选题到完成,每一步都是在唐老师的指导下完成的,倾注了老师大量的心血。另外,本设计的完成也离不开各位同学给我的建议和帮助,是他们让我明白了团队合作的精神。在此,谨向唐老师和同学们表示崇高的敬意和衷心的感谢!参考文献1新编MCS-51单片机应用设计张毅刚、彭喜元等编著名,哈尔滨工业大学出版社2单片机应用技术刘守义主编 , 西安电子科技大学出版社 20023单片机在电子电路设计中的应用赫建国, 郑燕, 薛延侠编著,清华大学出版社 2006.054MCS-51单片机应用开发实用子程序边春远,王志强编著,人民邮
30、电出版社 2005.9.205单片机学习指导李朝青编著,北京航空航天大学出版社2005.10.01附录1:编写好的程序代码如下:ORG 0000H LJMP MAIN ORG 0003H LJMP INT0 ORG 1000HMAIN: SETB EX0 ;程序初始化 SETB PX0 CLR IT0 MOV SP,#60H KEEP EQU 30H CLR EA MOV R0,#60 ;当B道无车辆时,延时2分钟 MOV DPTR,#3FFFH ;8255控制字寄存器地址 MOV A,#82H ;A口输出,方式0,B口输入,方式0 MOVX DPTR,A ;写入方式控制字到控制字寄存器地址
31、SETB EA MOV DPTR,#3FFCH ;写A数据口,使AB两道均红灯亮 MOV A,#0DBH MOV KEEP,A MOVX DPTR,A ACALL DELAY ;延时2S ENTER: MOV A,#0F3H ;写入A数据口,使A道绿,B道红 MOV KEEP,A MOVX DPTR,ALOOP1: ACALL DELAY DJNZ R0,S0 AJMP L1S0: MOV DPTR,#3FFDH ;判定PB7是否为0,为0则表明A道有车 附录2: MOVX A,DPTR MOV KEEP,A MOV C,ACC.7 JNC LOOP1L1: MOV DPTR,#3FFCH ;
32、若A道无车,则让A道为黄灯,B道仍为红灯 MOV A,#0EBH MOV KEEP,A MOVX DPTR,A ACALL DELAY ;让A道黄灯延时2S MOV R1,#45 ;若B道有车,B道通行绿灯,A道红灯,B道放行1.5分 MOV A,#0DEH MOV KEEP,A MOVX DPTR,ALOOP2: ACALL DELAY DJNZ R1,S1 AJMP L2S1: MOV DPTR,#3FFDH ;检测PB7,PB6是否为0 MOVX A,DPTR MOV KEEP,A MOV C,ACC.7 JNC LOOP2 MOV C,ACC.6 JC LOOP2L2: MOV DPT
33、R,#3FFCH ;B道黄灯,A道仍为红灯,延时2S MOV A,#0DDH MOV KEEP,A MOVX DPTR,A ACALL DELAY AJMP ENTER附录3:DELAY: MOV R2,#14HDELAY1: MOV R3,#0C8HDELAY2: MOV R4,#0FAHDELAY3: DJNZ R4,DELAY3 DJNZ R3,DELAY2 DJNZ R2,DELAY1 RETINT0: PUSH ACC ;中断服务程序开始 ,相关寄存器内容入栈 PUSH PSW PUSH DPL ;保存中断前的DPTR数据 PUSH DPH MOV A,#0DBH ;AB道禁止通行,让紧急车辆通过 MOV DPTR,#3FFCH MOVX DPTR,ADELAY20:MOV R5,#200 ;延时20S让紧急车辆通行 DEL1: MOV R6,#200DEL2: MOV R7,#126DEL3: DJNZ R7,DEL3 DJNZ R6,DEL2 DJNZ R5,DEL1 POP DPH ;恢复DPTR值 POP DPL MOV A,KEEP MOVX DPTR,A POP PSW ;相关寄存器内容出栈 POP ACC SETB EX0 RETI附录电路原理图: - 22 -