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

📄 register_lcd_driver.lst

📁 Source code for kit ADUC7026 _LCD Driver
💻 LST
📖 第 1 页 / 共 3 页
字号:
*** CODE SEGMENT '?PR?Select_Function_Set?T?Register_LCD_Driver':
   31: unsigned char Select_Function_Set(unsigned char ucFunctionSet)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C05      MOV         R5,R0 ; ucFunctionSet
 00000004  ---- Variable 'ucFunctionSet' assigned to Register 'R5' ----
   32: {
 00000004            ; SCOPE-START
   33:     unsigned long ulFunction = 0;                                  
 00000004  2400      MOV         R4,#0x0
 00000006  ---- Variable 'ulFunction' assigned to Register 'R4' ----
   35:     delay (10000);
 00000006  4800      LDR         R0,=0x2710
 00000008  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          delay?T  ; T=0x0001  (2)
   36:     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
   38:     ulFunction =  ucFunctionSet;
 00000014  1C28      MOV         R0,R5 ; ucFunctionSet
ARM COMPILER V2.42,  Register_LCD_Driver                                                   06/03/07  11:32:18  PAGE 6   

 00000016  0604      LSL         R4,R0,#0x18 ; ucFunctionSet
 00000018  0E24      LSR         R4,R4,#0x18
   39:     ulFunction = (ulFunction << 16);
 0000001A  0424      LSL         R4,R4,#0x10 ; ulFunction
   40:     ulFunction |= 0xFF000000;
 0000001C  4800      LDR         R0,=0xFF000000
 0000001E  4304      ORR         R4,R0
   42:     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]
   43:     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]
   44:     delay (5);
 0000002C  2005      MOV         R0,#0x5
 0000002E  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000030  FFE7      BL          delay?T  ; T=0x0001  (2)
   46:     GP0SET = 0x800000;                                      // Set E high
 00000032  4800      LDR         R1,=0x800000
 00000034  4800      LDR         R0,=0xFFFFF424
 00000036  6001      STR         R1,[R0,#0x0]
   47:     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)
   48:     GP1DAT = ulFunction;                                    // Write to register
 0000003E  1C21      MOV         R1,R4 ; ulFunction
 00000040  4800      LDR         R0,=0xFFFFF430
 00000042  6001      STR         R1,[R0,#0x0]
   49:     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)
   50:     GP0CLR = 0x800000;                                      // Set E low
 0000004A  4800      LDR         R1,=0x800000
 0000004C  4800      LDR         R0,=0xFFFFF428
 0000004E  6001      STR         R1,[R0,#0x0]
   51:     delay (5);
 00000050  2005      MOV         R0,#0x5
 00000052  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000054  FFD5      BL          delay?T  ; T=0x0001  (2)
   53:     return 0x1;
 00000056  2001      MOV         R0,#0x1
 00000058            ; SCOPE-END
   54: }
 00000058  BC30      POP         {R4-R5}
 0000005A  BC08      POP         {R3}
 0000005C  4718      BX          R3
 0000005E          ENDP ; 'Select_Function_Set?T'


*** CODE SEGMENT '?PR?Set_DDRAM_ADDR_LCD?T?Register_LCD_Driver':
   56: unsigned char Set_DDRAM_ADDR_LCD(unsigned char addr)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C05      MOV         R5,R0 ; addr
 00000004  ---- Variable 'addr' assigned to Register 'R5' ----
   57: {
 00000004            ; SCOPE-START
   58:     unsigned long ulAddr = 0;
 00000004  2400      MOV         R4,#0x0
 00000006  ---- Variable 'ulAddr' assigned to Register 'R4' ----
   60:     delay (10000);
 00000006  4800      LDR         R0,=0x2710
 00000008  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          delay?T  ; T=0x0001  (2)
   61:     addr |= 0x80;                                           // Set MSB of register
ARM COMPILER V2.42,  Register_LCD_Driver                                                   06/03/07  11:32:18  PAGE 7   

 0000000C  2080      MOV         R0,#0x80
 0000000E  4305      ORR         R5,R0
   62:     ulAddr =  addr;
 00000010  1C28      MOV         R0,R5 ; addr
 00000012  0604      LSL         R4,R0,#0x18 ; addr
 00000014  0E24      LSR         R4,R4,#0x18
   63:     ulAddr = (ulAddr << 16);
 00000016  0424      LSL         R4,R4,#0x10 ; ulAddr
   64:     ulAddr |= 0xFF000000;
 00000018  4800      LDR         R0,=0xFF000000
 0000001A  4304      ORR         R4,R0
   66:     GP1DAT |= ulAddr;                                       // Write to register
 0000001C  1C22      MOV         R2,R4 ; ulAddr
 0000001E  4800      LDR         R0,=0xFFFFF430
 00000020  6801      LDR         R1,[R0,#0x0]
 00000022  4311      ORR         R1,R2 ; ulAddr
 00000024  6001      STR         R1,[R0,#0x0]
   68:     GP2DAT = 0x01000000;                                    // Set RS pin of LCD low for Register access    (P2.0 -> RS)
 00000026  4800      LDR         R1,=0x1000000
 00000028  4800      LDR         R0,=0xFFFFF440
 0000002A  6001      STR         R1,[R0,#0x0]
   69:     GP0DAT = 0x40000000;                                    // Clear R/W pin. (P0.6 -> R/W)
 0000002C  4800      LDR         R1,=0x40000000
 0000002E  4800      LDR         R0,=0xFFFFF420
 00000030  6001      STR         R1,[R0,#0x0]
   70:     GP0DAT = 0xC0800000;                                    // Set E pin. (P0.7 -> E)
 00000032  4800      LDR         R1,=0xC0800000
 00000034  4800      LDR         R0,=0xFFFFF420
 00000036  6001      STR         R1,[R0,#0x0]
   73:     delay(500);
 00000038  487D      LDR         R0,=0x1F4
 0000003A  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000003C  FFE1      BL          delay?T  ; T=0x0001  (2)
   74:     GP0DAT = 0xC0000000;                                    // Clear E pin. (P0.7 -> E)
 0000003E  4800      LDR         R1,=0xC0000000
 00000040  4800      LDR         R0,=0xFFFFF420
 00000042  6001      STR         R1,[R0,#0x0]
   75:     GP1DAT = 0x00300000;                                    // Configure data bus as Input
 00000044  4800      LDR         R1,=0x300000
 00000046  4800      LDR         R0,=0xFFFFF430
 00000048  6001      STR         R1,[R0,#0x0]
   77:     return 0x1;
 0000004A  2001      MOV         R0,#0x1
 0000004C            ; SCOPE-END
   78: }
 0000004C  BC30      POP         {R4-R5}
 0000004E  BC08      POP         {R3}
 00000050  4718      BX          R3
 00000052          ENDP ; 'Set_DDRAM_ADDR_LCD?T'


*** CODE SEGMENT '?PR?Display_On_LCD?T?Register_LCD_Driver':
   80: unsigned char Display_On_LCD(void)
 00000000  B500      PUSH        {LR}
   82:     GP1DAT = 0xFF0F0000;                                    // Write 0x0F - Turn on Display, cursor on and blinking
 00000002  4800      LDR         R1,=0xFF0F0000
 00000004  4800      LDR         R0,=0xFFFFF430
 00000006  6001      STR         R1,[R0,#0x0]
   84:     GP2DAT = 0x01000000;                                    // Set RS pin of LCD low for Register access    (P2.0 -> RS)
 00000008  4800      LDR         R1,=0x1000000
 0000000A  4800      LDR         R0,=0xFFFFF440
 0000000C  6001      STR         R1,[R0,#0x0]
   85:     GP0DAT = 0x40000000;                                    // Clear R/W pin. (P0.6 -> R/W)
 0000000E  4800      LDR         R1,=0x40000000
 00000010  4800      LDR         R0,=0xFFFFF420
 00000012  6001      STR         R1,[R0,#0x0]
   86:     GP0DAT = 0xC0800000;                                    // Set E pin. (P0.7 -> E)
 00000014  4800      LDR         R1,=0xC0800000
ARM COMPILER V2.42,  Register_LCD_Driver                                                   06/03/07  11:32:18  PAGE 8   

 00000016  4800      LDR         R0,=0xFFFFF420
 00000018  6001      STR         R1,[R0,#0x0]
   88:     delay(500);
 0000001A  487D      LDR         R0,=0x1F4
 0000001C  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          delay?T  ; T=0x0001  (2)
   89:     GP0DAT = 0xC0000000;                                    // CLear E pin. (P0.7 -> E)
 00000020  4800      LDR         R1,=0xC0000000
 00000022  4800      LDR         R0,=0xFFFFF420
 00000024  6001      STR         R1,[R0,#0x0]
   90:     GP1DAT = 0x00300000;                                    // Configure data bus as Input
 00000026  4800      LDR         R1,=0x300000
 00000028  4800      LDR         R0,=0xFFFFF430
 0000002A  6001      STR         R1,[R0,#0x0]
   91:     return 0x1;
 0000002C  2001      MOV         R0,#0x1
   92: }
 0000002E  BC08      POP         {R3}
 00000030  4718      BX          R3
 00000032          ENDP ; 'Display_On_LCD?T'


*** CODE SEGMENT '?PR?Display_Off_LCD?T?Register_LCD_Driver':
   93: unsigned char Display_Off_LCD(unsigned char ucFunctionSet)
 00000000  B500      PUSH        {LR}
   95:     GP1DAT = 0xFF0B0000;                                    // Write 0x0B - Turn off Display
 00000002  4800      LDR         R1,=0xFF0B0000
 00000004  4800      LDR         R0,=0xFFFFF430
 00000006  6001      STR         R1,[R0,#0x0]
   97:     GP2DAT = 0x01000000;                                    // Set RS pin of LCD low for Register access    (P2.0 -> RS)
 00000008  4800      LDR         R1,=0x1000000
 0000000A  4800      LDR         R0,=0xFFFFF440
 0000000C  6001      STR         R1,[R0,#0x0]
   98:     GP0DAT = 0x40000000;                                    // Clear R/W pin. (P0.6 -> R/W)
 0000000E  4800      LDR         R1,=0x40000000
 00000010  4800      LDR         R0,=0xFFFFF420
 00000012  6001      STR         R1,[R0,#0x0]
   99:     GP0DAT = 0xC0800000;                                    // Set E pin. (P0.7 -> E)   
 00000014  4800      LDR         R1,=0xC0800000
 00000016  4800      LDR         R0,=0xFFFFF420
 00000018  6001      STR         R1,[R0,#0x0]
  101:     delay(500);
 0000001A  487D      LDR         R0,=0x1F4
 0000001C  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000001E  FFF0      BL          delay?T  ; T=0x0001  (2)
  102:     GP0DAT = 0xC0000000;                                    // Clear E pin. (P0.7 -> E)
 00000020  4800      LDR         R1,=0xC0000000
 00000022  4800      LDR         R0,=0xFFFFF420
 00000024  6001      STR         R1,[R0,#0x0]
  103:     GP1DAT = 0x00300000;                                    // Configure data bus as Input
 00000026  4800      LDR         R1,=0x300000
 00000028  4800      LDR         R0,=0xFFFFF430
 0000002A  6001      STR         R1,[R0,#0x0]
  104:     return 0x1;
 0000002C  2001      MOV         R0,#0x1
  105: }
 0000002E  BC08      POP         {R3}
 00000030  4718      BX          R3
 00000032          ENDP ; 'Display_Off_LCD?T'


*** CODE SEGMENT '?PR?Clear_Display_LCD?T?Register_LCD_Driver':
  106: unsigned char Clear_Display_LCD(unsigned char ucFunctionSet)
 00000000  B530      PUSH        {R4-R5,LR}
 00000002  1C05      MOV         R5,R0 ; ucFunctionSet
 00000004  ---- Variable 'ucFunctionSet' assigned to Register 'R5' ----
  107: {
 00000004            ; SCOPE-START
  108:     unsigned long ulFunction = 0;                                  
 00000004  2400      MOV         R4,#0x0
ARM COMPILER V2.42,  Register_LCD_Driver                                                   06/03/07  11:32:18  PAGE 9   

 00000006  ---- Variable 'ulFunction' assigned to Register 'R4' ----
  110:     delay (10000);
 00000006  4800      LDR         R0,=0x2710
 00000008  F7FF      BL          delay?T  ; T=0x0001  (1)
 0000000A  FFFA      BL          delay?T  ; T=0x0001  (2)
  111:     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
  112:     ulFunction =  ucFunctionSet;
 00000014  1C28      MOV         R0,R5 ; ucFunctionSet
 00000016  0604      LSL         R4,R0,#0x18 ; ucFunctionSet
 00000018  0E24      LSR         R4,R4,#0x18
  113:     ulFunction = (ulFunction << 16);
 0000001A  0424      LSL         R4,R4,#0x10 ; ulFunction
  114:     ulFunction |= 0xFF000000;
 0000001C  4800      LDR         R0,=0xFF000000
 0000001E  4304      ORR         R4,R0
  116:     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]
  117:     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]
  118:     delay (5);
 0000002C  2005      MOV         R0,#0x5
 0000002E  F7FF      BL          delay?T  ; T=0x0001  (1)
 00000030  FFE7      BL          delay?T  ; T=0x0001  (2)
  120:     GP0SET = 0x800000;                                      // Set E high
 00000032  4800      LDR         R1,=0x800000
 00000034  4800      LDR         R0,=0xFFFFF424
 00000036  6001      STR         R1,[R0,#0x0]
  121:     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)
  122:     GP1DAT = ulFunction;                                    // Write to register
 0000003E  1C21      MOV         R1,R4 ; ulFunction
 00000040  4800      LDR         R0,=0xFFFFF430
 00000042  6001      STR         R1,[R0,#0x0]

⌨️ 快捷键说明

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