📄 main.lst
字号:
133 Description: 参数配置
134 1,接收配置读卡器发送过来的卡号,收发功率,收发速率
135 2,返回上述参数给配置读卡器
136 Calls: void Init(void)
137 void Init_Receiver(void)
138 void Receiver(unsigned char *rxbuf)
139 void Transmitter(unsigned char *txbuf)
140 Called By: void main(void)
141 Input:
142 Output:
143 Return:
144 Others:
145 *************************************************/
146 unsigned char Config(void)
147 {
148 1 unsigned char s,Rnum,set_card_sign;
149 1 Init();
150 1 Init_Receiver(); //接收初始化
151 1 set_card_sign=0;
152 1 Rnum=0;
153 1 do{
154 2 Rnum++;
155 2 #ifdef DEBUG
LED3=0;
#endif
158 2 //Init_Receiver(); //接收初始化
159 2 for(s=0;s<RNUM;s++)
160 2 {
161 3 RxBuf[s]=0;
162 3 }
163 2 Receiver(RxBuf);
164 2 //判断是否是设置卡号命令
165 2 if((RxBuf[0]==SetCardNo)&&((RxBuf[1]^RxBuf[2]^RxBuf[3]^RxBuf[4]^RxBuf[5]^RxBuf[6])==RxBuf[7]))
166 2 {
167 3 Rnum=255;
168 3 set_card_sign=1;
169 3 /*
170 3 #ifdef DEBUG
171 3 LED3=1;
172 3 #endif
173 3 */
174 3 }
175 2 Delayms( Setdelaytime); //延时1ms
176 2 /*
177 2 #ifdef DEBUG
C51 COMPILER V7.02a MAIN 01/23/2006 10:15:24 PAGE 4
178 2 LED4=0;
179 2 #endif
180 2 */
181 2 }while(Rnum<250); //连续接受5秒数据
182 1 /*
183 1 #ifdef DEBUG
184 1 LED4=1;
185 1 #endif
186 1 */
187 1 //----------------------------------------------
188 1 //将接收到的卡号和参数返回给设置读卡器
189 1 //----------------------------------------------
190 1 if(set_card_sign)
191 1 { TxBuf[0]=TransmitCardNo;
192 2 TxBuf[1]=RxBuf[1];
193 2 TxBuf[2]=RxBuf[2];
194 2 TxBuf[3]=RxBuf[3];
195 2 TxBuf[4]=RxBuf[4];
196 2 TxBuf[5]=RxBuf[7];
197 2 Delayms(5);
198 2 Rnum=0;
199 2 do{
200 3 Rnum++;
201 3 Transmitter(&TxBuf[0]);//发送接收到的数据
202 3 /*
203 3 #ifdef DEBUG
204 3 LED3=0;
205 3 Delayms(5);
206 3 LED3=1;
207 3 #endif
208 3 */
209 3 Delay100us(RCdelaytime);
210 3 }while(Rnum<5); //连续发送5次数据
211 2 }
212 1 return set_card_sign;
213 1 }
214
215 /*************************************************
216 Function: Init
217 Description: CPU的初始化
218 1,I/O口的方向初始化
219 2,I/O口的输出初始化
220 3,SPI初始化
221 3,串口初始化
222 4,发送接收缓冲区初始化
223 Calls:
224 Called By: void main(void);
225 Input:
226 Output:
227 Return:
228 Others:
229 *************************************************/
230 void Init(void)
231 {
232 1
233 1 // Port ini
234 1
235 1 P0_ALT = 0x06; // Select alternate functions on pins P0.1 and P0.2, TXD RXD
236 1 P0_DIR = 0x09; // P0.0, P0.3 is input(S1, S2), the rest output
237 1 P0 = 0xF0; // P0.7-P0.4 = 1 for OFF LED1-LED4
238 1 P1_DIR = 0x03; // P0.0, P0.3 is input(S3, S4),
239 1
C51 COMPILER V7.02a MAIN 01/23/2006 10:15:24 PAGE 5
240 1 LED1=1;
241 1 LED2=1;
242 1 LED3=1;
243 1 LED4=1;
244 1
245 1 PWR_UP = 1; // Turn on Radio
246 1 Delay100us(30); // Wait > 3ms
247 1 SPICLK = 0; // Max SPI clock (XTAL/8)
248 1 SPI_CTRL = 0x02; // Connect internal SPI controller to Radio
249 1
250 1 // serial communication ini
251 1 //*
252 1 TH1 = 230; // 9600@16MHz (when T1M=1 and SMOD=1)
253 1 CKCON |= 0x10; // T1M=1 (/4 timer clock)
254 1 PCON = 0x80; // SMOD=1 (double baud rate)
255 1 SCON = 0x52; // Serial mode1, enable receiver
256 1 TMOD = 0x20; // Timer1 8bit auto reload
257 1 TCON = 0x40; // Start timer1
258 1 }
259
260
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 450 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 8
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -