微机接口与技术交通灯带转向灯.docx
- 文档编号:3150547
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:25
- 大小:1.35MB
微机接口与技术交通灯带转向灯.docx
《微机接口与技术交通灯带转向灯.docx》由会员分享,可在线阅读,更多相关《微机接口与技术交通灯带转向灯.docx(25页珍藏版)》请在冰点文库上搜索。
微机接口与技术交通灯带转向灯
目录
一.内容1
二、技术资料2
三.原理7
四、电路图8
五、详细设计9
六.流程图10
七.代码11
八.调试过程及结果15
九.总结:
18
十、答辩19
十一、参考资料21
1.内容
利用8255并行接口控制LED发光二极管的亮灭来模拟十字路口交通灯直行和转向的控制。
设计要求如下:
设有一个十字路口,东西南北方向,初始态为4个路口的红灯全亮。
之后,直行车道东西路口的绿灯亮,南北路口的红灯亮,转向灯东西路口的红灯亮,南北路口的绿灯亮。
延迟一段时间后,直行道东西路口黄灯亮,南北路口红灯亮,转向灯保持不变。
闪烁一段时间后,直行车道东西路口的红灯亮,南北路口的绿灯亮,转向灯东西路口的绿灯亮,南北路口的红灯亮。
延迟一段时间后,东西路口绿灯亮,南北路口黄灯亮,转向灯保持不变,之后,重复上述过程。
二、技术资料
1、74LS138
1)、74138译码器在本实验中的作用:
由于在对8255A写控制字时只有C口可以实现高四位输入,低四位输出,然而集成箱中的接口不够多,因此通过74138译码器实现动态的设置到计时
2)、74138译码器的功能分析:
图一、74138译码器的引脚排列图和逻辑符号
表1-3:
74138译码器真值表
输入
输出
S1S1+S3A2A1A0
Y0Y1Y2Y3Y4Y5Y6Y7
10000
01111111
10001
10111111
10010
11011111
10011
11101111
10100
11110111
10101
11111011
10110
11111101
10111
01111110
0dddd
11111111
d10dd
11111111
2、8255A
1)简介
8255是Intel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。
其各口功能可由软件选择,使用灵活,通用性强。
8255可作为单片机与多种外设连接时的中间接口电路。
图二、8255A
8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。
同时必须具有与外设连接的接口A、B、C口。
由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:
与CPU连接部分、与外设连接部分、控制部分。
1)与CPU连接部分
根据定义,8255能并行传送8位数据,所以其数据线为8根D0~D7。
由于8255具有3个通道A、B、C,所以只要两根地址线就能寻址A、B、C口及控制寄存器,故地址线为两根A0~A1。
此外CPU要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。
各信号的引脚编号如下:
(1)数据总线DB:
编号为D0~D7,用于8255与CPU传送8位数据。
(2)地址总线AB:
编号为A0~A1,用于选择A、B、C口与控制寄存器。
(3)控制总线CB:
片选信号、复位信号RST、写信号、读信号。
当CPU要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操作。
2)与外设接口部分
根据定义,8255有3个通道A、B、C与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。
各通道的引脚编号如下:
(1)A口:
编号为PA0~PA7,用于8255向外设输入输出8位并行数据。
图三、8255引脚图
(2)B口:
编号为PB0~PB7,用于8255向外设输入输出8位并行数据。
(3)C口:
编号为PC0~PC7,用于8255向外设输入输出8位并行数据,当8255工作于应答I/O方式时,C口用于应答信号的通信。
3)控制器
8255将3个通道分为两组,即PA0~PA7与PC4~PC7组成A组,PB0~PB7与PC0~PC3组成B组。
如图7.5所示,相应的控制器也分为A组控制器与B组控制器,各组控制器的作用如下:
(1)A组控制器:
控制A口与上C口的输入与输出。
(2)B组控制器:
控制B口与下C口的输入与输出。
2)特性
(1)一个并行输入/输出的LSI芯片,多功能的I/O器件,可作为CPU总线与外围的接口.
(2)具有24个可编程设置的I/O口,即3组8位的I/O口为PA口,PB口和PC口.它们又可分为两组12位的I/O口,A组包括A口及C口(高4位,PC4~PC7),B组包括B口及C口(低4位,PC0~PC3).A组可设置为基本的I/O口,闪控(STROBE)的I/O闪控式,双向I/O3种模式;B组只能设置为基本I/O或闪控式I/O两种模式,而这些操作模式完全由控制寄存器的控制字决定.
3)引脚功能
RESET:
复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输.
RD:
读信号线,当这个输入引脚为低跳变沿时,即/RD产生一个低脉冲且/CS=0时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低跳变沿时,即/WR产生一个低脉冲且/CS=0时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
4)、8255A方式选择控制字说明:
8255A工作方式:
(1)工作方式0:
这是8255A中各端口的基本输入/输出方式。
它只完成简单的并行输入/输出操作,CPU可从指定端口输入信息,也可向指定端口输出信息,如果三个端口均处于工作方式0,则可由工作方式控制字定义16种工作方式的组合
(2)工作方式1:
被称作选通输入/输出方式。
在这种工作方式下,数据输入/输出操作要在选通信号控制下完成。
(3)工作方式2:
被称作带选通的双向传送方式。
8255A中只允许端口A处于工作方式2,可用来在两台处理机之间实现双向并行通信。
其有关的控制信号由端口C提供,并可向CPU发出中断请求信号。
控制字格式如图四:
图四:
8255A芯片的控制字格式
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
工作于三种方式中的任何一种;
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
不能工作于方式二;
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
'不能工作于方式一或二。
A1,A0:
地址选择线,用来选择8255的PA口,PB口,PC口和控制寄存器.
当A1=0,A0=0时,PA口被选择;
当A1=0,A0=1时,PB口被选择;
当A1=1,A0=0时,PC口被选择;
当A1=1.A0=1时,控制寄存器被选择.
5)、8255A技术参数:
主要参数说明:
8255A工作最大电流为120MA,VCC=-5V~+5V,I(DAR)工作电流最大为4MA。
8255的输出电压不高,连接到LED时,最好加入一个驱动器起到电流放大的作用,其具体参数值说明如表3-1。
表2、8255A技术参数说明
8255A技术参数
测试条件
规范值
单位
大
小
输入低电平电压VIL
0.8
-0.5
V
输入高电平电压VIH
VCC
2.0
V
输出低电平电压VOL(数据端口)
IOL=2.5MA
0.45
V
输出低电平电压VOL(外围端口)
IOL=1.7MA
0.45
V
输出高电平电压VOH(数据端口)
IOR=-400MA
2.4
V
输出高电平电压VOH(外围端口)
IOH=-200MA
2.4
V
达林顿驱动电流IOAR
-4.0
-1.0
mA
电源电流 ICC
120
mA
输入负载电流 IIL
IIN=0~VCC
I/O
mA
输出浮动电流 IOF
VOR=0.45~VCC
I/O
mA
6)、8255A的逻辑图
图五、8255A内部逻辑图
三.原理
1)、8255A在本实验中的作用:
通过8255A的三个I/O端口A口、C口、控制口与红、绿、黄二极管连接起来控制交通灯的规律性变化。
2)、8255A的功能分析:
PA、PC口均工作在方式0状态。
:
PA0、PA3接红灯L8、L11,PA1接绿灯L9;PA2接黄灯L10,PC0~PC1作为LED灯的低八位。
3)、8255A工作方式0说明:
方式0的工作特点:
这种方式通常不用联络信号,不使用中断,通道中的每一个都有可以由程序选定作为输入或输出。
方式0的使用场合:
同步传送是在外设控制过程的各种动作时间为固定,且已知的条件下使用的。
因此,传送中不要应答信号。
输入时,执行程序只要给出IN指令;而输出时,也只给出OUT指令,就能实现数据的输入或输出。
优点是程序简单,接口的硬件开销小。
四、电路图
图六、8255A引脚图
图七、交通灯(直)
图八、交通灯(转向)
5、详细设计
1)方式控制字
D7D6D5D4D3D2D1D0控制字
1000000080H
2)直行车道
inport1equ0ff00h-280h
inport1aequinport1+288h
inport1cequinport1+28ah
inport1ctequinport1+28bh
3)转向车道
inportequ0ff00h-280h
inportaequinport+280h
inportcequinport+282h
inportctequinport+283h
4)直行车道状态字
L11L10L9L8L7L6L5L4L3L2L1L0状态字状态
1001001001000924H全红
0010011001000264H东西绿南北红
01001010010004A4H东西黄南北红
1001000010010909H东西红南北绿
1001000100100912H东西红南北黄
5)转向状态字
L11L10L9L8L7L6L5L4L3L2L1L0状态字状态
1001001001000924H全红
1001000010010909H东西红南北绿
0010011001000264H东西绿南北红
六.流程图
七.代码
inportequ0ff00h-280h
inportaequinport+280h
inportcequinport+282h
inportctequinport+283h
inport1equ0ff00h-280h
inport1aequinport1+288h
inport1cequinport1+28ah
inport1ctequinport1+28bh
codesegment
assumecs:
code
start:
xorax,ax
xordx,dx
moval,80h
movdx,inportct
outdx,al
moval,24h;全红
movdx,inportc
outdx,al
moval,09h
movdx,inporta
outdx,al
calldelay
moval,80h
movdx,inport1ct
outdx,al
moval,24h;全红
movdx,inport1c
outdx,al
moval,09h
movdx,inport1a
outdx,al
calldelay
lop:
moval,64h;东西绿,南北红
movdx,inport1c
outdx,al
moval,02h
movdx,inport1a
outdx,al
calldelay2
moval,09h;东西红,南北绿
movdx,inportc
outdx,al
moval,09h
movdx,inporta
outdx,al
calldelay
moval,0a4h;东西黄,南北红
movdx,inport1c
outdx,al
moval,04h
movdx,inport1a
outdx,al
calldelay2
moval,09h;东西红,南北绿
movdx,inportc
outdx,al
moval,09h
movdx,inporta
outdx,al
calldelay
moval,09h;东西红,南北绿
movdx,inport1c
outdx,al
moval,09h
movdx,inport1a
outdx,al
calldelay2
moval,64h;东西绿,南北红
movdx,inportc
outdx,al
moval,02h
movdx,inporta
outdx,al
calldelay
moval,12h;东西红,南北黄
movdx,inport1c
outdx,al
moval,09h
movdx,inport1a
outdx,al
calldelay2
moval,64h;东西绿,南北红
movdx,inportc
outdx,al
moval,02h
movdx,inporta
outdx,al
calldelay
jmplop
delayprocnear
movbp,0aaaah
s2:
movbx,0ffffh
s1:
decbx
jnzs1
decbp
jnzs2
ret
delayendp
delay2procnear
movbp,1000h
a2:
movbx,0ffffh
a1:
decbx
jnza1
decbp
jnza2
ret
delay2endp
codeends
endstart
八.调试过程及结果
图九、全红
图十、直走:
东西绿,南北红。
转向:
东西红,南北绿。
图十一、直走:
东西黄,南北红。
转向:
东西红,南北绿。
图十二、直走:
东西红,南北绿。
转向:
东西绿,南北红。
图十三、直走:
东西红,南北黄。
转向:
东西绿,南北红。
九.总结:
通过交通灯系统的模拟实验设计,我对微型计算机原理与接口技术的知识有更好的学习,加深了对芯片8255A的理解,对8255A芯片的A口、C口、CT口的初始化设计有了更好的了解,同时在对8255A芯片的工作方式选择,有了更好的认识选择。
通过实验的硬件连接,使我认识到实验时独自动手能力的重要性,也使我认识到我的动手能力的欠缺,也使我认识到在以后的学习和其他工作时应对独自动手能力的培养。
在课本上学得都是些理论知识,通过本次的实际操作,更加锻炼了我对所学知识的认知应用能力,对8255A芯片的编程的更为直观的应用理解。
经过一个半星期的设计和操作,我认为此程序段虽然说比较通俗易懂,但这也存着很多的不足,经过对程序和设计的认真思考,我对控制程序做了如下的改进设想:
对东西和南北的绿灯倒计时初值重装时可以采用同一个子程序,一个修改思想,是在初值重装时可以利用小键盘来进行手动设置,另一个改进思想是在控制程序中加入紧急情况的处理程序,既是要在紧急情况发生时采用中断来完成,但是由于我的能力有限,在本次课程设计并没有实现这些功能。
在设计结束之后,我也对程序进行了认真的思考。
我认为此程序段虽然说比较通俗易懂,但这也存着很多的不足,经过对程序和设计的认真思考,我对控制程序做了如下的改进设想:
在控制程序中加入紧急情况的处理程序,既是要在紧急情况发生时采用中断来完成,但是由于我的能力有限,在本次课程设计并没有实现这些功能。
不过通过本次课程设计,我对单片机不再感觉是那么难懂,和对程序控制硬件的理解,此次实验不但提高了我的实践能力和理论水平,而且对于我认识掌握各种操作技巧具有重大意义,使我的综合动手能力得到了很大的提高!
经过课程设计,发现自己以前很多地方不足。
我认为做实验,首先实验态度要端正,正确对待任何一个实验,有耐心,一步一步做下去,不断完善,切不可冒进,编程更需要脚踏实地,逐个子程序的调试。
在这方面学校提供了良好的条件,遇到程序问题时我可以采用单步调试,查看寄存器里的数值,找出到底是哪步出现了问题,继而解决问题,实现预期功能。
十、答辩
问题1:
不允许左转斜穿的设计。
图十四、单行道
答:
如图十四所示,不允许左转斜穿就只能直走和右转。
就四条两两相交的单行道而言,共四种状态。
第一种状态为直行时南北方向为红灯,东西方向为绿灯,右转时南北方向为绿灯,东西方向为红灯;第二种状态为直行时南北方向为黄灯,东西方向为绿灯,右转时南北方向为绿灯,东西方向为红灯;第三种状态为直行时南北方向为绿灯,东西方向为红灯,右转时南北方向为红灯,东西方向为绿灯;第四种状态为直行时南北方向为黄灯,东西方向为红灯,右转时南北方向为红灯,东西方向为绿灯。
问题2:
硬件计时的设计。
答:
硬件的延时设计我们可以通过8253芯片来编写中断计时程序来完成。
8253的方式控制字:
D7D6D5D4D3D2D1D0
SC1
SC0
RW1
RW0
M2
M1
M0
BCD
00计数器000计数器锁存读命令000方式0D0=0按二进制格式计数
01计数器101只读/写低字节001方式1D0=1按BCD码格式计数
10计数器210只读/写高字节*10方式2
11非法11先读/写低字节*11方式3
,后读/写高字节100方式4
101方式5
硬件电路设计如下:
各芯片主要管脚的功能如下:
8255A
PC0:
和8253的OUT0端相与后得到黄灯信号,其中1表示亮0表示暗
PC1:
表示绿灯信号,其中1表示亮,0表示暗
PC2:
表示红灯信号,其中1表示亮,0表示暗
PC3:
和8253GATE1端相连,为时器1的门控型号
PC4:
和8253GATE2端相连,为时器2的门控型号
PA0~PA7,PB0~PB7:
可接两个8段LED显示器,用于显示当前等亮时间
8253:
定时器0:
输入信号设为10KHZ,工作在方式3,输出为1HZ方波,OUT0和PC0相与得到黄灯信号。
定时器1:
输入信号为OUT0,工作站方式2,计数初值为30,实现延迟30S后产生中断。
控制字为:
01010100
定时器2:
输入信号为OUT0,工作站方式2,计数初值为3,实现延迟3S后产生中断。
控制字为:
10010100
十一、参考资料
《微机原理与接口技术(第二版)》------------清华大学出版社牟琦主编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 接口 技术 交通灯 转向