基于8086的信号灯的设计与实现综述.docx

上传人:b****1 文档编号:14443718 上传时间:2023-06-23 格式:DOCX 页数:14 大小:252.93KB
下载 相关 举报
基于8086的信号灯的设计与实现综述.docx_第1页
第1页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第2页
第2页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第3页
第3页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第4页
第4页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第5页
第5页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第6页
第6页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第7页
第7页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第8页
第8页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第9页
第9页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第10页
第10页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第11页
第11页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第12页
第12页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第13页
第13页 / 共14页
基于8086的信号灯的设计与实现综述.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于8086的信号灯的设计与实现综述.docx

《基于8086的信号灯的设计与实现综述.docx》由会员分享,可在线阅读,更多相关《基于8086的信号灯的设计与实现综述.docx(14页珍藏版)》请在冰点文库上搜索。

基于8086的信号灯的设计与实现综述.docx

基于8086的信号灯的设计与实现综述

课程设计报告书

 

学院:

信息科学与工程学院

专业班级:

自动化0806

课程:

微机原理

姓名:

徐曙

学号:

200804134179

指导教师:

杨岚

●1.设计题目

应用软件定时方式控制信号灯的设计与实现

●2.设计目的

巩固“微机原理”课程学过的知识,加强理论与实践的联系。

通过本课程设计,使学生初步了解微机系统的硬件设备,学会8086系列编程指令的基本功能。

●3.设计思路

3.1硬件接口器件的选择

以8086作为CPU,且工作在最小组态下,74HC373用于锁存8086的地址而将其地址送出,74HC138进行端口地址的译码,8255做输入定时时间的开关和显示倒计时时间的输入输出接口芯片,8253作为1秒钟的定时器,8259用作中断控制器。

3.2定时的启动

由8255的PA端口通过逻辑开关输入定时时间,PB口和PC的一些普通端口作为倒计时的输出显示。

定时的启动可有由一个开关以中断的方式进行启动,即位中断1,开关闭合的同时,产生一中断由8259送至CPU,执行中断程序,同时8253重新开始计数,触发24V的信号开关闭合将电压加在继电器上,使继电器的常开接点闭合从而信号灯亮。

3.3倒计时的显示

显示可以在8只发光二极管(BCD码)上显示,但不是很直观,在这里采用2个数码管更直观地显示时间,首先将其显示的初值定为60秒,定时启动后,对于8253定时计数器,1秒钟定时时间到即产生中断2,发送中断类型码到8086中,8086根据中断类型码从存储器中找到中断向量,读取中断向量程序,判断数码显示管中的数值是否为0,若为0,数码显示管置初值,且信号灯灭,继电器接点打开;否则,数码显示管当前值减一,信号灯状态不变。

,如此反复,实现了设计要求。

3.4继电器的选择与电气隔离的实现

继电器就是用较小的电流去控制较大电流的一种“自动开关”。

故在电路中起着自动调节、安全保护、转换电路等作用,这里用一个开关接点的即可。

对于电磁继电器,只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。

当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。

这样吸合、释放,从而达到了在电路中的导通、切断的目的。

对于继电器的“常开、常闭”触点,可以这样来区分:

继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。

图1继电器

电气隔离可以用电磁隔离和光耦合隔离,由于继电器的电压不高,这里采用光耦合隔离即可。

所谓光耦隔离就是采用光耦合器进行隔离,光耦合器的结构相当于把发光二极管和光敏三极管封装在一起。

发光二极管把输入的电信号转换为光信号传给光敏管转换为电信号输出,由于没有直接的电气连接,这样既耦合传输了信号,又有隔离作用。

4.系统部分主要硬件设计及原理

4.1各芯片间的关系及原理

图2整体框图

8255,8253和8259的数据端口及读写信号都要和总线相连,8255和8253的A0,A1两个端口可以接在AD0,AD1经过地址锁存器出来的Q0,Q1两个端口上面,8259的A0也可以和138译码器出来的信号相与再接到片选信号上.地址通过138译码器进行译码。

译码器有3个控制端,分别为G(高电平有效),

(低电平有效),

(低电平有效),当G=1,GA和GB全为0时,译码器处于工作状态。

A15接在G上,A12-A14分别接到A,B,C三个端口中,Y6与8259的

(低电平有效)相连,Y2与8253的

(低电平有效)相连,Y0与8255的

相连。

所以可以得出根据8255的端口号:

8000H,8001H,8002H,8003H.8259的端口地址:

E000H,E001H。

8253的端口号:

A000H,A001H,A002H,A003H。

8255并行通信接口的3种工作方式:

工作方式0:

这是8255A中各端口的基本输入输出方式。

它只完成简单的并行输入输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合。

工作方式1:

被称作选通输入/输出方式。

在这种工作方式下,数据输入/输出操作要在选通信号控制下完成。

如果PA,PB一个工作在方式1,一个工作在方式0,则C端口只有5个端口可以作为普通的输入输出端口

工作方式2:

被称作带选通的双向传送方式。

8255A中只允许端口A处于工作方式2,可用来在两台处理机之间实现双向并行通信。

其有关的控制信号由端口C提供,并可向CPU发出中断请求信号。

8253的工作原理:

8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,8254有六种工作方式:

方式0:

计数结束中断,方式1:

可编程频率发生器,方式2:

频率发生器,方式3:

方波频率发生器,方式4:

软件触发的选通信号,方式5:

硬件触发的选通信号。

并且都可以按二进制或十进制计数。

其CLK0~CLK2是计数器0~2的时钟脉冲输入端,计数器对该引脚输入的脉冲进行计数。

它的输入脉冲可以是任何脉冲提供的。

GATE0~GATE2是门控脉冲输入端,OUT0~OUT2是输出端,当计数到0时,该引脚输出低电平。

在不同的工作方式下,输出不同形式的信号。

8259的工作原理,中断请求寄存器IRR:

8位,用以分别保存8个中断请求信号,在此采用电平触发中断。

当响应的中断请求输入脚有中断请求时,该寄存器的相应位置1,此时8259的INT发出中断请求信号到8086的INTR,8086的

(低电平有效)发出中断响应信号给8259的

,8253的1s定时器的OUT1通过一个非门后接在8259的IR7上作为中断2,定时开始的信号接在IR4上作为中断1,显然中断1的优先级高于中断2的优先级。

4.2倒计时单元的显示

在此可以让PA口用1方式输入,通过逻辑开关输入定时时间,PB口用作0方式输出,PB可用作显示倒计时的数码管的段选端口,PC口的PC4作为单脉冲的输出端,可以用来控制信号灯定时时刻的开始,当PC4端口一来脉冲,PC0,PC1作为数码管的位选端口,PC2作为普通端口与信号灯相连。

4.31s定时的实现

对于8253而言,由于外部可以提供1MHZ的时钟脉冲,则每计数一次的时间为1us,最大能计数63535次,即63.35ms,为了能利用8253实现1s的定时,可以采用将计数器0和计数器1级联按5000×200方式分频,将计数器0的OUT0端口接在计数器1的CLK1上作为它的计数脉冲。

即计数器0写入5000时,在计数器1CLK1中会有200HZ脉冲。

对于1s,需对计数器1初始化写入时间参数TIME1=200。

且两个定时通道都选用2方式。

4.4电气隔离的实现

通过光进行开关作用,光电耦合器就是将发光二极管和光电三极管密封在一块,发光二极管通电点亮以后,照到光电三极管的基极上,基极收到信号就导致集电极到发射极之间形成通路,发光二极管熄灭后,光电三极管上集电极到发射极的通路阻断了,二极管到三极管之间没有电器连接,所以很安全。

图3,电气隔离模块的原理图

定时的启动可以通过一开关,触发24V的开关电源,使之闭合从而使继电器两端获得24V的电压,继而使其吸合,信号灯两端有电流流过,从而亮。

开关闭合的同时8253的GATE端在下降沿时刻开始计时重装初值,而且8259产生中断。

倒计时为0的时候由软件方式让灯熄灭,继电器的结合开关断开。

 

●5.系统软件部分设计

5.1系统的程序流程图

图4,系统总程序

 

图5,两个中断服务程序

 

5.2各子模块的实现

5.2.1关中断,写中断向量,把中断服务程序的入口地址写入中断向量表中,使用的中断类型号为0CH,0FH

CLI;关中断

pushds

xorax,ax

movds,ax

MOVSI,24H;找到该中断类型号在中断向量表中的首地址

MOVAX,OFFSETIRQ4

ADDAX,2000H

MOVWORDPTR[SI],AX;把中断服务程序的偏移地址放入低字中

MOVAX,0

MOVWORDPTR[SI+2],AX;把中断服务程序的段地址放入高字中

MOVSI,3CH;找到该中断类型号在中断向量表中的首地址

MOVAX,OFFSETIRQ7

ADDAX,2000H

MOVWORDPTR[SI],AX;把中断服务程序的偏移地址放入低字中

MOVAX,0

MOVWORDPTR[SI+2],AX;把中断服务程序的段地址放入高字中

popds

5.2.28255,8253和8259的初始化

INIT:

;8259A初始化,其中地址为0E000H和0E001H

MOVAL,13H;设置ICW1,单片,上升沿触发,需要设置ICW4

MOVDX,0E000H

OUTDX,AL;ICW1写入8259A的偶地址中

MOVAL,08H;设置ICW2,中断类型号的基值

MOVDX,0E001H

OUTDX,AL;ICW2写入8259A的奇地址中

;由于是单片8259,所以不需要设置ICW3

MOVAL,09H;设置ICW4,非自动结束,缓冲方式,完全嵌套

MOVDX,0E001H

OUTDX,AL;ICW4写入8259A的奇地址中

MOVAL,6FH;设置OCW1,开放4和7的中断请求口

MOVDX,0E001H

OUTDX,AL;OCW1写入8259A的奇地址中

;8255A初始化,其中地址A口:

8000H,B口:

8001H,C口:

8002H,控制口:

8003H

MOVDX,8003H

MOVAL,0B0H;设置8255A工作方式控制字,A口为方式1输入、B口为方式0输出

OUTDX,AL

MOVDX,8000H;

INAL,DX

MOVtime,AL;time用来存储倒计时剩下的时间

;8253初始化,其中地址为通道0:

0A000H,通道1:

0A001H,通道2:

0A002H,控制寄存器:

0A003H

MOVAL,35H;设置8253控制字,通道0为工作方式2,BCD计数,先读写低字节,后读写高字节

MOVDX,0A003H

OUTDX,AL

MOVAL,00;设置计数通道0的计数初值5000,先送低字节

MOVDX,0A000H

OUTDX,AL

MOVAL,50;计数通道0的计数初值高字节

OUTDX,AL

MOVAL,75H;设置8253控制字,通道1为工作方式2,BCD计数,先读写低字节,后读写高字节

MOVDX,0A003H

OUTDX,AL

MOVAL,00;把计数初值写入通道2,先送低字节

MOVDX,0A002H

OUTDX,AL

MOVAL,02H;计数通道1的计数初值高字节

OUTDX,AL

STI;初始化完毕,开中断

5.2.3倒计时显示单元的实现,每次1s的中断来了,显示的值发生变化,将段码送至PB口,位码送至PC0和PC1

datasegment

tableDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;数字0~9的7段显示码

numberDW2dup(0);开辟了2个字空间,用来存放倒计时要显示的数字

timeDB03CH;存储定时时间,初值60s

dataends

DISP:

AGAIN:

XORBX,BX;将BX清零

MOVCX,O2H

MOVAH,0FEH

MOVSI,OFFSETtable;用si来存放段码

ADDSI,[number+BX]

MOVAL,BYTEPTR[SI];把段码送B口

L1:

MOVDX,8002H

OUTDX,AL

MOVAL,1;把位码送PC0口

calldelay;延时2ms

MOVAL,0FFH;关闭显示管

ADDAL,3;获得下一个位码PC1口

ADDBX,2;指向下一个要显示的段码

MOVSI,[number+BX]

MOVAL,BYTEPTR[SI]

LOOPNEXT

JMPAGAIN

5.2.4两个中断服务程序IRQ4和IRQ7

IRQ4:

OUTDX,AL

MOVDX,8000H;

INAL,DX

MOVtime,AL;重置定时时间

IRQ7:

pushax;保护现场

pushcx

MOVAL,00;设置计数通道0的计数初值5000,先送低字节

MOVDX,0A000H

OUTDX,AL

MOVAL,50;计数通道0的计数初值高字节

OUTDX,AL

MOVAL,00;把计数初值写入通道1,初值为200,先送低字节

MOVDX,0A001H

OUTDX,AL

MOVAL,02;计数通道1的计数初值高字节

OUTDX,AL

XORDIDI

MOVCX,2

MOVDI,OFFSETnumber

L2:

CMPWORDPTR[DI],0;先比较个位,再比较十位

JZL3

DECWORDPTR[DI]

JMPEXIT

L3:

ADDDI,2

CMPWORDPTR[DI],0

JNEl3

MOVSI,OFFSETtime

MOVAL,BYTEPTR[SI]

MOVDX,8002H

OUTDX,AL

NOTAL

MOVBYTEPTR[SI],AL;重新对AL赋值

MOVWORDPTR[DI],6

JMPEXIT

L4:

SUBDI,2

MOVWORDPTR[DI],9

ADDDI,2

CMPWORDPTR[DI],0

JZL5

DECWORDPTR[DI]

JMPEXIT

L5:

MOVWORDPTR[DI],5

ADDDI,2

LOOPL2

EXIT:

popcx;恢复现场

popax

MOVAL,20H

OUT20H,AL;发中断结束命令

STI;开中断,因为系统在响应中断时,除了保护断点外,还自动关闭了中断允许位

IRET;中断返回

delay:

pushcx;2ms延时子程序

MOVCL,0fh

L2:

MOVCH,0fh

L1:

DECCH

JNZL1

DECCL

JNZL2

popcx

ret

●6.实验小结

通过此次课程设计对微机的接口电路的设计有了更加深刻的认识,以前用单片机进行定时和中断,但和微机还是有很大的不同,有一点遗憾的是时间有限,没能在Proteus将该工程仿真出来。

但收获还是蛮大的!

●7.参考文献

[1]戴梅萼.微型计算机技术及应用[M].清华大学出版社,2005

[2」周明德.微型计算机系统原理及应用[M].北京:

清华大学出版社,2007.1

附件:

总体电路图

东、西两个相对路口红灯亮12s,南、北两个路口绿灯亮6s,后转为黄灯亮6s;

南、北两个相对路口红灯亮12s,东、西两个路口绿灯亮6s,后转为黄灯亮6s;(10分)

3.每个路口设一个紧急按键,可以中断当前的交通灯状态,使当前路口为绿灯,经12s后恢复原来的工作状态;(20分)

4.使用8253提供时间定时,每6s读入1次温、湿度;(20分)

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

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2