📄 sig125_100hz.lst
字号:
HI-TECH Software PICC Macro Assembler V8.02PL1
Wed Jun 18 20:51:41 2008
1 processor 16F73
2 opt pw 79
3 psect __Z49231UD_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect config,global,class=CONFIG,delta=2
6 psect text1,local,class=CODE,delta=2
7 psect intcode,global,class=CODE,delta=2
8 psect intsave_1,global,ovrld,class=BANK1,space
+ =1,delta=1
9 psect intsave_0,global,ovrld,class=BANK0,space
+ =1,delta=1
10 psect intret,global,class=CODE,delta=2
11 psect intentry,global,class=CODE,delta=2
12 psect intsave,global,class=BANK0,space=1,delta
+ =1
13 psect text3,local,class=CODE,delta=2
14 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21 0000
22 0000
23 0000
24 0000 ;#
25
26 psect text0
27 07C7 _ini
28 ; _i assigned to ?a_ini+0
29 0000 _ini$i set ?a_ini
30 ; _j assigned to ?a_ini+2
31 0000 _ini$j set ?a_ini+2
32 ;sig125_100Hz.c: 56: unsigned int i,j;
33 07C7 0183 clrf 3 ;select bank 0
34 07C8 0187 clrf 7 ;volatile
35 ;sig125_100Hz.c: 59: TRISC = 0;
36 07C9 1683 bsf 3,5
37 07CA 0187 clrf 7 ;volatile
38 ;sig125_100Hz.c: 61: for (i=200;i;i--) {
39 07CB 30C8 movlw 200
40 07CC 1283 bcf 3,5
41 07CD 00A4 movwf ?a_ini
42 07CE 01A5 clrf ?a_ini+1
43 07CF 2FE1 goto l5
44 07D0 l2
45 ;sig125_100Hz.c: 62: for (j=1000;j;j--) {;}
46 07D0 30E8 movlw 232
47 07D1 00A6 movwf ?a_ini+2
48 07D2 3003 movlw 3
49 07D3 00A7 movwf ?a_ini+3
50 07D4 l9
51 07D4 0827 movf ?a_ini+3,w
52 07D5 0426 iorwf ?a_ini+2,w
53 07D6 1903 btfsc 3,2
54 07D7 2FDD goto l7
55 07D8 08A6 movf ?a_ini+2
56 07D9 1903 btfsc 3,2
57 07DA 03A7 decf ?a_ini+3
58 07DB 03A6 decf ?a_ini+2
59 07DC 2FD4 goto l9
60 07DD l7
61 ;sig125_100Hz.c: 63: }
62 07DD 08A4 movf ?a_ini
63 07DE 1903 btfsc 3,2
64 07DF 03A5 decf ?a_ini+1
65 07E0 03A4 decf ?a_ini
66 07E1 l5
67 07E1 0825 movf ?a_ini+1,w
68 07E2 0424 iorwf ?a_ini,w
69 07E3 1D03 btfss 3,2
70 07E4 2FD0 goto l2
71 ;sig125_100Hz.c: 65: T2CON = 0b00000000;
72 07E5 0192 clrf 18 ;volatile
73 ;sig125_100Hz.c: 66: PR2 = 199;
74 07E6 30C7 movlw -57
75 07E7 1683 bsf 3,5
76 07E8 0092 movwf 18 ;volatile
77 ;sig125_100Hz.c: 67: TMR2 = 0;
78 07E9 1283 bcf 3,5
79 07EA 0191 clrf 17 ;volatile
80 ;sig125_100Hz.c: 68: TMR2IF = 0;
81 07EB 108C bcf 12,1
82 ;sig125_100Hz.c: 69: TMR2IE = 1;
83 07EC 1683 bsf 3,5
84 07ED 148C bsf 12,1
85 ;sig125_100Hz.c: 70: PEIE = 1;
86 07EE 170B bsf 11,6
87 ;sig125_100Hz.c: 71: GIE = 1;
88 07EF 178B bsf 11,7
89 ;sig125_100Hz.c: 73: oBuf = 0;
90 07F0 1283 bcf 3,5
91 07F1 01A0 clrf _oBuf
92 ;sig125_100Hz.c: 74: cnt[0] = (((1000000 / 100)
+ / 125) * 57 / 100);
93 07F2 302D movlw 45
94 07F3 00A1 movwf _cnt
95 ;sig125_100Hz.c: 75: cnt[2] = ((1000000 / 100)
+ / 125) - (((1000000 / 100) / 125) / 3);
96 07F4 3036 movlw 54
97 07F5 00A3 movwf _cnt+2
98 ;sig125_100Hz.c: 76: cnt[1] = cnt[2] - (((10000
+ 00 / 100) / 125) / 3);
99 07F6 3EE6 addlw -26
100 07F7 00A2 movwf _cnt+1
101 ;sig125_100Hz.c: 77: }
102 07F8 0008 return
103 ;sig125_100Hz.c: 97: void main(void)
104 ;sig125_100Hz.c: 98: {
105 07F9 _main
106 ;sig125_100Hz.c: 99: ini();
107 07F9 27C7 fcall _ini
108 ;sig125_100Hz.c: 100: oBuf = 0b00000100;
109 07FA 3004 movlw 4
110 07FB 00A0 movwf _oBuf
111 ;sig125_100Hz.c: 101: PORTC = oBuf;
112 07FC 0820 movf _oBuf,w
113 07FD 0087 movwf 7 ;volatile
114 ;sig125_100Hz.c: 102: TMR2ON = 1;
115 07FE 1512 bsf 18,2
116 ;sig125_100Hz.c: 104: while (1) {;}
117 07FF l18
118 07FF 2FFF goto l18
119
120 psect config
121 2007 3FA2 dw 16290 ;#
122
123 psect intcode
124 ;sig125_100Hz.c: 79: void interrupt isr(void)
125 ;sig125_100Hz.c: 80: {
126 000D _isr
127 000D int_func
128 ; _j assigned to ?a_isr+0
129 0000 _isr$j set ?a_isr
130 ; _i assigned to ?a_isr+1
131 0000 _isr$i set ?a_isr+1
132 ;sig125_100Hz.c: 81: unsigned char i,j;
133 000D 0183 clrf 3 ;select bank 0
134 000E 1C8C btfss 12,1
135 000F 2834 goto l10
136 ;sig125_100Hz.c: 84: j = 0b00010000;
137 0010 3010 movlw 16
138 0011 00A8 movwf ?a_isr
139 ;sig125_100Hz.c: 85: for (i=3;i;i--) {
140 0012 3003 movlw 3
141 0013 00A9 movwf ?a_isr+1
142 0014 l15
143 0014 08A9 movf ?a_isr+1
144 0015 1903 btfsc 3,2
145 0016 2831 goto l13
146 ;sig125_100Hz.c: 86: if (! --cnt[i-1]) {
147 0017 0329 decf ?a_isr+1,w
148 0018 3E21 addlw _cnt
149 0019 0084 movwf 4
150 001A 1383 bcf 3,7
151 001B 0B80 decfsz 0
152 001C 282B goto l16
153 ;sig125_100Hz.c: 87: oBuf ^= j;
154 001D 0828 movf ?a_isr,w
155 001E 06A0 xorwf _oBuf
156 ;sig125_100Hz.c: 88: cnt[i-1] = (oBuf&j) ? (((1
+ 000000 / 100) / 125) * 57 / 100) : (((1000000 /
+ 100) / 125) - (((1000000 / 100) / 125) * 57 /
+ 100));
157 001F 0329 decf ?a_isr+1,w
158 0020 3E21 addlw _cnt
159 0021 0084 movwf 4
160 0022 1383 bcf 3,7
161 0023 0820 movf _oBuf,w
162 0024 0528 andwf ?a_isr,w
163 0025 1D03 btfss 3,2
164 0026 2829 goto u66
165 0027 3023 movlw 35
166 0028 282A goto u67
167 0029 u66
168 0029 302D movlw 45
169 002A u67
170 002A 0080 movwf 0
171 002B l16
172 ;sig125_100Hz.c: 89: }
173 002B 1003 bcf 3,0
174 002C 1283 bcf 3,5
175 002D 1303 bcf 3,6 ;carry unused
176 002E 0CA8 rrf ?a_isr
177 ;sig125_100Hz.c: 91: }
178 002F 03A9 decf ?a_isr+1
179 0030 2814 goto l15
180 0031 l13
181 ;sig125_100Hz.c: 92: PORTC = oBuf;
182 0031 0820 movf _oBuf,w
183 0032 0087 movwf 7 ;volatile
184 ;sig125_100Hz.c: 93: TMR2IF = 0;
185 0033 108C bcf 12,1
186 ;sig125_100Hz.c: 94: }
187 0034 l10
188
189 psect intsave_1
190 00FF ds 1
191
192 psect intsave_0
193 007F saved_w
194 007F ds 1
195
196 psect intret
197 0034 082B movf saved_fsr,w
198 0035 0084 movwf 4 ;restore FSR
199 0036 082C movf saved_pclath,w
200 0037 008A movwf 10
201 0038 int_restore
202 0038 082A movf saved_status,w
203 0039 0083 movwf 3
204 003A 0EFF swapf saved_w
205 003B 0E7F swapf saved_w,w
206 003C 0009 retfie
207
208 psect intentry
209 0004 int_entry
210 0004 00FF movwf saved_w
211 0005 0803 movf 3,w
212 0006 0183 clrf 3
213 0007 00AA movwf saved_status
214 0008 0804 movf 4,w
215 0009 00AB movwf saved_fsr
216 000A 080A movf 10,w
217 000B 00AC movwf saved_pclath
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -