⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 register_lcd_driver.lst

📁 Source code for kit ADUC7026 _LCD Driver
💻 LST
📖 第 1 页 / 共 3 页
字号:
  123:     delay  (5);                                             // Allow Hold time of 500nS min
 00000044  2005      MOV         R0,#0x5
 00000046  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000048  FFDB      BL          delay?T  ; T=0x0001  (2)
  124:     GP0CLR = 0x800000;                                      // Set E low
 0000004A  4800      LDR         R1,=0x800000
 0000004C  4800      LDR         R0,=0xFFFFF428
 0000004E  6001      STR         R1,[R0,#0x0]
  125:     delay (2000);                                           // Minimum clear time of 1.58mS
 00000050  4800      LDR         R0,=0x7D0
 00000052  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000054  FFD5      BL          delay?T  ; T=0x0001  (2)
  127:     return 0x1;
 00000056  2001      MOV         R0,#0x1
 00000058            ; SCOPE-END
  128: }
 00000058  BC30      POP         {R4-R5}
 0000005A  BC08      POP         {R3}
 0000005C  4718      BX          R3
 0000005E          ENDP ; 'Clear_Display_LCD?T'


*** CODE SEGMENT '?PR?Set_Entry_Mode?T?Register_LCD_Driver':
  129: unsigned char Set_Entry_Mode(unsigned char ucFunctionSet)
 00000000  B530      PUSH        {R4-R5,LR}
ARM COMPILER V2.42,  Register_LCD_Driver                                                   06/03/07  11:32:18  PAGE 10  

 00000002  1C05      MOV         R5,R0 ; ucFunctionSet
 00000004  ---- Variable 'ucFunctionSet' assigned to Register 'R5' ----
  130: {
 00000004            ; SCOPE-START
  131:     unsigned long ulFunction = 0;                                  
 00000004  2400      MOV         R4,#0x0
 00000006  ---- Variable 'ulFunction' assigned to Register 'R4' ----
  133:     delay (10000);
 00000006  4800      LDR         R0,=0x2710
 00000008  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          delay?T  ; T=0x0001  (2)
  134:     RdStatus =  ReadStatus();
 0000000C  F7FF      BL          ReadStatus?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          ReadStatus?T  ; T=0x0001  (2)
 00000010  4800      LDR         R1,=RdStatus ; RdStatus
 00000012  7008      STRB        R0,[R1,#0x0] ; RdStatus
  135:     ulFunction =  ucFunctionSet;
 00000014  1C28      MOV         R0,R5 ; ucFunctionSet
 00000016  0604      LSL         R4,R0,#0x18 ; ucFunctionSet
 00000018  0E24      LSR         R4,R4,#0x18
  136:     ulFunction = (ulFunction << 16);
 0000001A  0424      LSL         R4,R4,#0x10 ; ulFunction
  137:     ulFunction |= 0xFF000000;
 0000001C  4800      LDR         R0,=0xFF000000
 0000001E  4304      ORR         R4,R0
  139:     GP0DAT = 0xA0000000;                                    // Clear RS pin(P0.5), clear E pin (P0.7) -> R/W)
 00000020  4800      LDR         R1,=0xA0000000
 00000022  4800      LDR         R0,=0xFFFFF420
 00000024  6001      STR         R1,[R0,#0x0]
  140:     GP2DAT = 0x01000000;                                    // Clear R/W pin    (P2.0 -> R/W)
 00000026  4800      LDR         R1,=0x1000000
 00000028  4800      LDR         R0,=0xFFFFF440
 0000002A  6001      STR         R1,[R0,#0x0]
  141:     delay (5);
 0000002C  2005      MOV         R0,#0x5
 0000002E  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000030  FFE7      BL          delay?T  ; T=0x0001  (2)
  143:     GP0SET = 0x800000;                                      // Set E high
 00000032  4800      LDR         R1,=0x800000
 00000034  4800      LDR         R0,=0xFFFFF424
 00000036  6001      STR         R1,[R0,#0x0]
  144:     delay  (5);                                             // allow min 800ns Setup time
 00000038  2005      MOV         R0,#0x5
 0000003A  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000003C  FFE1      BL          delay?T  ; T=0x0001  (2)
  145:     GP1DAT = ulFunction;                                    // Write to register
 0000003E  1C21      MOV         R1,R4 ; ulFunction
 00000040  4800      LDR         R0,=0xFFFFF430
 00000042  6001      STR         R1,[R0,#0x0]
  146:     delay  (5);                                             // allow Hold time of 500nS min
 00000044  2005      MOV         R0,#0x5
 00000046  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000048  FFDB      BL          delay?T  ; T=0x0001  (2)
  147:     GP0CLR = 0x800000;                                      // Set E low
 0000004A  4800      LDR         R1,=0x800000
 0000004C  4800      LDR         R0,=0xFFFFF428
 0000004E  6001      STR         R1,[R0,#0x0]
  148:     delay (5);
 00000050  2005      MOV         R0,#0x5
 00000052  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000054  FFD5      BL          delay?T  ; T=0x0001  (2)
  150:     return 0x1;
 00000056  2001      MOV         R0,#0x1
 00000058            ; SCOPE-END
  151: }
 00000058  BC30      POP         {R4-R5}
ARM COMPILER V2.42,  Register_LCD_Driver                                                   06/03/07  11:32:18  PAGE 11  

 0000005A  BC08      POP         {R3}
 0000005C  4718      BX          R3
 0000005E          ENDP ; 'Set_Entry_Mode?T'


*** CODE SEGMENT '?PR?Wr_Data_LCD?T?Register_LCD_Driver':
  152: unsigned char Wr_Data_LCD(unsigned char ucFunctionSet)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C05      MOV         R5,R0 ; ucFunctionSet
 00000004  ---- Variable 'ucFunctionSet' assigned to Register 'R5' ----
  153: {
 00000004            ; SCOPE-START
  154:     unsigned long ulFunction = 0;                                  
 00000004  2400      MOV         R4,#0x0
 00000006  ---- Variable 'ulFunction' assigned to Register 'R4' ----
  156:     delay (10000);
 00000006  4800      LDR         R0,=0x2710
 00000008  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          delay?T  ; T=0x0001  (2)
  157:     RdStatus =  ReadStatus();
 0000000C  F7FF      BL          ReadStatus?T  ; T=0x0001  (1)
 0000000E  FFF8      BL          ReadStatus?T  ; T=0x0001  (2)
 00000010  4800      LDR         R1,=RdStatus ; RdStatus
 00000012  7008      STRB        R0,[R1,#0x0] ; RdStatus
  158:     ulFunction =  ucFunctionSet;
 00000014  1C28      MOV         R0,R5 ; ucFunctionSet
 00000016  0604      LSL         R4,R0,#0x18 ; ucFunctionSet
 00000018  0E24      LSR         R4,R4,#0x18
  159:     ulFunction = (ulFunction << 16);
 0000001A  0424      LSL         R4,R4,#0x10 ; ulFunction
  160:     ulFunction |= 0xFF000000;
 0000001C  4800      LDR         R0,=0xFF000000
 0000001E  4304      ORR         R4,R0
  162:     GP0DAT = 0xA0200000;                                    // Set RS pin(P0.5), clear E pin (P0.7) -> R/W)
 00000020  4800      LDR         R1,=0xA0200000
 00000022  4800      LDR         R0,=0xFFFFF420
 00000024  6001      STR         R1,[R0,#0x0]
  163:     GP2DAT = 0x01000000;                                    // Clear R/W pin    (P2.0 -> R/W)
 00000026  4800      LDR         R1,=0x1000000
 00000028  4800      LDR         R0,=0xFFFFF440
 0000002A  6001      STR         R1,[R0,#0x0]
  164:     delay (5);                  
 0000002C  2005      MOV         R0,#0x5
 0000002E  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000030  FFE7      BL          delay?T  ; T=0x0001  (2)
  166:     GP0SET = 0x800000;                                      // Set E high
 00000032  4800      LDR         R1,=0x800000
 00000034  4800      LDR         R0,=0xFFFFF424
 00000036  6001      STR         R1,[R0,#0x0]
  167:     delay  (5);                                             // allow min 800ns Setup time
 00000038  2005      MOV         R0,#0x5
 0000003A  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000003C  FFE1      BL          delay?T  ; T=0x0001  (2)
  168:     GP1DAT = ulFunction;                                    // Write to register
 0000003E  1C21      MOV         R1,R4 ; ulFunction
 00000040  4800      LDR         R0,=0xFFFFF430
 00000042  6001      STR         R1,[R0,#0x0]
  169:     delay  (5);                                             // allow Hold time of 500nS min
 00000044  2005      MOV         R0,#0x5
 00000046  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000048  FFDB      BL          delay?T  ; T=0x0001  (2)
  170:     GP0CLR = 0x800000;                                      // Set E low
 0000004A  4800      LDR         R1,=0x800000
 0000004C  4800      LDR         R0,=0xFFFFF428
 0000004E  6001      STR         R1,[R0,#0x0]
  172:     delay (5);                  
 00000050  2005      MOV         R0,#0x5
 00000052  F7FF      BL          delay?T  ; T=0x0001  (1)
ARM COMPILER V2.42,  Register_LCD_Driver                                                   06/03/07  11:32:18  PAGE 12  

 00000054  FFD5      BL          delay?T  ; T=0x0001  (2)
  173:     GP0CLR = 0x200000;                                      // Set RS low
 00000056  4800      LDR         R1,=0x200000
 00000058  4800      LDR         R0,=0xFFFFF428
 0000005A  6001      STR         R1,[R0,#0x0]
  175:     return 0x1;
 0000005C  2001      MOV         R0,#0x1
 0000005E            ; SCOPE-END
  176: }
 0000005E  BC30      POP         {R4-R5}
 00000060  BC08      POP         {R3}
 00000062  4718      BX          R3
 00000064          ENDP ; 'Wr_Data_LCD?T'


*** CODE SEGMENT '?PR?ReadStatus?T?Register_LCD_Driver':
  177: unsigned char ReadStatus(void)
 00000000  B510      PUSH        {R4,LR}
  178: {
 00000002            ; SCOPE-START
  180:     unsigned char Status = 0;
 00000002  2400      MOV         R4,#0x0
 00000004  ---- Variable 'Status' assigned to Register 'R4' ----
  182:     delay (10000);
 00000004  4800      LDR         R0,=0x2710
 00000006  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000008  FFFB      BL          delay?T  ; T=0x0001  (2)
  184:     GP1DAT = 0x00000000;                                    // Set Port 1 to input mode
 0000000A  2100      MOV         R1,#0x0
 0000000C  4800      LDR         R0,=0xFFFFF430
 0000000E  6001      STR         R1,[R0,#0x0]
  185:     GP0DAT = 0xA0000000;                                    // Clear RS pin(P0.5), clear E pin (P0.7) -> R/W)
 00000010  4800      LDR         R1,=0xA0000000
 00000012  4800      LDR         R0,=0xFFFFF420
 00000014  6001      STR         R1,[R0,#0x0]
  186:     GP2DAT = 0x01010000;                                    // Clear R/W pin    (P2.0 -> R/W)
 00000016  4800      LDR         R1,=0x1010000
 00000018  4800      LDR         R0,=0xFFFFF440
 0000001A  6001      STR         R1,[R0,#0x0]
  187:     delay (5);
 0000001C  2005      MOV         R0,#0x5
 0000001E  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000020  FFEF      BL          delay?T  ; T=0x0001  (2)
  189:     GP0SET = 0x800000;                                      // Set E high
 00000022  4800      LDR         R1,=0x800000
 00000024  4800      LDR         R0,=0xFFFFF424
 00000026  6001      STR         R1,[R0,#0x0]
  190:     delay  (5);                                             // allow min 800ns Setup time
 00000028  2005      MOV         R0,#0x5
 0000002A  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000002C  FFE9      BL          delay?T  ; T=0x0001  (2)
  191:     Status = (unsigned char)GP1DAT;                         // Write to register
 0000002E  4800      LDR         R0,=0xFFFFF430
 00000030  6804      LDR         R4,[R0,#0x0]
 00000032  0624      LSL         R4,R4,#0x18
 00000034  0E24      LSR         R4,R4,#0x18
  192:     delay  (5);                                             // allow Hold time of 500nS min
 00000036  2005      MOV         R0,#0x5
 00000038  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000003A  FFE2      BL          delay?T  ; T=0x0001  (2)
  193:     GP0CLR = 0x800000;                                      // Set E low
 0000003C  4800      LDR         R1,=0x800000
 0000003E  4800      LDR         R0,=0xFFFFF428
 00000040  6001      STR         R1,[R0,#0x0]
  195:     delay (5);
 00000042  2005      MOV         R0,#0x5
 00000044  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000046  FFDC      BL          delay?T  ; T=0x0001  (2)
ARM COMPILER V2.42,  Register_LCD_Driver                                                   06/03/07  11:32:18  PAGE 13  

  196:     GP2CLR = 0x10000;                                       // Clear R/W
 00000048  4800      LDR         R1,=0x10000
 0000004A  4800      LDR         R0,=0xFFFFF448
 0000004C  6001      STR         R1,[R0,#0x0]
  198:     return Status;
 0000004E  1C20      MOV         R0,R4 ; Status
 00000050  0600      LSL         R0,R0,#0x18 ; Status
 00000052  0E00      LSR         R0,R0,#0x18
 00000054            ; SCOPE-END
  199: }
 00000054  BC10      POP         {R4}
 00000056  BC08      POP         {R3}
 00000058  4718      BX          R3
 0000005A          ENDP ; 'ReadStatus?T'


*** CODE SEGMENT '?PR?delay?T?Register_LCD_Driver':
  201: void delay (int length)
 00000000  ---- Variable 'length' assigned to Register 'R0' ----
  203:     while (length >0)
 00000000  E000      B           L_10  ; T=0x00000004
 00000002          L_12:
 00000002  3801      SUB         R0,#0x1
 00000004          L_10:
 00000004  1C01      MOV         R1,R0 ; length
 00000006  2900      CMP         R1,#0x0 ; length
 00000008  DCFB      BGT         L_12  ; T=0x00000002
  205: }
 0000000A  4770      BX          R14
 0000000C          ENDP ; 'delay?T'



Module Information          Static
----------------------------------
  code size            =    ------
  data size            =         5
  const size           =    ------
End of Module Information.


ARM COMPILATION COMPLETE.  1 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -