全球旧事资料 分类
微机原理实验报告
实验五
班姓学序
级:名:号:号:
2012级信息工程(3)班李泓鑫20123028146117号
评阅分数:
f一、实验目的
掌握8255的工作原理及编程方法。
二、开发环境运行于XP操作系统下HQFC集成开发环境。
三、实验题目(2)数码管显示1、静态显示:按图22连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。
2、动态显示:按图23连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255C口的PC1,PC0。编程在两个数码管上显示“56”。
f3、编程提示(1)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。(2)七段数码管的字型代码表如下表:
4、参考流程图
f代码:
1静态显示
DATALEDMESG1
SEGMENTDBDB3FH06H5BH4FH66H6DH7DH07H7FH6FH0DH0AHINPUTANUM09H0DH0AH
DATAENDSCODESEGMENT
ASSUMECSCODEDSDATASTARTMOVAXDATA使8255的A口为输出方式10001001B,控制字PA以方式0输出
MOVDSAXMOVDX28BHMOVAL89H
fOUTDXALZBYMOVDXOFFSETMESG1MOVAH09HINT21HMOVAH01INT21HCMPAL0JLEXIT是否小于0如若小于0,则跳转到EXIT退出程序是否大于9如若大于9,则跳转到EXIT退出程序从键盘接收字符显示提示信息
CMPAL9JGEXIT
SUBAL30H将所得字符的ASCII码减30H,ASCII码转数值MOVBXOFFSETLEDBX为数码表的起始地址XLATMOVDX288HOUTDXALJMPZBYEXITMOVAH4CH转ZBY返回DOS求出相应的段码从8255的A口输出
INT21HCODEENDSENDSTART
2动态显示DATASEGMENT3FH06H5BH4FH66H6DH7DH07H7FH6FH段65存放要显示的个位和十位位码
LED码BUFFER1BZ
DBDBDW
DATAENDSCODESEGMENT
ASSUMECSCODEDSDATASTARTMOVAXDATA
fMOVDSAXMOVDX28BHMOVAL89HOUTDXALMOVDIOFFSETBUFFER1LOOP2ZBYMOVBH02MOVBYTEPTRBZBH设DI为显示缓冲区将8255设为A口输出10001001B,控制字PA以方式0输出
PUSHDIDECDIADDDIBZMOVBLDIPOPDIMOVAL0MOVDX28AHOUTDXALMOVBH0MOVSIOFFSETLEDADDSIBXMOVALBYTEPTRSIMOVDX288HOUTDXALMOVALBYTEPTRBZMOVDX28AHOUTDXALMOVCX3000DELAYLOOPDELAY延时使相应的数码管亮自8255A的口输出置LED数码表偏移地址为SI求出对应的LED数码BL为要显示的数
MOVBHBYTEPTRBZSHRBH1JNZZBYMOVDX0FFHMOVINTAH0621H
fJE
LOOP2
有键按下则退出关掉数码管显示返回
MOVDX28AHMOVAL0OUTDXALMOVAH4CHINT21HCODEr
好听全球资料 返回顶部