8253、8255、8259综合实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8253、8255、8259 综合实验
医电61
刘晶
06121005
8253、8255、8259综合实验
一、实验目的
1.掌握8259、8253、8255芯片结构及工作方式;
2.熟悉8259、8252、8259的初始化和操作编程;
3.掌握各芯片之间或与CPU间的连接方法。
二、实验设备
b6000p实验教学系统;
2.IBM-PC机
三、实验内容
1.8255A口为输出口,接8个发光二极管,B口为输入口,接8个拨动开关,“0”或“1”,从而实现把开关的状态显示出来。
2.用8253计数器0对外部事件进行计数,每发生5次外部事件,用发光二极管亮做提示。
3.用8253计数器0输出一个1S为周期的方波,并用发光二极管显示其周期。
4.8个LED二级管循环点亮,每个亮1秒钟,用8253定时1秒,通过8259中断实现1S 循坏显示
四、实验结果
1.8255
程序如下:
DATA SEGMENT
COUNT DB 1
DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DA TA,SS:STACK
START:
MOV AX,DA TA
MOV DS,AX
MOV DX,8003H ;8255控制口
MOV AL,10000010B ;控制字:A口方式0输出,B口方式0输入
OUT DX,AL ;写入控制字
TESTI:MOV DX,8001H ;指向B口
IN AL,DX ;从B口读入开关状态
MOV DX,8000H ;指向A 口
OUT DX,AL ;A 口用LED 指示开关状态 JMP TESTI ;循环检测 CODE ENDS
END START 实验结果:
程序运行后,波动开关,可以控制其对应二极管的亮、灭。
2.8253对外部事件计数 程序如下:
DATA SEGMENT COUNT DB 1 DATA ENDS
STACK SEGMENT DB 100 DUP(?) STACK ENDS
CODE SEGMENT MAIN PROC FAR
ASSUME CS:CODE,DS:DA TA,SS:STACK START:
MOV AX,DA TA MOV DS,AX JISHU:
MOV AL,00010001B
MOV DX,9003H
OUT DX,AL
MOV AL,3
MOV DX,9000H OUT DX,AL
DUHUI: MOV AL,00000000B MOV DX,9003H OUT DX,AL MOV DX,9000H IN AL,DX SUB AL,0 JZ JISHU JMP DUHUI MAIN ENDP CODE ENDS END START 实验结果:
程序运行后,每发生5次外部事件(单脉冲电路产生),二极管亮1次作为
MOV CX,0FFFFH
DELAY: DEC CX
CMP CX,00H
JNZ DELAY
3.8253输出周期为1s的方波
程序如下:
DATA SEGMENT
COUNT DB 1
DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DA TA,SS:STACK
START:
MOV AX,DA TA
MOV DS,AX
MOV AL,00110110B
MOV DX,9003H
OUT DX,AL
MOV BX,62500
MOV AL,BL
MOV DX,9000H
OUT DX,AL
MOV AL,BH
OUT DX,AL
MAIN ENDP
CODE ENDS
END START
实验结果:
二极管以1s为周期闪烁,即得到了1s为周期的脉冲波,并用二极管显示出来。
4.8个LED二级管循环点亮,每个亮1秒钟
程序如下:
DATA SEGMENT
COUNT DB 18
DATA ENDS
STACK SEGMENT
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
MAIN PROC FAR
ASSUME CS:CODE,DS:DA TA,ES:DATA,SS:STACK
MOV AX,DA TA
MOV DS,AX
MOV AL,00110110B ;8253初始化
MOV DX,9003H
OUT DX,AL
MOV BX,62500
MOV AL,BL
MOV DX,9000H
OUT DX,AL
MOV AL,BH
OUT DX,AL
MOV AX,0 ;设置中断服务程序入口地址MOV ES,AX
MOV BX,20H*4
MOV DX,OFFSET XUNH
MOV ES:WORD PTR[BX],DX
MOV AX,SEG XUNH
MOV ES:WORD PTR[BX+2],AX
STI
MOV AL,00010011B ;8259初始化
MOV DX,0A000H
OUT DX,AL
MOV AL,20H
MOV DX,0A001H
OUT DX,AL
MOV AL,00000001B
OUT DX,AL
MOV AL,0FEH
MOV CL,10000000B
S1: NOP
JMP S1
MAIN ENDP
XUNH PROC NEAR
PUSH DS
PUSH AX
PUSH DX
MOV AX,DA TA
MOV DS,AX
STI
ROL CL,1