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