微机接口设计报告
学院:计算机科学与技术
专业:计算机科学与技术
班级:2014 级 3 班
成员:
1
一、基础实验
1、并行接口实验—七段数码管
1.1 实验目的
1. 掌握 8255A 的工作原理
2. 掌握 8255A 在基本输入/输出工作方式下的比阿成使用
3. 掌握 8255A 与输入输出设备的连接(用逻辑电平开关电路模拟输入设备,用
LED 模拟输出设备)
4. 掌握逻辑电子开关电路
5. 掌握 LED 电路
1.2 实验内容
1. 连接好电路,将 8255 的 A 口 PA0~PA7 分别与七段数码管的段码驱动输入端
a~dp 相连,位码驱动输入端 S0、S1 接 PC0、PC1;S2、S3 接地。
2. 编程在数码管上显示十进制数。按照每次将数据减 1 的规律显示。
1.3 实验代码
DATA
SEGMENT
DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
LED
ENDS
SEGMENT
MESGL DB 0DH,0AH,'input a num (0--9):',0DH,0AH,'$'
DATA
CODE
ASSUMECS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV DX,28BH
MOV AL,80H
OUT DX,AL
BG: MOV DX,OFFSET MESGL
MOV AH,09H
INT 21H
2
EXIT
MOV AH,01
INT 21H
CMP AL,'0'
JL
SUB AL,30H
MOV BX,OFFSET LED
XLAT
MOV DX,28AH
OUT DX,AL
JMP BG
1.4 实验结果
2、串行接口实验—8251 串行通讯实验
2.1 实验目的
1. 了解串行通讯的基本原理
2. 掌握串行接口芯片 8251 的工作原理和编程方法
2.2 实验内容
1. 单机通过 8251 接口实现数据自发自收
3
2. 连接好电路,其中 8254 计数器用于产生 8251 的发送和接收时钟,TXD 和 RXD
连在一起
3. 编程:从键盘输入一个字符,将其 ASCII 码加 1 后发送出去,再接收回来在屏
幕上显示,实现自发自收。
2.3 实验代码
data segment
io8253a
io8253b
io8251a
io8251b
mes1
mes2
data ends
code segment
assume cs:code,ds:data
start: mov ax,data
equ 280h
equ 283h
equ 2b8h
equ 2b9h
db 'you can play a key on the keybord!',0dh,0ah,24h
dd mes1
delay:
mov ds,ax
mov dx,io8253b
mov al,16h
out dx,al
mov dx,io8253a
mov al,52
out dx,al
mov dx,io8251b
xor al,al
mov cx,03
call out1
loop delay
mov al,40h
call out1
mov al,4eh
call out1
mov al,27h
call out1
lds dx,mes2
mov ah,09
int 21h
in al,dx
test al,01
jz waiti
mov ah,01
int 21h
;设置 8253 计数器 0 工作方式
;给 8253 计数器 0 送初值
;初始化 8251
;向 8251 控制端口送 3 个 0
;向 8251 控制端口送 40H,使其复位
;设置为 1 个停止位,8 个数据位,波特率因子为 16
;向 8251 送控制字允许其发送和接收
;显示提示信息
;发送是否准备好
;是,从键盘上读一字符
4
waiti: mov dx,io8251b
cmp al,27
jz exit
mov dx,io8251a
inc al
out dx,al
mov cx,40h
loop s51
s51:
next: mov dx,io8251b
in al,dx
test al,02
jz next
mov dx,io8251a
in al,dx
mov dl,al
mov ah,02
int 21h
jmp waiti
mov ah,4ch
int 21h
out1 proc near
exit:
cx,40h
out dx,al
push cx
mov
loop gg
pop cx
ret
gg:
out1 endp
code ends
end start
2.4 实验结果
;若为 ESC,结束
;发送
;延时
;检查接收是否准备好
;没有,等待
;准备好,接收
;将接收到的字符显示在屏幕上
;退出
;向外发送一字节的子程序
;延时
5
3、定时器实验
3.1 实验目的
1.掌握 8254 的基本工作原理和编程方法。
3.2 实验内容
1. 连接电路,将计数器 0、计数器 1 分别设置为方式 3,计数初值都设为 1000,
用逻辑笔观察 OUT1 输出电平的变化(频率 1MHZ)。
2. 编程实现。
3.3 实验代码
CODE
SEGMENT
CS:CODE
ASSUME
START: MOV DX,283H
MOV AL,00110110B
OUT DX,AL
MOV DX,280H
MOV AX,1000
OUT DX,AL
MOV AL,AH
OUT DX,AL
6
MOV DX,283H
MOV AL,01110110B ;计数器 1 方式 3
OUT DX,AL
MOV DX,281H
MOV AX,1000
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DL,0FFH
MOV AH,06H
INT 21H
MOV AH,4CH
INT 21H
CODE
ENDS
END START
3.4 实验结果
7
4、小键盘实现
4.1 实验目的
1. 掌握 8255A 的工作原理
2. 掌握逻辑电子开关电路
3. 了解键盘阵列结构,学会读取按键的方法
4.2 实验内容
1. 按原理图接线,8255C 口接键盘(实际 8255 的 C0~C3 接键盘的列 0~列 3,
C4~C7 接键盘的行 0~行 3),8255 的 CS 接地址译码输出的 288h~28fh。
2. 8255 的 A 口 PA0~PA7 接数码管的 a~dp。数码管位码 S0 接+5V,S3~S1 接
GND。
3. 8255 端口 A 地址为:288H
端口 C 地址为:28AH
控制口地址为:28BH
4. 编程使得在键盘阵列上每按一个键后,微机屏幕和数码管上有相应字符显示
出来,按“E”退出程序。
4.3 实验代码
8