微机原理课程设计城市交通灯的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理课程设计——城市交通灯控制系统设计
学院:电气信息工程学院
班级:通信工程07-1班
姓名:
学号:
目录
交通灯设计课题简介....................................................................- 2 -
1.1交通的控制系统概述.................................................................................. - 2 -
1.2设计要求及其目的...................................................................................... - 3 -
1.3设计思想...................................................................................................... - 3 - 2.硬件电路元件介绍..................................................................- 4 -
2.1核心芯片8088/8086微型计算机............................................................... - 4 -
2.2可编程并行接口8255 ................................................................................. - 6 - 3.硬件电路设计 ...........................................................................- 7-
3.1设计的总方案.............................................................................................. - 8 -
3.2 LED显示电路设计................................................................................... - 10 -
3.3发光二极管组成的灯控电路设计............................................................ - 10 -
3.4键盘电路设计............................................................................................ - 10 - 4.软件设计 ........................................................................... ....- 13 -
4.1软件设计思路............................................................................................ - 11 -
4.2流程图........................................................................................................ - 11 -
4.3程序清单.................................................................................................... - 13 - 5.课程设计心得体会............................................................... - 14 - 6.参考文献 ............................................................................... - 15 -
交通灯设计课题简介
1.1交通的控制系统概述
十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。

当前,国内大多数城市正在采用“自动”红绿交通灯,它具有固定的“红灯—绿灯”转换间隔,并自动切换。

它们一般由“通行与禁止时间控制显示、红黄绿三色信号灯和方向指示灯”三部分组成。

在交通灯的通行与禁止时间控制显示中,通常要么南北两方向绿灯各40秒;要么根据交通规律,东西方向45秒,时间控制都是固定的。

交通灯的时间控制显示,以固定时间值预先“固化”在单片机中,每次只是以一定周期交替变化。

本系统是由键盘、LED 显示、交通灯演示系统组成。

系统包括基本的交通灯的功能。

系统除基本交通灯功能外,还具有倒计时、时间设置以及根据具体情况手动控制等功能。

1.2设计要求及其目的
目的:
通过实习进一步了解微型计算机的工作原理,熟悉微机基本输入、输出接口的组成及地址分析方法,了解各种接口芯片,熟悉试验机的软件与硬件系统的组成,掌握简单接口电路的设计原则,并完成有关接口程序的编制、运行和调试工作。

要求:
1)按照实习内容完成实习任务;
2)认真编写程序,并进行程序调试,在试验机上运行,完成接口程序的设计;
3)完成实验报告。

1.3设计思想
设计中使用了8088/8086和8255A可编程并行接口实现了,对南北、东西方向交通的分别计时、分别控制,设计采用定时加中断控制的方式进行,对两个
方向车辆的通行时间分别计时,可随意进行更改双向的通行时间。

1.交通灯采用红、黄、绿三色发光二极管构成交通灯亮灭规律;四个方向红灯亮(延时)南、北方向绿灯亮45秒;南、北方向绿灯灭,黄灯闪烁8次;南、北方向红灯灭,东、西方向的绿灯亮40秒,黄灯闪烁8次(延时),南、北方向绿灯亮45秒重复;
2.用数码管倒计时显示时间;
3.绘制电路原理图;
4.根据要求编程。

2.硬件电路元件介绍
2.1核心芯片8088/8086微型计算机
由于8255A 与8086CPU 是以低八位数据线相连接的,所以应该是8255A 的A1、A0线分别与8086CPU 的A2、A1线相连,而将8086的A0线作为选通信号。

如果是按8255A 内部地址来看,则在图中它的地址是PA 口地址即(CS+000H),PB 口地址为(CS+001H),PC 口地址为(CS+002H),命令控制口地址为(CS+003H),其中,CS 为8255片选信号CS 的首地址;若是按8086CPU 地址来看,则8255A 的地址是PA 口地址即(CS+000H),PB 口地址为(CS+002H),PC 口地址为(CS+004H),命令控制口地址为(CS+006H)。

当CS =0288H ,则PA 口地址为0288H ,PB 口地址为028AH ,PC 口地址为028CH ,命令控制口地址为028EH 。

下面,分析8086各个引脚的连接方法。

(1)BHE 引脚:通常用此引线产生片选信号,当为BHE =1,
0A =0编码时,在数据总线低8位和偶地址之间进行字节传送(0AD ~7AD )。

(2)CLK (Clock )时钟信号(输入):CLK 为CPU 和总线控制器提供基本的定时脉冲。

时钟周期是非对称的,当它为有效高电平的时间和时钟周期的比为33%时,提供最佳的内部定时。

由8284时钟发生器产生,8086CPU 使用的时钟频率,因芯片型号不同,时钟频率不同。

这里采用5MHz 。

(3)CC V (+5V),GND(地):CPU 所需电源CC V =+5V 。

GND 为地线。

(4)QS0ALE (Address Latch Enable )地址锁存允许信号,输出高电平有效,作地址锁存器8282/8283的片选信号,在1T 地址周期状态,ALE 有效,表示AB 、DB 上传送的是地址信息,将它锁存。

这是由于AB 、DB 分时复用所需要的,ALE 信号线不能悬空。

如图所示,加入2片地址锁存器8282。

(5)RESET :复位信号,输入,高电平有效。

8086接到复位信号后,停止现行操作,并初始化段寄存器DS ,SS ,ES ,标志寄存器PSW ,指令指针IP 和指令队列,而使CS=FFFFH 。

RESET 信号至少保持四个周期以上的高电平,当它变为低电平时(一个下降沿),CPU 执行重启过程,8086将从地址FFF0H 开始执行指令。

通常FFFF0H 单元开始的几个单元中存放一条JMP 指令,将入口转到引导和装配程序中,从而实现对系统的初始化,引导监控程序或操作系统程序。

由于出现突然断电或其它情况时,8086可能正在执行交通灯程序,现有的地址丢失,应按下RESET 键重新开始。

另外,应将8255A 与8086的RESET 线相连,保持同步。

(6)MN/MX (Minimun/Maximun): 最小、最大工作模式选择信号,输入。

此时MN/MX 接+5V ,构成单处理器系统,系统控制信号由CPU 提供。

2.2可编程并行接口8255
8255A 是一个40引脚的双列直插式集成电路芯片按功能可把8255A 分为三个逻辑电路部分,即:口电路、总线接口电路和控制逻辑电路。

(1)口电路
8255A 共有三个8位口,其中A 口和B 口是单纯的数据口,供数
与读写有关的控制信号有:CS —片选信号(低电平有效)、RD —读信号(低电平据I/O 使用。

而C 口则既可以作数据口,又可以作控制口使用,用于实现A 口和B 口的控制功能。

数据传送中A 口所需的控制信号由C 口高位部分(PC7~PC4)提供,因此把A 口和C 口高位部分合在一起称之为A 组;同样理由把B 口和C 口低位部分(PC3~PC0)合在一起称之为B 组。

(2)总线接口电路
总线接口电路用于实现8255A和单片微机的信号连接。

其中包括:(a)数据总线缓冲器
数据总线缓冲器为8位双向三态缓冲器,可直接和80C51的数据线相连,与I/O操作有关的数据、控制字和状态信息都是通过该缓冲器进行传送。

(b)读/写控制逻辑
WR—写信号(低电平有效)、A0、A1—端口选择信号。

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口,但它们的结构和功能也稍有不同。

·A组和B组的控制电路
这是两组根据CPU命令控制8255A工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255A的工作方式,也可以根据编程命令来对C口的指定位进行置/复位的操作。

A组控制电路用来控制A口及C口的高4位;
B组控制电路用来控制B口及C口的低4位。

·数据总线缓冲器
8位的双向的三态缓冲器。

作为8255A与系统总线连接的界面,输入/输出的数据,CPU的编程命令以及外设通过8255A传送的工作状态等信息,都是通过它来传输的。

·读/写控制逻辑
读/写控制逻辑电路负责管理8255A的数据传输过程。

它接收片选信号CS 及系统读信号RD、写信号WR、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。

3.硬件电路设计
3.1设计的总方案
本课题的设计可通过实验平台上的一些功能模块电路组成,由于各模块电路内部已经连接,用户在使用时只要设计模块间电路的连接,因此,硬件电路的设计及实现相对简单。

完整系统的硬件连接如图1所示。

硬件电路由R-S触发器电路、发光二极管模块、8255可编程并行接口模块和紧急中断模块8259组成。

实验的对应接线方框图如下所示:
3.2 LED显示电路设计
3.3发光二极管组成的灯控电路设计
3.4键盘电路设计
4.软件设计
4.1软件设计思路
运用8088与8255相连,然后通过LED进行交通灯倒计时的显示,8255可编程并行接口实现了,采用C端口控制,对南北、东西方向交通的分别计时、分别控制,城市十字交叉路口红绿灯控制系统主要负责控制东西走向和南北走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,在设计过程中,采用共阳极74HC164驱动的LED显示电路设计,灯亮灭的情况刚好与芯片8255A的C端口输出情况相反,即若输出为1时,相应灯时灭的,即若输出为0时,相应的灯是亮的,在实验中,用高三位控制南北方向的绿、黄、红,而用低三位控制东西方向的绿、黄、红。

例如:MOV AL,01100101B,D7,D6,D5分别控制南北的绿,黄,红灯,而D2,
D1,D0分别控制东西方向的绿,黄,红灯,因此就是南北绿灯亮,东西黄灯亮。

4.2流程图
4.3程序清单
一、灯控和延时程序
CODE SEGMENT
ASSUME CS:CODE
C8255 EQU 0202H ;8255的C端口地址K8255 EQU 0203H ;8255的控制口地址org 1000H
START: MOV AL,80H
MOV DX,K8255
OUT DX,AL
MOV DX,C8255
LOOP1: MOV AL,66H ;东西绿,南北红灯OUT DX,AL
CALL DELAY1 ;调用长延时
MOV CX,8 ;东西黄灯闪烁,南北红灯
LOOP2: MOV AL,0A6H ;黄灯亮
OUT DX,AL
CALL SDELAY ;调用短延时
MOV AL,0E6H ;黄灯灭
OUT DX,AL
CALL SDELAY ;短延时
LOOP LOOP2
MOV AL,0C3H ;东西红,南北绿
OUT DX,AL
CALL DELAY2 ;长延时
MOV CX,8 ;东西红灯,南北黄灯闪烁
LOOP3: MOV AL,0C5H ;黄灯亮
OUT DX,AL
CALL SDELAY ;短延时
MOV AL,0C7H
OUT DX,AL
CALL SDELAY
LOOP LOOP3
JMP LOOP1 ;循环
DELAY1 PROC ;40延时子程序
PUSH CX
MOV CX,40
DEL1: CALL SDELAY
LOOP DEL1
POP CX
RET
DELAY1 ENDP
DELAY2 PROC ;45延时子程序
PUSH CX
MOV CX,45
DEL1: CALL SDELAY
LOOP DEL1
POP CX
RET
DELAY2 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,进行下次循环
POP CX ;恢复cx内容
POP BX ;恢复bx内容
RET ;过程返回
DELAY ENDP ;结束
CODE ENDS
END START
二、键盘扫描程序
KEY_SCAN: ;识别键盘按键有无的子程序
MOV P1,#0F0H ;置列线扫描为0,行扫描为1
MOV A,P1 ;读出P1口
ANL A,#0F0H ;取出高四位
MOV B,A ;高四位存到B
MOV P1,#0FH ;置列线扫描为1,行扫描为0
MOV A,P1 ;读出P1口
ANL A,#OFH ;取出低四位
ORL A,B ;高四位与低四位逻辑或运算
CJNE A,#0FFH,KEY_IN1 ;如果为0FF为没有按下
RET ;
KEY_IN1: ;识别具体按键子程序
MOV B,A ;按键特征码暂存在B
MOV DPTR,#KEYTABLE ;
MOV R3,#0FFH ;
KEY_IN2: ;
INC R3 ;顺序码+1
MOV A,R3 ;
MOVC A,@A+DPTR ;查表
CJNE A,B,KEY_IN3 ;比较,如果相同则找到按键特征码
MOV A.R3 ;找到特征码后,取出顺序码
MOV 30H,A ;存入30H
RET ;
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,8,9顺序码
DB 0BBH,0B7H,07EH,O7BH,077H ;A,B,C,D,E,F 顺序码
DB 00H ; 结束码
5.课程设计心得体会
微机的应用已渗透到生活中的方方面面,利用微机,以前难以实现的东西轻而易举地成为现实。

然而,作为工科学生,要了解微机的内部结构、系统构成、指令系统、输入输出接口、存储器和接口的扩展等等,这些对我们来说非常重要。

微机原理是一门很有趣的课程,任何一个计算机系统都是一个复杂的整体,学习计算机原理是要涉及到整体的每一部分。

讨论某一部分原理时有要涉及到其它部分的工作原理。

这样一来,不仅不能在短时间内较深入理解计算机的工作原理,而且也很难孤立地理解某一部分的工作原理。

所以,在循序渐进的课堂教学过程中,我总是处于“学习了一些新知识,弄清楚一些原来保留的问题,又出现了一些新问题”的循环中,知道课程结束时,才把保留的问题基本搞清楚。

此次实习可以说是获益匪浅。

通过查阅了很多资料,了解了许多汇编程序的思想,扩展了自己的视野,不再仅仅局限于书本中几条简短的程序,而且更重要的是明白写程序的态度:仔细谨慎,精益求精。

在程序中添加了黄灯闪烁,更加醒目。

另外加入能够实现各路口绿灯显示时间不同,适应在主干道和支线路口中使用。

在系统加电调试中,针对一些问题,熟练掌握了根据原理分
步测试,将错误之处缩小的最小范围内。

通过该课程设计,掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,熟悉了编译程序总流程框图,了解了编译程序的生成过程、构造工具及其相关的技术对课本上的知识有了更深的理解,课本上的知识师机械的,表面的。

通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。

而且在设计中,把死板的课本知识变得生动有趣,激发了学习的积极性。

把学过的计算机编译原理的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。

以前对与计算机操作系统的认识是模糊的,概念上的,现在通过自己动手做实验,从实践上认识了操作系统是如何处理命令的,如何协调计算机内部各个部件运行,对计算机编译原理的认识更加深刻。

6.参考文献
1.《微机原理与接口技术》贾金玲主编重庆大学出版社
2.《汇编语言程序设计实验指导》蔡启先编著清华大学出版社
4.《汇编语言实验教程》张坤编著清华大学出版社
5.《汇编语言程序设计教程》卜艳萍、周伟编著清华大学出版社。

相关文档
最新文档