微机原理课程设计城市交通灯的设计Word文档下载推荐.docx

上传人:b****5 文档编号:18077503 上传时间:2022-12-13 格式:DOCX 页数:15 大小:147.98KB
下载 相关 举报
微机原理课程设计城市交通灯的设计Word文档下载推荐.docx_第1页
第1页 / 共15页
微机原理课程设计城市交通灯的设计Word文档下载推荐.docx_第2页
第2页 / 共15页
微机原理课程设计城市交通灯的设计Word文档下载推荐.docx_第3页
第3页 / 共15页
微机原理课程设计城市交通灯的设计Word文档下载推荐.docx_第4页
第4页 / 共15页
微机原理课程设计城市交通灯的设计Word文档下载推荐.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

微机原理课程设计城市交通灯的设计Word文档下载推荐.docx

《微机原理课程设计城市交通灯的设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计城市交通灯的设计Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。

微机原理课程设计城市交通灯的设计Word文档下载推荐.docx

十字道口的交通红绿灯控制是保证交通安全和道路畅通的关键。

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

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

在交通灯的通行与禁止时间控制显示中,通常要么南北两方向绿灯各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片选信号

的首地址;

若是按8086CPU地址来看,则8255A的地址是PA口地址即(CS+000H),PB口地址为(CS+002H),PC口地址为(CS+004H),命令控制口地址为(CS+006H)。

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

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

(1)

引脚:

通常用此引线产生片选信号,当为

=1,

=0编码时,在数据总线低8位和偶地址之间进行字节传送(

)。

(2)CLK(Clock)时钟信号(输入):

CLK为CPU和总线控制器提供基本的定时脉冲。

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

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

这里采用5MHz。

(3)

(+5V),GND(地):

CPU所需电源

=+5V。

GND为地线。

(4)QS0ALE(AddressLatchEnable)地址锁存允许信号,输出高电平有效,作地址锁存器8282/8283的片选信号,在

地址周期状态,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/

(Minimun/Maximun):

最小、最大工作模式选择信号,输入。

此时MN/

接+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.28255的端口介绍

·

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的数据传输过程。

它接收片选信号

及系统读信号

、写信号

、复位信号RESET,还有来自系统地址总线的口地址选择信号A0和A1。

3.硬件电路设计

3.1设计的总方案

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

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

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

实验的对应接线方框图如下所示:

3.2LED显示电路设计

3.3发光二极管组成的灯控电路设计

3.4键盘电路设计

4.软件设计

4.1软件设计思路

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

例如:

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

4.2流程图

4.3程序清单

一、灯控和延时程序

CODESEGMENT

ASSUMECS:

CODE

C8255EQU0202H;

8255的C端口地址

K8255EQU0203H;

8255的控制口地址

org1000H

START:

MOVAL,80H

MOVDX,K8255

OUTDX,AL

MOVDX,C8255

LOOP1:

MOVAL,66H;

东西绿,南北红灯

CALLDELAY1;

调用长延时

MOVCX,8;

东西黄灯闪烁,南北红灯

LOOP2:

MOVAL,0A6H;

黄灯亮

CALLSDELAY;

调用短延时

MOVAL,0E6H;

黄灯灭

CALLSDELAY;

短延时

LOOPLOOP2

MOVAL,0C3H;

东西红,南北绿

CALLDELAY2;

长延时

东西红灯,南北黄灯闪烁

LOOP3:

MOVAL,0C5H;

MOVAL,0C7H

CALLSDELAY

LOOPLOOP3

JMPLOOP1;

循环

DELAY1PROC;

40延时子程序

PUSHCX

MOVCX,40

DEL1:

CALLSDELAY

LOOPDEL1

POPCX

RET

DELAY1ENDP

DELAY2PROC;

45延时子程序

MOVCX,45

DELAY2ENDP

;

1S延时程序

SDELAYPROC;

定义一个近过程

PUSHBX;

保护BX原内容

PUSHCX;

保护cx内容

MOVBL,100;

外循环次数

NEXT:

MOVCX,8334;

内循环次数10ms计时

W10MS:

LOOPW10MS;

判断cx是否为0则循环

DECBL;

减循环次数

JNZNEXT;

判断bx是否为0,进行下次循环

POPCX;

恢复cx内容

POPBX;

恢复bx内容

RET;

过程返回

DELAYENDP;

结束

CODEENDS

ENDSTART

二、键盘扫描程序

KEY_SCAN:

;

识别键盘按键有无的子程序

MOVP1,#0F0H;

置列线扫描为0,行扫描为1

MOVA,P1;

读出P1口

ANLA,#0F0H;

取出高四位

MOVB,A;

高四位存到B

MOVP1,#0FH;

置列线扫描为1,行扫描为0

ANLA,#OFH;

取出低四位

ORLA,B;

高四位与低四位逻辑或运算

CJNEA,#0FFH,KEY_IN1;

如果为0FF为没有按下

RET;

KEY_IN1:

识别具体按键子程序

按键特征码暂存在B

MOVDPTR,#KEYTABLE;

MOVR3,#0FFH;

KEY_IN2:

INCR3;

顺序码+1

MOVA,R3;

MOVCA,@A+DPTR;

查表

CJNEA,B,KEY_IN3;

比较,如果相同则找到按键特征码

MOVA.R3;

找到特征码后,取出顺序码

MOV30H,A;

存入30H

KEY_IN3:

CJNEA,#00H,KEY_IN2;

没结束,继续查询

00H为结束码

KEY_TABLE:

DB0EEH,0EDH,0EBH,0E7H,0DEH;

0,1,2,3,4顺序码

DB0DDH,0DBH,0D7H,0BEH,0BDH;

5,6,7,8,9顺序码

DB0BBH,0B7H,07EH,O7BH,077H;

A,B,C,D,E,F顺序码

DB00H;

结束码

5.课程设计心得体会

微机的应用已渗透到生活中的方方面面,利用微机,以前难以实现的东西轻而易举地成为现实。

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

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

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

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

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

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

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

仔细谨慎,精益求精。

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

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

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

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

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

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

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

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

6.参考文献

1.《微机原理与接口技术》贾金玲主编重庆大学出版社

2.《汇编语言程序设计实验指导》蔡启先编著清华大学出版社

4.《汇编语言实验教程》张坤编著清华大学出版社

5.《汇编语言程序设计教程》卜艳萍、周伟编著清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 药学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1