版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京邮电大学微机原理硬件实验报告
实验二:8255A并行接口应用
专业:信息工程
学生姓名:XXX
学号:XXX
指导教师:XXX
完成时间:2013年11月29日
一、实验目的.....................................................................3
二、实验原理及内容...............................................................4
1.实验原理................................................................3
①8255的工作方式........................................................4
②工作方式选择字.........................................................4
③命令字与初始化编程.....................................................5
④注意事项...............................................................5
2.实验内容...............................................................4
①6位数码管静态显示.....................................................6
②6位数码管动态显示.....................................................6
③拓展功能...............................................................7
三、硬件连接图与软件程序流程图..................................................8
1.硬件连接图.............................................................7
①8255A并行接口.........................................................8
②数码管..................................................................9
2.程序流程图.............................................................9
①基本要求一流程图......................................................10
②基本要求二流程图......................................................12
四、源程序......................................................................13
1.基本要求一源代码..........................................................11
2.基本要求二源代码..............................................................12
五、实验结果....................................................................16
六、实验总结....................................................................17
1.段内VS段外.............................................................15
2.瞬间之误.................................................................15
3.接力跳远.....................................................................15
七、实验收获与心得体会.........................................................18
一、实验目的
1.掌握8255A的功能及方式0、1的实现。
2、熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。
3.了解七段数码管显示数字的原理。
4.掌握同时显示多位数字的技术。
二、实验原理及内容
1.实验原理
①8255的工作方式
一片8255内部有3个端口,A口可以工作在方式0、方式1
或方式2,B口可以工作在方式0、方式1,C口可以工作在方
式0。方式0是基本型输入输出。这种方式和外设交换数据
时,8255端口与外设之间不使用联络线。方式1为选通型输
入/输出。用这种方式和外界交换数据时,端口和外设之间要
有联络信号。方式2是双向数据传送,仅A口有这项功能。
当A口工作在方式2时,B口仍可以工作在方式0或方式1,
但此时B口方式1只能用查询方式与CPU交换信息。
②工作方式选择字
8255工作方式选择字共8位(如图),存放在8255控制寄存器中。最高位D7为标志
位,D7=l表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C
口置位/复位控制字。
D7D6D5IMD3D2DIDO
00•方式0A口C口高四位0-^0BDC口低四位
101•方式11:»A1:入1•於]1:入1:入
卜•方式20:■出0:出0:出0:出
标志位A组B姐
图一:8255工作方式选择字
③命令字与初始化编程
8255有两个命令字,即方式选择控制字和C口置0/置1控制字,初始化编程的步骤是:
I、向8255控制寄存器写入“方式选择控制字”,从而预置端II的工作方式。
II、当端口预置为方式1或方式2时,再向控制寄存器写入“C口置0/置1控制字:这一操
作的主要目的是使相应端口的中断允许触发器置0,从而禁止中断,或者使相应端口的中断
允许触发器置1,从而允许端口提出中断请求。注意:“C口置0/置I控制字”虽然是对C
口进行操作,但是该控制字是命令字,所以要写入控制寄存器,而不是写入C口控制寄存
器。
III、向8255数据寄存器写入“数据”或从8255数据寄存器读出“数据二
④注意事项
在方式0输入/输出)下,以A口为输出口,B口为输出口,A口接六个共阴极数只管的
八位段码,高电平点亮数码管的某一段B口接数码管的位选(即要使哪个数码管亮),高电
平选中某一位数码管点亮,
8255A中A端口地址E800H
B端口地址E801H
C端口地址E802H
控制地址E8O3H
八段数码管的显示规律及数码管的位选规律自己查找,可用实验•中,学过的I、O命令来
做。
2、实验内容
①6位数码管静态显示
在数码管电路上静态地显示6位学号,当主机键盘按下任意键时,停止显示,返回
DOSo提示:该电路6个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字型编码
之后,6个数码管都有可能显示出相同的数字。如果要使6个数码管“同时”显示不同的数
字,必须采用扫描显示的方法,通过选位寄存器选择某一位数码管,显示其数字(对应段值
为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在一秒钟内,每一位数码管
都能显示30次以上,则人眼看到的是几位数码管同时在显示。实验证明,在扫描显示过程中,
每-•位显示延迟1ms是最佳选择。
②6位数码管动态显示
要求在数码管电路1—6位数码管上按图所示的规律,动态显示字符串HELLO,当主机
键盘按下任意键时结束。
图二:字符串动态显不小意图
提示:
I、本实验应在上面实验的基础上完成;
II、在数据段,按下列规律设置12个字型码:
MESGDB0,0,0,0,0.0,3DH,ODCH,8CH,8CH,OEDH,O
POINTDWMESG.......
POINT单元存放MESG单元的有效地址,程序取出POINT单元的内容一BX,然后用
BX间址取数送数码管电路,扫描显示6个字符。每过0.5s将POINT单元的内容加1,再将
POINT单元的内容一BX,…….POINT单元内容加I,使字符串显示的首地址向高地址移动
一个单元,从而使6位字符串向“左”移动一位,实现动态显示。
III、动态显示的速度可控制(快或慢),利用实验一读入端口的功能.
③拓展功能
完成一个扫描键盘(PC口)输入自己的学号,并在数码管上显示。
端口C地址E8O2H;
控制端口地址EE03H:
PC4,PC5.PC6.PC7接厅PC3.PC2.PC1.PCO接歹U
图三:键盘电路
提示:
3.识别闭合键的方法行扫描法是使键盘某一行线为低电平,其余为高电平,然后读取
列值,如列值中有某位位任电平,则表明行列交叉点处的键被按下;否则扫描下行,知道扫
完全部的行线为止。行反转法识别闭合键时,要将行线接一个并行口,先让他工作在输出方
式,将列线接另•个并行口,先让它工作在输入方式,程序使CPU通过输出端口往各行线上
全部送低电平,然后读入列线的值,如此时某键按下则必使某一列线值为0,然后程序再对
两个并行端口的工作方式进行设置,使行线工作在输入方式,列线工作在输出方式,并且将
刚才读得的列线值从列线所接的并行端口输出,再读取行线上的输入值,那么在闭合键所在
的行线上的值必定为0。这样,有按键时,可读得唯一的行值和列值。
4.设计时,行、列值应放在一个表中,通过查表确定按下的是哪个键。
5.键闭合时,注意加延时防抖动。
6.键松开时,加判断释放程序。
7.按下键盘某键能够返回系统。
三、硬件连接图与软件程序流程图
1、硬件连接图
①8255A并行接口
8255A并行接口
3C1
Tf
O.luF
pA0
cpA1
vccpA2
D0pA3
D1pA4
D2pA5
D3pA6
D4pA7
D5
D6
Dm7pB0
RpB1
pB2
宣pB3
pB4
AlpB5
AOpB6
RESpB7
pC0
pC1
pC2
EDTpC3
pC4
pC5
pC6
pC7
图四:8255A并行接口
②数码管
数码管
CCD
CCI
A
B
c
CCD
CCE
T
G
»
CCD
CCE
A
B
C
CCD
CCE
T
嶷
G
»
舞
Ks1
A
B
C
CCD
CCI
T
G
DP
2、图五:数码管
3、程序流程图
①基本要求一流程图
诘束
图六:基本要求一流程图
②基本要求二流程图
C开始
四、图七:基本要求二
五、源程序
1.基本要求一源代码
datasegment
aequ0e800h;A端口(输出)作为数码管段选
bequ0e801h;B端口(输出)作为数码管位选
controlequ0e803h;控制端口
zeroequOcdh
nineequ79h
fiveequ0d9h
twoequ0f4h
oneequ21h
eightequOfdh
dataends
stacksegmentstack'stack'
stackends
codesegment
assumecs:code,ds:data,ss:stack
start:movax,data
movds,ax
movdx,control;dx:控制寄存器(暂时)
moval,80h;工作方式选择字
outdx.al
dispmacrox,y
moval,x
movdx,b
outdx.al
moval,y
movdx,a
outdx,al
callfarptrdelay;是否需要加入延时??
nop
moval,()()h
outdx,al
cndm
again:disp01h,two
disp()2h,one
disp04h.zero
disp08h,eight
disp10h,zero
disp20h,nine
movah,Obh;检测键盘按键
int21h
ernpal,()ffh
jnztemp
movah,4ch
inl21h
delayprocfar;延时子程序
pushex;入栈保护
pushax
pushbx
movcx,O3h;2的8次方=65536
loopl:nop;CPU空操作
movbx,O2h;cx*bx可以控制分频为1000Hz;OI8h
Ioop2:decbx;?????内层循环是否需要空操作
jnzloop2;当€^>0时,继续减一
looploopl当cx>0时,继续空操作
popbx;出栈恢复
popax
popex
ret
delayendp
temp:jmpagain
codeends
endstart
2.基本要求二源代码
datasegment
aequ0e800h
bequ0e801h
controlequ0ee03h
mesgdb0.0,0,0,O.O,3dh.Odch,8ch,8ch,Oedh.O;显示字符
pointdwmesg;
dataends
stacksegmentstack'stack*
db100dup(?)
stackends
codesegment
assumecs:code,ds:data.ss:stack
start:movax,data
movds,ax
movdx,control
moval,80h
outdx,al;8255初始化控制字
movsi,offsetmesg;si指向字符串首地址
addsi,06h;si指向第一个字母H
movbx,offsctmesg;bx是字符串首地址
dispmacrox,y;是否需要加入延时??
moval,x
movdx,b
outdx,al
moval,[si+y];应该把bx改成si?
movdx,a
outdx.al
callfarptrdelay
nop
moval.OOh
outdx,al
endm
again1:nop
movcx,54h海一个点亮lms,6个点亮6ms,0.5秒内亮500/6=83趟,转换
为54h
again2:decex
jnzloop3
movcx,54h;重新设置ex,应该与第38行保持一致
decsi
empbx,si
jnzloop3
addsi,06h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑电气应急照明转换时间测试方法选择原则
- 水库管道泄洪方案范本
- 13.1 磁场 磁感线 学案-2022-2023学年高二物理上学期(人教版2019必修第三册)
- 不规则设计讲解
- 设计机器人介绍
- 精神病住院病人入院流程
- 预防医学科疾病预防控制措施指南
- 病理科组织病理学培训规范
- 耐碳青霉烯肺炎克雷伯杆菌
- 动物线描设计技法解析
- 2026浙江杭州市融资担保集团有限公司春季招聘5人笔试参考试题及答案解析
- 2026温州瓯海全域空间设计咨询有限公司面向社会招聘2人备考题库及答案详解(新)
- 2026福建南平武夷发展集团有限公司招聘应届毕业生24人备考题库及答案详解(全优)
- 2026贵阳市创业投资有限公司(第一批)对外招聘3人备考题库及一套完整答案详解
- 陕西演艺集团招聘笔试题库2026
- 2024版慢性鼻窦炎诊断和治疗指南课件
- 2026年超星尔雅《论语》精读题库高频重点提升审定版附答案详解
- 2026宁波市中考语文知识点背诵清单练习含答案
- 2026年湖北武汉市八年级地理生物会考真题试卷(+答案)
- 氟喹诺酮类药物合理使用更新总结2026
- 个人现实表现材料1500字
评论
0/150
提交评论