📄 lcd.lst
字号:
HI-TECH Software PICC Macro Assembler V9.60
Fri Nov 21 07:58:38 2008
1 processor 16F917
2 opt pw 79
3 psect strings,global,class=STRING,delta=2
4 psect const1,local,class=CONST,delta=2
5 psect text0,local,class=CODE,delta=2
6 psect text1,local,class=CODE,delta=2
7 psect text2,local,class=CODE,delta=2
8 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
9 0000
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19
20 psect const1
21 000D 0782 addwf 2
22 000E _LCD_MODEL
23 000E 3477 retlw 119
24 000F 3422 retlw 34
25 0010 345B retlw 91
26 0011 346B retlw 107
27 0012 342E retlw 46
28 0013 346D retlw 109
29 0014 347D retlw 125
30 0015 3423 retlw 35
31 0016 347F retlw 127
32 0017 346F retlw 111
33 0018 3400 retlw 0
34
35 psect text0
36 0696 _Init_LCD
37 ;LCD.c: 6: void Init_LCD(void)
38 0696 0183 clrf 3 ;select bank 0
39 0697 0190 clrf 16
40 ;LCD.c: 10: LCDDATA1=0x00;
41 0698 0191 clrf 17
42 ;LCD.c: 12: LCDDATA3=0x00;
43 0699 0193 clrf 19
44 ;LCD.c: 13: LCDDATA4=0x00;
45 069A 0194 clrf 20
46 ;LCD.c: 15: LCDDATA6=0x00;
47 069B 0196 clrf 22
48 ;LCD.c: 16: LCDDATA7=0x00;
49 069C 0197 clrf 23
50 ;LCD.c: 18: LCDDATA9=0x00;
51 069D 0199 clrf 25
52 ;LCD.c: 19: LCDDATA10=0x00;
53 069E 019A clrf 26
54 ;LCD.c: 21: LCDSE0=0xff;
55 069F 30FF movlw -1
56 06A0 009C movwf 28
57 ;LCD.c: 22: LCDSE1=0x03;
58 06A1 3003 movlw 3
59 06A2 009D movwf 29
60 ;LCD.c: 25: LCDCON=0xd3;
61 06A3 30D3 movlw -45
62 06A4 1703 bsf 3,6
63 06A5 0087 movwf 7 ;volatile
64 ;LCD.c: 28: LCDPS=0xb3;
65 06A6 30B3 movlw -77
66 06A7 0088 movwf 8 ;volatile
67 ;LCD.c: 29: }
68 06A8 1303 bcf 3,6 ;carry unused
69 06A9 0008 return ;W free
70
71 psect text1
72 06CA _LCDNUMI
73 ; _g assigned to ?a_LCDNUMI+0
74 0000 _LCDNUMI$g set ?a_LCDNUMI
75 ; _b assigned to ?a_LCDNUMI+1
76 0000 _LCDNUMI$b set ?a_LCDNUMI+1
77 ; _s assigned to ?a_LCDNUMI+2
78 0000 _LCDNUMI$s set ?a_LCDNUMI+2
79 ;LCD.c: 31: void LCDNUMI(int num)
80 06CA 0183 clrf 3 ;select bank 0
81 06CB 01A4 clrf ?a_LCDNUMI
82 06CC 01A6 clrf ?a_LCDNUMI+2
83 06CD 01A5 clrf ?a_LCDNUMI+1
84 ;LCD.c: 35: if(num<0)
85 06CE 1FA3 btfss ?_LCDNUMI+1,7
86 06CF 2ED7 goto l3
87 ;LCD.c: 36: {
88 06D0 1416 bsf 22,0
89 ;LCD.c: 39: num=~num;
90 06D1 09A2 comf ?_LCDNUMI
91 06D2 09A3 comf ?_LCDNUMI+1
92 ;LCD.c: 40: num++;
93 06D3 0AA2 incf ?_LCDNUMI
94 06D4 1903 btfsc 3,2
95 06D5 0AA3 incf ?_LCDNUMI+1
96 ;LCD.c: 41: }
97 06D6 2ED8 goto l4
98 06D7 l3
99 ;LCD.c: 42: else
100 06D7 1016 bcf 22,0
101 06D8 l4
102 ;LCD.c: 45: }
103 06D8 0823 movf ?_LCDNUMI+1,w
104 06D9 3A80 xorlw 128
105 06DA 00F9 movwf btemp
106 06DB 3083 movlw 131
107 06DC 0279 subwf btemp,w
108 06DD 30E8 movlw 232
109 ;set bank bits for (((?_LCDNUMI+0)))
110 06DE 1903 btfsc 3,2
111 06DF 0222 subwf ?_LCDNUMI,w
112 06E0 1C03 btfss 3,0
113 06E1 2EEA goto l5
114 ;LCD.c: 47: {
115 06E2 1496 bsf 22,1
116 ;LCD.c: 49: num-=1000;
117 06E3 3018 movlw 24
118 06E4 07A2 addwf ?_LCDNUMI
119 06E5 1803 btfsc 3,0
120 06E6 0AA3 incf ?_LCDNUMI+1
121 06E7 30FC movlw 252
122 06E8 07A3 addwf ?_LCDNUMI+1
123 ;LCD.c: 50: }
124 06E9 2EEB goto l6
125 06EA l5
126 ;LCD.c: 51: else
127 06EA 1096 bcf 22,1
128 06EB l6
129 ;LCD.c: 54: }
130 06EB 3064 movlw 100
131 06EC 00FB movwf btemp+2
132 06ED 01FC clrf btemp+3
133 06EE 0823 movf ?_LCDNUMI+1,w
134 06EF 00FA movwf btemp+1
135 06F0 0822 movf ?_LCDNUMI,w
136 06F1 00F9 movwf btemp
137 06F2 27B1 call awdiv
138 06F3 087D movf btemp+4,w
139 06F4 00A5 movwf ?a_LCDNUMI+1
140 ;LCD.c: 56: num%=100;
141 06F5 3064 movlw 100
142 06F6 00FB movwf btemp+2
143 06F7 01FC clrf btemp+3
144 06F8 0822 movf ?_LCDNUMI,w
145 06F9 00F9 movwf btemp
146 06FA 0823 movf ?_LCDNUMI+1,w
147 06FB 00FA movwf btemp+1
148 06FC 27B1 call awmod
149 06FD 0879 movf btemp,w
150 06FE 00A2 movwf ?_LCDNUMI
151 06FF 087A movf btemp+1,w
152 0700 00A3 movwf ?_LCDNUMI+1
153 ;LCD.c: 57: s=num/10;
154 0701 300A movlw 10
155 0702 00FB movwf btemp+2
156 0703 01FC clrf btemp+3
157 0704 0823 movf ?_LCDNUMI+1,w
158 0705 00FA movwf btemp+1
159 0706 0822 movf ?_LCDNUMI,w
160 0707 00F9 movwf btemp
161 0708 27B1 call awdiv
162 0709 087D movf btemp+4,w
163 070A 00A6 movwf ?a_LCDNUMI+2
164 ;LCD.c: 58: g=num%10;
165 070B 300A movlw 10
166 070C 00FB movwf btemp+2
167 070D 01FC clrf btemp+3
168 070E 0823 movf ?_LCDNUMI+1,w
169 070F 00FA movwf btemp+1
170 0710 0822 movf ?_LCDNUMI,w
171 0711 00F9 movwf btemp
172 0712 27B1 call awmod
173 0713 0879 movf btemp,w
174 0714 00A4 movwf ?a_LCDNUMI
175 ;LCD.c: 59: if(SEG1COM2==0&&b==0)
176 0715 1896 btfsc 22,1
177 0716 2F20 goto l7
178 0717 08A5 movf ?a_LCDNUMI+1
179 0718 1D03 btfss 3,2
180 0719 2F20 goto l7
181 ;LCD.c: 60: {
182 071A 08A6 movf ?a_LCDNUMI+2
183 ;LCD.c: 62: {
184 071B 300A movlw 10
185 071C 1D03 btfss 3,2
186 071D 2F1F goto L1
187 071E 00A6 movwf ?a_LCDNUMI+2
188 ;LCD.c: 64: }
189 071F L1
190 071F 00A5 movwf ?a_LCDNUMI+1
191 0720 l7
192 ;LCD.c: 66: }
193 0720 3000 movlw _LCD_MODEL shr (0+8)
194 0721 008A movwf 10
195 0722 0825 movf ?a_LCDNUMI+1,w
196 0723 200D call ((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
+ 48))
197 0724 00A7 movwf ?a_LCDNUMI+3
198 0725 1003 bcf 3,0
199 0726 0DA7 rlf ?a_LCDNUMI+3
200 0727 1003 bcf 3,0
201 0728 0D27 rlf ?a_LCDNUMI+3,w
202 0729 390C andlw 12
203 072A 00A8 movwf ?a_LCDNUMI+4
204 072B 3000 movlw _LCD_MODEL shr (0+8)
205 072C 008A movwf 10
206 072D 0826 movf ?a_LCDNUMI+2,w
207 072E 200D call ((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
+ 48))
208 072F 00A9 movwf ?a_LCDNUMI+5
209 0730 0EA9 swapf ?a_LCDNUMI+5
210 0731 30F0 movlw 240
211 0732 05A9 andwf ?a_LCDNUMI+5
212 0733 0829 movf ?a_LCDNUMI+5,w
213 0734 3930 andlw 48
214 0735 00AA movwf ?a_LCDNUMI+6
215 0736 3000 movlw _LCD_MODEL shr (0+8)
216 0737 008A movwf 10
217 0738 0824 movf ?a_LCDNUMI,w
218 0739 200D call ((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
+ 48))
219 073A pagesel $
220 073A 00AB movwf ?a_LCDNUMI+7
221 073B 3006 movlw 6
222 073C 00F9 movwf btemp
223 073D u75
224 073D 1003 bcf 3,0
225 073E 0DAB rlf ?a_LCDNUMI+7
226 073F 0BF9 decfsz btemp
227 0740 2F3D goto u75
228 0741 082B movf ?a_LCDNUMI+7,w
229 0742 39C0 andlw -64
230 0743 00AC movwf ?a_LCDNUMI+8
231 0744 0810 movf 16,w
232 0745 3903 andlw 3
233 0746 042C iorwf ?a_LCDNUMI+8,w
234 0747 042A iorwf ?a_LCDNUMI+6,w
235 0748 0428 iorwf ?a_LCDNUMI+4,w
236 0749 0090 movwf 16
237 ;LCD.c: 68: LCDDATA3=(LCDDATA3&0x03)|((LCD_MODE
+ L[g]<<4)&0xc0)|((LCD_MODEL[s]<<2)&0x30)|((LCD_M
+ ODEL[b])&0x0c);
238 074A 3000 movlw _LCD_MODEL shr (0+8)
239 074B 008A movwf 10
240 074C 0825 movf ?a_LCDNUMI+1,w
241 074D 200D call ((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
+ 48))
242 074E 390C andlw 12
243 074F 00A7 movwf ?a_LCDNUMI+3
244 0750 3000 movlw _LCD_MODEL shr (0+8)
245 0751 008A movwf 10
246 0752 0826 movf ?a_LCDNUMI+2,w
247 0753 200D call ((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
+ 48))
248 0754 00A8 movwf ?a_LCDNUMI+4
249 0755 1003 bcf 3,0
250 0756 0DA8 rlf ?a_LCDNUMI+4
251 0757 1003 bcf 3,0
252 0758 0D28 rlf ?a_LCDNUMI+4,w
253 0759 3930 andlw 48
254 075A 00A9 movwf ?a_LCDNUMI+5
255 075B 3000 movlw _LCD_MODEL shr (0+8)
256 075C 008A movwf 10
257 075D 0824 movf ?a_LCDNUMI,w
258 075E 200D call ((_LCD_MODEL+-1)& (0+2047))| (($)& (0+-20
+ 48))
259 075F 00AA movwf ?a_LCDNUMI+6
260 0760 0EAA swapf ?a_LCDNUMI+6
261 0761 30F0 movlw 240
262 0762 05AA andwf ?a_LCDNUMI+6
263 0763 082A movf ?a_LCDNUMI+6,w
264 0764 39C0 andlw -64
265 0765 00AB movwf ?a_LCDNUMI+7
266 0766 0813 movf 19,w
267 0767 3903 andlw 3
268 0768 042B iorwf ?a_LCDNUMI+7,w
269 0769 0429 iorwf ?a_LCDNUMI+5,w
270 076A 0427 iorwf ?a_LCDNUMI+3,w
271 076B 0093 movwf 19
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -