华北电力大学
实 验 报 告
| |
实验名称 交通灯实验
课程名称 微机原理及应用
| |
一、 实验目的及要求
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,4FH,5BH,06H,3FH,6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH,3FH,3FH,3FH,3FH,3FH ;存储个位数字[***********][***********] SHU2 DB
4FH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,06H,06H,06H,06H,06H,06H,06H,06H,06H,06H,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH ;存储十位数字[***********][***********] 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 JA PAN3
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
;HUANG
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秒,改变数码管数字,继续判断。实验结果完全符合实验要求。
华北电力大学
实 验 报 告
| |
实验名称 交通灯实验
课程名称 微机原理及应用
| |
一、 实验目的及要求
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,4FH,5BH,06H,3FH,6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH,3FH,3FH,3FH,3FH,3FH ;存储个位数字[***********][***********] SHU2 DB
4FH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,5BH,06H,06H,06H,06H,06H,06H,06H,06H,06H,06H,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH,3FH ;存储十位数字[***********][***********] 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 JA PAN3
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
;HUANG
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秒,改变数码管数字,继续判断。实验结果完全符合实验要求。