?? 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 + -