📄 cc1100_rx.lst
字号:
C51 COMPILER V7.06 CC1100_RX 04/09/2006 13:44:48 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE CC1100_RX
OBJECT MODULE PLACED IN CC1100_RX.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE CC1100_RX.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <intrins.h>
3 #include <string.h>
4 #include "CC1100.h"
5
6
7 #define INT8U unsigned char
8 #define INT16U unsigned int
9
10 #define WRITE_BURST 0x40 //连续写入
11 #define READ_SINGLE 0x80 //读
12 #define READ_BURST 0xC0 //连续读
13 #define BYTES_IN_RXFIFO 0x7F //接收缓冲区的有效字节数
14 #define CRC_OK 0x80 //CRC校验通过位标志
15
16
17 #define FOSC 11059200
18 #define BAUD 9600
19 #define TIMER1 0XFD //256-(110592/(12*32*96))
20
21 //--------------------------------------------------------------------------------------------------------
---
22
23 //定义CC1100模块接口
24
25 sbit DAT1 = P2^0;
26 sbit DAT2 = P2^1;
27 sbit DAT3 = P2^2;
28 sbit DAT4 = P2^3;
29 sbit DAT5 = P2^4;
30 sbit DAT6 = P2^5;
31 sbit in_open=P3^4;
32 sbit in_close=P3^5;
33 sbit out_open=P3^6;
34 sbit out_close=P3^7;
35
36 #define GDO1 DAT1
37 #define GDO2 DAT2
38 #define CSN DAT3
39 #define MOSI DAT4
40 #define MISO DAT5
41 #define SCK DAT6
42
43 sbit LED1 = P2^6;
44 sbit LED2 = P2^7;
45 //sbit LED1 = P1^6;
46 //sbit LED2 = P1^7;
47 sbit OUT_EN =P3^2;
48 /****************************************************************************************
49 //全局变量定义
50 /****************************************************************************************/
51 INT8U PaTabel[8] = {0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0 ,0xC0};
52 INT8U code in_op_gate[12]={0xEA ,0x11 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00, 0x00 ,0x00 ,0x00 ,0x00};
53 INT8U code in_cl_gate[12]={0xEA ,0x11 ,0x55 ,0x55 ,0x55 ,0x55 ,0x55 ,0x55, 0x55 ,0x55, 0x55 ,0x55};
54 INT8U code out_op_gate[12]={0xEA ,0x12 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00 ,0x00, 0x00 ,0x00 ,0x00 ,0x00};
C51 COMPILER V7.06 CC1100_RX 04/09/2006 13:44:48 PAGE 2
55 INT8U code out_cl_gate[12]={0xEA ,0x12 ,0x55 ,0x55 ,0x55 ,0x55 ,0x55 ,0x55, 0x55 ,0x55, 0x55 ,0x55};
56 //*****************************************************************************************
57 //函数名:delay(unsigned int s)
58 //输入:时间
59 //输出:无
60 //功能描述:普通廷时
61 //*****************************************************************************************
62 delay(unsigned int s)
63 {
64 1 unsigned int i;
65 1 for(i=0; i<s; i++);
66 1 for(i=0; i<s; i++);
67 1 }
68
69
70 void halWait(INT16U timeout) {
71 1 do {
72 2 _nop_();
73 2 _nop_();
74 2 _nop_();
75 2 _nop_();
76 2 _nop_();
77 2 _nop_();
78 2 _nop_();
79 2 _nop_();
80 2 _nop_();
81 2 _nop_();
82 2 _nop_();
83 2 _nop_();
84 2 _nop_();
85 2 _nop_();
86 2 _nop_();
87 2 } while (--timeout);
88 1 }
89
90 /*****************************************************************************************
91 //函数名:UartInit()
92 //输入:无
93 //输出:无
94 //功能描述:串口初始化程序
95 /*****************************************************************************************/
96 void UartInit(void)
97 {
98 1 SCON = 0x50; //串口方式1,允许接收
99 1 TMOD = 0x21; //定时器1工作方式2,定时器0工作方式1
100 1 TH1 = TIMER1;
101 1 TL1 = TIMER1;
102 1 EA = 1; //开全局中断
103 1 TR1 = 1; //启动定时器1
104 1 }
105
106
107 /*****************************************************************************************/
108 void SpiInit(void)
109 {
110 1 CSN=0;
111 1 SCK=0;
112 1 CSN=1;
113 1 }
114
115 /*****************************************************************************************
116 //函数名:CpuInit()
C51 COMPILER V7.06 CC1100_RX 04/09/2006 13:44:48 PAGE 3
117 //输入:无
118 //输出:无
119 //功能描述:SPI初始化程序
120 /*****************************************************************************************/
121 CpuInit(void)
122 {
123 1 UartInit();
124 1 SpiInit();
125 1 in_open=1;
126 1 in_close=1;
127 1 out_open=1;
128 1 out_close=1;
129 1 delay(5000);
130 1 }
131 /*****************************************************************************************
132 //函数名:SendCh(ch)
133 //输入:无
134 //输出:无
135 //功能描述:串口发送一个字符
136 /*****************************************************************************************/
137 void SendCh(INT8U ch)
138 {
139 1 SBUF = ch;
140 1 while(!TI);
141 1 TI = 0;
142 1 }
143 /*****************************************************************************************
144 //函数名:void SendStr(INT8U *arr)
145 //输入:发送的字符串
146 //输出:无
147 //功能描述:发送一个字符串
148 /*****************************************************************************************/
149 void SendStr(INT8U *arr)
150 {
151 1 INT8U i;
152 1
153 1 i = 0;
154 1 OUT_EN=1;
155 1 while(arr[i] != '\0')
156 1 {
157 2 SendCh(arr[i]);
158 2 i++;
159 2 }
160 1 OUT_EN=0;
161 1 }
162
163 //*****************************************************************************************
164 //函数名:SpisendByte(INT8U dat)
165 //输入:发送的数据
166 //输出:无
167 //功能描述:SPI发送一个字节
168 //*****************************************************************************************
169 INT8U SpiTxRxByte(INT8U dat)
170 {
171 1 INT8U i,temp;
172 1 temp = 0;
173 1
174 1 SCK = 0;
175 1 for(i=0; i<8; i++)
176 1 {
177 2 if(dat & 0x80)
178 2 {
C51 COMPILER V7.06 CC1100_RX 04/09/2006 13:44:48 PAGE 4
179 3 MOSI = 1;
180 3 }
181 2 else MOSI = 0;
182 2 dat <<= 1;
183 2
184 2 SCK = 1;
185 2 _nop_();
186 2 _nop_();
187 2
188 2 temp <<= 1;
189 2 if(MISO)temp++;
190 2 SCK = 0;
191 2 _nop_();
192 2 _nop_();
193 2 }
194 1 return temp;
195 1 }
196
197 //*****************************************************************************************
198 //函数名:void RESET_CC1100(void)
199 //输入:无
200 //输出:无
201 //功能描述:复位CC1100
202 //*****************************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -