微机原理与汇编语言交通灯

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

欢迎下载我曾做过的微机原理与汇编语言课程设计:交通灯。

程序在MASM,唐都TDN86/88实验系统上运行通过。

指导老师对你这次编程的构想,这想法看问题出发点在哪问的很少,但是细节会问很多。当时,他有问我:

你每次运行程序时都敲入G=0000:2000这是什么意思。

程序中有“MOV[SI],AX”语句,你知道它干什么的(中断矢量初始化),那它现在内容是什么(看着程序,我也说了),那它为什么里面放的就是这个值,而不是其他值?(我不会了,只说是规定。心里很生气,不问思想,问什么呢!)

后面还有更气人的,你们这系统不符合实际,你一开始在几点启动的它,你怎么就知道过多长时间就进入夜间(0点以后)的?夏天白天长,冬天白天短,我家还睡觉可晚了。。。。。(我当时都疯了,实在没话说。。。。。。不过也确实没考虑时间校准的问题,只觉得是个模拟,不用太当真,不过老师说的蛮对的。)

这只是给大家个思路,以时间作为出发点,去完成交通灯的工作时序图。这份实验报告是不完整的,其中我们小组的流程图没画,同时程序没有语法错误,但是运行起来一个是灯显示不对,一个是绿灯倒记时只有一组(正常是两组)。硬件连线图也没有。

希望大家多去动手实践,永远都别想着不劳而获。要是按我这次的思路来,希望可以把时间开始,校准考虑进去。这次试验我原想着用两8253级连隔1S引起一中断,结果一看实验箱只一个8253,才选用了软件编程加硬件结合起来,得到一固定时间的方法。

万事开头难,这个实验前两天都不知怎么办。

祝大家学习好,身体棒!

末了,有什么问题,可以给我在下这个资源的评论区或我的CSDN个人主页上留言

中北大学

电子与计算机科学技术学院

汇编语言课程设计

题目:交通灯控制系统

班级:04090402

指导教师:

完成日期:2007年7月13日

学号姓名负责模块成绩组长04090402xx8255A

成员04090402xx绿灯倒计时

成员04090402xx8259中断

成员04090402xx夜间控制

成员04090402xx8253

1需求分析

在当今社会里,交通越来越发达,车辆也越来越来多,由此也带来了大量交通问题。

在本次课程设计中,我们针对现实生活中常看到的红绿灯,运用汇编语言及接口技术来模拟十字路口的交通灯,对交通灯进行控制,并实现一定的功能。

我们通过一些接口芯片:定时/计数器8253,并行接口8255A,中断控制器8259A 和8086计算机的硬件连接,通过8253定时及编延时子程序的方法(设备条件有限,不能依靠纯硬件实现)、利用8259的中断功能及8255A并口输出数据功能做了一实时操作系统,来模拟对十字路口交通灯的控制。具体如下:

(1)用8253计时器来完成时间的设定;

(3)用8259中断控制器来进行紧急情况处理,如警车执行任务等情况;

(4)通过8255A并口来控制LED发光二极管的亮灭,输出为0则亮,输出为1则灭;

(5)用8255来输出绿灯的倒计时间。

2设计方案及分工

在这个方案里,我们将此设计分为5个模块,即:实现电路设计、连接电路以及各模块间整合的模块、实现交通灯循环的模块、对中断进行处理的模块、实现绿灯倒计时的显示模块、实现夜间控制模块。

具体分工如下:

xx:实现8253、电路设计、连接电路以及各模块间整合的模块

xx:实现夜间控制模块

xx:实现交通灯循环的模块

xx:对中断进行处理的模块

xx:实现绿灯倒计时的显示模块

我们想通过这次设计,具体实现以下功能:

以8086CPU为核心设计一个交通灯控制系统,通过8255并口来控制LED发光二级管的亮灭,输出0为亮,输出一为灭;用8253来实现一个定时器(隔一定时间发生一边沿跳变,引发8259中断);用8259来实现对中断的处理;

设有一个十字路口,东西方向与南北方向各有一个红绿灯,初始状态为东西路口的红灯

亮南北路口的绿灯,南北方向的路口通车,并显示南北路口绿灯的倒计时间。延迟一定时间

之后,南北路口与东西路口都为黄灯亮,延迟一定的时间后,南北方向的红灯亮,东西路口

的绿灯两,东西方向的路口通车,并显示东西路口的绿灯倒计时间。延迟一定时间后直接跳

变为东西方向的红灯亮,南北路口的绿灯亮。如上所述循环一定次数后假设进入晚上,屏幕

上显示Good Night!此时这两个路口的黄灯开始闪烁,数码管清零并且闪烁。延迟一定时间

后假设进入早晨并在屏幕上显示Good Night!并实现交通灯的循环。如果遇到紧急情况,采

取紧急中断并且两个方向路口的红灯全亮确保紧急情况得到妥善处理,并且不管。在紧急情

况中断处理模块里通过拨动按钮KK2来触发中断,使各个路口的灯全显示红灯,并在屏幕

上输出Waring!中断完成后跳回原来的状态,继续运行。

3各个模块的实现

3.1交通灯循环模块(XX)

3.1.1设计思想

十字路口分为南北方向和东西方向,各个方向有红黄绿三灯,其循环过程如下:

1:东西方向路口的红灯亮,南北路口的绿灯亮;

2:东西路口与南北路口都为黄灯亮;

3:东西方向路口的绿灯亮,南北方向路口的红灯亮;

4:不经过黄灯亮,直接跳变为状态1;

5:按如上过程循环;

3.1.2流程图

图3-18255并口输出流程图

3.1.3具体实现

用8255控制交通灯的循环,具体状态如下(0:灯亮1:灯灭)

表1交通灯循环状态表

状态D7(东西红)D6(东西黄)D5(东西绿)D4(南北红)D3(南北黄)D2(南北绿)D1D0 101111011 210110111 311001111 401111011

8255初始化:A口输出B口输出C口输出工作在方式0

相关文档
最新文档