当前位置:文档之家› 实验六 8255和8253可编程芯片编程实验

实验六 8255和8253可编程芯片编程实验

实验六 8255/8253可编程芯片综合实验
一、实验目的
1.了解8255、8253芯片结构及接口方式。

2.掌握8255、8253的编程方法。

二、实验内容
1、以8253的计数器1,通过CLK1对300Hz的信号进行计数定时,采用方式2,要求定时时间为2S;
2、将计数器1的输出OUT1接到计数器2的CLK2上,用计数器2对其计数4次,采用方式3产生方波信号;
3、利用8255的A口工作于方式0输出控制LED灯、B口工作于方式0的输入, OUT2接到PB0上,查询PB0的状态,若PB0==0,则从A口输出00001111,若PB1==1,则从A口输出11110000。

三、实验预习要求
学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。

四、实验步骤
1)系统各跳线器处在初始设置状态。

将8位LED灯接到8255的A口,CS_8255接200H,则8255 状态/命令口地址为203H,PA口地址为200H,PB口地址为201H。

将CS-8253接208H,则8253计数器0地址为208H,计数器1地址为209H,计数器2地址为20AH,控制口地址为20BH。

CLK1接时钟信号源上的300Hz信号,OUT1接到CLK2上,OUT2接到8255的PB0上,GATE1和GATE2都接到+5V上。

2)启动PC机,打开THGMW-88软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

五、实验要求
1)根据实验内容编写一个程序,并在实验仪上调试和验证,记录程序。

2)观察发光二极管的亮灭变化情况和时间的关系。

3)不改程序,将CLK1接到150Hz信号源上观察有什么变化,接到900Hz信号源上又有什么变化,想想为什么?
例如:CS=800H,8255A1、A0与CPU的A1、A0对应相连,设置8255为A口输出、B口输入,均工作于方式0,则控制字为1 00 0 * 0 1 *B,*为“0”,也可为“1”。

编程: MOV DX,803H ;地址送到DX中
MOV AL,10000010B ;控制字送到AL中
OUT DX,AL ;执行指令实现8255初始化
2、输入
MOV DX,801H ;输入口B口地址送到DX中
IN AL,DX ;外设数据通过B口送到AL中
3、输出
MOV DX,800H ;地址送到DX中
MOV AL,10000010B ;待输出的数据送到AL中
OUT DX,AL ;执行指令实现8255的A口输出数据
TIM_CTL EQU 20BH
TIMER0 EQU 208H
TIMER1 EQU 209H
TIMER2 EQU 20AH
C8255 EQU 203H ;8255 状态/命令口地址
P8255A EQU 200H ;8255 PA 口地址
P8255B EQU 201H ;8255 PC 口地址
P8255C EQU 202H ;8255 PC 口地址
DA TA SEGMENT
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
CLI ;关中断
MOV DX, 20BH ;定时器1工作在方式2
MOV AL ,01110101B
OUT DX,AL
MOV DX, 209H
MOV AL, 00H
OUT DX,AL
MOV AL, 06H
OUT DX,AL
MOV DX, 20BH ;定时器2工作在方式3
MOV AL, 10010111B
OUT DX,AL
MOV DX, 20AH
MOV AL, 04H
OUT DX,AL
MOV DX, 203H ; ;设置为8255的A口输出,B口输入,方式0
MOV AL ,10000010B
OUT DX,AL
BG: MOV DX, 201H ;B口输入
IN AL,DX
AND AL, 01H ;判断PB0口输入是否为0,不为0则跳转CMP AL,0
JZ ZERO
MOV AL , 0F
JMP EXIT
ZERO: MOV AL ,0F0H
EXIT : MOV DX, 200H ;A口输出OuT DX, AL
JMP BG
STI
JMP $
CODE ENDS
END START。

相关主题