- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
东南大学
《微机实验及课程设计》
实验报告
实验三8255并行输入输出
姓 名: 塔高明 学 号:
专 业: 测控技术与仪器 实验室:516
实验时间:2010年05月8日 报告时间:2012年05月10日
评定成绩: 审阅教师:
一.实验目的与内容
(-)实验目的
(1) 掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示。
(2) 学握8段数码管的动态刷新显示控制;
(3) 分析掌握82551作方式1时的使用及编程,进一步掌握中断处理程序的编写。
(4) 了解掌握8255用于矩阵式键盘扫描方法及软件实现。
(二)基本实验内容和要求
(1) 8255方式0:简单输入输出:
实验电路如图20, 8255C口接逻辑电平开关K0?K7,编程A口接LED显示电路L0?L7; CLI输入数据,再从A 口输出。
(2) 编程将A口 L0-L7控制成流水灯,流水间隔时间由软件产生;流水方向由K0键在线控制,随时可切换; 流水间隔时间也可IIIK4-K7键编码控制,如0000对应停止,0001对应1秒,1111对应15秒,大键盘输入ESC键 退出。
(3) 8段数码管静态显示:按图连接好电路,将8255的A 口 PA0?PA6分别与七段数码管的段码驱动输入端a? £相连,位码驱动输入端S1接+5V (选中),SO、dp接地(关闭)。编程从键盘输入一位十进制数字(0? 9),在七段数码管上显示出來。
(4) 8段数码管动态显示:按图连接好电路,七段数码管段码连接不变,位码驱动输入端SI, S0接8255 C 口的PCI, PCOo编程在两个数码管上显示“56”。
二.基本实验原理
原理图: 内容(1)原理图
k .
1 4
p p A
P A
4 .
KJ ▼
15
p r 1
厂Fl 0
p a 1
3 .
▼
■ ■
n jl ▼ ....
K # a ....亠
16
厂?丄 pro
厂丄
p 6 2
2 ■
亠
1 7
p r 3
PA 3
■■
k 4
1 3
PC4
IO—*
PA4
40 .
??
K ■ ■ ■ .
1 2
p r 5
PAE
■ ■
K n ■ ■ —a-
1 1
厂Lz D
p r 6
? ■
k 7 —?-
1 0
1 J 7 PC?
i n w
PA?
■
288H
U18
6
cs
8255
L0
L1
L2
L3
L4
L5
L6
L7
内容(3)原理图
288K*
内容(4)原理图
PC1 PCO-X-
9
s
m
M —
0
a
a
a
a
a
a
a
d
d
d
d
a.
d
d
1丨1丨丨丨1
C £
LED1
? 288h~
U11
8255
LED2
288h^
流程图
冇键按下吗?A1结束
冇键按下吗?A1
结束
图1. 1 8255简单?输入输出程序流程图 图2.1 8255动态显示5 6程序流程图
三?方案实现与测试(或调试)
(1) 8255方式0:简单输入输出
ioport
equ 0b800h-0280h
io8255a
equ i oport+288h
io8255b
equ ioport+28bh
;tpc卡中设备的io地址
;8255A 口地址
;8255控制寄存器端口地址
io8255c equ ioport+28ah ;8255C口地址 stacks segment stack
db 100 dup (?)
stacks ends
code segment
assume cs:code,ss:stacks
main proc far
start: mov ax,stacks
mov ss, ax
mov dx, io8255b;设8255为C口输入,A口输出
mov al,8bh
;从(;口输入一数据;从人口输出刚才口
;从(;口输入一数据
;从人口输出刚才口 c 口 ;所输入的数据
;判断是否有按键
inout: mov dx, io8255c in al, dx
mov dx, io8255a out dx, al
mov dl, Offh
mov ah,06h
int 21h
jz inout ;若无,则继续自CU输入,A口输出 mov ah, 4ch ;否则返回DOS
int 21h
main endp
code ends
end start
(2)流水灯
data segment
ioport equ 0b800h-0280h
io8255a equ ioport+288h
io8255b equ ioport+28bh
io8255c equ ioport+28ah data ends
stacks segment stack db 100 dup (?)
stacks ends code segment
文档评论(0)