📄 fasong.lst
字号:
C51 COMPILER V7.06 FASONG 08/12/2008 12:45:11 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE FASONG
OBJECT MODULE PLACED IN Fasong.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Fasong.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <ABSACC.h>
3 #include <intrins.h>
4 #include <stdio.h>
5 #define uint unsigned int
6 #define uchar unsigned char
7 #define BYTE_BIT0 0x01
8 #define BYTE_BIT1 0x02
9 #define BYTE_BIT2 0x04
10 #define BYTE_BIT3 0x08
11 #define BYTE_BIT4 0x10
12 #define BYTE_BIT5 0x20
13 #define BYTE_BIT6 0x40
14 #define BYTE_BIT7 0x80
15 ////////////SPI指令
16 #define WC 0x00
17 #define RC 0x10
18 #define WTP 0x20
19 #define RTP 0x21
20 #define WTA 0x22
21 #define RTA 0x23
22 #define RRP 0x24
23 bdata unsigned char DATA_BUF;
24 #define DATA7 ((DATA_BUF&BYTE_BIT7) != 0)
25 #define DATA0 ((DATA_BUF&BYTE_BIT0) != 0)
26 sbit flag =DATA_BUF^7;
27 sbit flag1 =DATA_BUF^0;
28 #define TxRxBuf_Len 4
29 unsigned char TxRxBuf[TxRxBuf_Len]=
30 {
31 0x29,0x30,0x31,0x32,
32 };
33 //配置口定义//
34 sbit TXEN=P1^0;
35 sbit TRX_CE=P3^4;
36 sbit PWR=P1^1;
37 sbit MISO=P1^6;
38 sbit MOSI=P1^5;
39 sbit SCK=P1^7;
40 sbit CSN=P1^3;
41 /////////////////////////////////////////////////////
42 sbit AM=P1^4;
43 sbit DR=P3^2;
44 sbit CD=P1^2;
45 ///////////////////////////////////////////////////////
46 sbit led1=P2^2;
47 sbit led0=P2^3;
48 sbit led2=P2^1;
49 sbit led3=P2^0;
50 ///////////////////////////////////////////////////////
51 sbit KEY0=P3^6;
52 sbit KEY1=P3^7;
53
54 uchar seg[10]={0xC0,0xCF,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //0~~9段码
55 //RF寄存器配置//
C51 COMPILER V7.06 FASONG 08/12/2008 12:45:11 PAGE 2
56 unsigned char idata RFConf[11]=
57 {
58 0x00, //配置命令//
59 0x4c, //CH_NO,配置频段在423MHZ
60 0x0c, //输出功率为10db,不重发,节电为正常模式
61 0x44, //地址宽度设置,为4字节
62 0x04,0x04, //接收发送有效数据长度为32字节
63 0xCC,0xCC,0xCC,0xCC, //接收地址
64 0x58, //CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振
65 };
66 bit lcdbit;
67 code TxAddress[4]={0xcc,0xcc,0xcc,0xcc};
68 ///////////延时/////////////////
69 static void Delay(uchar n)
70 {
71 1 uint i;
72 1 while(n--)
73 1 for(i=0;i<80;i++);
74 1 }
75
76 ///////////////
77 /*unsigned char SpiRead(void)
78 {
79 unsigned char i;
80 for (i=0;i<8;i++)
81 {
82 DATA_BUF=DATA_BUF<<1;
83 SCK=1;
84 if (MISO) //读取最高位,保存至最末尾,通过左移位完成整个字节
85 {
86 DATA_BUF|=BYTE_BIT0;
87 }
88 else
89 {
90 DATA_BUF&=~BYTE_BIT0;
91 }
92 SCK=0;
93 }
94 return DATA_BUF;
95 }*/
96
97 void SpiWrite(unsigned char send)
98 {
99 1 unsigned char i;
100 1 DATA_BUF=send;
101 1 for (i=0;i<8;i++)
102 1 {
103 2 if (DATA7) //总是发送最高位
104 2 {
105 3 MOSI=1;
106 3 }
107 2 else
108 2 {
109 3 MOSI=0;
110 3 }
111 2 SCK=1;
112 2 DATA_BUF=DATA_BUF<<1;
113 2 SCK=0;
114 2 }
115 1 }
116 ////////////////初始化nRF905///////////////////
117 void nRF905Init(void)
C51 COMPILER V7.06 FASONG 08/12/2008 12:45:11 PAGE 3
118 {
119 1 CSN=1; // Spi disable
120 1 SCK=0; // Spi clock line init low
121 1 DR=0; // Init DR for input
122 1 AM=0; // Init AM for input
123 1 CD=0; // Init CD for input
124 1 PWR=1; // nRF905 power on
125 1 TRX_CE=0; // Set nRF905 in standby mode
126 1 TXEN=0; // set radio in Rx mode
127 1 }
128 ////////初始化寄存器
129 void Config905(void)
130 {
131 1 uchar i;
132 1 CSN=0; // Spi enable for write a spi command
133 1 //SpiWrite(WC); // Write config command写放配置命令
134 1 for (i=0;i<11;i++) // Write configration words 写放配置字
135 1 {
136 2 SpiWrite(RFConf[i]);
137 2 }
138 1 CSN=1; // Disable Spi
139 1 }
140 /////////////初始化
141 void Inituart(void)
142 {
143 1 TMOD = 0x20; //timer1 working mode 1
144 1 TL1 = 0xfd; //f7=9600 for 16mhz Fosc,and ...
145 1 TH1 = 0xfd; //...fd=19200 for 11.0592mhz Fosc
146 1 SCON = 0xd8; //uart mode 3,ren==1
147 1 PCON = 0x80; //smod=1
148 1 TR1 = 1; //start timer1
149 1 }
150 /////////////发送数据
151 void TxPacket(uchar *TxRxBuf)
152 {
153 1 uchar i;
154 1 //Config905();
155 1 CSN=0;
156 1 SpiWrite(WTP); // Write payload command
157 1 for (i=0;i<4;i++)
158 1 {
159 2 SpiWrite(TxRxBuf[i]); // Write 32 bytes Tx data
160 2 }// Spi enable for write a spi command
161 1 CSN=1;
162 1 Delay(1); // Spi disable
163 1 CSN=0; // Spi enable for write a spi command
164 1 SpiWrite(WTA); // Write address command
165 1 for (i=0;i<4;i++) // Write 4 bytes address
166 1 {
167 2 SpiWrite(TxAddress[i]);
168 2 }
169 1 CSN=1; // Spi disable
170 1 TRX_CE=1; // Set TRX_CE high,start Tx data transmission
171 1 Delay(1); // while (DR!=1);
172 1 TRX_CE=0; // Set TRX_CE low
173 1 }
174 ////////////////////////////////////////////////////
175 void SetTxMode(void)
176 {
177 1 TRX_CE=0;
178 1 TXEN=1;
179 1 Delay(1); // delay for mode change(>=650us)
C51 COMPILER V7.06 FASONG 08/12/2008 12:45:11 PAGE 4
180 1 }
181 unsigned char CheckCD(void) //Pin->检查是否已存在 同频率载波
182 {
183 1 if (CD==1)
184 1 {
185 2 return 1;
186 2 }
187 1 else
188 1 {
189 2 return 0;
190 2 }
191 1 }
192 /*void TX(void)
193 {
194 SetTxMode();// Set nRF905 in Tx mode
195 TxPacket();// Send data by nRF905
196
197
198 CheckCD(); // 返回CD的当前电平
199
200 // SetRF_PA_PWR(unsigned char i); //设置发射功率
201 }*/
202 void main(void)
203 {
204 1 // Inituart();
205 1 uchar i;
206 1 nRF905Init();
207 1 Config905();
208 1 P0= seg[8];
209 1 led0=0;
210 1 led1=0;
211 1 led2=0;
212 1 led3=0;
213 1 while(1)
214 1 {
215 2 if(KEY0==0) //有键按下
216 2 {
217 3 while(!KEY0); //等待按键松开 RED
218 3 TxRxBuf[0]=0x29;
219 3 TxRxBuf[1]=0x30;
220 3 TxRxBuf[2]=0x31;
221 3 TxRxBuf[3]=0x32;
222 3 P0= seg[1];
223 3 led0=1;
224 3 led1=1;
225 3 led2=1;
226 3 led3=0;
227 3 for(i=0;i<2;i++)
228 3 {
229 4 SetTxMode();// Set nRF905 in Tx mode
230 4 TxPacket(TxRxBuf);// Send data by nRF905
231 4 }
232 3 // Delay(250);
233 3 }
234 2 if(KEY1==0) //有键按下
235 2 {
236 3 while(!KEY1); //等待按键松开GREEN
237 3 TxRxBuf[0]=0x30;
238 3 TxRxBuf[1]=0x31;
239 3 TxRxBuf[2]=0x32;
240 3 TxRxBuf[3]=0x29;
241 3 P0= seg[2];
C51 COMPILER V7.06 FASONG 08/12/2008 12:45:11 PAGE 5
242 3 led0=1;
243 3 led1=1;
244 3 led2=0;
245 3 led3=1;
246 3 for(i=0;i<2;i++)
247 3 {
248 4 SetTxMode();// Set nRF905 in Tx mode
249 4 TxPacket(TxRxBuf);// Send data by nRF905
250 4 }
251 3 // Delay(250);
252 3 }
253 2 }
254 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 333 ----
CONSTANT SIZE = 8 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 4
IDATA SIZE = 11 ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -