《微机原理课程设计-城市交通灯的设计(共15页).doc》由会员分享,可在线阅读,更多相关《微机原理课程设计-城市交通灯的设计(共15页).doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上微机原理课程设计城市交通灯控制系统设计学院:电气信息工程学院班级:通信工程07-1班 姓名: 学号: 目录交通灯设计课题简介1.1交通的控制系统概述十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯绿灯”转换间隔,并自动切换。它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。在交通灯的通行与禁止时间控制显示中,通常要么南北两方向绿灯各40秒;要么根据交通规律,东西方向45秒,时间控制都是固定的。交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期
2、交替变化。本系统是由键盘、LED 显示、交通灯演示系统组成。系统包括基本的交通灯的功能。系统除基本交通灯功能外,还具有倒计时、时间设置以及根据具体情况手动控制等功能。1.2设计要求及其目的目的:通过实习进一步了解微型计算机的工作原理,熟悉微机基本输入、输出接口的组成及地址分析方法,了解各种接口芯片,熟悉试验机的软件与硬件系统的组成,掌握简单接口电路的设计原则,并完成有关接口程序的编制、运行和调试工作。要求:1)按照实习内容完成实习任务;2)认真编写程序,并进行程序调试,在试验机上运行,完成接口程序的设计;3)完成实验报告。1.3设计思想设计中使用了8088/8086和8255A可编程并行接口实
3、现了,对南北、东西方向交通的分别计时、分别控制,设计采用定时加中断控制的方式进行,对两个方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。1交通灯采用红、黄、绿三色发光二极管构成交通灯亮灭规律;四个方向红灯亮(延时)南、北方向绿灯亮45秒;南、北方向绿灯灭,黄灯闪烁8次;南、北方向红灯灭,东、西方向的绿灯亮40秒,黄灯闪烁8次(延时),南、北方向绿灯亮45秒重复;2用数码管倒计时显示时间;3绘制电路原理图;4根据要求编程。2硬件电路元件介绍2.1核心芯片8088/8086微型计算机由于8255A与8086CPU是以低八位数据线相连接的,所以应该是8255A的A1、A0线分别与8086C
4、PU的A2、A1线相连,而将8086的A0线作为选通信号。如果是按8255A内部地址来看,则在图中它的地址是PA口地址即(CS+000H),PB口地址为(CS+001H),PC口地址为(CS+002H),命令控制口地址为(CS+003H),其中,CS为8255片选信号的首地址;若是按8086CPU地址来看,则8255A的地址是PA口地址即(CS+000H),PB口地址为(CS+002H),PC口地址为(CS+004H),命令控制口地址为(CS+006H)。当CS0288H,则PA口地址为0288H,PB口地址为028AH,PC口地址为028CH,命令控制口地址为028EH。下面,分析8086各
5、个引脚的连接方法。(1)引脚:通常用此引线产生片选信号,当为1,0编码时,在数据总线低8位和偶地址之间进行字节传送()。(2)CLK(Clock)时钟信号(输入):CLK为CPU和总线控制器提供基本的定时脉冲。时钟周期是非对称的,当它为有效高电平的时间和时钟周期的比为33时,提供最佳的内部定时。由8284时钟发生器产生,8086CPU使用的时钟频率,因芯片型号不同,时钟频率不同。这里采用5MHz。(3)(+5V),GND(地):CPU所需电源5V。GND为地线。(4)QS0ALE(Address Latch Enable)地址锁存允许信号,输出高电平有效,作地址锁存器8282/8283的片选信
6、号,在地址周期状态,ALE有效,表示AB、DB上传送的是地址信息,将它锁存。这是由于AB、DB分时复用所需要的,ALE信号线不能悬空。如图所示,加入2片地址锁存器8282。(5)RESET:复位信号,输入,高电平有效。8086接到复位信号后,停止现行操作,并初始化段寄存器DS,SS,ES,标志寄存器PSW,指令指针IP和指令队列,而使CS=FFFFH。RESET信号至少保持四个周期以上的高电平,当它变为低电平时(一个下降沿),CPU执行重启过程,8086将从地址FFF0H开始执行指令。通常FFFF0H单元开始的几个单元中存放一条JMP指令,将入口转到引导和装配程序中,从而实现对系统的初始化,引
7、导监控程序或操作系统程序。由于出现突然断电或其它情况时,8086可能正在执行交通灯程序,现有的地址丢失,应按下RESET键重新开始。另外,应将8255A与8086的RESET线相连,保持同步。(6)MN/(Minimun/Maximun): 最小、最大工作模式选择信号,输入。此时MN/接5V,构成单处理器系统,系统控制信号由CPU提供。2.2可编程并行接口82558255A是一个40引脚的双列直插式集成电路芯片按功能可把8255A分为三个逻辑电路部分,即:口电路、总线接口电路和控制逻辑电路。(1)口电路 8255A共有三个8位口,其中A口和B口是单纯的数据口,供数与读写有关的控制信号有:CS片
8、选信号(低电平有效)、RD读信号(低电平据I/O使用。而C口则既可以作数据口,又可以作控制口使用,用于实现A口和B口的控制功能。数据传送中A口所需的控制信号由C口高位部分(PC7PC4)提供,因此把A口和C口高位部分合在一起称之为A组;同样理由把B口和C口低位部分(PC3PC0)合在一起称之为B组。(2)总线接口电路总线接口电路用于实现8255A和单片微机的信号连接。其中包括:(a)数据总线缓冲器数据总线缓冲器为8位双向三态缓冲器,可直接和80C51的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。(b)读/写控制逻辑WR写信号(低电平有效)、A0、A1端口选择信
9、号。8255A共有四个可寻址的端口(即A口、B口、C口和控制寄存器),用二位地址编码即可实现选择。(c)控制逻辑电路控制逻辑电路包括A组控制和B组控制,合在一起构成8位控制寄存器,用于存放各口的工作方式控制字,8255A工作方式及数据I/O操作。(3)8255A的工作方式1、8255A的内部结构:1.1.2 8255的端口介绍A口:是一个独立的8位I/O口,它的内部有对数据输入/输出的锁存功能。B口:也是一个独立的8位I/O口,仅对输出数据的锁存功能。C口:可以看作是一个独立的8位I/O口;也可看作是两个独立的4位I/O口。也是仅对输出数据进行锁存。这三个端口均可看作是I/O口,但它们的结构和
10、功能也稍有不同。A组和B组的控制电路这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。A组控制电路用来控制A口及C口的高4位;B组控制电路用来控制B口及C口的低4位。数据总线缓冲器8位的双向的三态缓冲器。作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。读/写控制逻辑读/写控制逻辑电路负责管理8255A的数据传输过程。它接收片选信号及系统读信号、写信号、复位信号RESE
11、T,还有来自系统地址总线的口地址选择信号A0和A1。3硬件电路设计3.1设计的总方案本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。完整系统的硬件连接如图1所示。硬件电路由R-S触发器电路、发光二极管模块、8255可编程并行接口模块和紧急中断模块8259组成。实验的对应接线方框图如下所示:3.2 LED显示电路设计3.3发光二极管组成的灯控电路设计3.4键盘电路设计4软件设计4.1软件设计思路运用8088与8255相连,然后通过LED进行交通灯倒计时的显示,8255可编程并行接口实现了,采
12、用C端口控制,对南北、东西方向交通的分别计时、分别控制,城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,在设计过程中,采用共阳极74HC164驱动的LED显示电路设计,灯亮灭的情况刚好与芯片8255A的C端口输出情况相反,即若输出为1时,相应灯时灭的,即若输出为0时,相应的灯是亮的,在实验中,用高三位控制南北方向的绿、黄、红,而用低三位控制东西方向的绿、黄、红。例如:MOV AL,B,D7,D6,D5分别控制南北的绿,黄,红灯,而D2,D1,D0分别控制东西方向的绿,黄,红灯,因此就是南北绿灯
13、亮,东西黄灯亮。4.2流程图开始8255初始化四个路口红灯亮南北绿灯亮,延时45S绿灯灭,黄灯闪东西绿灯亮,延时40S南北红灯亮,4.3程序清单一、灯控和延时程序CODE SEGMENTASSUME CS:CODEC8255 EQU 0202H ;8255的C端口地址K8255 EQU 0203H ;8255的控制口地址org 1000HSTART: MOV AL,80HMOV DX,K8255OUT DX,ALMOV DX,C8255LOOP1: MOV AL,66H ;东西绿,南北红灯OUT DX,ALCALL DELAY1 ;调用长延时MOV CX,8 ;东西黄灯闪烁,南北红灯LOOP2
14、: MOV AL,0A6H ;黄灯亮OUT DX,ALCALL SDELAY ;调用短延时MOV AL,0E6H ;黄灯灭OUT DX,ALCALL SDELAY ;短延时LOOP LOOP2MOV AL,0C3H ;东西红,南北绿OUT DX,ALCALL DELAY2 ;长延时MOV CX,8 ;东西红灯,南北黄灯闪烁LOOP3: MOV AL,0C5H ;黄灯亮OUT DX,ALCALL SDELAY ;短延时MOV AL,0C7HOUT DX,ALCALL SDELAYLOOP LOOP3JMP LOOP1 ;循环DELAY1 PROC ;40延时子程序PUSH CXMOV CX,40
15、DEL1: CALL SDELAYLOOP DEL1POP CXRETDELAY1 ENDPDELAY2 PROC ;45延时子程序PUSH CXMOV CX,45DEL1: CALL SDELAYLOOP DEL1POP CXRETDELAY2 ENDP ;1S延时程序SDELAY PROC ;定义一个近过程PUSH BX ;保护BX原内容PUSH CX ;保护cx内容MOV BL,100 ;外循环次数NEXT: MOV CX,8334 ;内循环次数10ms计时W10MS: LOOP W10MS ;判断cx是否为0则循环DEC BL ;减循环次数JNZ NEXT ;判断bx是否为0,进行下次
16、循环POP CX ;恢复cx内容POP BX ;恢复bx内容RET ;过程返回DELAY ENDP ;结束CODE ENDSEND START二、键盘扫描程序KEY_SCAN:;识别键盘按键有无的子程序MOV P1,#0F0H;置列线扫描为0,行扫描为1MOV A,P1;读出P1口ANL A,#0F0H;取出高四位MOV B,A;高四位存到BMOV P1,#0FH;置列线扫描为1,行扫描为0MOV A,P1;读出P1口ANL A,#OFH;取出低四位ORL A,B;高四位与低四位逻辑或运算CJNE A,#0FFH,KEY_IN1;如果为0FF为没有按下RET;KEY_IN1:;识别具体按键子程
17、序MOV B,A;按键特征码暂存在BMOV DPTR,#KEYTABLE;MOV R3,#0FFH;KEY_IN2:;INC R3;顺序码+1MOV A,R3;MOVC A,A+DPTR;查表CJNE A,B,KEY_IN3;比较,如果相同则找到按键特征码MOV A.R3;找到特征码后,取出顺序码MOV 30H,A;存入30HRET;KEY_IN3:;CJNE A,#00H,KEY_IN2;没结束,继续查询RET;00H为结束码KEY_TABLE:DB 0EEH,0EDH,0EBH,0E7H,0DEH;0,1,2,3,4顺序码DB 0DDH,0DBH,0D7H,0BEH,0BDH;5,6,7,
18、8,9顺序码DB 0BBH,0B7H,07EH,O7BH,077H;A,B,C,D,E,F 顺序码DB 00H; 结束码5课程设计心得体会 微机的应用已渗透到生活中的方方面面,利用微机,以前难以实现的东西轻而易举地成为现实。然而,作为工科学生,要了解微机的内部结构、系统构成、指令系统、输入输出接口、存储器和接口的扩展等等,这些对我们来说非常重要。微机原理是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。讨论某一部分原理时有要涉及到其它部分的工作原理。这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。所
19、以,在循序渐进的课堂教学过程中,我总是处于“学习了一些新知识,弄清楚一些原来保留的问题,又出现了一些新问题”的循环中,知道课程结束时,才把保留的问题基本搞清楚。此次实习可以说是获益匪浅。通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。在程序中添加了黄灯闪烁,更加醒目。另外加入能够实现各路口绿灯显示时间不同,适应在主干道和支线路口中使用。在系统加电调试中,针对一些问题,熟练掌握了根据原理分步测试,将错误之处缩小的最小范围内。通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段
20、的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。6参考文献1.微机原理与接口技术 贾金玲主编 重庆大学出版社2. 编著 4汇编语言实验教程 张坤 编著 清华大学出版社5汇编语言程序设计教程 卜艳萍、周伟 编著 清华大学出版社专心-专注-专业