东南大学微机第六次实验报告.doc
文本预览下载声明
《微机实验及课程设计》实验报告 学号
PAGE
PAGE 0
东南大学
《微机实验及课程设计》
实验报告
实验六 8255 并行输入输出
姓 名: 学 号:
专 业: 实 验 室:
实验时间:年05月22日 报告时间:年05月29日
评定成绩: 审阅教师:
实验目的与内容
实验目的
1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;
2)掌握8段数码管的动态刷新显示控制;
(二)实验内容及要求
1、8段数码管静态显示: 编程从键盘输入一位十进制数字(0~9),在数码管上显示出来。(必做)
2、8段数码管动态显示:在两个数码管上同时显示不同的两位数字或字母,保持不变直至退出。(如56或7f)(必做)
3、静态显示:用逻辑电平开关预置某个数字(0~9)的二进制码,将该数据用8255的C口读入,并用A口输出,并在数码管显示出来。
4、动态显示:在两个数码管上滚动循环显示不同的0~f字符。(即开始时两个数码管显示01,12,23,34 ······ 9a······f0,一直循环直至退出)
注:3,4中选做一题,必做一题
二. 实验基本原理
(一)实验接线图
PA0~PA6分别接数码管的a~g
PC0~PC7分别逻辑电平开关的K0~K7
位选端S1接+5V
位选端S0接地
数码管dp端接地
必做1,3 接线图
PA0~PA6分别接数码管的a~g
位选端S0 、S1接8255C口的PC0、PC1端
必做2 接线图
(二)程序流程图
图 1.1 8255 简单输入输出程序流程图图 2.1 8255 动态显示5 6 程序流程图
三 方案实现与测试(或调试)
必做实验1:
data segment
ioport equ 0b800h-0280h
io8255a equ ioport+288h
io8255b equ ioport+28bh
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
mesg1 db 0dh,0ah,Please input a num (0--9h):,0dh,0ah,$
data ends
stacks segment stack
db 100 dup (?)
stacks ends
code segment
assume cs:code,ds:data,ss:stacks
start: mov ax,stacks
mov ss,ax
mov ax,data
mov ds,ax
mov dx,io8255b ;使8255的A口为输出方式
mov ax,80h
out dx,al
sss: mov dx,offset mesg1 ;显示提示信息
mov ah,09h
int 21h
mov ah,01 ;从键盘接收字符
int 21h
cmp al,0 ;是否小于0
jl exit ;若是则退出
cmp al,9 ;是否大于9
jg exit ;若是则退出
sub al,30h ;将所得字符的ASCII码减30H
mov bx,offset led ;bx为数码表的起始地址
xlat ;求出相应的段码
mov dx,io8255a ;从8255的A口输出
out dx,al
jmp sss ;转sss
exit: mov ah,4ch ;返回DOS
int 21h
code ends
end start
必做实验2:
data segment
ioport equ 0b800h-0280h ;tpc卡中设备的io地址
io8255a equ iopo
显示全部