📄 lcd.lst
字号:
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 + -