📄 slavewr.lst
字号:
HI-TECH Software PICC Macro Assembler V8.05PL2
Serial number: HCPIC-42044 Mon Apr 24 21:02:14 2006
Licensed to: ONE
1 processor 16F873A
2 opt pw 79
3 psect __Z42044RS_,global,delta=1
4 psect text0,local,class=CODE,delta=2
5 psect text4,local,class=CODE,delta=2
6 psect text5,local,class=CODE,delta=2
7 psect text7,local,class=CODE,delta=2
8 psect rbss_0,global,class=BANK0,space=1,delta=
+ 1
9 psect nvram,global,class=BANK0,space=1,delta=1
10 psect temp,global,ovrld,class=BANK0,space=1,de
+ lta=1
11 0000
12 0000
13 0000
14 0000
15 0000
16 0000
17 0000
18 0000
19 0000
20 0000
21
22 psect __Z42044RS_
23 00C8
24 00C8
25
26 psect text0
27 0EBC _Slave_Transmit
28 ; _senddata assigned to ?a_Slave_Transmit+0
29 0000 _Slave_Transmit$senddata set ?a_Slave_Transmit
30 ;_senddata stored from w
31 0EBC 0183 clrf 3 ;select bank 0
32 0EBD 00B8 movwf ?a_Slave_Transmit
33 ;slaveWR.c: 9: while(STAT_BF==1)
34 0EBE l2
35 ;slaveWR.c: 10: {
36 0EBE 1683 bsf 3,5
37 0EBF 1303 bcf 3,6 ;carry unused
38 0EC0 1C14 btfss 20,0
39 0EC1 2EC4 goto l5
40 0EC2 2EBE goto l2
41 ;slaveWR.c: 14: while(WCOL==1)
42 0EC3 l6
43 ;slaveWR.c: 15: {
44 0EC3 1394 bcf 20,7
45 0EC4 l5
46 ;slaveWR.c: 17: }
47 0EC4 1283 bcf 3,5
48 0EC5 1B94 btfsc 20,7
49 0EC6 2EC3 goto l6
50 ;slaveWR.c: 18: SSPBUF=senddata;
51 0EC7 0838 movf ?a_Slave_Transmit,w
52 0EC8 0093 movwf 19 ;volatile
53 ;slaveWR.c: 20: CKP=1;
54 0EC9 1614 bsf 20,4
55 ;slaveWR.c: 22: }
56 0ECA 0008 return
57 0ECB _Write_INTERNAL_EEPROM
58 ; _EEPROM_Address assigned to ?a_Write_INTERNAL
+ _EEPROM+0
59 0000 _Write_INTERNAL_EEPROM$EEPROM_Address set ?a_Wr
+ ite_INTERNAL_EEPROM
60 ;_EEPROM_Address stored from w
61 0ECB 0183 clrf 3 ;select bank 0
62 0ECC 00B9 movwf ?a_Write_INTERNAL_EEPROM
63 ;slaveWR.c: 50: EEADR=EEPROM_Address;
64 0ECD 1703 bsf 3,6
65 0ECE 008D movwf 13 ;volatile
66 ;slaveWR.c: 51: EEDATA=EEPROM_Data;
67 0ECF 1303 bcf 3,6 ;carry unused
68 0ED0 0838 movf ?_Write_INTERNAL_EEPROM,w
69 0ED1 1703 bsf 3,6
70 0ED2 008C movwf 12 ;volatile
71 ;slaveWR.c: 52: EEPGD=0;
72 0ED3 1683 bsf 3,5
73 0ED4 138C bcf 12,7
74 ;slaveWR.c: 53: WREN=1;
75 0ED5 150C bsf 12,2
76 ;slaveWR.c: 54: GIE=0;
77 0ED6 138B bcf 11,7
78 ;slaveWR.c: 55: EECON2=0X55;
79 0ED7 3055 movlw 85
80 0ED8 008D movwf 13 ;volatile
81 ;slaveWR.c: 56: EECON2=0XAA;
82 0ED9 30AA movlw -86
83 0EDA 008D movwf 13 ;volatile
84 ;slaveWR.c: 57: WR=1;
85 0EDB 148C bsf 12,1
86 ;slaveWR.c: 58: GIE=1;
87 0EDC 178B bsf 11,7
88 ;slaveWR.c: 59: WREN=0;
89 0EDD 110C bcf 12,2
90 ;slaveWR.c: 60: while(WR==1)
91 0EDE l14
92 ;slaveWR.c: 61: {
93 0EDE 188C btfsc 12,1
94 0EDF 2EDE goto l14
95 ;slaveWR.c: 66: }
96 0EE0 0183 clrf 3 ;select bank 0
97 0EE1 0008 return
98 ;slaveWR.c: 37: unsigned char Read_INTERNAL_EEP
+ ROM(unsigned char EEPROM_Address)
99 ;slaveWR.c: 38: {
100 0EE2 _Read_INTERNAL_EEPROM
101 ; _EEPROM_Address assigned to ?a_Read_INTERNAL_
+ EEPROM+0
102 0000 _Read_INTERNAL_EEPROM$EEPROM_Address set ?a_Rea
+ d_INTERNAL_EEPROM
103 ; _eepromdata assigned to ?a_Read_INTERNAL_EEPR
+ OM+1
104 0000 _Read_INTERNAL_EEPROM$eepromdata set ?a_Read_IN
+ TERNAL_EEPROM+1
105 ;_EEPROM_Address stored from w
106 0EE2 0183 clrf 3 ;select bank 0
107 0EE3 00B8 movwf ?a_Read_INTERNAL_EEPROM
108 ;slaveWR.c: 39: unsigned char eepromdata;
109 0EE4 1703 bsf 3,6
110 0EE5 008D movwf 13 ;volatile
111 ;slaveWR.c: 41: EEPGD=0;
112 0EE6 1683 bsf 3,5
113 0EE7 138C bcf 12,7
114 ;slaveWR.c: 42: RD=1;
115 0EE8 140C bsf 12,0
116 ;slaveWR.c: 43: eepromdata=EEDATA;
117 0EE9 1283 bcf 3,5
118 0EEA 080C movf 12,w ;volatile
119 0EEB 1303 bcf 3,6 ;carry unused
120 0EEC 00B9 movwf ?a_Read_INTERNAL_EEPROM+1
121 ;slaveWR.c: 46: }
122 0EED 0008 return
123 ;slaveWR.c: 48: void Write_INTERNAL_EEPROM(unsi
+ gned char EEPROM_Address,unsigned char EEPROM_D
+ ata)
124 ;slaveWR.c: 49: {
125 ; param _EEPROM_Data assigned to ?_Write_
+ INTERNAL_EEPROM+0
126 0000 _Write_INTERNAL_EEPROM$EEPROM_Data set ?_Write_
+ INTERNAL_EEPROM
127 ;slaveWR.c: 24: unsigned char Slave_Receive()
128 ;slaveWR.c: 25: {
129 0EEE _Slave_Receive
130 ; _receivedata assigned to ?a_Slave_Receive+0
131 0000 _Slave_Receive$receivedata set ?a_Slave_Receive
132 ;slaveWR.c: 26: unsigned char receivedata;
133 0EEE 2EF0 goto l9
134 0EEF l10
135 ;slaveWR.c: 28: {
136 0EEF 1314 bcf 20,6
137 0EF0 l9
138 ;slaveWR.c: 30: }
139 0EF0 1283 bcf 3,5
140 0EF1 1303 bcf 3,6 ;carry unused
141 0EF2 1B14 btfsc 20,6
142 0EF3 2EEF goto l10
143 ;slaveWR.c: 32: receivedata=SSPBUF;
144 0EF4 0813 movf 19,w ;volatile
145 0EF5 00B8 movwf ?a_Slave_Receive
146 ;slaveWR.c: 35: }
147 0EF6 0008 return
148 ;slaveWR.c: 101: void SSP_Handle()
149 ;slaveWR.c: 102: {
150 0EF7 _SSP_Handle
151 ; _S_temp assigned to ?a_SSP_Handle+0
152 0000 _SSP_Handle$S_temp set ?a_SSP_Handle
153 ;slaveWR.c: 103: unsigned char S_temp;
154 0EF7 1683 bsf 3,5
155 0EF8 1303 bcf 3,6 ;carry unused
156 0EF9 0814 movf 20,w ;volatile
157 0EFA 393D andlw 61
158 0EFB 1283 bcf 3,5
159 0EFC 00B7 movwf ?a_SSP_Handle
160 ;slaveWR.c: 109: if(Scommand2==0xF0)
161 0EFD 0830 movf _Scommand2,w
162 0EFE 3AF0 xorlw -16
163 0EFF 1D03 btfss 3,2
164 0F00 2FEF goto l25
165 ;slaveWR.c: 110: {
166 0F01 3031 movlw 49
167 0F02 00B7 movwf ?a_SSP_Handle
168 ;slaveWR.c: 112: Scommand2=0x0F;
169 0F03 300F movlw 15
170 0F04 00B0 movwf _Scommand2
171 ;slaveWR.c: 113: }
172 0F05 2FEF goto l25
173 0F06 l26
174 ;slaveWR.c: 117: {case 0x09:
175 ;slaveWR.c: 118: Saddress=SSPBUF;
176 0F06 0813 movf 19,w ;volatile
177 0F07 00AE movwf _Saddress
178 ;slaveWR.c: 120: break;
179 0F08 0008 return
180 0F09 l27
181 ;slaveWR.c: 121: case 0x29:
182 ;slaveWR.c: 122: Scommand=Slave_Receive();
183 0F09 26EE fcall _Slave_Receive
184 0F0A 00AF movwf _Scommand
185 ;slaveWR.c: 123: if ((Scommand & 0x10)==0x10)
186 0F0B 1A2F btfsc _Scommand,4
187 0F0C 2F36 goto l30
188 0F0D 2F56 goto l28
189 ;slaveWR.c: 124: {
190 0F0E l31
191 ;slaveWR.c: 126: { case 0x10: SendData=Read_INT
+ ERNAL_EEPROM(0x00);
192 0F0E 3000 movlw 0
193 0F0F 26E2 fcall _Read_INTERNAL_EEPROM
194 0F10 00B2 movwf _SendData
195 ;slaveWR.c: 127: if (SendData != 0)
196 0F11 08B2 movf _SendData
197 0F12 1903 btfsc 3,2
198 0F13 2F56 goto l28
199 ;slaveWR.c: 128: {
200 0F14 01B8 clrf ?_Write_INTERNAL_EEPROM
201 0F15 3000 movlw 0
202 0F16 26CB fcall _Write_INTERNAL_EEPROM
203 ;slaveWR.c: 130: }
204 0F17 2F56 goto l28
205 0F18 l33
206 ;slaveWR.c: 132: case 0x11: SendData=Read_INTER
+ NAL_EEPROM(0x01); break;
207 0F18 3001 movlw 1
208 0F19 2F33 goto L13
209 0F1A l34
210 ;slaveWR.c: 133: case 0x12: SendData=Read_INTER
+ NAL_EEPROM(0x02); break;
211 0F1A 3002 movlw 2
212 0F1B 2F33 goto L13
213 0F1C l35
214 ;slaveWR.c: 134: case 0x13: SendData=Read_INTER
+ NAL_EEPROM(0x03); break;
215 0F1C 3003 movlw 3
216 0F1D 2F33 goto L13
217 0F1E l36
218 ;slaveWR.c: 135: case 0x14: SendData=Read_INTER
+ NAL_EEPROM(0x04); break;
219 0F1E 3004 movlw 4
220 0F1F 2F33 goto L13
221 0F20 l37
222 ;slaveWR.c: 136: case 0x15: SendData=Read_INTER
+ NAL_EEPROM(0x05); break;
223 0F20 3005 movlw 5
224 0F21 2F33 goto L13
225 0F22 l38
226 ;slaveWR.c: 137: case 0x16: SendData=Read_INTER
+ NAL_EEPROM(0x06); break;
227 0F22 3006 movlw 6
228 0F23 2F33 goto L13
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -