交通灯实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华北电力大学
实验报告|
|
实验名称交通灯实验
课程名称微机原理及应用
|
|
一、实验目的及要求
1.熟练掌握8255,8253,8259的使用
2.使用8255,8253,8259实现交通灯系统
二、实验设备
Lab6000微机实验系统
三、实验内容
交通灯:南北红灯30S,东西绿灯25秒后黄闪5次共5S。

然后东西,南北互换
计时器:南北计时30S,东西计时25S后交替
特殊情况按钮:第一次按下全体红灯,第二次按下恢复
四、实验步骤
硬件连接:
8086设置:
设置program loading segment为1FFFH,否则非规范装入中断向量后会导致data内的内容改变
片选信号:
Y0:8000H接8255
Y1:9000H未使用
Y2:A000H接8253
Y3:B000H接74ls273
74ls273设计:
F0~F5接交通灯,主要用来点亮交通灯
8253设计:
初始化输出1HZ的方波用于计时,OUT1接8255PA0口初始化程序:
MOV AL,37H
MOV DX,X8253
ADC DX,06H
OUT DX,AL
MOV AL,00H
MOV DX,X8253
OUT DX,AL
MOV AL,10H
OUT DX,AL;CSH8253 0
MOV AL,77H
MOV DX,X8253
ADC DX,06H
OUT DX,AL
MOV AL,00H
MOV DX,X8253
INC DX
INC DX
OUT DX,AL
MOV AL,10H
OUT DX,AL;CSH8253 1
8255设计:
PA入,PB出,PC出,PA用于读取时钟信号,PB用于输出数码管数字信号,PC 用于数码管选择信号
初始化程序:
X8255 EQU 8000H
MOV AL,90H
MOV DX,X8255
ADC DX,06H
OUT DX,AL;csh8255
数码管设计:
8255的PB用于输出数码管数字信号,8255的PC用于数码管选择信号
整体程序思路:
交通灯工六个状态分别为,北红东绿,北红东黄,北红东灭,北绿东红,北黄东红,北灭东红。

其中黄灯闪5次为5S,故绿灯倒计时比红灯少5秒。

为了方便数码管输出,依次将所有情况都放入DATA中读取直接使用,这种办法特点是简单,但是如果要改变设计好的时间就非常难。

DATA SEGMENT
DEN DB 33H,2BH,3BH,1EH,1DH,1FH;红绿,红黄,红灭,绿红,黄红,灭红 SHU1 DB
3FH,6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH,6FH,7FH,07H,7DH,6DH,66H,4 FH,5BH,06H,3FH,6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH,3FH,3FH,3FH,3F H,3FH ;存储个位数字098765432109876543210987654321000000
SHU2 DB
4FH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,06H,06H,06H,06H,06H,06H,0 6H,06H,06H,06H,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3F H,3FH ;存储十位数字322222222221111111111000000000000000
DATA ENDS
X8255 EQU 8000H
X8259 EQU 9000H
X8253 EQU 0A000H
XSMG EQU 8004H
SSMG EQU 8002H
XDEN EQU 0B000H
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
DELAY PROC NEAR
PUSH CX
MOV CX,000EH
DELA1:LOOP DELA1
POP CX
RET
DELAY ENDP ;短延迟函数,用于数码管点亮START: ;下面程序均为初始化前面已经叙述PUSH AX
PUSH BX
PUSH DS
MOV AX,0
MOV DS,AX
MOV BX,02H*4
MOV AX,OFFSET INTP1
MOV [BX],AX
INC BX
INC BX
MOV AX,SEG INTP1
MOV [BX],AX;非规范装入中断
POP DS
POP BX
POP AX
MOV AX,DATA
MOV DS,AX
MOV AX,SEG DEN
MOV DS,AX
MOV AL,90H
MOV DX,X8255
ADC DX,06H
OUT DX,AL;csh8255
MOV AL,37H
MOV DX,X8253
ADC DX,06H
OUT DX,AL
MOV AL,00H
MOV DX,X8253
OUT DX,AL
MOV AL,10H
OUT DX,AL;CSH8253 0
MOV AL,77H
MOV DX,X8253
ADC DX,06H
OUT DX,AL
MOV AL,00H
MOV DX,X8253
INC DX
INC DX
OUT DX,AL
MOV AL,10H
OUT DX,AL;CSH8253 1
MOV AL,1BH
MOV DX,XDEN
OUT DX,AL;CSH
;初始化结束
MOV CX,0000H
MOV AH,00H
MOV SI,0000H
MOV DI,0005H;CSH;初始化要用到的寄存器
完整主程序
MAIN:
CMP AH,10H
JL GUO
MOV AL,1BH
MOV DX,XDEN
OUT DX,AL
JMP MAIN
GUO:
MOV DX,X8255
IN AL,DX
MOV AH,AL WUMS:
MOV BX,SEG SHU1 MOV DS,BX
MOV BX,OFFSET SHU1 MOV AL,[BX+SI] MOV DX,SSMG
OUT DX,AL
MOV AL,0DH
MOV DX,XSMG
OUT DX,AL
CALL DELAY
MOV DX,XSMG
MOV AL,0FH
OUT DX,AL;1
MOV BX,OFFSET SHU2 MOV AL,[BX+SI] MOV DX,SSMG
OUT DX,AL
MOV AL,0EH
MOV DX,XSMG
OUT DX,AL
CALL DELAY
MOV DX,XSMG
MOV AL,0FH
OUT DX,AL;2
MOV BX,OFFSET SHU1 MOV AL,[BX+DI] MOV DX,SSMG
OUT DX,AL
MOV AL,07H
MOV DX,XSMG
OUT DX,AL
CALL DELAY
MOV DX,XSMG
MOV AL,0FH
OUT DX,AL;3
MOV BX,OFFSET SHU2 MOV AL,[BX+DI] MOV DX,SSMG
OUT DX,AL
MOV AL,0BH
MOV DX,XSMG
OUT DX,AL
CALL DELAY
MOV DX,XSMG
MOV AL,0FH
OUT DX,AL;4
;SHUMAGUAN
MOV DX,X8255
IN AL,DX
CMP AL,AH
JZ WUMS
INC CL
INC CH
CMP CL,2
JNL SHUMA
JMP PAN0 SHUMA:
MOV CL,0
INC SI
INC DI
PAN0:
CMP CH,50
JA PAN1
MOV BX,OFFSET DEN MOV AL,[BX]
MOV DX,XDEN
OUT DX,AL
;DEN
JMP MAIN
PAN1:
CMP CH,60
MOV DX,X8255
IN AL,DX
CMP AL,01H
JL PAN2
MOV BX,OFFSET DEN MOV AL,[BX+1] MOV DX,XDEN
OUT DX,AL
;HUANG
JMP MAIN
PAN2:
MOV BX,OFFSET DEN MOV AL,[BX+2] MOV DX,XDEN
OUT DX,AL
;MIE
JMP MAIN
PAN3:
CMP CH,110
JA PAN4
MOV BX,OFFSET DEN MOV AL,[BX+3] MOV DX,XDEN
OUT DX,AL
;DEN
CMP DI,30
JA BIAN
JMP MAIN
BIAN:
MOV SI,0005H MOV DI,0000H
JMP MAIN
PAN4:
CMP CH,120
JA WAN
MOV DX,X8255
IN AL,DX
CMP AL,01H
JL PAN5
MOV BX,OFFSET DEN MOV AL,[BX+4] MOV DX,XDEN
OUT DX,AL
JMP MAIN
PAN5:
MOV BX,OFFSET DEN
MOV AL,[BX+5]
MOV DX,XDEN
OUT DX,AL
;MIE
JMP MAIN
WAN:
MOV CH,0
MOV SI,0000H
MOV DI,0005H
JMP MAIN
;主函数结束
INTP1 PROC
CMP AH,10H;判断是否第一次进入NMI
JL KAI
MOV AH,00H
JMP CHUQU ;不是第一次进入另AH=0
KAI:
MOV AH,10H;是第一次进入另AH=10
CHUQU:
IRET
INTP1 ENDP
CODE ENDS
END START
五、实验结果:
8253产生一个1HZ的方波,每过0.5秒高低电平转换一次,程序中首先判断是否进入了一次中断,是则全红灯并继续判断,否则读取8255A口数据,判断是否有改变,没有则输出此时的数码管数字,并继续判断,否则记一次,并输出当时红绿灯情况。

当记了2次时过去1秒,改变数码管数字,继续判断。

实验结果完全符合实验要求。

相关文档
最新文档