📄 3510lcd.lst
字号:
*** EXTERNALS:
EXTERN CODE16 (DelayXms?T)
*** PUBLICS:
PUBLIC LcdReset?T
PUBLIC LcdSendCommand?T
PUBLIC LcdSendData?T
PUBLIC LcdReadDummy?T
PUBLIC LcdReadData?T
PUBLIC LcdInit?T
PUBLIC LcdBlockWrite?T
PUBLIC LcdPortInit?T
PUBLIC LcdClr?T
*** CODE SEGMENT '?PR?LcdPortInit?T?3510LCD':
22: GP2CON &=~(uint32)(0x0F<<(LCD_RST*4));
00000000 22F0 MOV R2,#0xF0
00000002 4800 LDR R0,=0xFFFFF408
00000004 6801 LDR R1,[R0,#0x0]
00000006 4391 BIC R1,R2
00000008 6001 STR R1,[R0,#0x0]
23: GP2DAT |=1<<(LCD_RST+24);
0000000A 4800 LDR R2,=0x2000000
0000000C 4800 LDR R0,=0xFFFFF440
0000000E 6801 LDR R1,[R0,#0x0]
00000010 4311 ORR R1,R2
00000012 6001 STR R1,[R0,#0x0]
24: GP2CON &=~(uint32)(0x0F<<(LCD_CS*4));
00000014 4800 LDR R2,=0xF00
00000016 4800 LDR R0,=0xFFFFF408
00000018 6801 LDR R1,[R0,#0x0]
0000001A 4391 BIC R1,R2
0000001C 6001 STR R1,[R0,#0x0]
25: GP2DAT |=1<<(LCD_CS+24);
0000001E 4800 LDR R2,=0x4000000
00000020 4800 LDR R0,=0xFFFFF440
00000022 6801 LDR R1,[R0,#0x0]
00000024 4311 ORR R1,R2
00000026 6001 STR R1,[R0,#0x0]
26: GP1CON &=~(uint32)(0x0F<<(LCD_SDATA*4));
00000028 4800 LDR R2,=0xF0000000
0000002A 4800 LDR R0,=0xFFFFF404
0000002C 6801 LDR R1,[R0,#0x0]
0000002E 4391 BIC R1,R2
00000030 6001 STR R1,[R0,#0x0]
27: GP1DAT &=~(uint32)(1<<(LCD_SDATA+24));
00000032 4800 LDR R2,=0x80000000
00000034 4800 LDR R0,=0xFFFFF430
00000036 6801 LDR R1,[R0,#0x0]
00000038 4391 BIC R1,R2
0000003A 6001 STR R1,[R0,#0x0]
28: GP1CON &=~(uint32)(0x0F<<(LCD_SCLK*4));
0000003C 4800 LDR R2,=0xF000000
0000003E 4800 LDR R0,=0xFFFFF404
00000040 6801 LDR R1,[R0,#0x0]
00000042 4391 BIC R1,R2
00000044 6001 STR R1,[R0,#0x0]
29: GP1DAT |=1<<(LCD_SCLK+24);
00000046 4800 LDR R2,=0x40000000
00000048 4800 LDR R0,=0xFFFFF430
0000004A 6801 LDR R1,[R0,#0x0]
0000004C 4311 ORR R1,R2
0000004E 6001 STR R1,[R0,#0x0]
ARM COMPILER V2.50a, 3510LCD 03/05/06 03:04:54 PAGE 7
30: SetLcdRst();
00000050 4800 LDR R1,=0x20000
00000052 4800 LDR R0,=0xFFFFF444
00000054 6001 STR R1,[R0,#0x0]
31: SetLcdCs();
00000056 4800 LDR R1,=0x40000
00000058 4800 LDR R0,=0xFFFFF444
0000005A 6001 STR R1,[R0,#0x0]
32: SetLcdSclk();
0000005C 4800 LDR R1,=0x400000
0000005E 4800 LDR R0,=0xFFFFF434
00000060 6001 STR R1,[R0,#0x0]
33: }
00000062 4770 BX R14
00000064 ENDP ; 'LcdPortInit?T'
*** CODE SEGMENT '?PR?LcdReset?T?3510LCD':
37: void LcdReset(void)
00000000 B500 PUSH {LR}
39: ClrLcdRst();
00000002 4800 LDR R1,=0x20000
00000004 4800 LDR R0,=0xFFFFF448
00000006 6001 STR R1,[R0,#0x0]
40: DelayXms(5);
00000008 2005 MOV R0,#0x5
0000000A F7FF BL DelayXms?T ; T=0x0001 (1)
0000000C FFF9 BL DelayXms?T ; T=0x0001 (2)
41: SetLcdRst();
0000000E 4800 LDR R1,=0x20000
00000010 4800 LDR R0,=0xFFFFF444
00000012 6001 STR R1,[R0,#0x0]
42: DelayXms(5);
00000014 2005 MOV R0,#0x5
00000016 F7FF BL DelayXms?T ; T=0x0001 (1)
00000018 FFF3 BL DelayXms?T ; T=0x0001 (2)
43: }
0000001A BC08 POP {R3}
0000001C 4718 BX R3
0000001E ENDP ; 'LcdReset?T'
*** CODE SEGMENT '?PR?LcdSendCommand?T?3510LCD':
47: void LcdSendCommand(uint8 cmd)
00000000 ---- Variable 'cmd' assigned to Register 'R0' ----
48: {
00000000 ; SCOPE-START
50: SetSdataOut();
00000000 4800 LDR R3,=0x80000000
00000002 4800 LDR R1,=0xFFFFF430
00000004 680A LDR R2,[R1,#0x0]
00000006 431A ORR R2,R3
00000008 600A STR R2,[R1,#0x0]
51: ClrLcdCs();
0000000A 4800 LDR R2,=0x40000
0000000C 4800 LDR R1,=0xFFFFF448
0000000E 600A STR R2,[R1,#0x0]
52: ClrLcdSclk();
00000010 4800 LDR R2,=0x400000
00000012 4800 LDR R1,=0xFFFFF438
00000014 600A STR R2,[R1,#0x0]
53: ClrLcdSdata();
00000016 4800 LDR R3,=0x800000
00000018 4800 LDR R1,=0xFFFFF438
0000001A 600B STR R3,[R1,#0x0]
54: SetLcdSclk();
0000001C 4800 LDR R1,=0xFFFFF434
0000001E 600A STR R2,[R1,#0x0]
56: for(i=0;i<8;i++)
00000020 2100 MOV R1,#0x0
ARM COMPILER V2.50a, 3510LCD 03/05/06 03:04:54 PAGE 8
00000022 ---- Variable 'i' assigned to Register 'R1' ----
00000022 E018 B L_3 ; T=0x00000056
00000024 L_4:
58: ClrLcdSclk();
00000024 4800 LDR R3,=0x400000
00000026 4800 LDR R2,=0xFFFFF438
00000028 6013 STR R3,[R2,#0x0]
59: if(cmd & 0x80)
0000002A 1C02 MOV R2,R0 ; cmd
0000002C 0612 LSL R2,R2,#0x18 ; cmd
0000002E 0E12 LSR R2,R2,#0x18
00000030 2380 MOV R3,#0x80
00000032 421A TST R2,R3
00000034 D003 BEQ L_6 ; T=0x0000003E
61: SetLcdSdata();
00000036 4800 LDR R3,=0x800000
00000038 4800 LDR R2,=0xFFFFF434
0000003A 6013 STR R3,[R2,#0x0]
62: }
0000003C E002 B L_7 ; T=0x00000044
0000003E L_6:
65: ClrLcdSdata();
0000003E 4800 LDR R3,=0x800000
00000040 4800 LDR R2,=0xFFFFF438
00000042 6013 STR R3,[R2,#0x0]
66: }
00000044 L_7:
67: SetLcdSclk();
00000044 4800 LDR R3,=0x400000
00000046 4800 LDR R2,=0xFFFFF434
00000048 6013 STR R3,[R2,#0x0]
68: cmd<<=1;
0000004A 0040 LSL R0,R0,#0x1 ; cmd
0000004C 0600 LSL R0,R0,#0x18
0000004E 0E00 LSR R0,R0,#0x18
69: }
00000050 3101 ADD R1,#0x1
00000052 0609 LSL R1,R1,#0x18
00000054 0E09 LSR R1,R1,#0x18
00000056 L_3:
00000056 1C0A MOV R2,R1 ; i
00000058 0612 LSL R2,R2,#0x18 ; i
0000005A 0E12 LSR R2,R2,#0x18
0000005C 2A08 CMP R2,#0x8
0000005E DBE1 BLT L_4 ; T=0x00000024
00000060 ; SCOPE-END
70: }
00000060 4770 BX R14
00000062 ENDP ; 'LcdSendCommand?T'
*** CODE SEGMENT '?PR?LcdSendData?T?3510LCD':
74: void LcdSendData(uint32 Data)
00000000 ---- Variable 'Data' assigned to Register 'R0' ----
75: {
00000000 ; SCOPE-START
77: SetSdataOut();
00000000 4800 LDR R3,=0x80000000
00000002 4800 LDR R1,=0xFFFFF430
00000004 680A LDR R2,[R1,#0x0]
00000006 431A ORR R2,R3
00000008 600A STR R2,[R1,#0x0]
78: ClrLcdCs();
0000000A 4800 LDR R2,=0x40000
0000000C 4800 LDR R1,=0xFFFFF448
0000000E 600A STR R2,[R1,#0x0]
79: ClrLcdSclk();
00000010 4800 LDR R2,=0x400000
ARM COMPILER V2.50a, 3510LCD 03/05/06 03:04:54 PAGE 9
00000012 4800 LDR R1,=0xFFFFF438
00000014 600A STR R2,[R1,#0x0]
80: SetLcdSdata();
00000016 4800 LDR R3,=0x800000
00000018 4800 LDR R1,=0xFFFFF434
0000001A 600B STR R3,[R1,#0x0]
81: SetLcdSclk();
0000001C 4800 LDR R1,=0xFFFFF434
0000001E 600A STR R2,[R1,#0x0]
83: for(i=0;i<8;i++)
00000020 2100 MOV R1,#0x0
00000022 ---- Variable 'i' assigned to Register 'R1' ----
00000022 L_11:
85: ClrLcdSclk();
00000022 4800 LDR R3,=0x400000
00000024 4800 LDR R2,=0xFFFFF438
00000026 6013 STR R3,[R2,#0x0]
86: if(Data & 0x80)
00000028 1C02 MOV R2,R0 ; Data
0000002A 2380 MOV R3,#0x80
0000002C 421A TST R2,R3 ; Data
0000002E D003 BEQ L_13 ; T=0x00000038
88: SetLcdSdata();
00000030 4800 LDR R3,=0x800000
00000032 4800 LDR R2,=0xFFFFF434
00000034 6013 STR R3,[R2,#0x0]
89: }
00000036 E002 B L_14 ; T=0x0000003E
00000038 L_13:
92: ClrLcdSdata();
00000038 4800 LDR R3,=0x800000
0000003A 4800 LDR R2,=0xFFFFF438
0000003C 6013 STR R3,[R2,#0x0]
93: }
0000003E L_14:
94: SetLcdSclk();
0000003E 4800 LDR R3,=0x400000
00000040 4800 LDR R2,=0xFFFFF434
00000042 6013 STR R3,[R2,#0x0]
95: Data<<=1;
00000044 0040 LSL R0,R0,#0x1 ; Data
96: }
00000046 3101 ADD R1,#0x1
00000048 1C0A MOV R2,R1 ; i
0000004A 2A08 CMP R2,#0x8 ; i
0000004C D3E9 BCC L_11 ; T=0x00000022
0000004E ; SCOPE-END
97: }
0000004E 4770 BX R14
00000050 ENDP ; 'LcdSendData?T'
*** CODE SEGMENT '?PR?LcdReadDummy?T?3510LCD':
103: SetSdataIn();
00000000 4800 LDR R2,=0x80000000
00000002 4800 LDR R0,=0xFFFFF430
00000004 6801 LDR R1,[R0,#0x0]
00000006 4391 BIC R1,R2
00000008 6001 STR R1,[R0,#0x0]
104: ClrLcdCs();
0000000A 4800 LDR R1,=0x40000
0000000C 4800 LDR R0,=0xFFFFF448
0000000E 6001 STR R1,[R0,#0x0]
105: ClrLcdSclk();
00000010 4800 LDR R1,=0x400000
00000012 4800 LDR R0,=0xFFFFF438
00000014 6001 STR R1,[R0,#0x0]
106: SetLcdSclk();
ARM COMPILER V2.50a, 3510LCD 03/05/06 03:04:54 PAGE 10
00000016 4800 LDR R0,=0xFFFFF434
00000018 6001 STR R1,[R0,#0x0]
107: }
0000001A 4770 BX R14
0000001C ENDP ; 'LcdReadDummy?T'
*** CODE SEGMENT '?PR?LcdReadData?T?3510LCD':
112: {
00000000 ; SCOPE-START
113: uint16 r = 0;
00000000 2100 MOV R1,#0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -