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

📄 st7920.lst

📁 基于ARM的电梯控制程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
 00000006  1C13      MOV         R3,R2 ; i
 00000008  061C      LSL         R4,R3,#0x18 ; i
 0000000A  0E24      LSR         R4,R4,#0x18
 0000000C  1C03      MOV         R3,R0 ; data
 0000000E  5D1B      LDRB        R3,[R3,R4]
 00000010  2440      MOV         R4,#0x40
 00000012  4223      TST         R3,R4
 00000014  D006      BEQ         L_31  ; T=0x00000024
  110:     *(p+i)=0x08;
 00000016  2308      MOV         R3,#0x8
 00000018  1C14      MOV         R4,R2 ; i
 0000001A  0625      LSL         R5,R4,#0x18 ; i
 0000001C  0E2D      LSR         R5,R5,#0x18
 0000001E  1C0C      MOV         R4,R1 ; p
 00000020  5563      STRB        R3,[R4,R5]
 00000022  E005      B           L_26  ; T=0x00000030
 00000024          L_31:
  112:     *(p+i)=0x2d;
 00000024  232D      MOV         R3,#0x2D
 00000026  1C14      MOV         R4,R2 ; i
 00000028  0625      LSL         R5,R4,#0x18 ; i
 0000002A  0E2D      LSR         R5,R5,#0x18
 0000002C  1C0C      MOV         R4,R1 ; p
 0000002E  5563      STRB        R3,[R4,R5]
  113:     }
 00000030          L_26:
 00000030  3201      ADD         R2,#0x1
 00000032  0612      LSL         R2,R2,#0x18
 00000034  0E12      LSR         R2,R2,#0x18
 00000036          L_28:
 00000036  1C13      MOV         R3,R2 ; i
 00000038  061B      LSL         R3,R3,#0x18 ; i
 0000003A  0E1B      LSR         R3,R3,#0x18
 0000003C  2B10      CMP         R3,#0x10
 0000003E  DBE2      BLT         L_29  ; T=0x00000006
 00000040            ; SCOPE-END
  114: } 
 00000040  BC30      POP         {R4-R5}
 00000042  4770      BX          R14
 00000044          ENDP ; 'PreDispIndoorCall?T'


*** CODE SEGMENT '?PR?PreDispOutdoorCallUp?T?ST7920':
  122: void PreDispOutdoorCallUp(uint8 *data,uint8 *p)
 00000000  B430      PUSH        {R4-R5}
 00000002  ---- Variable 'p' assigned to Register 'R1' ----
ARM COMPILER V2.40a,  ST7920                                                               19/07/07  01:23:00  PAGE 10  

 00000002  ---- Variable 'data' assigned to Register 'R0' ----
  123: {
 00000002            ; SCOPE-START
  125:     for(i=0; i<16; i++) 
 00000002  2200      MOV         R2,#0x0
 00000004  ---- Variable 'i' assigned to Register 'R2' ----
 00000004  E017      B           L_35  ; T=0x00000036
 00000006          L_36:
  127:     if((0x20&(*(data+i)))!=0)
 00000006  1C13      MOV         R3,R2 ; i
 00000008  061C      LSL         R4,R3,#0x18 ; i
 0000000A  0E24      LSR         R4,R4,#0x18
 0000000C  1C03      MOV         R3,R0 ; data
 0000000E  5D1B      LDRB        R3,[R3,R4]
 00000010  2420      MOV         R4,#0x20
 00000012  4223      TST         R3,R4
 00000014  D006      BEQ         L_38  ; T=0x00000024
  128:     *(p+i)=0x08;
 00000016  2308      MOV         R3,#0x8
 00000018  1C14      MOV         R4,R2 ; i
 0000001A  0625      LSL         R5,R4,#0x18 ; i
 0000001C  0E2D      LSR         R5,R5,#0x18
 0000001E  1C0C      MOV         R4,R1 ; p
 00000020  5563      STRB        R3,[R4,R5]
 00000022  E005      B           L_33  ; T=0x00000030
 00000024          L_38:
  130:     *(p+i)=0x2d;
 00000024  232D      MOV         R3,#0x2D
 00000026  1C14      MOV         R4,R2 ; i
 00000028  0625      LSL         R5,R4,#0x18 ; i
 0000002A  0E2D      LSR         R5,R5,#0x18
 0000002C  1C0C      MOV         R4,R1 ; p
 0000002E  5563      STRB        R3,[R4,R5]
  131:     }
 00000030          L_33:
 00000030  3201      ADD         R2,#0x1
 00000032  0612      LSL         R2,R2,#0x18
 00000034  0E12      LSR         R2,R2,#0x18
 00000036          L_35:
 00000036  1C13      MOV         R3,R2 ; i
 00000038  061B      LSL         R3,R3,#0x18 ; i
 0000003A  0E1B      LSR         R3,R3,#0x18
 0000003C  2B10      CMP         R3,#0x10
 0000003E  DBE2      BLT         L_36  ; T=0x00000006
 00000040            ; SCOPE-END
  132: } 
 00000040  BC30      POP         {R4-R5}
 00000042  4770      BX          R14
 00000044          ENDP ; 'PreDispOutdoorCallUp?T'


*** CODE SEGMENT '?PR?PreDispOutdoorCallDown?T?ST7920':
  140: void PreDispOutdoorCallDown(uint8 *data,uint8 *p)
 00000000  B430      PUSH        {R4-R5}
 00000002  ---- Variable 'p' assigned to Register 'R1' ----
 00000002  ---- Variable 'data' assigned to Register 'R0' ----
  141: {
 00000002            ; SCOPE-START
  143:     for(i=0; i<16; i++) 
 00000002  2200      MOV         R2,#0x0
 00000004  ---- Variable 'i' assigned to Register 'R2' ----
 00000004  E017      B           L_42  ; T=0x00000036
 00000006          L_43:
  145:     if((0x10&(*(data+i)))!=0)
 00000006  1C13      MOV         R3,R2 ; i
 00000008  061C      LSL         R4,R3,#0x18 ; i
 0000000A  0E24      LSR         R4,R4,#0x18
 0000000C  1C03      MOV         R3,R0 ; data
ARM COMPILER V2.40a,  ST7920                                                               19/07/07  01:23:00  PAGE 11  

 0000000E  5D1B      LDRB        R3,[R3,R4]
 00000010  2410      MOV         R4,#0x10
 00000012  4223      TST         R3,R4
 00000014  D006      BEQ         L_45  ; T=0x00000024
  146:     *(p+i)=0x08;
 00000016  2308      MOV         R3,#0x8
 00000018  1C14      MOV         R4,R2 ; i
 0000001A  0625      LSL         R5,R4,#0x18 ; i
 0000001C  0E2D      LSR         R5,R5,#0x18
 0000001E  1C0C      MOV         R4,R1 ; p
 00000020  5563      STRB        R3,[R4,R5]
 00000022  E005      B           L_40  ; T=0x00000030
 00000024          L_45:
  148:     *(p+i)=0x2d;
 00000024  232D      MOV         R3,#0x2D
 00000026  1C14      MOV         R4,R2 ; i
 00000028  0625      LSL         R5,R4,#0x18 ; i
 0000002A  0E2D      LSR         R5,R5,#0x18
 0000002C  1C0C      MOV         R4,R1 ; p
 0000002E  5563      STRB        R3,[R4,R5]
  149:     }
 00000030          L_40:
 00000030  3201      ADD         R2,#0x1
 00000032  0612      LSL         R2,R2,#0x18
 00000034  0E12      LSR         R2,R2,#0x18
 00000036          L_42:
 00000036  1C13      MOV         R3,R2 ; i
 00000038  061B      LSL         R3,R3,#0x18 ; i
 0000003A  0E1B      LSR         R3,R3,#0x18
 0000003C  2B10      CMP         R3,#0x10
 0000003E  DBE2      BLT         L_43  ; T=0x00000006
 00000040            ; SCOPE-END
  150: } 
 00000040  BC30      POP         {R4-R5}
 00000042  4770      BX          R14
 00000044          ENDP ; 'PreDispOutdoorCallDown?T'


*** CODE SEGMENT '?PR?lcdclr?T?ST7920':
  151: void lcdclr(void)
 00000000  B530      PUSH        {R4-R5,LR}
  152: { uint8 lcdlow,lcdlie;  
 00000002            ; SCOPE-START
  154:        for(lcdlow=0;lcdlow<4;lcdlow++)
 00000002  2400      MOV         R4,#0x0
 00000004  ---- Variable 'lcdlow' assigned to Register 'R4' ----
 00000004  E019      B           L_49  ; T=0x0000003A
  155:          for(lcdlie=0;lcdlie<8;lcdlie++)
 00000006          L_56:
 00000006  2500      MOV         R5,#0x0
 00000008  ---- Variable 'lcdlie' assigned to Register 'R5' ----
 00000008  E00F      B           L_54  ; T=0x0000002A
 0000000A          L_55:
  156:            Display(RowNum[lcdlow]+lcdlie,0xA1,0xA0);   //0xA1A0为空格
 0000000A  1C20      MOV         R0,R4 ; lcdlow
 0000000C  0601      LSL         R1,R0,#0x18 ; lcdlow
 0000000E  0E09      LSR         R1,R1,#0x18
 00000010  4800      LDR         R0,=RowNum ; RowNum
 00000012  5C40      LDRB        R0,[R0,R1]
 00000014  1C29      MOV         R1,R5 ; lcdlie
 00000016  0609      LSL         R1,R1,#0x18 ; lcdlie
 00000018  0E09      LSR         R1,R1,#0x18
 0000001A  1840      ADD         R0,R1
 0000001C  21A1      MOV         R1,#0xA1
 0000001E  22A0      MOV         R2,#0xA0
 00000020  F7FF      BL          Display?T  ; T=0x0001  (1)
 00000022  FFEE      BL          Display?T  ; T=0x0001  (2)
 00000024  3501      ADD         R5,#0x1
ARM COMPILER V2.40a,  ST7920                                                               19/07/07  01:23:00  PAGE 12  

 00000026  062D      LSL         R5,R5,#0x18
 00000028  0E2D      LSR         R5,R5,#0x18
 0000002A          L_54:
 0000002A  1C28      MOV         R0,R5 ; lcdlie
 0000002C  0600      LSL         R0,R0,#0x18 ; lcdlie
 0000002E  0E00      LSR         R0,R0,#0x18
 00000030  2808      CMP         R0,#0x8
 00000032  DBEA      BLT         L_55  ; T=0x0000000A
 00000034  3401      ADD         R4,#0x1
 00000036  0624      LSL         R4,R4,#0x18
 00000038  0E24      LSR         R4,R4,#0x18
 0000003A          L_49:
 0000003A  1C20      MOV         R0,R4 ; lcdlow
 0000003C  0600      LSL         R0,R0,#0x18 ; lcdlow
 0000003E  0E00      LSR         R0,R0,#0x18
 00000040  2804      CMP         R0,#0x4
 00000042  DBE0      BLT         L_56  ; T=0x00000006
 00000044            ; SCOPE-END
  158: }
 00000044  BC30      POP         {R4-R5}
 00000046  BC08      POP         {R3}
 00000048  4718      BX          R3
 0000004A          ENDP ; 'lcdclr?T'


*** CODE SEGMENT '?PR?InitLcm?T?ST7920':
  160:     void InitLcm(void)           //初始化 LCM
 00000000  B500      PUSH        {LR}
  162:      IO1DIR|=(ST7920_Cs|ST7920_Clk|ST7920_Sda|ST7920_Rst);
 00000002  4800      LDR         R2,=0xF0000
 00000004  4800      LDR         R0,=0xE0028018
 00000006  6801      LDR         R1,[R0,#0x0]
 00000008  4311      ORR         R1,R2
 0000000A  6001      STR         R1,[R0,#0x0]
  163:      IO1SET=ST7920_Cs;      // 高电平使能
 0000000C  4800      LDR         R1,=0x10000
 0000000E  4800      LDR         R0,=0xE0028014
 00000010  6001      STR         R1,[R0,#0x0]
  164:     IO1CLR=ST7920_Rst;
 00000012  4800      LDR         R1,=0x80000
 00000014  4800      LDR         R0,=0xE002801C
 00000016  6001      STR         R1,[R0,#0x0]
  165:     Delay(0xff);
 00000018  20FF      MOV         R0,#0xFF
 0000001A  F7FF      BL          Delay?T  ; T=0x0001  (1)
 0000001C  FFF1      BL          Delay?T  ; T=0x0001  (2)
  166:     IO1SET=ST7920_Rst;
 0000001E  4800      LDR         R1,=0x80000
 00000020  4800      LDR         R0,=0xE0028014
 00000022  6001      STR         R1,[R0,#0x0]
  167:      Delay(0xff);
 00000024  20FF      MOV         R0,#0xFF
 00000026  F7FF      BL          Delay?T  ; T=0x0001  (1)
 00000028  FFEB      BL          Delay?T  ; T=0x0001  (2)
  168:      SendCmd(0x30);              //功能设置:一次送 8 位数据,基本指令集
 0000002A  2030      MOV         R0,#0x30
 0000002C  F7FF      BL          SendCmd?T  ; T=0x0001  (1)
 0000002E  FFE8      BL          SendCmd?T  ; T=0x0001  (2)
  169:      SendCmd(0x04);              //点设定 :显示字符/ 光标从左到右移位,DDRAM 地址加一
 00000030  2004      MOV         R0,#0x4
 00000032  F7FF      BL          SendCmd?T  ; T=0x0001  (1)
 00000034  FFE5      BL          SendCmd?T  ; T=0x0001  (2)
  170:      SendCmd(0x0f);              //显示设定:开显示 ,显示光标,当前显示位反白闪动
 00000036  200F      MOV         R0,#0xF
 00000038  F7FF      BL          SendCmd?T  ; T=0x0001  (1)
 0000003A  FFE2      BL          SendCmd?T  ; T=0x0001  (2)
  171:      SendCmd(0x01);              //清DDRAM
 0000003C  2001      MOV         R0,#0x1
ARM COMPILER V2.40a,  ST7920                                                               19/07/07  01:23:00  PAGE 13  

 0000003E  F7FF      BL          SendCmd?T  ; T=0x0001  (1)
 00000040  FFDF      BL          SendCmd?T  ; T=0x0001  (2)
  172:      SendCmd(0x02);              //*DDRAM 地址归位
 00000042  2002      MOV         R0,#0x2
 00000044  F7FF      BL          SendCmd?T  ; T=0x0001  (1)
 00000046  FFDC      BL          SendCmd?T  ; T=0x0001  (2)
  173:      SendCmd(DDRAM_0);           //DDRAM
 00000048  2080      MOV         R0,#0x80
 0000004A  F7FF      BL          SendCmd?T  ; T=0x0001  (1)
 0000004C  FFD9      BL          SendCmd?T  ; T=0x0001  (2)
  174:      SendCmd(off_cursor);        //关光标 
 0000004E  200C      MOV         R0,#0xC
 00000050  F7FF      BL          SendCmd?T  ; T=0x0001  (1)
 00000052  FFD6      BL          SendCmd?T  ; T=0x0001  (2)
  175: }
 00000054  BC08      POP         {R3}
 00000056  4718      BX          R3
 00000058          ENDP ; 'InitLcm?T'



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


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

⌨️ 快捷键说明

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