交通信号灯控制系统的设计(仿真,汇编语言实现)——微机课设

计算机科学与技术 专业课程设计任务书

学生姓名

专业班级

学号

题  目

交通信号灯控制系统的设计

课题性质

A.工程设计

课题来源

自拟课题

指导教师

同组姓名

主要内容

初始状态用K1键控制,为两个黄灯闪烁;

K2键控制红、黄、绿灯接通时间分别为5秒、2秒、5秒;

K3键控制红、黄、绿灯接通时间分别为2秒、1秒、2秒。

一位数码管显示红灯和绿灯亮时间的倒计时信息。

任务要求

1、画出逻辑硬件图

2、用汇编语言写出程序

3、画出程序流程图,设计出全部程序并调试通过

4、写出设计思路和调试方法与步骤

参考文献

[1]钱晓捷.16/32位微机原理、汇编语言及接口技术教程[M].北京:机械工业出版社,2011.

[2]戴梅萼,史嘉权.微型计算机技术及应用(第4版)[M].北京:清华大学出版社,2008.

[3]荆淑霞.微机原理与汇编语言程序设计(第1版)[M].北京:中国水利水电出版社,2005.

[4]楼天顺,周家让,张伟涛.微机原理与接口技术[M].北京:科学出版社,2019.

[5]牟琦.微机原理与接口技术[M].北京:清华大学出版社,2018.

审查意见

指导教师签字:

教研室主任签字:                          

填表说明:“课题性质”一栏:A.工程设计;B.工程技术研究;C.软件工程(如CAI课题等);D.文献型综述;E.其它。

目录

1.设计任务与要求

1.1设计任务

1.2要求

2.设计思想

3.主要元器件介绍

3.1 8086CPU芯片(33引脚高电平:最小模式)

3.2 8255A并行接口芯片(初始化控制字选择工作方式:方式0)

3.3 74LS138芯片(3 线-8 线译码器)

3.4 74LS273芯片 (8位数据/地址锁存器)

3.5 七段数码管(共阴极)

3.6 其他简单元件

4.设计方案与硬件连线

4.1设计方案

4.2硬件连线

5.程序流程图

5.1总流程图(AGAIN0)

5.2按K1黄灯闪烁流程图(AGAIN1)

5.3按K2红黄绿灯设置时间525流程图(AGAIN2)

5.4按K3红黄绿灯设置时间212流程图(AGAIN3)

6.程序源代码

7.设计结果

7.1 初始状态用K1键控制,为两个黄灯闪烁

7.2 K2键控制红、黄、绿灯接通时间分别为5秒、2秒、5秒

7.3 K3键控制红、黄、绿灯接通时间分别为2秒、1秒、2秒

8.总结

1.设计任务与要求

1.1设计任务

初始状态用K1键控制,为两个黄灯闪烁;

K2键控制红、黄、绿灯接通时间分别为5秒、2秒、5秒;

K3键控制红、黄、绿灯接通时间分别为2秒、1秒、2秒。

一位数码管显示红灯和绿灯亮时间的倒计时信息。

1.2要求

1、画出逻辑硬件图

2、用汇编语言写出程序

3、画出程序流程图,设计出全部程序并调试通过

4、写出设计思路和调试方法与步骤

2.设计思想

使用8086CPU芯片+8255A并行接口芯片+单位共阴数码管+红、黄、绿LED灯+SWITCH开关等进行连线,再通过编写汇编程序实现输入输出——实现通过输入K1、K2、K3三个开关的断连状态输出对应的东西南北LED红绿灯、数码管倒计时状态。

3.主要元器件介绍

3.1 8086CPU芯片(33引脚

高电平:最小模式)

图3.1 8086CPU芯片

⑴AD15~AD0(addressdatabus):地址/数据总线,双向,三态。

⑵A19/S6~A16/S3(address/status):地址/状态信号,输出,三态。

⑶BHE(低)/S7(bushighenable/status):允许总线高8位数据传送/状态信号,输出,三态。

⑷RD/(read):读信号,输出,三态,低电平有效。

⑸READY(ready):准备就绪信号,输入,高电平有效。

⑹INTR(interruptrequest):可屏蔽中断请求信号,输入,高电平有效。

⑺TEST/(test):等待测试控制信号,输入,低电平有效。

⑻NMI(non-maskableinterrupt):非屏蔽中断请求信号,输入,高电平有效。

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

⑽CLK(clock):时钟信号,输入。CLK为CPU提供基本的定时脉冲信号。

⑾VCC电源输入引脚。8086CPU采用单一+5V电源供电。

⑿GND:接地引脚。

⒀MN/MX/(minimum/maximum):最小/最大模式输入控制信号。

CPU工作于最小模式时使用的引脚信号24~31的含义及其功能如下。

⑴M/IO/(memoryI/Oselect):存储器、I/O端口选择控制信号。

信号指明当前CPU是选择访问存储器还是访问I/O端口。为高电平时,访问存储器,表示当前要进行CPU与存储器之间的数据传送。为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。

⑵WR/(write):写信号,输出,低电平有效。

信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作。

⑶INTA/(interruptacknowledge):可屏蔽中断响应信号,输出,低电平有效。

CPU通过信号对外设提出的可屏蔽中断请求做出响应。为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。

⑷ALE(addresslockenable):地址锁存允许信号,输出,高电平有效。

CPU利用ALE信号可以把AD15~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存在地址锁存器中。

⑸DT/(datatransmitorreceive):数据发送/接收信号,输出,三态。

DT/信号用来控制数据传送的方向。DT/为高电平时,CPU发送数据到存储器或I/O端口;DT/为低电平时,CPU接收来自存储器或I/O端口的数据。

⑹DEN/(dataenable):数据允许控制信号,输出,三态,低电平有效。

信号用作总线收发器的选通控制信号。当为低电平时,表明CPU进行数据的读/写操作。

⑺HOLD(busholdrequest):总线保持请求信号,输入,高电平有效。

在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通过HOLD引脚输入到CPU,请求CPU让出总线控制权。

⑻HLDA(holdacknowledge):总线保持响应信号,输出,高电平有效。

HLDA是与HOLD配合使用的联络信号。在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A控制器使用,总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。


3.2 8255A并行接口芯片(初始化控制字选择工作方式:方式0)

图3.2 8255A并行接口芯片

8位数据端口:A口、B口、C口

A口:PA7~PA0

B口:PB7~PB0

C口:PC7~PC0

连接外部设备

A口与B口为一个8位的输入口或输出口

C口单独作为一个8位的输入口或输出口

配合A口和B口使用,作为控制信号和状态信号

A组和B组控制逻辑

A组:A口和C口的高4位;

B组:B口和C口的低4位。

控制寄存器:保存CPU送来的命令字。

决定A组和B组的工作方式

对C口的每一位执行置位/复位操作

根据命令字,向相关端口送出控制信号

数据总线缓冲器

D7~D0:8位三态双向缓冲器

连接系统数据总线

用于传输三类信息

CPU送来的数据和控制信息(命令字)

外设送来的数据和状态信息U

高阻态:隔离芯片与系统总线

读/写控制逻辑

CS:片选信号输入引脚,低电平有效

~RD:读信号输入引脚,低电平有效

~WR:写信号输入引脚,低电平有效

~RESET:复位信号输入引脚,高电平有效。用于将8255A控制字寄存器清“0”,并将A、B、C口置成输入状态

A1、A0:端口选择信号输入引脚

其余引脚

VCC接电源,GND接地

8255A与微机系统的连接

8位数据总线的系统中,A1与A0与地址总线的A1与A0相连。

16位数据总线的系统中,A1与A0与地址总线的A2,A1相连,当数据线D7~D0连接到cpu数据总线的低8位,以偶地址来寻址,连接到cpu数据总线的高8位,以奇地址来寻址。

工作方式方式0(基本输入/输出方式)

A口、B口和C口:三个独立的8位输入或输出数据口。

C口:可分为两个独立的4位输入或输出数据口。

输出时有锁存能力,输入时无锁存能力。

基本输入方式

外设将数据送到8255A输入缓冲器

CPU给出有效的8255A地址及控制信号

CPU发读命令,将输入缓冲器中的数据读入AL寄存器中

基本输出方式

CPU给出有效的8255A地址及控制信号。

CPU发写命令,将AL寄存器中的数据写入输出锁存器。

适合于无条件输入输出方式。

3.3 74LS138芯片(3 线-8 线译码器)

74LS138工作原理如下:当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。下图是它的原理结构图以及真值表:

图3.3 74LS138芯片

图3.4 74LS138芯片功能表

无论从逻辑图还是功能表我们都可以看到74LS138的八个输出管脚,任何时刻要么全为高电平1—芯片处于不工作状态,要么只有一个为低电平0,其余7个输出管脚全为高电平1。如果出现两个输出管脚在同一个时间为0的情况,说明该芯片已经损坏。

74LS138有三个附加的控制端、和。当、时,输出为高电平(S=1),译码器处于工作状态。否则,译码器被禁止,所有的输出端被封锁在高电平,如表中所示。这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。

3.4 74LS273芯片 (8位数据/地址锁存器)

74LS273是一种带清除功能的8D触发器 , D0~D7为数据输入端,Q0~Q7为数据输出端,正脉冲触发,低电平清除,常用作数据锁存器,地址锁存器。

74LS273的工作原理:

1脚是复位端,11脚是时钟(脉冲)输入端;当1脚为L电平时,无论有无脉冲,数据端(D端)是H或L电平,输出端(Q端)都为L电平;仅当1脚为高电平(H)时,“D”端的数据在脉冲的上升期间被传送到“Q”端.

第一脚WR:主清除端,低电平触发,即当为低电平时,芯片被清除,输出全为0(低电平);

CP(CLK):触发端,上升沿触发,即当CP从低到高电平时,D0~D7的数据通过芯片;为0时将数据锁存,D0~D7的数据不变。

图3.5 74LS273芯片

⑴1脚是复位/MR,低电平有效,当1脚是低电平时,输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)全部输出0,即全部复位。

⑵当1脚为高电平时,11(CP)脚是锁存控制端,并且是上升沿触发锁存.。当11脚有一个上升沿,立即锁存输入脚3、4、7、8、13、14、17、18的电平状态,并且立即呈现在在输出脚2(Q0)、5(Q1)、6(Q2)、9(Q3)、12(Q4)、15(Q5)、16(Q6)、19(Q7)上。

⑶74ls273其它管脚功能:1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。

3.5 七段数码管(共阴极)

一个七段数码管由一根导线选中,一组八根导线控制发光显示不同的数字。

3.6 其他简单元件

LED_RED/YELLOW/GREEN红黄绿发光二极管、SWITCH一位开关、RES电阻、NOT非门、OR_10或门(10连线)等。

4.设计方案与硬件连线

4.1设计方案

8086采用最小模式,连接8255A并行接口并进行汇编编程实现本次课设要求,如下设计方案:8255A的C端口输入K1、K2、K3三个开关的断连状态,A端口输出倒计时数码管状态,B端口输出东南西北红黄绿灯状态。

首先8255A的C端口读入K1/K2/K3按键数据:如果判断数据为001B则实现功能AGAIN1黄灯闪烁;如果判断为010B则实现功能AGAIN2设置红黄绿525秒;如果判断为100B则实现功能AGAIN3设置红黄绿212秒;如果读入数据都不符合则进行最初AGAIN0循环重新读入按键数据。

按下K1开关进入黄灯闪烁功能AGAIN1:首先向A端口输入0关闭倒计时数码管、B端口输入0100100B点亮东西南北黄灯,进行延时0.5秒,再向B端口输入0熄灭东西南北黄灯,延时一秒。配合外部AGAIN0大循环可以实现黄灯一直闪烁。

按下K2开关进入红绿灯设置时间525功能AGAIN2:首先设置TIME1为5(对应红绿灯倒计时初始值),TIME2为2(对应黄灯倒计时初始值),然后跳转AGAIN_LOOP进行显示——通过A端口向数码管传输数字,通过B端口改变红黄绿灯状态,内部有小循环S1、S2、S3、S4使红绿灯状态不变,倒计时每秒减一。配合外部AGAIN0大循环可以实现实时接受按键变化。

按下K3开关进入红绿灯设置时间212功能AGAIN3:除了更改设置TIME1为2,TIME2为1,其他设计思路与功能AGAIN2一样。

4.2硬件连线

图4.1 总接线图

图4.2 8255A主要接线部分图

5.程序流程图

5.1总流程图(AGAIN0)

图5.1 总流程图

5.2按K1黄灯闪烁流程图(AGAIN1)

图5.2 按K1黄灯闪烁流程图

5.3按K2红黄绿灯设置时间525流程图(AGAIN2)

图5.3 按K2红黄绿灯设置时间525流程图

5.4按K3红黄绿灯设置时间212流程图(AGAIN3)

图5.4 按K2红黄绿灯设置时间212流程图

6.程序源代码

......

7.设计结果


7.1 初始状态用K1键控制,为两个黄灯闪烁

图7.1 黄灯亮

图7.2 黄灯灭

7.2 K2键控制红、黄、绿灯接通时间分别为5秒、2秒、5秒

图7.3 东西绿,南北红(5)

图7.4 东西黄,南北红(2)

图7.5 东西红,南北绿(5)

图7.6 东西红,南北黄(2)

7.3 K3键控制红、黄、绿灯接通时间分别为2秒、1秒、2秒

图7.7 东西绿,南北红(2)

图7.8 东西黄,南北红(1)

图7.9 东西红,南北绿(2)

图7.10 东西红,南北黄(1)

8.总结

通过本次课设,我更加深刻的理解到了微机课上所讲的知识,很好的将学过的知识:8086、8255A、汇编语言等联系到一起,中间遇到了一些小困难——比如如何实现延时0.5秒,那些端口控制什么进行输入输出、初始化控制字、硬件连线等,但是都通过查找相关资料得到了较好的解决。

“纸上得来终觉浅,绝知此事要躬行”,选择了自己很感兴趣的交通信号灯管理系统。做完这个课设明白了原来红绿灯的实现也没有那么难做,现在的自己也对用单片机开发连线、编程实现简单功能有了个囫囵见解,很有成就感,希望能继续加油,下次争取做得更好。

  • 31
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值