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

📄 lcd.lst

📁 NXP LPC2148 GPS Demo for Keil
💻 LST
📖 第 1 页 / 共 2 页
字号:
ARM COMPILER V2.53,  lcd                                                                   12/04/08  01:40:25  PAGE 1   


ARM COMPILER V2.53, COMPILATION OF MODULE lcd
OBJECT MODULE PLACED IN .\Obj\lcd.obj
COMPILER INVOKED BY: D:\cx\ARM\BIN\CA.exe lcd.C THUMB INCDIR(..\Common\inc) DEBUG PRINT(.\LST\LCD.LST) TABS(4) OBJECT(.\
                    -Obj\lcd.obj) 

stmt  level    source

    1          #include "LPC214x.H"
    2          #include"LCD.h"
    3          #include "type.h"
    4          #include "target.h"
    5          
    6          uint32 LCDdata;
    7          
    8          unsigned char const name[3][20]={"welcome to use","Signal generator","KHz"};
    9          unsigned char const num[11][1]={"0","1","2","3","4","5","6","7","8","9","."};
   10          
   11          uint8   a,b,c,g=1,i,KeyV=0,TempKeyV=0;
   12          
   13          
   14          //演示程序
   15          void delay(unsigned int dly)
   16          { unsigned int i;
   17   1          for( ; dly>0;dly--)
   18   1              for(i=0;i<50000;i++);
   19   1      }
   20          
   21          
   22          //判忙
   23          uint32 readBF(void){
   24   1      RS_CLR();
   25   1      RW_SET();
   26   1      IO0PIN = (IO0PIN & 0xffffff00) | 0x000000ff;
   27   1      E_SET();
   28   1      IO0DIR = 0x00000000;
   29   1      LCDdata = IO0PIN;
   30   1      IO0DIR = 0xffffffff;
   31   1      E_CLR();
   32   1      
   33   1      return(LCDdata&0x00000080);
   34   1      }
   35          //写指令
   36          void send_instr(uint8 x){
   37   1      while(readBF());
   38   1      RS_CLR();
   39   1      RW_CLR();
   40   1      IO0PIN = (IO0PIN & 0xffffff00) | x;
   41   1      E_SET();
   42   1      E_CLR();
   43   1      }
   44          //写数据
   45          void writedat(uint8 dat){
   46   1      while(readBF());
   47   1      RS_SET();
   48   1      RW_CLR();
   49   1      IO0PIN = (IO0PIN & 0xffffff00) | dat;;
   50   1      E_SET();
   51   1      ;
   52   1      ;
   53   1      E_CLR();
   54   1      }
   55          //初始化
   56          void initLCD(void){
   57   1      send_instr(0x01);
   58   1      send_instr(0x30);
ARM COMPILER V2.53,  lcd                                                                   12/04/08  01:40:25  PAGE 2   

   59   1      send_instr(0x02);
   60   1      send_instr(0x06);
   61   1      send_instr(0x0c);
   62   1      send_instr(0x80);
   63   1      }
   64          
   65          void logo(void)
   66          {
   67   1          send_instr(0x81);
   68   1              for(i=0;i<14;i++){
   69   2                  writedat(name[0][i]);
   70   2                  }
   71   1          send_instr(0xC0);
   72   1              for(i=0;i<16;i++){
   73   2                  writedat(name[1][i]);
   74   2                  }
   75   1          delay(100); 
   76   1      }
ARM COMPILER V2.53,  lcd                                                                   12/04/08  01:40:25  PAGE 3   

ASSEMBLY LISTING OF GENERATED OBJECT CODE



*** PUBLICS:
 PUBLIC         initLCD?T
 PUBLIC         logo?T
 PUBLIC         delay?T
 PUBLIC         readBF?T
 PUBLIC         send_instr?T
 PUBLIC         writedat?T
 PUBLIC         LCDdata
 PUBLIC         a
 PUBLIC         b
 PUBLIC         c
 PUBLIC         g
 PUBLIC         i
 PUBLIC         KeyV
 PUBLIC         TempKeyV
 PUBLIC         name
 PUBLIC         num



*** DATA SEGMENT '?DT0?lcd':
 00000000          LCDdata:
 00000000            DS          4
 00000004          a:
 00000004            DS          1
 00000005          b:
 00000005            DS          1
 00000006          c:
 00000006            DS          1
 00000007          g:
 00000007           BEGIN_INIT
 00000007  01        DB          0x1
 00000008           END_INIT
 00000008          i:
 00000008            DS          1
 00000009          KeyV:
 00000009           BEGIN_INIT
 00000009  00        DB          0x0
 0000000A           END_INIT
 0000000A          TempKeyV:
 0000000A           BEGIN_INIT
 0000000A  00        DB          0x0
 0000000B           END_INIT

*** DATA SEGMENT '?CON?lcd':
 00000000          name:
 00000000           BEGIN_INIT
 00000000            DB          'welcome to use',0x00
 0000000F            SPACE       5
 00000014            DB          'Signal generator',0x00
 00000025            SPACE       3
 00000028            DB          'KHz',0x00
 0000002C            SPACE       16
 0000003C           END_INIT
 0000003C          num:
 0000003C           BEGIN_INIT
 0000003C            DB          '0'
 0000003D            DB          '1'
 0000003E            DB          '2'
 0000003F            DB          '3'
 00000040            DB          '4'
 00000041            DB          '5'
 00000042            DB          '6'
 00000043            DB          '7'
 00000044            DB          '8'
 00000045            DB          '9'
ARM COMPILER V2.53,  lcd                                                                   12/04/08  01:40:25  PAGE 4   

 00000046            DB          '.'
 00000047           END_INIT



*** CODE SEGMENT '?PR?delay?T?lcd':
   15: void delay(unsigned int dly)
 00000000  ---- Variable 'dly' assigned to Register 'R0' ----
   16: { unsigned int i;
 00000000            ; SCOPE-START
   17:     for( ; dly>0;dly--)
 00000000  E006      B           L_3  ; T=0x00000010
   18:         for(i=0;i<50000;i++);
 00000002          L_10:
 00000002  2100      MOV         R1,#0x0
 00000004  ---- Variable 'i' assigned to Register 'R1' ----
 00000004          L_6:
 00000004  3101      ADD         R1,#0x1
 00000006  1C0A      MOV         R2,R1 ; i
 00000008  4800      LDR         R3,=0xC350
 0000000A  429A      CMP         R2,R3 ; i
 0000000C  D3FA      BCC         L_6  ; T=0x00000004
 0000000E  3801      SUB         R0,#0x1
 00000010          L_3:
 00000010  1C01      MOV         R1,R0 ; dly
 00000012  2900      CMP         R1,#0x0 ; dly
 00000014  D8F5      BHI         L_10  ; T=0x00000002
 00000016            ; SCOPE-END
   19: }
 00000016  4770      BX          R14
 00000018          ENDP ; 'delay?T'


*** CODE SEGMENT '?PR?readBF?T?lcd':
   24: RS_CLR();
 00000000  4800      LDR         R1,=0x400
 00000002  4800      LDR         R0,=0xE002800C
 00000004  6001      STR         R1,[R0,#0x0]
   25: RW_SET();
 00000006  4800      LDR         R1,=0x800
 00000008  4800      LDR         R0,=0xE0028004
 0000000A  6001      STR         R1,[R0,#0x0]
   26: IO0PIN = (IO0PIN & 0xffffff00) | 0x000000ff;
 0000000C  4800      LDR         R0,=0xE0028000
 0000000E  6801      LDR         R1,[R0,#0x0]
 00000010  20FF      MOV         R0,#0xFF
 00000012  4381      BIC         R1,R0
 00000014  4301      ORR         R1,R0
 00000016  4800      LDR         R0,=0xE0028000
 00000018  6001      STR         R1,[R0,#0x0]
   27: E_SET();
 0000001A  4800      LDR         R1,=0x1000
 0000001C  4800      LDR         R0,=0xE0028004
 0000001E  6001      STR         R1,[R0,#0x0]
   28: IO0DIR = 0x00000000;
 00000020  2200      MOV         R2,#0x0
 00000022  4800      LDR         R0,=0xE0028008
 00000024  6002      STR         R2,[R0,#0x0]
   29: LCDdata = IO0PIN;
 00000026  4800      LDR         R0,=0xE0028000
 00000028  6802      LDR         R2,[R0,#0x0]
 0000002A  4800      LDR         R0,=LCDdata ; LCDdata

⌨️ 快捷键说明

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