📄 11t6_sc.lst
字号:
C51 COMPILER V7.06 11T6_SC 09/12/2007 12:40:46 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 11T6_SC
OBJECT MODULE PLACED IN 11T6_SC.OBJ
COMPILER INVOKED BY: g:\Keil\C51\BIN\C51.EXE 11T6_SC.C LARGE BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //;===============================================================
2 //;程序名: 11T6_SC.C
3 //;Hex程序名:11T6_SC.hex
4 //;程序功能:读写Mifare One卡,11T6模块的c演示程序[使用模拟串口]
5 //;说明:此例程为一个块的读写操作,若对多个块进行读写操作时,只
6 //; 需操作“读指定块”、“写指定块”这两个子程序即可。
7 //;注意:====跳线应在Soft位====
8 //;晶振: 11.0592M
9 //;波特率:9600bps
10 //;日期: 07.07.04
11 //;===============================================================
12
13 #include <reg51.h>
14 #include <intrins.h>
15 #define uchar unsigned char
16 sfr resetpc=0xe7;
17 sbit UART_RX_BIT=P3^2;
18 sbit UART_TX_BIT=P3^3;
19 sbit GREEN_LINE =P3^7;
20 sbit RED_LINE =P3^5;
21 sbit step4 =P1^4;
22 sbit keyitongxing =P1^0;
23 sbit chongxinshuaka =P1^1;
24 sbit beep =P1^2;
25
26 #define bofang 0 //
27 #define tingzhi 1 //
28
29 //时钟硬件设置
30 #define ad P2 //地址数据总线
31
32 sbit cs = P0^0; //片选
33 sbit as = P0^1; //地址选通输入
34 sbit rw = P0^2; //读允许输入脚
35 sbit ds = P0^3; //写允许输入
36
37 #define qidongzhuangtaidizhi 14 //启动状态存储字节地址
38 //#define kaishididizhi 15 //记录开始指针低位
39 #define wangdiangaodizhi 16 //网点编号高字节
40 #define wangdiandidizhi 17 //网点编号低字节
41
42
43 uchar time;
44 uchar tmpResult;
45 uchar CardStatus;
46 //const uchar SearMode=0x01; //全局变量
47 const uchar SearMode=0x00; //全局变量
48 bit benci;
49 //卡片连续读取数据不需要拿开
50 void led_cyc_on(void);
51 //定时器中断服务程序
52 void sen(unsigned char dd)
53 {
54 1 TI=0;
55 1 SBUF=dd;
C51 COMPILER V7.06 11T6_SC 09/12/2007 12:40:46 PAGE 2
56 1 while(!TI)
57 1 {};
58 1 TI=0;
59 1 }
60 void int_t0(void) interrupt 1
61 {
62 1 time++;
63 1 // sen(0x88);
64 1 if (time>4)
65 1 {
66 2 resetpc=0x20;
67 2 sen(0x88);
68 2 };
69 1 }
70
71 void delay10ms(uchar j)
72 { unsigned int i;
73 1 uchar k;
74 1 for(k=0;k<j;k++)
75 1 for(i=0;i<3950;i++);
76 1 }
77
78 //***************************************************8
79
80
81 void writertc(uchar dd1,uchar dd2)
82 {
83 1 //写的时序
84 1 //、都给0
85 1 //1、ds=1
86 1 //2、rw=1
87 1 //3、as=1
88 1 //4、cs=0
89 1 //5、ad给地址值
90 1 //6、as=0
91 1 //7、rw=0;
92 1 //8、ad给数据
93 1 //9、rw=1
94 1 // cs=1
95 1 //8、as=1
96 1
97 1
98 1 //初值
99 1
100 1 //
101 1 ds=1;
102 1 rw=1;
103 1 as=1;
104 1 cs=0;
105 1 ad=dd1;
106 1
107 1 //
108 1 as=0;
109 1 rw=0;
110 1 ad=dd2;
111 1 rw=1;
112 1 cs=1;
113 1 as=1;
114 1
115 1
116 1 }
117 uchar readrtc(uchar dd1)
C51 COMPILER V7.06 11T6_SC 09/12/2007 12:40:46 PAGE 3
118 {
119 1 uchar d,d1;
120 1 //读的时序
121 1 //、都给0
122 1 //1、ds=1
123 1 //2、rw=1
124 1 //3、as=1
125 1 //4、cs=0
126 1 //5、ad给地址值
127 1 //6、as=0
128 1 //7、ds=0;
129 1 //7、ds=0;
130 1 //8、ad输出数据
131 1 //7、ds=1;
132 1
133 1 //9、rw=1
134 1 //8、as=1
135 1 // 返回值
136 1 //初值
137 1 rr:
138 1
139 1 //
140 1 ds=1;
141 1 rw=1;
142 1 as=1;
143 1 cs=0;
144 1 ad=0x0a;
145 1
146 1 //
147 1 as=0;
148 1 ds=0;
149 1 ad=0xff;
150 1 d1=ad;
151 1 ds=1;
152 1 rw=1;
153 1 cs=1;
154 1 as=1;
155 1
156 1 if ((d1 & 0x80)==0 )
157 1 {
158 2 //
159 2 ds=1;
160 2 rw=1;
161 2 as=1;
162 2 cs=0;
163 2 ad=dd1;
164 2 //
165 2 as=0;
166 2 ds=0;
167 2 ad=0xff;
168 2 d=ad;
169 2 ds=1;
170 2 rw=1;
171 2 cs=1;
172 2 as=1;
173 2 return (d);
174 2 };
175 1 // sen(0xee);
176 1 goto rr;
177 1
178 1 }
179
C51 COMPILER V7.06 11T6_SC 09/12/2007 12:40:46 PAGE 4
180
181 //******************************************************88
182
183
184
185 /*--------------------------------------------------------------------
186 FUNCTION: Init_UART(),硬串口初始化
187 INPUT:
188 OUTPUT:
189 --------------------------------------------------------------------*/
190 void Init_UART(void) //软串口初始化
191 { UART_RX_BIT=1;
192 1 UART_TX_BIT=1;
193 1 }
194 void delay104us(void)
195 { uchar i;
196 1 for(i=0;i<19;i++); //8 和 11
197 1 //for(i=0;i<26;i++);
198 1 }
199
200
201
202 /*--------------------------------------------------------------------
203 FUNCTION: UART_PutByte(),发送一字节数据
204 INPUT: uchar UARTDATA
205 OUTPUT:
206 --------------------------------------------------------------------*/
207 void UART_PutByte(uchar UARTDATA)
208 { uchar i;
209 1 i=0;
210 1 UART_TX_BIT=0;
211 1 delay104us();
212 1 do
213 1 { if(UARTDATA&0x01)
214 2 UART_TX_BIT=1;
215 2 else
216 2 UART_TX_BIT=0;
217 2 delay104us();
218 2 i++;
219 2 UARTDATA>>=1;
220 2 }while(i<8);
221 1 UART_TX_BIT=1;
222 1 delay104us();
223 1 }
224
225
226 /*--------------------------------------------------------------------
227 FUNCTION: UART_GetByte(),接收1BYTE数据
228 INPUT: 无
229 OUTPUT: UARTDATA,1BYTE数据
230 --------------------------------------------------------------------*/
231 uchar UART_GetByte(void)
232 { uchar UARTDATA=0,i=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -