📄 zlg7290.txt
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 942] for uVision
; commandline ArmCC [--debug -c --asm --interleave -ozlg7290.o --device=DARMP --apcs=interwork -O0 -IC:\Keil\ARM\INC\Philips zlg7290.c]
ARM
AREA ||.text||, CODE, READONLY, ALIGN=2
DelayMS PROC
;;;59
;;;60 for(; dly>0; dly--)
000000 ea000006 B |L1.32|
|L1.4|
000004 e3a01000 MOV r1,#0
000008 ea000001 B |L1.20|
|L1.12|
00000c e2812001 ADD r2,r1,#1
000010 e20210ff AND r1,r2,#0xff
|L1.20|
000014 e3510064 CMP r1,#0x64
000018 bafffffb BLT |L1.12|
00001c e2400001 SUB r0,r0,#1
|L1.32|
000020 e3500000 CMP r0,#0
000024 1afffff6 BNE |L1.4|
000028 e12fff1e BX lr
;;;61 for(i=0; i<100; i++);
;;;62 }
ENDP
ZLG7290_SendData PROC
;;;83 unsigned char ZLG7290_SendData(unsigned char SubAdd,unsigned char Data)
;;;84 {
00002c e92d4013 PUSH {r0,r1,r4,lr}
000030 e1a04000 MOV r4,r0
000034 e3540017 CMP r4,#0x17
000038 da000002 BLE |L1.72|
00003c e3a00000 MOV r0,#0
|L1.64|
000040 e8bd401c POP {r2-r4,lr}
000044 e12fff1e BX lr
|L1.72|
000048 e3a03001 MOV r3,#1
00004c e28d2004 ADD r2,sp,#4
000050 e1a01004 MOV r1,r4
000054 e3a00070 MOV r0,#0x70
000058 ebfffffe BL ISendStr
00005c e3a0000a MOV r0,#0xa
000060 ebfffffe BL DelayMS
000064 e3a00001 MOV r0,#1
000068 eafffff4 B |L1.64|
;;;85 if(SubAdd>0x17) return 0;
;;;86 ISendStr(ZLG7290,SubAdd,&Data,1);
;;;87 DelayMS(10);
;;;88 return 1;
;;;89 }
ENDP
ZLG7290_SendCmd PROC
;;;109 unsigned char ZLG7290_SendCmd(unsigned char Data1,unsigned char Data2)
;;;110 {
00006c e92d4038 PUSH {r3-r5,lr}
000070 e1a04000 MOV r4,r0
000074 e1a05001 MOV r5,r1
000078 e5cd4000 STRB r4,[sp,#0]
00007c e5cd5001 STRB r5,[sp,#1]
000080 e3a03002 MOV r3,#2
000084 e1a0200d MOV r2,sp
000088 e3a01007 MOV r1,#7
00008c e3a00070 MOV r0,#0x70
000090 ebfffffe BL ISendStr
000094 e3a0000a MOV r0,#0xa
000098 ebfffffe BL DelayMS
00009c e3a00001 MOV r0,#1
0000a0 e8bd4038 POP {r3-r5,lr}
0000a4 e12fff1e BX lr
;;;111 unsigned char Data[2];
;;;112
;;;113 Data[0]=Data1;
;;;114 Data[1]=Data2;
;;;115 ISendStr(ZLG7290,0x07,Data,2);
;;;116 DelayMS(10);
;;;117 return 1;
;;;118 }
ENDP
ZLG7290_SendBuf PROC
;;;136 void ZLG7290_SendBuf(unsigned char * disp_buf,unsigned char num)
;;;137 {
0000a8 e92d4070 PUSH {r4-r6,lr}
0000ac e1a04000 MOV r4,r0
0000b0 e1a06001 MOV r6,r1
0000b4 e3a05000 MOV r5,#0
0000b8 ea000006 B |L1.216|
|L1.188|
0000bc e5d41000 LDRB r1,[r4,#0]
0000c0 e2852060 ADD r2,r5,#0x60
0000c4 e20200ff AND r0,r2,#0xff
0000c8 ebfffffe BL ZLG7290_SendCmd
0000cc e2844001 ADD r4,r4,#1
0000d0 e2850001 ADD r0,r5,#1
0000d4 e20050ff AND r5,r0,#0xff
|L1.216|
0000d8 e1550006 CMP r5,r6
0000dc bafffff6 BLT |L1.188|
0000e0 e8bd4070 POP {r4-r6,lr}
0000e4 e12fff1e BX lr
;;;138 unsigned char i;
;;;139
;;;140 for(i=0;i<num;i++)
;;;141 {
;;;142 ZLG7290_SendCmd(0x60+i,*disp_buf);
;;;143 disp_buf++;
;;;144 }
;;;145 }
ENDP
ZLG7290_GetKey PROC
;;;164 unsigned char ZLG7290_GetKey(void)
;;;165 {
0000e8 e92d4008 PUSH {r3,lr}
0000ec e3a00000 MOV r0,#0
0000f0 e58d0000 STR r0,[sp,#0]
0000f4 e3a03001 MOV r3,#1
0000f8 e1a0200d MOV r2,sp
0000fc e1a01003 MOV r1,r3
000100 e3a00070 MOV r0,#0x70
000104 ebfffffe BL IRcvStr
000108 e3a0000a MOV r0,#0xa
00010c ebfffffe BL DelayMS
000110 e5dd0000 LDRB r0,[sp,#0]
000114 e8bd5000 POP {r12,lr}
000118 e12fff1e BX lr
;;;166 unsigned char rece;
;;;167
;;;168 rece=0;
;;;169 IRcvStr(ZLG7290,1,&rece,1);
;;;170 DelayMS(10);
;;;171 return rece;
;;;172 }
ENDP
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -