实验六 8255并行输入输出.doc
文本预览下载声明
.
.
东南大学
《微机实验及课程设计》
实验报告
实验六 8255并行输入输出
姓 名: 学 号:
专 业:测控技术与仪器 实 验 室: 516
同组人员: 评定成绩:
实验目的
1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;
掌握8段数码管的动态刷新显示控制;
(1)实验内容(必做)
6-1、8段数码管静态显示: 编程从键盘输入一位十进制数字(0~9),在数码管上显示出来。
6-2、8段数码管动态显示:在两个数码管上同时显示不同的两位数字或字母,保持不变直至退出。(如56或7f)
(2)实验内容(必做一题,选做一题)
6-3 静态显示:用逻辑电平开关预置某个数字(0~9)的ASCII码,将该数据用8255的C口读入,并用A口输出,并在数码管显示出来;如果预置的ASCII码不是数字(0~9),数码管显示E字母。
6-4 动态显示:在两个数码管上滚动循环显示不同的0~f字符。(即开始时两个数码管显示01,12,23,34 ··f0,一直循环直至退出)
实验原理
实验预备知识
图 八段式LED数码管的符号和引脚
6-1流程图:
是否为0~9?设置8255控制字
是否为0~9?
设置8255控制字(A端口输出)
从键盘输入字符
开始
N
将对应段码输出到8255A端口结束
将对应段码输出到8255A端口
结束
6-1源代码:
data segment
ioport equ 0ec00h-0280h
io8255a equ ioport+288h ;8255A口地址
io8255b equ ioport+28bh ;8255控制寄存器端口地址
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码
mesg1 db 0dh,0ah,Input a num (0--9h):,0dh,0ah,$;提示
data ends
code segment
assume cs:code,ds:data
start: 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
(3)6-2接线图:
6-2源代码:
data segment
ioport equ 0ec00h-0280h
io8255a equ ioport+288h
io8255c equ ioport+28ah
io8255k equ ioport+28bh
led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码
buffer1 db 5,6 ;存放要显示的个位和十位
bz dw ? ;位码
data ends
stacks segment stack
db 100 dup(?)
stacks ends
code segment
assume cs:code,ds:data,ss:stacks
start: mov ax,data
mov ds,ax
mov ax,stacks
mov
显示全部