红外控制交通灯的设计1Word格式.docx
- 文档编号:18696260
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:25
- 大小:109.03KB
红外控制交通灯的设计1Word格式.docx
《红外控制交通灯的设计1Word格式.docx》由会员分享,可在线阅读,更多相关《红外控制交通灯的设计1Word格式.docx(25页珍藏版)》请在冰豆网上搜索。
传输距离远,使用不方便,但传输速度慢,降低成本,
初始化特点
8255A直接位清0/置1功能简化了接口控制
8251在初始化时,必须重新设置模式寄存器的格式.
表18255A与8251A
(2)软件部分
首先,根据硬件需求采用8255A、8251A和8253芯片,为实现对通信和交通灯的控制,采用汇编语言,分别对8255A、8251A和8253进行初始化设置。
然后,程序查询8255A的PC口输入的开关信号,决定8251向红外通讯设备发送的红外编码,即0、1、2、3四种。
最后,程序查询8251的接收缓冲区内的红外编码是多少,根据所得到的编码,调用相应模式子程序,控制交通灯两种模式的转换及交通灯的亮灭规律。
二、硬件设计
1.选择芯片8251A
(1)8251A在本实验中的作用:
通过8251A的TxD向红外通讯设备发送信号,再通过8251A的RxD接收信号,根据8251接收到的红外编码选择交通灯的模式。
(2)8251A的功能分析:
1)用于异步传送,5~8bit/字符,接收/发送时钟频率为通信波特率的16倍
2)产生2个停止位
3)波特率:
DC-19.2Kbps
4)全双工,双缓冲发送和接收器
5)具有奇偶、帧、溢出出错检测电路
CS:
片选信号,低电平有效;
RxC、TxC:
收发时钟;
C/D:
命令/数据;
RXD、TXD:
串行收发。
CLK:
时钟。
图18251A
2.选择芯片8255A
(1)8255A在本实验中的作用:
通过8255A的A口与发光二极管相连,控制8个发光二极管的亮灭规律,模拟交通灯的设计。
通过8255A的C口PC0、PC1接收开关信号,决定8251A向红外通讯设备发送的红外编码。
(2)8255A的功能分析:
PA口工作在方式0输出状态,PC口工作在输入状态:
PA0-PA8接8个发光二极管,PC口接逻辑电平开关。
在使用8255A前首先要对它进行初始化。
片选信号,低电平有效。
IO/M:
高电平,选择I/O口;
低电平,选择数据RAM。
JP75:
PB口;
JP76:
PA口;
JP79:
PC口。
图28255A
方式0的工作特点:
这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由程序选定作为输入或输出。
其功能为:
两个8位通道:
通道A、B。
两个四位通道:
通道C高4位和低四位;
任何一个通道可以作输入/输出;
输出是锁存的;
输入是不锁存的;
在方式0时各个通道的输入/输出可有16种不同的组合。
方式0的使用场合:
同步传送是在外设控制过程的各种动作时间为固定,且已知的条件下使用的。
因此,传送中不要应答信号。
输入时,执行程序只要给出IN指令;
而输出时,也只给出OUT指令,就能实现数据的输入或输出。
优点是程序简单,接口的硬件开销小。
8255A方式选择控制字说明:
控制字格式如下:
图38255A控制字格式
D7=1工作方式控制标志。
D5D6组合设定A口工作方式:
00~方式0、01~方式1、10/11~方式2。
D4设定A口的输入/输出,D4=1输入,D4=0输出。
D3是C口高位输入/输出选择,D3=1输入,D3=0输出。
D2是B口工作方式选择,D2=1方式1;
D2=0方式0。
D1是B口输入/输出选择D1=1输入D1=0输出。
D0设定C口低位输入/输出,D0=1输入,D0=0输出。
(3)8255A技术参数:
参数名称
符号
测试条件
最大规范值
最小规范值
输入低电平电压
VIL
0.8V
-0.5V
输入高电平电压
VIH
Vcc
2.0V
(数据总线)
VOL
IOL=2.5MA
0.45V
(外部端口)
IOL=1.7MA
VOH
IOH=-400MA
2.4V
IOH=-200MA
达林顿驱动电流
IDAR
REXT=750
VEXT=1.5V
-0.4MA
1.0MA
电源电流
ICC
120MA
输入负载电流
IIL
I=Vcc—0V
+10MA
-10MA
输出浮动电流
IOFL
Vout=Vcc--0
表28255A技术参数表
表2的主要参数说明:
8255A工作最大电流为120MA,VCC=-5V~+5V,I(DAR)工作电流最大为4MA。
图48255A内部结构
3.选择芯片8253
(1)8253在本实验中的作用:
8253的主要功能是作分频器提供8251的收发时钟,这样在红外编码的时候不用调用delay子程序;
8251是按位进行传输的,有了脉冲时钟,只要设定脉冲时钟的频率,这样每位收发的频率控制就简单多了。
(2)8253功能分析:
本实验中,运用8253的工作方式3,这种方式下,可以从OUT得到对称的方波输出,并且利用计数值达到对时钟脉冲的分频。
当装入的计数值N为偶数时,则前N/2计数过程中,OUT为高电平;
后N/2计数过程中OUT为低电平,计数过程连续进行。
若N为奇数,则(N+1)/2计数过程中,OUT保持高电平;
而(N-1)/2计数期间,OUT为低电平。
A0、A1:
地址信号;
图58253引脚接线图
(3)8253A的技术参数:
VIA
Vcc+0.5V
2.2V
输出低电平电压
Vin=Vcc-0V
0.45V
输出高电平电压
Vout=Vcc-0.45V
+/-10V
输出浮动漏电流
Icc
140V
表2 8253A的计数参数
8253A主要参数分析:
输入低电压的范围是-0.5V~0.8V,输出低电压的范围0.45V~2.4V,输入高电压的范围是2.2V~Vcc+0.5V。
而测试条件均为Vin=Vcc-0V,Vout=Vcc-0.45V。
4.选择红外通信设备
(1)红外通信在本实验中的作用:
通过红外发送管,发出载波信号,根据接收到的载波信号,获得红外编码,实现自发自收,程序再根据发回的红外编码控制交通灯模式。
(2)红外通信功能分析:
红外通信,即以红外线作为通信载体,通过红外光在空中的传播来传输数据的通信方式,它由发射端和接收端来完成。
在发射端,发送的数字信号经过适当的调制编码后,送入电光变换电路,经红外发射管转变为红外光脉冲发射到空中;
在接收端,红外接收器对接收到的红外光脉冲进行光电变换,解调译码后恢复出原信号。
红外发射端发送数据时,是将待发送的二进制数据调制成一系列的脉冲信号后发射出去。
红外载波为频率38KHz(可调)的方波,采用脉宽调制PWM方式发送,通过待发送二进制数据的“0”或“1”控制两个脉冲之间的时间间隔,及PWM的占空比。
红外载波既可以通过外围硬件电路实现,也可以使用CPU内部的定时器的PWM功能实现。
红外接收端在收到38KHz的载波信号时,会输出低电平,否则输出高电平,从而可以将“时断时续”的红外光信号解调成一定周期的连续方波信号,经处理,便可以恢复出原数据信号。
IN:
串行数据输入
OUT:
串行数据输出
CLK:
载波输入,可接31250(B2区)频率输出
图6红外通讯原理图
信号调制如下图:
图7信号调制波形
先发一段前导码,以检验这组码是否为想要的码。
前导码由一个9ms的高电平和一个4ms的低电平组成。
然后再发32位数据代码,其中高电平为0.5ms,低电平为0.5ms的一个周期为代码“0”;
高电平为0.5ms,低电平为1.5ms的一个周期为代码“1”
HS0038B的典型信号传输关系如下图
图8HS0038B的信号传输
5.选择发光二极管
(1)发光二极管在本实验中的作用:
本实验中用发光二极管模拟红绿交通灯的亮灭规律及模式转换。
(2)功能分析:
发光二极管采用共阳极接线法,当8255A的PA口相应端输出高电平时,发光二极管不导通,不发光;
当输出低电平时,发光二极管导通,发光。
因此,8255A的PA口输出控制着交通灯亮灭的规律。
(3)发光二极管的控制逻辑:
模式一:
单行线模式,8个发光二极管的编码设置如下。
图98个发光二极管的设定
二进制编码
编码含义
01111101
东西方向直行绿灯亮,南北方向红灯亮
11111101
东西方向绿灯闪烁,南北方向红灯亮
10111101
东西方向黄灯亮,南北方向红灯亮
11010111
东西方向红灯亮,南北方向绿灯亮
11011111
东西方向红灯亮,南北方向绿灯闪烁
11011011
东西方向红灯亮,南北方向黄灯亮
表3模式一的编码设置
模式二:
双行线模式,8个发光二极管编码如下。
图108个发光二极管的设定
编码
01101100
东西方向直行绿灯亮,左转红灯亮;
南北方向直行红灯亮,左转红灯亮
01111111
方向直行绿灯亮,左转红灯闪烁;
南北方向直行红灯闪烁,左转红灯闪烁
10011100
东西方向直行红灯亮,左转绿灯亮;
10111111
东西方向直行红灯闪烁,左转绿灯亮;
南北方向直行绿灯闪烁,左转红灯闪烁
11000110
东西方向直行红灯亮,左转红灯亮;
南北方向直行绿灯亮,左转红灯亮
11110111
东西方向直行红灯闪烁,左转红灯闪烁;
南北方向直行绿灯亮,左转红灯闪烁
11001001
南北方向直行红灯亮,左转绿灯亮
11111011
南北方向直行红灯闪烁,左转绿灯亮
表4模式二的编码设置
图11发光二极管共阳极接线法
6.选择逻辑电平开关
(1)逻辑电平开关在本实验中的作用:
逻辑电平开关在本设计中作为输入器件,通过其输入,决定8251A向红外通讯发送的编码,进而控制交通灯模式的转换。
它与8255A的PC口相连。
(2)逻辑电平开关的功能分析
逻辑电平开关可作为数值的输入器件,也可以表示逻辑值。
具体的是:
当开关拨上去时为输出+5V,代表的是逻辑值“1”,反之,当开关拨下来的时后输出的为0V,此时代表的逻辑值为“0”。
PC0
PC1
模式
交通灯间隔
红外编码
模式一
20秒
1
40秒
2
模式二
3
7.硬件总逻辑图及其说明:
8086CPU的数据总线和8255A、8251A与8253的数据总线相连,8086的读写控制分别和8255A的读写控制相连。
译码器和8255A、8251A与8253的片选CS相连。
8255A的PA0-PA8接8个发光二极管,PC0-PC8与逻辑电平开关相连。
8251A的TXD与RXD分别和红外通讯的IN与OUT端相连,8253的OUT0端与8251A的TXC和RXC相连。
图12程序硬件原理图
三、控制程序设计
1.程序流程图:
2.程序设计思路:
编写程序,查询来自8255A的PC0、PC1端口输入的开关信号,确定8251A向红外通讯设备发送的红外编码(在此为了简化编码,发送的红外编码就是PC口的编码值),红外通讯设备将这一编码进行自发自收后,发回给8251A,通过程序判断8251A接收红外通讯发回的编码,根据这个编码,调用模式子程序(MODE1和MODE2),并设置红绿灯的亮灭时间。
模式子程序调用一次后,主程序将会再次查询开关信号,因此,改变开关0或1电平可以不断进行交通灯的模式转换。
3.控制程序源代码:
.MODELTINY
PCIBAR3EQU1CH;
8位I/O空间基地址(它就是实验仪的基地址,也为DMA&
32BITRAM板卡上的8237提供基地址)
Vendor_IDEQU10EBH;
厂商ID号
Device_IDEQU8376;
设备ID号
.STACK100
.DATA
IO_Bit8_BaseAddressDW?
msg0DB'
BIOS不支持访问PCI$'
msg1DB'
找不到StarPCI9052板卡$'
msg2DB'
读8位I/O空间基地址时出错$'
msg3DB'
红外编码未收到$'
PA_ADDDW00F0H;
8255PA口偏移量
PB_ADDDW00F1H;
8255PB口偏移量
PC_ADDDW00F2H;
8255PC口偏移量
COM_ADDDW00F3H;
8255控制口偏移(CS1:
0F0H--0FFH)
CTL_8251DW00E1H;
8251控制字或状态字(CS2:
0E0H--0EFH)
DATA_8251DW00E0H;
8251读写数据
W_8253_T0DW00D0H;
计数器0地址
W_8253_CDW00D3H;
控制字(CS3:
0D0H--0DFH)
LED_Data1DB01111101B;
东西直行绿灯,南北红灯
DB11111101B;
东西绿灯闪烁,南北红灯
DB10111101B;
东西黄灯亮,南北红灯
DB11010111B;
东西红灯,南北直行绿灯
DB11011111B;
东西红灯,南北绿灯闪烁
DB11011011B;
东西红灯,南北黄灯亮
LED_Data2DB01101100B;
DB01111111B;
DB10011100B;
DB10111111B;
DB11000110B;
DB11110111B;
DB11001001B;
DB11111011B;
.CODE
START:
MOVAX,@DATA
MOVDS,AX
NOP
CALLInitPCI
CALLModifyAddress;
根据PCI提供的基地址,将偏移地址转化为实地址
CALLINIT_8255
CALLINIT_8253
CALLINIT_8251
MOVDX,PA_ADD;
灯全熄灭
MOVAL,0ffH
OUTDX,AL
NONE:
MOVDX,PC_ADD;
判断输入的开关信号(高电平或低电平)
INAL,DX
CALLSendout
CALLReceivein
CMPAL,0
JZL1
CMPAL,2
JZL2
CMPAL,1
JZL4
CMPAL,3
JZL5
JMPLOST
L1:
MOVsi,20
JMPL_MODE1
L2:
MOVsi,40
L_MODE1:
CALLMODE1
JMPNONE
L4:
JMPL_MODE2
L5:
MOVsi,40
L_MODE2:
CALLMODE2
LOST:
LEADI,msg3
MOVAH,9
INT21H
;
-------------------------------------
SendoutPROCNEAR
PUSHAX
MOVDX,CTL_8251
Sendout1:
INAL,DX
TESTAL,01H;
允许数据发送吗?
JZSendout1
DECDX;
发送
POPAX
OUTDX,AL;
发送1给红外通讯
RET
SendoutENDP
ReceiveinPROCNEAR
Receivein1:
TESTAL,02H
JZReceivein1;
有数据吗?
DECDX
ReceiveinENDP
MODE1PROCNEAR
MOVDX,PA_ADD
MOVBX,offsetLED_Data1
MOVAL,0
XLAT
东西绿灯,南北红灯
movah,1
CALLsub_mode
calldl_3s
MOVAL,3;
东西红灯,南北绿灯
OUTDX,AL
movah,4
callsub_mode
calldl_3s
RET
MODE1ENDP
MODE2PROCNEAR
MOVBX,offsetLED_Data2
movah,1
callsub_mode
movah,3
movah,5
movah,7
callsub_mode1
MODE2ENDP
sub_modeprocnear;
子程序,入口参数AH
INCAH
MOVAL,AH
XLAT
OUTDX,AL
ret
endp
sub_mode1procnear
MOVCX,SI
sub_MODE_1:
MOVAL,ah
CALLDL500ms
decah
MOVAL,ah
incah
LOOPsub_MODE_1
INIT_8255PROCNEAR
MOVDX,COM_ADD
MOVAL,89h;
A口方式0,输出,C口输入
INIT_8255ENDP
INIT_8253PROCNEAR
MOVDX,W_8253_C
MOVAL,37H;
定时器0,方式3
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 红外 控制 交通灯 设计