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

📄 3510lcd.lst

📁 在ADuC7027上使用NOKIA3510彩色液晶显示器(3510LCD)
💻 LST
📖 第 1 页 / 共 4 页
字号:



*** 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 + -