📄 main.lst
字号:
218 =1 sbit FL = 0xD1;
219 =1 sbit OV = 0xD2;
220 =1 sbit RS0 = 0xD3;
221 =1 sbit RS1 = 0xD4;
222 =1 sbit F0 = 0xD5;
223 =1 sbit AC = 0xD6;
224 =1 sbit CY = 0xD7;
225 =1
226 =1 /*------------------------------------------------
227 =1 Interrupt Vectors:
228 =1 Interrupt Address = (Number * 8) + 3
229 =1 ------------------------------------------------*/
230 =1 #define IE0_VECTOR 0 /* 0x03 External Interrupt 0 */
231 =1 #define TF0_VECTOR 1 /* 0x0B Timer 0 */
232 =1 #define IE1_VECTOR 2 /* 0x13 External Interrupt 1 */
233 =1 #define TF1_VECTOR 3 /* 0x1B Timer 1 */
234 =1 #define SIO_VECTOR 4 /* 0x23 Serial port */
235 =1 #define TF2_VECTOR 5 /* 0x1B Timer 1 */
236 =1 /*------------------------------------------------
237 =1 ------------------------------------------------*/
238 =1
12 //sbit LED = P3^5;
13 sbit M_BIT = P3^2;
14 sbit A_500 = P1^5;
15 sbit B_500 = P1^6;
16 sbit C_500 = P1^7;
17 sbit led_1 =P3^3;
18 sbit led_2 =P3^4;
19 sbit led_3 =P3^5;
20 sbit led_4 =P3^7;
21 sbit SECOND_3 =P1^0; //取消
22 sbit SECOND_8 =P1^1; //抢庄
23 sbit save =P1^2;
24 sbit vvvv =P1^4;
25 void sort(void);
26 // Serial Number of the MFRC500
27
28 //unsigned char tt[2];
29 uchar snr_counter=1;
30 uchar M_STA; //定时读写标志 =1,起始 =2
31 unsigned char RCV_BYTE;
32 unsigned char M_LRC;
33 unsigned char M_BITS;
34 unsigned char M_BYTES;
35 uchar M_IDATA[5];
36 uchar snr[4];
37 uchar snr1[4];
C51 COMPILER V7.06 MAIN 11/07/2008 09:41:02 PAGE 6
38 uchar snr2[4];
39 uchar snr3[4];
40 uchar snr4[4];
41 //uchar snr5[4];
42 uchar rxhead;
43 uchar txhead=0;
44 uchar receive_buf1[1];
45 uchar send_buf[8];
46 uchar mjcounter;
47 //uchar desk_counter=0;
48 uchar mjdata;
49 uchar sameoutvalue;
50 uint mscounter;
51 uint mscounter1;
52 uint secondcounter;
53 uint secondcounter1;
54 //unsigned char blockdata[16];
55 uchar size;
56 uchar yyj;
57
58 unsigned int yyjyj;
59 unsigned char outnum;
60
61 void init(void);
62 //void led_flash(void);
63 unsigned char mifare_init(void);
64 unsigned char read_3card(void);
65 unsigned char CMP_STRING(unsigned char *pt1,
66 unsigned char *pt2,unsigned char len);
67 //void rec_comm(void);
68 unsigned char read_card3(void);
69 void cpu_sleep(void);
70 unsigned char output(uchar hhh);
71 uchar press_key(void);
72 void selectout(unsigned char tt);
73 void swapdata(unsigned int *x,unsigned int *y);
74 void press_data(uchar tty);
75 unsigned char blockdata[16];
76 void cmpdata(void);
77 void sort_mjdata(void);
78 //void rec_comm(void);
79 void sameout(unsigned char tt);
80 void clearout(void);
81 void flash_led(void);
82 void m_readcard(void);
83 unsigned char readcard(void);
84 void write_eeprom(unsigned int addrdata,unsigned char data2);
85 void write_pagedata(unsigned char pagenumber);
86 unsigned char read_eeprom(unsigned int addrdata);
87 void erase_eeprom(unsigned char sectors);
88 void read_cardno(void);
89 void select_500(unsigned char ss1);
90 void led_light(unsigned char select);
91 void read_first(void);
92 void time2init(void);
93 unsigned char readcard1(void);
94 void on_led(unsigned char yyj);
95 void off_led(unsigned char yyj);
96 unsigned char readcance(void);
97 unsigned char bdata flag;
98 // sbit out_flag=flag^0;
99 // sbit up_flag=flag^1; //上活门标志
C51 COMPILER V7.06 MAIN 11/07/2008 09:41:02 PAGE 7
100 // sbit down_flag=flag^2; //下活门标志
101 // sbit life_flag=flag^3; //生死门标志
102 // sbit second_flag=flag^4; //输出二次标志
103 // sbit reset_flag=flag^5;
104 sbit s8_flag=flag^6;
105 sbit error_flag=flag^7;
106
107 sbit ACC0 = ACC^0;
108 sbit ACC7 = ACC^7;
109
110 unsigned char bdata flag1;
111 sbit M_FLAG=flag1^0;
112 sbit HALF_FLAG=flag1^1;
113 sbit SHORT_FLAG=flag1^2;
114 sbit RCV_BIT=flag1^3;
115 sbit M_DATA_FLAG=flag1^4;
116 sbit receive_flag=flag1^5;
117 sbit R_MRC=flag1^6;
118
119
120 unsigned char bdata flag2;
121 sbit cance_flag=flag2^0;
122 sbit output_flag=flag2^1;
123 sbit st_1=flag2^2;
124 sbit st_cance=flag2^3;
125 sbit st_a4=flag2^4;
126 sbit st_e=flag2^5;
127 sbit st_e1=flag2^6;
128
129
130 unsigned char bdata flag3;
131 sbit st_e2=flag3^0;
132 sbit st_e3=flag3^1;
133 sbit st_e4=flag3^2;
134 sbit sec1=flag3^3;
135 sbit sec2=flag3^4;
136 sbit sec3=flag3^5;
137 sbit sec4=flag3^6;
138
139 unsigned char bdata flag4;
140 sbit first_flag=flag4^0;
141 sbit second_flag=flag4^1;
142 sbit readsecond_flag=flag4^2;
143 sbit third_flag=flag4^3;
144 sbit readthird_flag=flag4^4;
145 sbit sansecond_flag=flag4^5;
146 sbit readcance_flag=flag4^6;
147 /****************************************************************************
148 ****************************************************************************/
149 void main (void)
150 {
151 1 unsigned char counter,counter2,ttt;
152 1 unsigned char mfout=2;//readbuf[16];
153 1 unsigned char tt1[2];
154 1 unsigned char status1;
155 1 unsigned char cardserialno[4];
156 1 unsigned char *sak1;
157 1 unsigned char i,ii,iii,tt,ss;
158 1 unsigned int j;
159 1 unsigned char c1=0,c2=0,c3=0,c4;
160 1
161 1 init();
C51 COMPILER V7.06 MAIN 11/07/2008 09:41:02 PAGE 8
162 1
163 1 mjcounter=1;
164 1
165 1 yyjyj=0;
166 1 read_cardno();
167 1 for(;;)
168 1 {
169 2 // secondcounter1++;
170 2 if(save==0)
171 2 {
172 3 read_first();
173 3 }
174 2 else
175 2 {
176 3
177 3 }
178 2 }
179 1 }
180 /****************************************************************************
181 ****************************************************************************/
182 unsigned char readcance(void)
183 {
184 1 unsigned char i,ii;
185 1 for(i=4;i<8;i++)
186 1 {
187 2 select_500(i);
188 2 ii=readcard();
189 2 if(ii==0)
190 2 {
191 3 led_light(6);
192 3 return 0;
193 3 }
194 2 // led_light(6);
195 2 }
196 1 return 1;
197 1 }
198 void on_led(unsigned char yyj)
199 {
200 1 switch(yyj)
201 1 {
202 2 case 0:
203 2 led_1=0;
204 2 break;
205 2 case 1:
206 2 led_2=0;
207 2 break;
208 2 case 2:
209 2 led_3=0;
210 2 break;
211 2 case 3:
212 2 led_4=0;
213 2 break;
214 2 default:
215 2 break;
216 2 }
217 1 }
218 void off_led(unsigned char yyj)
219 {
220 1 switch(yyj)
221 1 {
222 2 case 0:
223 2 led_1=1;
C51 COMPILER V7.06 MAIN 11/07/2008 09:41:02 PAGE 9
224 2 break;
225 2 case 1:
226 2 led_2=1;
227 2 break;
228 2 case 2:
229 2 led_3=1;
230 2 break;
231 2 case 3:
232 2 led_4=1;
233 2 break;
234 2 case 10:
235 2 led_1=1;
236 2 led_2=1;
237 2 led_3=1;
238 2 led_4=1;
239 2 break;
240 2 default:
241 2 break;
242 2 }
243 1 }
244 void init (void)
245 {
246 1
247 1 IP=0x00;
248 1 TCON=1;
249 1 TMOD=0x12; //定时器0为8位自动重装;定时器1为16位计数器工作方式
250 1 time2init();
251 1 //外部中断0的触发方式为边沿方式
252 1 SCON=0x50;
253 1 PCON|=0x80; //dual 4800X2=9600
254 1 // TH1=TL1=0xfa; //TH1=TL1=256-(11059200/4800/32/12+0.5)
255 1 TH1=0x00;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -