全球旧事资料 分类
单片机实验程序
f实验二8155并行IO口扩展和动态扫描程序编制
1实验目的(1)掌握8155并行IO芯片扩展和使用方法(2)掌握数码管动态扫描汇编语言的编制方法2预习要点(1)8155芯片基础知识(2)51单片机的总线时序、地址译码的原理(3)数码管动态扫描显示方法3实验设备
计算机、单片机实验箱。4实验内容基本要求:通过实验板的上的8155(U16)显示电路(在电路板上已经固定连接字形和字位控制线的8155部分),并通过跳线确定8155的地址,在8个LED数码管上依次动态显示数字18。扩展要求:假定30H33H的存储单元内容为4个字节16进制数,请依序将他们显示在8个LED数码管上根据程序要求做如下程序流程图:主程序流程图:
显示子程序流程框图:
f基本要求编程如下:
ORG
0000H
AJMP
MAIN
ORG
0050H
MAINMOV
SP60H
MOV
DPTR4100H
MOV
A0FH
MOVXDPTRA
MOVMOVMOVMOVMOV
70H01H71H02H72H03H73H04H74H05H
压栈
方式控制字0FH送A8155初始化
设置显示缓冲区
fMOVMOVMOV
75H06H76H07H77H08H
LOOPACALLAJMP
DISPLAYLOOP
循环调用显示子程序
DISPLAYMOVMOV
R070HR30FEH
显示缓冲区首地址送R0字位控制初值送R3
LD0
MOVMOVMOVX
DPTR4102HA0FFHDPTRA
B口字位送高,关共阴显示
MOVMOVMOVCMOVMOVX
AR0DPTRDISTABAADPTRDPTR4101HDPTRA
查表PA口作字形
MOVMOVMOVX
DPTR4102HAR3DPTRA
LD1
ACALLINCJNBRLMOVAJMPRET
DELAYR0ACC7LD1AR3ALD0
PB口作字位
延时1ms修正显示缓冲区指针若显示完一遍,则LD1字位码左移一位此处A中的值是R3送回R3显示下一个数码此处把每一个八位显示看成一次函数。
DISTABDB3FH06H5BH4FH66H6DH7DH07H7FH6FH共阴极字形表
DELAYMOV
R702H
1ms延时
DELAY1MOVR60FFH
DELAY2DJNZR6DELAY2
DJNZR7DELAY1
RET
END
实验中遇到的问题:
开始时没有预先在显示缓冲区中存入17,故实验显示的数据不是1、2、3、4、5、6、7、8,而是显示缓冲区中之前存在的无规则的一些数据,待向显示缓冲区重新赋值后,显示正常。
f扩展要求编程如下:
ORG
0000H
LJMP
MAIN
ORG
1000H
MAINMOV
SP50H
MOV
30H0A1H
MOV
31H0C2H
MOV
32H0D3H
MOV
33H0F4H
LCALLTRAN
MOV
DPTR4100H
MOV
A0FH
MOVXDPTRA
LOOPLCALLDISPLAY
SJMP
LOOP
TRANMOV
R130H
MOV
R070H
MOV
R304
LD2MOV
AR1
ANL
A0FH
MOV
R0A
INC
R0
MOV
AR1
ANL
A0F0H
SWAPA
MOVR0A
INC
R0
INC
R1
DJNZR3LD2
RET
DISPLAYMOVR10FEH
MOVR070H
MOVAR1
LD0MOVDPTR4102H
MOVXDPTRA
MOVAR0
MOVDPTRTAB
MOVCAADPTR
MOVDPTR4101H
MOVXDPTRA
LCALLDELAY
INC
R0
MOVAR1
JNB
ACC7LD1
将3031H里的十六r
好听全球资料 返回顶部