📄 oled.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL1
Serial number: HCPIC-88888 Thu Dec 11 14:01:27 2008
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 0038 0782 addwf 2
26 0039 _OLED_PARAM
27 0039 3400 retlw 0
28 003A 346E retlw 110
29 003B 3441 retlw 65
30 003C 346E retlw 110
31 003D 3441 retlw 65
32 003E 346E retlw 110
33 003F 3441 retlw 65
34 0040 346E retlw 110
35 0041 3441 retlw 65
36 0042 3400 retlw 0
37 0043 3402 retlw 2
38 0044 3400 retlw 0
39 0045 3402 retlw 2
40 0046 3400 retlw 0
41 0047 3480 retlw -128
42 0048 341E retlw 30
43 0049 340C retlw 12
44 004A 340C retlw 12
45 004B 3400 retlw 0
46 004C 34D4 retlw -44
47 004D 3419 retlw 25
48 004E 34D8 retlw -40
49 004F 340C retlw 12
50 0050 3402 retlw 2
51 0051 3480 retlw -128
52 0052 3400 retlw 0
53 0053 3400 retlw 0
54
55 psect text0
56 04B3 _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 04B3 0183 clrf 3 ;select bank 0
67 04B4 00C5 movwf ?a_oLedOperator
68 ;oled.c: 49: unsigned char data;
69 04B5 2D0E goto l7
70 04B6 l8
71 ;oled.c: 53: { case 1:
72 ;oled.c: 54: { data =oledParam.bright;
73 04B6 0839 movf _oledParam,w
74 04B7 00C8 movwf ?a_oLedOperator+3
75 ;oled.c: 55: addr=0x00;
76 04B8 01C6 clrf ?a_oLedOperator+1
77 ;oled.c: 56: I2C_WriteNByte(0x5E,8,addr,&data,1
+ );
78 04B9 3008 movlw 8
79 04BA 00C9 movwf ?_I2C_WriteNByte
80 04BB 01CA clrf ?_I2C_WriteNByte+1
81 04BC 3048 movlw ?a_oLedOperator+3
82 04BD 00CB movwf ?_I2C_WriteNByte+2
83 04BE 01CC clrf ?_I2C_WriteNByte+3
84 04BF 0ACC incf ?_I2C_WriteNByte+3
85 04C0 305E movlw 94
86 04C1 118A 2C89 ljmp _I2C_WriteNByte
87 ;oled.c: 57: break;
88 04C3 l9
89 ;oled.c: 58: }
90 ;oled.c: 60: { data =oledParam.gray;
91 04C3 083A movf _oledParam+1,w
92 04C4 00C8 movwf ?a_oLedOperator+3
93 ;oled.c: 61: addr=0x80;
94 04C5 3080 movlw -128
95 04C6 00C6 movwf ?a_oLedOperator+1
96 ;oled.c: 62: I2C_WriteNByte(0x5E,8,addr,&data,1
+ );
97 04C7 3008 movlw 8
98 04C8 00C9 movwf ?_I2C_WriteNByte
99 04C9 3080 movlw -128
100 04CA 00CA movwf ?_I2C_WriteNByte+1
101 04CB 3048 movlw ?a_oLedOperator+3
102 04CC 00CB movwf ?_I2C_WriteNByte+2
103 04CD 01CC clrf ?_I2C_WriteNByte+3
104 04CE 0ACC incf ?_I2C_WriteNByte+3
105 04CF 305E movlw 94
106 04D0 118A 2C89 ljmp _I2C_WriteNByte
107 ;oled.c: 63: break;
108 04D2 l10
109 ;oled.c: 64: }
110 ;oled.c: 66: { data =oledParam.gain;
111 04D2 083B movf _oledParam+2,w
112 04D3 00C8 movwf ?a_oLedOperator+3
113 ;oled.c: 67: addr= 0x01;
114 04D4 01C6 clrf ?a_oLedOperator+1
115 04D5 0AC6 incf ?a_oLedOperator+1
116 ;oled.c: 68: for(i=0;i<4;i++)
117 04D6 01C7 clrf ?a_oLedOperator+2
118 04D7 l11
119 ;oled.c: 69: { I2C_WriteNByte(0x64,8,addr+i*2,&
+ data,1);
120 04D7 3008 movlw 8
121 04D8 00C9 movwf ?_I2C_WriteNByte
122 04D9 0847 movf ?a_oLedOperator+2,w
123 04DA 0747 addwf ?a_oLedOperator+2,w
124 04DB 0746 addwf ?a_oLedOperator+1,w
125 04DC 00CA movwf ?_I2C_WriteNByte+1
126 04DD 3048 movlw ?a_oLedOperator+3
127 04DE 00CB movwf ?_I2C_WriteNByte+2
128 04DF 01CC clrf ?_I2C_WriteNByte+3
129 04E0 0ACC incf ?_I2C_WriteNByte+3
130 04E1 3064 movlw 100
131 04E2 118A 2489 fcall _I2C_WriteNByte
132 ;oled.c: 70: DelayNms(10);
133 04E4 300A movlw 10
134 04E5 00C9 movwf ?_DelayNms
135 04E6 01CA clrf ?_DelayNms+1
136 04E7 118A 229B 118A fcall _DelayNms
137 ;oled.c: 71: }
138 04EA 0AC7 incf ?a_oLedOperator+2
139 04EB 3004 movlw 4
140 04EC 0247 subwf ?a_oLedOperator+2,w
141 04ED 1803 btfsc 3,0
142 04EE 0008 return
143 04EF 2CD7 goto l11
144 ;oled.c: 72: break;
145 04F0 l14
146 ;oled.c: 73: }
147 ;oled.c: 75: { data =oledParam.offset;
148 04F0 083C movf _oledParam+3,w
149 04F1 00C8 movwf ?a_oLedOperator+3
150 ;oled.c: 76: addr= 0x02;
151 04F2 3002 movlw 2
152 04F3 00C6 movwf ?a_oLedOperator+1
153 ;oled.c: 77: for(i=0;i<4;i++)
154 04F4 01C7 clrf ?a_oLedOperator+2
155 04F5 l15
156 ;oled.c: 78: { I2C_WriteNByte(0x64,8,addr+i*2,&
+ data,1);
157 04F5 3008 movlw 8
158 04F6 00C9 movwf ?_I2C_WriteNByte
159 04F7 0847 movf ?a_oLedOperator+2,w
160 04F8 0747 addwf ?a_oLedOperator+2,w
161 04F9 0746 addwf ?a_oLedOperator+1,w
162 04FA 00CA movwf ?_I2C_WriteNByte+1
163 04FB 3048 movlw ?a_oLedOperator+3
164 04FC 00CB movwf ?_I2C_WriteNByte+2
165 04FD 01CC clrf ?_I2C_WriteNByte+3
166 04FE 0ACC incf ?_I2C_WriteNByte+3
167 04FF 3064 movlw 100
168 0500 118A 2489 fcall _I2C_WriteNByte
169 ;oled.c: 79: DelayNms(10);
170 0502 300A movlw 10
171 0503 00C9 movwf ?_DelayNms
172 0504 01CA clrf ?_DelayNms+1
173 0505 118A 229B 118A fcall _DelayNms
174 ;oled.c: 80: }
175 0508 0AC7 incf ?a_oLedOperator+2
176 0509 3004 movlw 4
177 050A 0247 subwf ?a_oLedOperator+2,w
178 050B 1803 btfsc 3,0
179 050C 0008 return
180 050D 2CF5 goto l15
181 ;oled.c: 81: break;
182 ;oled.c: 82: }
183 050E l7
184 050E 1283 bcf 3,5
185 050F 1303 bcf 3,6 ;carry unused
186 0510 0845 movf ?a_oLedOperator,w
187 0511 3A01 xorlw 1
188 0512 1903 btfsc 3,2
189 0513 2CB6 goto l8
190 0514 3A03 xorlw 3
191 0515 1903 btfsc 3,2
192 0516 2CC3 goto l9
193 0517 3A01 xorlw 1
194 0518 1903 btfsc 3,2
195 0519 2CD2 goto l10
196 051A 3A07 xorlw 7
197 051B 1D03 btfss 3,2
198 051C 0008 return
199 051D 2CF0 goto l14
200 ;oled.c: 87: void InitOled(void)
201 ;oled.c: 88: {
202 051E _InitOled
203 ; _data assigned to ?a_InitOled+0
204 0000 _InitOled$data set ?a_InitOled
205 ; _i assigned to ?a_InitOled+1
206 0000 _InitOled$i set ?a_InitOled+1
207 ;oled.c: 89: unsigned char i;
208 051E 0183 clrf 3 ;select bank 0
209 051F 1007 bcf 7,0
210 ;oled.c: 92: DelayNms(10);
211 0520 300A movlw 10
212 0521 00C9 movwf ?_DelayNms
213 0522 01CA clrf ?_DelayNms+1
214 0523 118A 229B fcall _DelayNms
215 ;oled.c: 93: RC0=1;
216 0525 1407 bsf 7,0
217 ;oled.c: 94: DelayNms(10);
218 0526 300A movlw 10
219 0527 00C9 movwf ?_DelayNms
220 0528 01CA clrf ?_DelayNms+1
221 0529 118A 229B fcall _DelayNms
222 ;oled.c: 95: for (i=0;i<27;i++)
223 052B 01C4 clrf ?a_InitOled+1
224 052C l20
225 ;oled.c: 96: { data =OLED_PARAM[i];
226 052C 3000 movlw _OLED_PARAM shr (0+8)
227 052D 008A movwf 10
228 052E 0844 movf ?a_InitOled+1,w
229 052F 2038 call ((_OLED_PARAM+-1)& (0+2047))| (($)& (0+-2
+ 048))
230 0530 00C3 movwf ?a_InitOled
231 ;oled.c: 97: I2C_WriteNByte(0x64,8,i,&data,1);
232 0531 3008 movlw 8
233 0532 00C9 movwf ?_I2C_WriteNByte
234 0533 0844 movf ?a_InitOled+1,w
235 0534 00CA movwf ?_I2C_WriteNByte+1
236 0535 3043 movlw ?a_InitOled
237 0536 00CB movwf ?_I2C_WriteNByte+2
238 0537 01CC clrf ?_I2C_WriteNByte+3
239 0538 0ACC incf ?_I2C_WriteNByte+3
240 0539 3064 movlw 100
241 053A 118A 2489 fcall _I2C_WriteNByte
242 ;oled.c: 98: DelayNms(2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -