📄 oled.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-88888 Tue Feb 10 14:15:18 2009
Licensed to: ONE TWO
1 processor 16F688
2 opt pw 79
3 psect __Z88888RS_,global,delta=1
4 psect strings,global,class=STRING,delta=2
5 psect const1,local,class=CONST,delta=2
6 psect text0,local,class=CODE,delta=2
7 psect text2,local,class=CODE,delta=2
8 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
9 0000
10 0000
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19
20 psect __Z88888RS_
21 0120
22 0120
23
24 psect const1
25 00B6 0782 addwf 2
26 00B7 _OLED_PARAM
27 00B7 3400 retlw 0
28 00B8 346E retlw 110
29 00B9 3441 retlw 65
30 00BA 346E retlw 110
31 00BB 3441 retlw 65
32 00BC 346E retlw 110
33 00BD 3441 retlw 65
34 00BE 346E retlw 110
35 00BF 3441 retlw 65
36 00C0 3400 retlw 0
37 00C1 3402 retlw 2
38 00C2 3400 retlw 0
39 00C3 3402 retlw 2
40 00C4 3400 retlw 0
41 00C5 3480 retlw -128
42 00C6 341E retlw 30
43 00C7 340C retlw 12
44 00C8 340C retlw 12
45 00C9 3400 retlw 0
46 00CA 34D4 retlw -44
47 00CB 3419 retlw 25
48 00CC 34D8 retlw -40
49 00CD 340C retlw 12
50 00CE 3402 retlw 2
51 00CF 3480 retlw -128
52 00D0 3400 retlw 0
53 00D1 3400 retlw 0
54
55 psect text0
56 048D _oLedOperator
57 ; _type assigned to ?a_oLedOperator+0
58 0000 _oLedOperator$type set ?a_oLedOperator
59 ; _addr assigned to ?a_oLedOperator+1
60 0000 _oLedOperator$addr set ?a_oLedOperator+1
61 ; _i assigned to ?a_oLedOperator+2
62 0000 _oLedOperator$i set ?a_oLedOperator+2
63 ; _data assigned to ?a_oLedOperator+3
64 0000 _oLedOperator$data set ?a_oLedOperator+3
65 ;_type stored from w
66 048D 0183 clrf 3 ;select bank 0
67 048E 00AD movwf ?a_oLedOperator
68 ;oled.c: 49: unsigned char data;
69 048F 2D02 goto l8
70 0490 l9
71 ;oled.c: 53: { case 1:
72 ;oled.c: 54: { data =oledParam.bright;
73 0490 0821 movf _oledParam,w
74 0491 00B0 movwf ?a_oLedOperator+3
75 ;oled.c: 55: addr=0x00;
76 0492 01AE clrf ?a_oLedOperator+1
77 ;oled.c: 56: I2C_WriteNByte(0x5E,8,addr,&data,1
+ );
78 0493 3008 movlw 8
79 0494 00B1 movwf ?_I2C_WriteNByte
80 0495 01B2 clrf ?_I2C_WriteNByte+1
81 0496 3030 movlw ?a_oLedOperator+3
82 0497 00B3 movwf ?_I2C_WriteNByte+2
83 0498 01B4 clrf ?_I2C_WriteNByte+3
84 0499 0AB4 incf ?_I2C_WriteNByte+3
85 049A 305E movlw 94
86 049B 118A 2300 fcall _I2C_WriteNByte
87 ;oled.c: 57: addr=0x80;
88 049D 3080 movlw -128
89 049E 00AE movwf ?a_oLedOperator+1
90 ;oled.c: 58: I2C_WriteNByte(0x5E,8,addr,&data,1
+ );
91 049F 3008 movlw 8
92 04A0 00B1 movwf ?_I2C_WriteNByte
93 04A1 3080 movlw -128
94 04A2 00B2 movwf ?_I2C_WriteNByte+1
95 04A3 3030 movlw ?a_oLedOperator+3
96 04A4 00B3 movwf ?_I2C_WriteNByte+2
97 04A5 01B4 clrf ?_I2C_WriteNByte+3
98 04A6 0AB4 incf ?_I2C_WriteNByte+3
99 04A7 305E movlw 94
100 04A8 118A 2B00 ljmp _I2C_WriteNByte
101 ;oled.c: 59: break;
102 04AA l10
103 ;oled.c: 60: }
104 ;oled.c: 62: { data =oledParam.gray;
105 04AA 0822 movf _oledParam+1,w
106 04AB 00B0 movwf ?a_oLedOperator+3
107 ;oled.c: 63: addr=0x80;
108 04AC 3080 movlw -128
109 04AD 00AE movwf ?a_oLedOperator+1
110 ;oled.c: 64: I2C_WriteNByte(0x5E,8,addr,&data,1
+ );
111 04AE 3008 movlw 8
112 04AF 00B1 movwf ?_I2C_WriteNByte
113 04B0 3080 movlw -128
114 04B1 00B2 movwf ?_I2C_WriteNByte+1
115 04B2 3030 movlw ?a_oLedOperator+3
116 04B3 00B3 movwf ?_I2C_WriteNByte+2
117 04B4 01B4 clrf ?_I2C_WriteNByte+3
118 04B5 0AB4 incf ?_I2C_WriteNByte+3
119 04B6 305E movlw 94
120 04B7 118A 2B00 ljmp _I2C_WriteNByte
121 ;oled.c: 65: break;
122 04B9 l11
123 ;oled.c: 66: }
124 ;oled.c: 68: { data =oledParam.gain;
125 04B9 0823 movf _oledParam+2,w
126 04BA 00B0 movwf ?a_oLedOperator+3
127 ;oled.c: 69: addr= 0x01;
128 04BB 01AE clrf ?a_oLedOperator+1
129 04BC 0AAE incf ?a_oLedOperator+1
130 ;oled.c: 70: for(i=0;i<4;i++)
131 04BD 01AF clrf ?a_oLedOperator+2
132 04BE l12
133 ;oled.c: 71: { I2C_WriteNByte(0x64,8,addr+i*2,&
+ data,1);
134 04BE 3008 movlw 8
135 04BF 00B1 movwf ?_I2C_WriteNByte
136 04C0 082F movf ?a_oLedOperator+2,w
137 04C1 072F addwf ?a_oLedOperator+2,w
138 04C2 072E addwf ?a_oLedOperator+1,w
139 04C3 00B2 movwf ?_I2C_WriteNByte+1
140 04C4 3030 movlw ?a_oLedOperator+3
141 04C5 00B3 movwf ?_I2C_WriteNByte+2
142 04C6 01B4 clrf ?_I2C_WriteNByte+3
143 04C7 0AB4 incf ?_I2C_WriteNByte+3
144 04C8 3064 movlw 100
145 04C9 118A 2300 fcall _I2C_WriteNByte
146 ;oled.c: 72: I2C_WriteNByte(0x66,8,addr+i*2,&da
+ ta,1);
147 04CB 3008 movlw 8
148 04CC 00B1 movwf ?_I2C_WriteNByte
149 04CD 082F movf ?a_oLedOperator+2,w
150 04CE 072F addwf ?a_oLedOperator+2,w
151 04CF 072E addwf ?a_oLedOperator+1,w
152 04D0 00B2 movwf ?_I2C_WriteNByte+1
153 04D1 3030 movlw ?a_oLedOperator+3
154 04D2 00B3 movwf ?_I2C_WriteNByte+2
155 04D3 01B4 clrf ?_I2C_WriteNByte+3
156 04D4 0AB4 incf ?_I2C_WriteNByte+3
157 04D5 3066 movlw 102
158 04D6 118A 2300 fcall _I2C_WriteNByte
159 ;oled.c: 73: DelayNms(10);
160 04D8 300A movlw 10
161 04D9 00B1 movwf ?_DelayNms
162 04DA 01B2 clrf ?_DelayNms+1
163 04DB 118A 2125 118A fcall _DelayNms
164 ;oled.c: 74: }
165 04DE 0AAF incf ?a_oLedOperator+2
166 04DF 3004 movlw 4
167 04E0 022F subwf ?a_oLedOperator+2,w
168 04E1 1803 btfsc 3,0
169 04E2 0008 return
170 04E3 2CBE goto l12
171 ;oled.c: 75: break;
172 04E4 l15
173 ;oled.c: 76: }
174 ;oled.c: 78: { data =oledParam.offset;
175 04E4 0824 movf _oledParam+3,w
176 04E5 00B0 movwf ?a_oLedOperator+3
177 ;oled.c: 79: addr= 0x02;
178 04E6 3002 movlw 2
179 04E7 00AE movwf ?a_oLedOperator+1
180 ;oled.c: 80: for(i=0;i<4;i++)
181 04E8 01AF clrf ?a_oLedOperator+2
182 04E9 l16
183 ;oled.c: 81: { I2C_WriteNByte(0x64,8,addr+i*2,&
+ data,1);
184 04E9 3008 movlw 8
185 04EA 00B1 movwf ?_I2C_WriteNByte
186 04EB 082F movf ?a_oLedOperator+2,w
187 04EC 072F addwf ?a_oLedOperator+2,w
188 04ED 072E addwf ?a_oLedOperator+1,w
189 04EE 00B2 movwf ?_I2C_WriteNByte+1
190 04EF 3030 movlw ?a_oLedOperator+3
191 04F0 00B3 movwf ?_I2C_WriteNByte+2
192 04F1 01B4 clrf ?_I2C_WriteNByte+3
193 04F2 0AB4 incf ?_I2C_WriteNByte+3
194 04F3 3064 movlw 100
195 04F4 118A 2300 fcall _I2C_WriteNByte
196 ;oled.c: 82: DelayNms(10);
197 04F6 300A movlw 10
198 04F7 00B1 movwf ?_DelayNms
199 04F8 01B2 clrf ?_DelayNms+1
200 04F9 118A 2125 118A fcall _DelayNms
201 ;oled.c: 83: }
202 04FC 0AAF incf ?a_oLedOperator+2
203 04FD 3004 movlw 4
204 04FE 022F subwf ?a_oLedOperator+2,w
205 04FF 1803 btfsc 3,0
206 0500 0008 return
207 0501 2CE9 goto l16
208 ;oled.c: 84: break;
209 ;oled.c: 85: }
210 0502 l8
211 0502 1283 bcf 3,5
212 0503 1303 bcf 3,6 ;carry unused
213 0504 082D movf ?a_oLedOperator,w
214 0505 3A01 xorlw 1
215 0506 1903 btfsc 3,2
216 0507 2C90 goto l9
217 0508 3A03 xorlw 3
218 0509 1903 btfsc 3,2
219 050A 2CAA goto l10
220 050B 3A01 xorlw 1
221 050C 1903 btfsc 3,2
222 050D 2CB9 goto l11
223 050E 3A07 xorlw 7
224 050F 1D03 btfss 3,2
225 0510 0008 return
226 0511 2CE4 goto l15
227 ;oled.c: 90: void InitOled(void)
228 ;oled.c: 91: {
229 0512 _InitOled
230 ; _data assigned to ?a_InitOled+0
231 0000 _InitOled$data set ?a_InitOled
232 ; _i assigned to ?a_InitOled+1
233 0000 _InitOled$i set ?a_InitOled+1
234 ;oled.c: 92: unsigned char i;
235 0512 0183 clrf 3 ;select bank 0
236 0513 1007 bcf 7,0
237 ;oled.c: 95: DelayNms(10);
238 0514 300A movlw 10
239 0515 00B1 movwf ?_DelayNms
240 0516 01B2 clrf ?_DelayNms+1
241 0517 118A 2125 fcall _DelayNms
242 ;oled.c: 96: RC0=1;
243 0519 1407 bsf 7,0
244 ;oled.c: 97: DelayNms(10);
245 051A 300A movlw 10
246 051B 00B1 movwf ?_DelayNms
247 051C 01B2 clrf ?_DelayNms+1
248 051D 118A 2125 fcall _DelayNms
249 ;oled.c: 98: for (i=0;i<27;i++)
250 051F 01AC clrf ?a_InitOled+1
251 0520 l21
252 ;oled.c: 99: { data =OLED_PARAM[i];
253 0520 3000 movlw _OLED_PARAM shr (0+8)
254 0521 008A movwf 10
255 0522 082C movf ?a_InitOled+1,w
256 0523 20B6 call ((_OLED_PARAM+-1)& (0+2047))| (($)& (0+-2
+ 048))
257 0524 00AB movwf ?a_InitOled
258 ;oled.c: 100: I2C_WriteNByte(0x64,8,i,&data,1);
259 0525 3008 movlw 8
260 0526 00B1 movwf ?_I2C_WriteNByte
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -