北邮微机原理硬件实验二,8255A并行接口应用。基于8086的汇编编程实现。
嗯,已经第二次实验了。第一次实验看了学长的代码,已经学到不少东西了,这一次该自己好好写了!
实验要求
简要说明
在方式0(输入/输出)下,以A口为输出口,B口为输出口, A口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段, B口接数码管的位选(即要使哪个数码管亮),高电平选中某一位数码管点亮。
8255A中 A端口地址 EE00H
B端口地址 EE01H
C端口地址 EE02H
控制地址 EE03H
八段数码管的显示规律及数码管的位选规律自己查找,可用实验一中,学过的I、O命令来做。
6位数码管静态显示
在数码管电路上静态地显示6位学号,当主机键盘按下任意键时,停止显示,返回DOS。提示:该电路6个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字型编码之后,6个数码管都有可能显示出相同的数字。如果要使6个数码管“同时”显示不同的数字,必须采用扫描显示的方法,通过选位寄存器选择某一位数码管,显示其数字(对应段值为1),然后关闭此数码管,再选择下一位数码管进行显示;如果在一秒钟内,每一位数码管都能显示30次以上,则人眼看到的是几位数码管同时在显示。
实验证明,在扫描显示过程中,每一位显示延迟1ms是最佳选择。
6位数码管动态显示
要求在数码管电路1-6位数码管上按图3.2所示的规律,动态显示字符串HELLO,当主机键盘按下任意键时结束。
提示:
①本实验应在上面实验的基础上完成
②在数据段,按下列规律设置12个字型码:
MESG DB 0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0
POINT DW MESG
… …
POINT单元存放MESG单元的有效地址,程序取出POINT单元的内容→BX,然后用BX间址取数送数码管电路,扫描显示6个字符。每过0.5s将POINT单元的内容加1,再将POINT单元的内容→BX,……。POINT单元内容加1,使字符串显示的首地址向高地址移动一个单元,从而使6位字符串向“左”移动一位,实现动态显示。
③动态显示的速度可控制(快或慢),利用实验一读入端口的功能
继续阅读“微机原理硬件实验二:数码管动态显示”