格式功能简述字节数周期 一、数据传送类指令 MOVA,Rn寄存器送累加器11 MOVRn,A累加器送寄存器11 MOVA,@Ri内部RAM单元送累加器11 MOV@Ri,A累加器送内部RAM单元11 MOVA,#data立即数送累加器21 MOVA,direct直接寻址单元送累加器21 MOVdirect,A累加器送直接寻址单元21 MOVRn,#data立即数送寄存器21 MOVdirect,#data立即数送直接寻址单元32 MOV@Ri,#data立即数送内部RAM单元21 MOVdirect,Rn寄存器送直接寻址单元22 MOVRn,direct直接寻址单元送寄存器22 MOVdirect,@Ri内部RAM单元送直接寻址单元22 MOV@Ri,direct直接寻址单元送内部RAM单元22 MOVdirect2,direct1直接寻址单元送直接寻址单元32 MOVDPTR,#data1616位立即数送数据指针32 MOVXA,@Ri外部RAM单元送累加器(8位地址)12 MOVX@Ri,A累加器送外部RAM单元(8位地址)12 MOVXA,@DPTR外部RAM单元送累加器(16位地址)12 MOVX@DPTR,A累加器送外部RAM单元(16位地址)12 MOVCA,@A+DPTR查表数据送累加器(DPTR为基址)12 MOVCA,@A+PC查表数据送累加器(PC为基址)12 XCHA,Rn累加器与寄存器交换11 XCHA,@Ri累加器与内部RAM单元交换11 XCHDA,direct累加器与直接寻址单元交换21 XCHDA,@Ri累加器与内部RAM单元低4位交换11 SWAPA累加器高4位与低4位交换11 POPdirect栈顶弹出指令直接寻址单元22 PUS
Hdirect直接寻址单元压入栈顶22 二、算术运算类指令 ADDA,Rn累加器加寄存器11 ADDA,@Ri累加器加内部RAM单元11 ADDA,direct累加器加直接寻址单元21 ADDA,#data累加器加立即数21 ADDCA,Rn累加器加寄存器和进位标志11 ADDCA,@Ri累加器加内部RAM单元和进位标志11 ADDCA,#data累加器加立即数和进位标志21 ADDCA,direct累加器加直接寻址单元和进位标志21 INCA累加器加111 INCRn寄存器加111 cariINCdirect直接寻址单元加121 INC@Ri内部RAM单元加111 INCDPTR数据指针加112 DAA十进制调整11 SUBBA,Rn累加器减寄存器和进位标志11 SUBBA,@Ri累加器减内部RAM单元和进位标志11 SUBBA,#data累加器减立即数和进位标志21 SUBBA,direct累加器减直接寻址单元和进位标志21 DECA累加器减111 DECRn寄存器减111 DEC@Ri内部RAM单元减111 DECdirect直接寻址单元减121 MULAB累加器乘寄存器B14 DIVAB累加器除以寄存器B14 三、逻辑运算类指令 ANLA,Rn累加器与寄存器11 ANLA,@Ri累加器与内部RAM单元11 ANLA,#data累加器与立即数21 ANLA,direct累加器与直接寻址单元21 ANLdirect,A直接寻址单元与累加器21 ANLdirect,#data直接寻址单元与立即数31 ORLA,Rn累加器或寄存器11 ORLA,@Ri累加器或内部RAM单元11 ORLA,#data累加器或立即数21 ORLA,direct累加器或直接寻址单元21 ORLdirect,A
直接寻址单元或累加器21 ORLdirect,#data直接寻址单元或立即数31 XRLA,Rn累加器异或寄存器11 XRLA,@Ri累加器异或内部RAM单元11 XRLA,#data累加器异或立即数21 XRLA,direct累加器异或直接寻址单元21 XRLdirect,A直接寻址单元异或累加器21 XRLdirect,#data直接寻址单元异或立即数32 RLA累加器左循环移位11 RLCA累加器连进位标志左循环移位11 RRA累加器右循环移位11 RRCA累加器连进位标志右循环移位11 CPLA累加器取反11 CLRA累加器清零11 四、控制转移类指令类 ACCALLaddr112KB范围内绝对调用22 AJMPaddr112KB范围内绝对转移22 LCALLaddr162KB范围内长调用32 LJMPaddr162KB范围内长转移32 SJMPrel相对短转移22 JMP@A+DPTR相对长转移12 RET子程序返回12 RET1中断返回12 JZrel累加器为零转移22 JNZrel累加器非零转移22 CJNEA,#data,rel累加器与立即数不等转移32 CJNEA,direct,rel累加器与直接寻址单元不等转移32 CJNERn,#data,rel寄存器与立即数不等转移32 CJNE@Ri,#data,relRAM单元与立即数不等转移32 DJNZRn,rel寄存器减1不为零转移22 DJNZdirect,rel直接寻址单元减1不为零转移32 NOP空操作11 五、布尔操作类指令 MOVC,bit直接寻址位送C21 MOVbit,CC送直接寻址位21 CLRCC清零11 CLRbit直接寻址位清零21 CPLCC取反11 CPLbit直接寻址位取反21 SETBCC置位11 SETBbit直接寻
址位置位21 ANLC,bitC逻辑与直接寻址位22 ANLC,/bitC逻辑与直接寻址位的反22 ORLC,bitC逻辑或直接寻址位22 ORLC,/bitC逻辑或直接寻址位的反22 JCrelC为1转移22 JNCrelC为零转移22 JBbit,rel直接寻址位为1转移32 JNBbit,rel直接寻址为0转移
1、D1~D8八个彩灯按规定顺序依次点亮(间隔1秒),最后全亮;2、按规定顺序依次熄灭(间隔1秒),最后全灭;
3、八个灯同时点亮,保持1秒;4、八个灯同时熄灭,保持0.5秒;再将第3、4步重复4遍,最后整个程序再重复N遍。
5、让八个灯依次显示为010010011.假设1:D1~D8八个彩灯接在P1口,输出低电平发光2.假设2:系统晶振为12MHz3.假设3:N=5
ORG0000H
MOVR3,#5;N=5
LOOP0:
MOVA,#0FFH
MOVP1,#0FFH;开始时全灭
;-------------------------------逐个点亮
MOVR2,#8
LOOP1:CLRC
RLCA
MOVP1,A
CALLDL500MS
DJNZR2,LOOP1
;-------------------------------逐个熄灭
MOVR2,#8
LOOP2:SETBC
RLCA
MOVP1,A
CALLDL500MS
DJNZR2,LOOP2
;-------------------------------全亮、全灭交替
MOVR2,#4
LOOP3:MOVP1,#0;全亮
CALLDL500MS
CALLDL500MS;共1s
MOVP1,#255;全灭
CALLDL500MS;0.5s
DJNZR2,LOOP3
;-------------------------------
DJNZR3,LOOP0
MOVP1,#01001001B;5、显示为01001001
CALLDL500MS
CALLDL500MS;共1s
SJMP0000H;重新开始N遍
;-------------------------------延时子程序
DL500MS:
MOVR5,#9;1T
DL1:MOVR6,#128;1T
DL2:MOVR7,#215;1T
NOP;1T
DL3:DJNZR7,DL3;2T2*215=430T
DJNZR6,DL2;2T[1+1+430+2]*128=55552T
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论