📄 lcd.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-71097 Thu Dec 20 19:08:32 2007
Licensed to: ONE
1 processor 16F877A
2 opt pw 79
3 psect __Z71097RS_,global,delta=1
4 psect text5,local,class=CODE,delta=2
5 psect text7,local,class=CODE,delta=2
6 psect text10,local,class=CODE,delta=2
7 psect text11,local,class=CODE,delta=2
8 psect text14,local,class=CODE,delta=2
9 psect text15,local,class=CODE,delta=2
10 psect text16,local,class=CODE,delta=2
11 psect text17,local,class=CODE,delta=2
12 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23
24 psect __Z71097RS_
25 0190
26 0190
27
28 psect text5
29 ;lcd.c: 151: unsigned char Lcd_Check_Busy(void)
30 ;lcd.c: 152: {
31 0D09 _Lcd_Check_Busy
32 ; _lcdstate assigned to ?a_Lcd_Check_Busy+0
33 0000 _Lcd_Check_Busy$lcdstate set ?a_Lcd_Check_Busy
34 ;lcd.c: 153: unsigned char lcdstate = 0x00;
35 0D09 0183 clrf 3 ;select bank 0
36 0D0A 01D3 clrf ?a_Lcd_Check_Busy
37 ;lcd.c: 155: TRISD = 0xFF;
38 0D0B 30FF movlw -1
39 0D0C 1683 bsf 3,5
40 0D0D 0088 movwf 8 ;volatile
41 ;lcd.c: 156: RA1 = 0;
42 0D0E 1283 bcf 3,5
43 0D0F 1085 bcf 5,1
44 ;lcd.c: 157: RA2 = 1;
45 0D10 1505 bsf 5,2
46 ;lcd.c: 158: RA3 = 1;
47 0D11 1585 bsf 5,3
48 ;lcd.c: 159: asm("nop");
49 0D12 0000 nop ;#
50 ;lcd.c: 160: lcdstate = PORTD;
51 0D13 0808 movf 8,w ;volatile
52 0D14 00D3 movwf ?a_Lcd_Check_Busy
53 ;lcd.c: 161: RA3 = 0;
54 0D15 1185 bcf 5,3
55 ;lcd.c: 162: TRISD = 0x00;
56 0D16 1683 bsf 3,5
57 0D17 0188 clrf 8 ;volatile
58 ;lcd.c: 164: return((lcdstate&0x80));
59 0D18 1283 bcf 3,5
60 0D19 0853 movf ?a_Lcd_Check_Busy,w
61 0D1A 3980 andlw -128
62 ;lcd.c: 165: }
63 0D1B 0008 return
64 ;lcd.c: 174: void Lcd_Write_Cmd(unsigned char l
+ cdcmd)
65 ;lcd.c: 175: {
66 0D1C _Lcd_Write_Cmd
67 ; _lcdcmd assigned to ?a_Lcd_Write_Cmd+0
68 0000 _Lcd_Write_Cmd$lcdcmd set ?a_Lcd_Write_Cmd
69 ;_lcdcmd stored from w
70 0D1C 0183 clrf 3 ;select bank 0
71 0D1D 00D3 movwf ?a_Lcd_Write_Cmd
72 ;lcd.c: 176: RA1 = 0;
73 0D1E 1085 bcf 5,1
74 ;lcd.c: 177: RA2 = 0;
75 0D1F 1105 bcf 5,2
76 ;lcd.c: 178: PORTD = lcdcmd;
77 0D20 0088 movwf 8 ;volatile
78 ;lcd.c: 179: RA3 = 1;
79 0D21 1585 bsf 5,3
80 ;lcd.c: 180: asm("nop");
81 0D22 0000 nop ;#
82 ;lcd.c: 181: asm("nop");
83 0D23 0000 nop ;#
84 ;lcd.c: 182: RA3 = 0;
85 0D24 1185 bcf 5,3
86 ;lcd.c: 183: PORTD = 0xFF;
87 0D25 30FF movlw -1
88 0D26 0088 movwf 8 ;volatile
89 ;lcd.c: 184: }
90 0D27 0008 return
91 0D28 _Lcd_Init
92 ;lcd.c: 34: ADCON1 = 0x07;
93 0D28 3007 movlw 7
94 0D29 1683 bsf 3,5
95 0D2A 1303 bcf 3,6 ;carry unused
96 0D2B 009F movwf 31 ;volatile
97 ;lcd.c: 35: TRISA = 0x00;
98 0D2C 0185 clrf 5 ;volatile
99 ;lcd.c: 36: TRISD = 0x00;
100 0D2D 0188 clrf 8 ;volatile
101 ;lcd.c: 37: PORTD = 0x00;
102 0D2E 1283 bcf 3,5
103 0D2F 0188 clrf 8 ;volatile
104 ;lcd.c: 38: Delay_5ms(2);
105 0D30 3002 movlw 2
106 0D31 120A 158A 2000 fcall _Delay_5ms
+ 120A 158A
107 ;lcd.c: 39: Lcd_Write_Cmd(0x38);
108 0D36 3038 movlw 56
109 0D37 251C fcall _Lcd_Write_Cmd
110 ;lcd.c: 40: Delay_5ms(1);
111 0D38 3001 movlw 1
112 0D39 120A 158A 2000 fcall _Delay_5ms
+ 120A 158A
113 ;lcd.c: 41: Lcd_Write_Cmd(0x38);
114 0D3E 3038 movlw 56
115 0D3F 251C fcall _Lcd_Write_Cmd
116 ;lcd.c: 42: Delay_5ms(1);
117 0D40 3001 movlw 1
118 0D41 120A 158A 2000 fcall _Delay_5ms
+ 120A 158A
119 ;lcd.c: 43: Lcd_Write_Cmd(0x38);
120 0D46 3038 movlw 56
121 0D47 251C fcall _Lcd_Write_Cmd
122 ;lcd.c: 44: while(Lcd_Check_Busy());
123 0D48 l3
124 0D48 2509 fcall _Lcd_Check_Busy
125 0D49 3800 iorlw 0
126 0D4A 1D03 btfss 3,2
127 0D4B 2D48 goto l3
128 ;lcd.c: 45: Lcd_Write_Cmd(0x38);
129 0D4C 3038 movlw 56
130 0D4D 251C fcall _Lcd_Write_Cmd
131 ;lcd.c: 46: while(Lcd_Check_Busy());
132 0D4E l6
133 0D4E 2509 fcall _Lcd_Check_Busy
134 0D4F 3800 iorlw 0
135 0D50 1D03 btfss 3,2
136 0D51 2D4E goto l6
137 ;lcd.c: 47: Lcd_Write_Cmd(0x08);
138 0D52 3008 movlw 8
139 0D53 251C fcall _Lcd_Write_Cmd
140 ;lcd.c: 48: while(Lcd_Check_Busy());
141 0D54 l9
142 0D54 2509 fcall _Lcd_Check_Busy
143 0D55 3800 iorlw 0
144 0D56 1D03 btfss 3,2
145 0D57 2D54 goto l9
146 ;lcd.c: 49: Lcd_Write_Cmd(0x01);
147 0D58 3001 movlw 1
148 0D59 251C fcall _Lcd_Write_Cmd
149 ;lcd.c: 50: while(Lcd_Check_Busy());
150 0D5A l12
151 0D5A 2509 fcall _Lcd_Check_Busy
152 0D5B 3800 iorlw 0
153 0D5C 1D03 btfss 3,2
154 0D5D 2D5A goto l12
155 ;lcd.c: 51: Lcd_Write_Cmd(0x06);
156 0D5E 3006 movlw 6
157 0D5F 251C fcall _Lcd_Write_Cmd
158 ;lcd.c: 52: while(Lcd_Check_Busy());
159 0D60 l15
160 0D60 2509 fcall _Lcd_Check_Busy
161 0D61 3800 iorlw 0
162 0D62 1D03 btfss 3,2
163 0D63 2D60 goto l15
164 ;lcd.c: 53: Lcd_Write_Cmd(0x0F);
165 0D64 300F movlw 15
166 0D65 2D1C ljmp _Lcd_Write_Cmd
167 ;lcd.c: 198: void Lcd_Write_Data(char lcddata)
168 ;lcd.c: 199: {
169 0D66 _Lcd_Write_Data
170 ; _lcddata assigned to ?a_Lcd_Write_Data+0
171 0000 _Lcd_Write_Data$lcddata set ?a_Lcd_Write_Data
172 ;_lcddata stored from w
173 0D66 0183 clrf 3 ;select bank 0
174 0D67 00D0 movwf ?a_Lcd_Write_Data
175 ;lcd.c: 200: while(Lcd_Check_Busy());
176 0D68 l34
177 0D68 2509 fcall _Lcd_Check_Busy
178 0D69 3800 iorlw 0
179 0D6A 1D03 btfss 3,2
180 0D6B 2D68 goto l34
181 ;lcd.c: 201: if(lcdcounter==20)
182 0D6C 0820 movf _lcdcounter,w
183 0D6D 3A14 xorlw 20
184 0D6E 1D03 btfss 3,2
185 0D6F 2D78 goto l37
186 ;lcd.c: 202: {
187 0D70 3014 movlw 20
188 0D71 25F2 120A 158A fcall _Lcd_MoveTo_Position
189 ;lcd.c: 204: while(Lcd_Check_Busy());
190 0D74 l38
191 0D74 2509 fcall _Lcd_Check_Busy
192 0D75 3800 iorlw 0
193 0D76 1D03 btfss 3,2
194 0D77 2D74 goto l38
195 0D78 l37
196 ;lcd.c: 205: }
197 0D78 0820 movf _lcdcounter,w
198 0D79 3A28 xorlw 40
199 0D7A 1D03 btfss 3,2
200 0D7B 2D84 goto l41
201 ;lcd.c: 207: {
202 0D7C 3028 movlw 40
203 0D7D 25F2 120A 158A fcall _Lcd_MoveTo_Position
204 ;lcd.c: 209: while(Lcd_Check_Busy());
205 0D80 l42
206 0D80 2509 fcall _Lcd_Check_Busy
207 0D81 3800 iorlw 0
208 0D82 1D03 btfss 3,2
209 0D83 2D80 goto l42
210 0D84 l41
211 ;lcd.c: 210: }
212 0D84 0820 movf _lcdcounter,w
213 0D85 3A3C xorlw 60
214 0D86 1D03 btfss 3,2
215 0D87 2D90 goto l45
216 ;lcd.c: 212: {
217 0D88 303C movlw 60
218 0D89 25F2 120A 158A fcall _Lcd_MoveTo_Position
219 ;lcd.c: 214: while(Lcd_Check_Busy());
220 0D8C l46
221 0D8C 2509 fcall _Lcd_Check_Busy
222 0D8D 3800 iorlw 0
223 0D8E 1D03 btfss 3,2
224 0D8F 2D8C goto l46
225 0D90 l45
226 ;lcd.c: 215: }
227 0D90 0820 movf _lcdcounter,w
228 0D91 3A50 xorlw 80
229 0D92 1D03 btfss 3,2
230 0D93 2D9D goto l49
231 ;lcd.c: 217: {
232 0D94 3000 movlw 0
233 0D95 25F2 120A 158A fcall _Lcd_MoveTo_Position
234 ;lcd.c: 219: while(Lcd_Check_Busy());
235 0D98 l50
236 0D98 2509 fcall _Lcd_Check_Busy
237 0D99 3800 iorlw 0
238 0D9A 1D03 btfss 3,2
239 0D9B 2D98 goto l50
240 ;lcd.c: 220: lcdcounter=0;
241 0D9C 01A0 clrf _lcdcounter
242 0D9D l49
243 ;lcd.c: 221: }
244 0D9D 0AA0 incf _lcdcounter
245 ;lcd.c: 223: PORTD = lcddata;
246 0D9E 0850 movf ?a_Lcd_Write_Data,w
247 0D9F 0088 movwf 8 ;volatile
248 ;lcd.c: 224: RA1 = 1;
249 0DA0 1485 bsf 5,1
250 ;lcd.c: 225: RA2 = 0;
251 0DA1 1105 bcf 5,2
252 ;lcd.c: 226: RA3 = 1;
253 0DA2 1585 bsf 5,3
254 ;lcd.c: 227: asm("nop");
255 0DA3 0000 nop ;#
256 ;lcd.c: 228: RA3 = 0;
257 0DA4 1185 bcf 5,3
258 ;lcd.c: 229: PORTD = 0xff;
259 0DA5 30FF movlw -1
260 0DA6 0088 movwf 8 ;volatile
261 ;lcd.c: 230: }
262 0DA7 0008 return
263 ;lcd.c: 239: void Lcd_Read_Data(char *lcddata)
264 ;lcd.c: 240: {
265 0DA8 _Lcd_Read_Data
266 ; _lcddata assigned to ?a_Lcd_Read_Data+0
267 0000 _Lcd_Read_Data$lcddata set ?a_Lcd_Read_Data
268 ;_lcddata stored from w
269 0DA8 0183 clrf 3 ;select bank 0
270 0DA9 00A6 movwf ?a_Lcd_Read_Data
271 ;lcd.c: 241: while(Lcd_Check_Busy());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -