📄 lcdtest.lst
字号:
240 }
\ ??dipBMP_3:
\ 00000070 7040BDE8 POP {R4-R6,LR}
\ 00000074 1EFF2FE1 BX LR ;; return
241
\ In segment CODE, align 4, keep-with-next
242 void dishz(unsigned char x_addr,unsigned char y_addr,unsigned char *p)
243 { unsigned i,pag,colh,coll;
\ dishz:
\ 00000000 F0412DE9 PUSH {R4-R8,LR}
\ 00000004 0240B0E1 MOVS R4,R2
244 pag = x_addr*2+0xb0;
\ 00000008 0220A0E3 MOV R2,#+2
\ 0000000C 920010E0 MULS R0,R2,R0
\ 00000010 B06090E2 ADDS R6,R0,#+176
245 colh = y_addr>>4;
\ 00000014 FF1011E2 ANDS R1,R1,#0xFF ;; Zero extend
\ 00000018 2172B0E1 LSRS R7,R1,#+4
\ 0000001C FF7017E2 ANDS R7,R7,#0xFF ;; Zero extend
246 colh |= 0xf0;
\ 00000020 F07097E3 ORRS R7,R7,#0xF0
247 colh &= 0x1f;
\ 00000024 1F7017E2 ANDS R7,R7,#0x1F
248 coll = y_addr &0x0f;
\ 00000028 0F8011E2 ANDS R8,R1,#0xF
249 SEND2LCM(0,colh);
\ 0000002C 0710B0E1 MOVS R1,R7
\ 00000030 0000A0E3 MOV R0,#+0
\ 00000034 ........ BL SEND2LCM
250 SEND2LCM(0,coll);
\ 00000038 0810B0E1 MOVS R1,R8
\ 0000003C 0000A0E3 MOV R0,#+0
\ 00000040 ........ BL SEND2LCM
251 SEND2LCM(0,pag);
\ 00000044 0610B0E1 MOVS R1,R6
\ 00000048 0000A0E3 MOV R0,#+0
\ 0000004C ........ BL SEND2LCM
252 for(i=0;i<32;i++)
\ 00000050 0050A0E3 MOV R5,#+0
\ 00000054 0F0000EA B ??dishz_0
253 {if(i==16)
\ ??dishz_1:
\ 00000058 100055E3 CMP R5,#+16
\ 0000005C 0800001A BNE ??dishz_2
254 {SEND2LCM(0,pag+1);
\ 00000060 011096E2 ADDS R1,R6,#+1
\ 00000064 0000A0E3 MOV R0,#+0
\ 00000068 ........ BL SEND2LCM
255 SEND2LCM(0,colh);
\ 0000006C 0710B0E1 MOVS R1,R7
\ 00000070 0000A0E3 MOV R0,#+0
\ 00000074 ........ BL SEND2LCM
256 SEND2LCM(0,coll);
\ 00000078 0810B0E1 MOVS R1,R8
\ 0000007C 0000A0E3 MOV R0,#+0
\ 00000080 ........ BL SEND2LCM
257 }
258 SEND2LCM(1,*p++);
\ ??dishz_2:
\ 00000084 0010D4E5 LDRB R1,[R4, #+0]
\ 00000088 0100A0E3 MOV R0,#+1
\ 0000008C ........ BL SEND2LCM
\ 00000090 014094E2 ADDS R4,R4,#+1
259 }
\ 00000094 015095E2 ADDS R5,R5,#+1
\ ??dishz_0:
\ 00000098 200055E3 CMP R5,#+32
\ 0000009C EDFFFF3A BCC ??dishz_1
260 }
\ 000000A0 F041BDE8 POP {R4-R8,LR}
\ 000000A4 1EFF2FE1 BX LR ;; return
261
\ In segment CODE, align 4, keep-with-next
262 void initLCM(void)
263 {
\ initLCM:
\ 00000000 00402DE9 PUSH {LR}
264 __PIO_PERB =(LCD_RS + LCD_CS + LCD_CLK + LCD_DAT); //作为普通IO使用
\ 00000004 FF04A0E3 MOV R0,#-16777216
\ 00000008 FF0880E3 ORR R0,R0,#0xFF0000
\ 0000000C E417A0E3 MOV R1,#+59768832
\ 00000010 001080E5 STR R1,[R0, #+0]
265 __PIO_OERB =(LCD_RS + LCD_CS + LCD_CLK + LCD_DAT); // 设置为输出
\ 00000014 EF00E0E3 MVN R0,#+239
\ 00000018 FF0CC0E3 BIC R0,R0,#0xFF00
\ 0000001C E417A0E3 MOV R1,#+59768832
\ 00000020 001080E5 STR R1,[R0, #+0]
266 __PIO_SODRB =(LCD_RS + LCD_CS + LCD_CLK + LCD_DAT); // 所有输出为高电平
\ 00000024 CF00E0E3 MVN R0,#+207
\ 00000028 FF0CC0E3 BIC R0,R0,#0xFF00
\ 0000002C E417A0E3 MOV R1,#+59768832
\ 00000030 001080E5 STR R1,[R0, #+0]
267
268 SEND2LCM(0,0xe2);
\ 00000034 E210A0E3 MOV R1,#+226
\ 00000038 0000A0E3 MOV R0,#+0
\ 0000003C ........ BL SEND2LCM
269 delayMs(100);
\ 00000040 6400A0E3 MOV R0,#+100
\ 00000044 ........ BL delayMs
270 SEND2LCM(0,0xa0);
\ 00000048 A010A0E3 MOV R1,#+160
\ 0000004C 0000A0E3 MOV R0,#+0
\ 00000050 ........ BL SEND2LCM
271 SEND2LCM(0,0xc0);// SEND2LCM(0,0xc8);
\ 00000054 C010A0E3 MOV R1,#+192
\ 00000058 0000A0E3 MOV R0,#+0
\ 0000005C ........ BL SEND2LCM
272 SEND2LCM(0,0xa3);
\ 00000060 A310A0E3 MOV R1,#+163
\ 00000064 0000A0E3 MOV R0,#+0
\ 00000068 ........ BL SEND2LCM
273 delayMs(100);
\ 0000006C 6400A0E3 MOV R0,#+100
\ 00000070 ........ BL delayMs
274 SEND2LCM(0,0x2c);
\ 00000074 2C10A0E3 MOV R1,#+44
\ 00000078 0000A0E3 MOV R0,#+0
\ 0000007C ........ BL SEND2LCM
275 delayMs(100);
\ 00000080 6400A0E3 MOV R0,#+100
\ 00000084 ........ BL delayMs
276 SEND2LCM(0,0x2e);
\ 00000088 2E10A0E3 MOV R1,#+46
\ 0000008C 0000A0E3 MOV R0,#+0
\ 00000090 ........ BL SEND2LCM
277 delayMs(100);
\ 00000094 6400A0E3 MOV R0,#+100
\ 00000098 ........ BL delayMs
278 SEND2LCM(0,0x2f);
\ 0000009C 2F10A0E3 MOV R1,#+47
\ 000000A0 0000A0E3 MOV R0,#+0
\ 000000A4 ........ BL SEND2LCM
279 delayMs(100);
\ 000000A8 6400A0E3 MOV R0,#+100
\ 000000AC ........ BL delayMs
280 SEND2LCM(0,0x25);
\ 000000B0 2510A0E3 MOV R1,#+37
\ 000000B4 0000A0E3 MOV R0,#+0
\ 000000B8 ........ BL SEND2LCM
281 SEND2LCM(0,0x81);
\ 000000BC 8110A0E3 MOV R1,#+129
\ 000000C0 0000A0E3 MOV R0,#+0
\ 000000C4 ........ BL SEND2LCM
282 SEND2LCM(0,0x15);
\ 000000C8 1510A0E3 MOV R1,#+21
\ 000000CC 0000A0E3 MOV R0,#+0
\ 000000D0 ........ BL SEND2LCM
283 delayMs(100);
\ 000000D4 6400A0E3 MOV R0,#+100
\ 000000D8 ........ BL delayMs
284 SEND2LCM(0,0x60);
\ 000000DC 6010A0E3 MOV R1,#+96
\ 000000E0 0000A0E3 MOV R0,#+0
\ 000000E4 ........ BL SEND2LCM
285 SEND2LCM(0,0xaf);
\ 000000E8 AF10A0E3 MOV R1,#+175
\ 000000EC 0000A0E3 MOV R0,#+0
\ 000000F0 ........ BL SEND2LCM
286 }
\ 000000F4 0040BDE8 POP {LR}
\ 000000F8 1EFF2FE1 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
287 void LCDtest(void)
288 { unsigned char *hzcode;
\ LCDtest:
\ 00000000 10402DE9 PUSH {R4,LR}
289 initLCM();
\ 00000004 ........ BL initLCM
290 LCDclear(0x55,0x55);
\ 00000008 5510A0E3 MOV R1,#+85
\ 0000000C 5500A0E3 MOV R0,#+85
\ 00000010 ........ BL LCDclear
291 delayMs(200);
\ 00000014 C800A0E3 MOV R0,#+200
\ 00000018 ........ BL delayMs
292 LCDclear(0xff,0x00);
\ 0000001C 0010A0E3 MOV R1,#+0
\ 00000020 FF00A0E3 MOV R0,#+255
\ 00000024 ........ BL LCDclear
293 delayMs(200);
\ 00000028 C800A0E3 MOV R0,#+200
\ 0000002C ........ BL delayMs
294 LCDclear(0xaa,0x55);
\ 00000030 5510A0E3 MOV R1,#+85
\ 00000034 AA00A0E3 MOV R0,#+170
\ 00000038 ........ BL LCDclear
295 delayMs(200);
\ 0000003C C800A0E3 MOV R0,#+200
\ 00000040 ........ BL delayMs
296 LCDclear(0x00,0x00);
\ 00000044 0010A0E3 MOV R1,#+0
\ 00000048 0000A0E3 MOV R0,#+0
\ 0000004C ........ BL LCDclear
297 delayMs(200);
\ 00000050 C800A0E3 MOV R0,#+200
\ 00000054 ........ BL delayMs
298 hzcode=hz1;
\ 00000058 9C409FE5 LDR R4,??LCDtest_0 ;; hz1
299 dishz(0,0,hzcode);
\ 0000005C 0420B0E1 MOVS R2,R4
\ 00000060 0010A0E3 MOV R1,#+0
\ 00000064 0000A0E3 MOV R0,#+0
\ 00000068 ........ BL dishz
300 delayMs(100);
\ 0000006C 6400A0E3 MOV R0,#+100
\ 00000070 ........ BL delayMs
301 dishz(0,16,hzcode);
\ 00000074 0420B0E1 MOVS R2,R4
\ 00000078 1010A0E3 MOV R1,#+16
\ 0000007C 0000A0E3 MOV R0,#+0
\ 00000080 ........ BL dishz
302 delayMs(100);
\ 00000084 6400A0E3 MOV R0,#+100
\ 00000088 ........ BL delayMs
303 dishz(2,0,hzcode);
\ 0000008C 0420B0E1 MOVS R2,R4
\ 00000090 0010A0E3 MOV R1,#+0
\ 00000094 0200A0E3 MOV R0,#+2
\ 00000098 ........ BL dishz
304 delayMs(100);
\ 0000009C 6400A0E3 MOV R0,#+100
\ 000000A0 ........ BL delayMs
305 dishz(2,64,hzcode);
\ 000000A4 0420B0E1 MOVS R2,R4
\ 000000A8 4010A0E3 MOV R1,#+64
\ 000000AC 0200A0E3 MOV R0,#+2
\ 000000B0 ........ BL dishz
306 delayMs(100);
\ 000000B4 6400A0E3 MOV R0,#+100
\ 000000B8 ........ BL delayMs
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -