接口技术.docx

上传人:b****4 文档编号:4255685 上传时间:2023-05-06 格式:DOCX 页数:11 大小:73.21KB
下载 相关 举报
接口技术.docx_第1页
第1页 / 共11页
接口技术.docx_第2页
第2页 / 共11页
接口技术.docx_第3页
第3页 / 共11页
接口技术.docx_第4页
第4页 / 共11页
接口技术.docx_第5页
第5页 / 共11页
接口技术.docx_第6页
第6页 / 共11页
接口技术.docx_第7页
第7页 / 共11页
接口技术.docx_第8页
第8页 / 共11页
接口技术.docx_第9页
第9页 / 共11页
接口技术.docx_第10页
第10页 / 共11页
接口技术.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

接口技术.docx

《接口技术.docx》由会员分享,可在线阅读,更多相关《接口技术.docx(11页珍藏版)》请在冰点文库上搜索。

接口技术.docx

接口技术

 

接口技术

课程设计报告书

 

课程名称:

红绿交通灯

班级:

学号:

姓名:

 

一.实现方法

利用8255可编程接口的A口(PA7-PA0)、B口(PB7-PB0)、C口(PC7-PC0)控制发光二级管(红、绿灯)的L1-L8和开关KK1-KK2,使发光二级管按照十字路口交通灯的规律交替发光,模拟交通信号灯的工作。

发光二级管(LED)显示电路

8个LEDL1-L8,4个红灯、4个绿灯

L=0LED亮;L=LED灭

开关对交通灯的控制

开关KK2=0红灯皆亮;开关KK2=1绿灯皆亮

开关KK1=0启动交通灯的亮灭;开关KK1=1停止交通灯的亮灭(所有发光二级管皆灭)

交通灯亮灭规律参考

南北方向绿灯亮、东西方向红灯亮20秒

南北方向红灯亮、东西方向绿灯亮20秒

重复上述过程

注:

20秒定时由8253控制

二.总体设计思想

通过并行接口芯片8255A和8086计算机的硬件连接,以及通过8253延时的方法,来实现十字路口交通灯的模拟控制。

 

系统原理图示

8255的工作方式

方式0---基本输入输出方式;方式1---选通输入输出方式;

方式2---双向选通输入输出方式。

8255的引脚信号

8255A的引脚如图7.5所示,分为数据线、地址线、读/写控制线、输入/输出端口线和电源线。

D7~D0(databus):

三态、双向数据线,与CPU数据总线连接,用来传送数据。

(chipselect):

片选信号线,低电平有效时,芯片被选中。

A1,A0(portaddress):

地址线,用来选择内部端口。

(read):

读出信号线,低电平有效时,允许数据读出。

(write):

写入信号线,低电平有效时,允许数据写入。

RESET(reset):

复位信号线,高电平有效时,将所有内部寄存器(包括控制寄存器)清0。

PA7~PA0(portA):

A口输入/输出信号线。

PB7~PB0(portB):

B口输入/输出信号线。

PC7~PC0(portC):

C口输入/输出信号线。

VCC:

+5V电源。

GND:

电源地线。

8253的工作原理

8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。

其CLK0~CLK2是计数器0~2的时钟脉冲输入端,GATE0~GATE2是门控脉冲输入端,OUT0~OUT2是输出端。

三.总体框图

CS8253

GATE2

8253CLK2

OUT2

8253

PA0-PA7+5VCS1CS0CLK4KK1KK2KK3

PA0-PA7

PC0

PC1

PC2

PC3

8255CS

8255

PA0-PA7

 

设置数据段

初始化8255

执行功能1

红灯皆亮,绿灯皆灭

 

绿灯皆亮,红灯皆灭

 

执行功能2

南北红灯,东西绿灯,延时20秒

南北绿灯,东西红灯,延时20秒

 

灯全灭

 

4.软件设计

所得结果

1)KK3=1时,KK2=0,红灯全亮,绿灯全灭;KK2=1,红灯全灭,绿灯全亮。

(2)KK3=0时,KK1=0,南北方向红灯全亮,东西方向绿灯全亮,延时20秒,南北方向绿灯全亮,东西方向红灯全亮,延时20秒……不断循环,如果在循环过程中使KK1=0,红灯绿灯全灭。

(3)在程序执行过程中,根据KK3的状态可以即时响应以分别实现KK1和KK2的功能。

datasegment;设置数据段,用端口号代替地址

portaequ04b0h

portbequ04b2h

portcequ04b4h

ptcon8255equ04b6h

port0equ04a0h

port1equ04a2h

port2equ04a4h

ptcon8253equ04a6h

dataends;数据段设置完毕

assumecs:

code

codesegmentpublic

org100h;程序从100h处开始执行

start:

movdx,ptcon8255;初始化8255,方式0,A口输出,C口低4位输入

moval,81h

outdx,al

putin1:

movdx,porta

moval,01010101b;红灯皆亮,绿灯皆灭

outdx,al

then1:

movdx,portc

inal,dx

testal,04h

jnzputin1;检测KK2,KK2=1,则执行putin1;否则顺序执行

movdx,porta

moval,10101010b;绿灯皆亮,红灯皆灭

outdx,al

switch:

movdx,portc

inal,dx

testal,08h;检测kk3,kk3=1,执行then1;kk3=0,执行then2

jnzthen1

putin2:

movdx,porta

moval,0ffh;红灯绿灯皆灭

outdx,al

then2:

movdx,portc

inal,dx

testal,01h;检测kk1,kk1=1,执行putin2;kk1=0,顺序执行

jnzputin2

movdx,porta

moval,10100101b;南北方向绿灯亮、东西方向红灯亮

outdx,al

movcx,200

next1:

calldelay;调用延时程序,延时20秒

loopnext1

movdx,porta

moval,01011010b;南北方向红灯亮、东西方向绿灯亮

outdx,al

movcx,200

next2:

calldelay;调用延时程序,延时20秒

loopnext2

jmpswitch;跳回switch,继续查询KK3状态

delay:

movdx,ptcon8253;初始化8253

moval,0b0h

outdx,al

movax,18750;设置初始值

movdx,port2

outdx,al

moval,ah

outdx,al

wait1:

movdx,portc

inal,dx

testal,08h;程序执行过程中检测kk3状态

jnzthen1

testal,01h;程序执行过程中检测kk1状态

jnzputin2

movdx,portc

inal,dx

testal,02h

jzwait1

ret

codeends

endstart;程序结束

end

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

当前位置:首页 > 解决方案 > 学习计划

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

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