📄 main.lst
字号:
C51 COMPILER V7.08 MAIN 04/13/2006 17:21:21 PAGE 1
C51 COMPILER V7.08, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <string.h>
2 #include <reg52.h>
3 #include <intrins.h>
4
5 #define INT8U unsigned char
6 #define INT16U unsigned int
7
8 #define FOSC 11059200
9 #define BAUD 9600
10 #define TIMER1 0XFD //256-(110592/(12*32*96))
11 #define TIMER0H (65535-3*FOSC/12/1000)/256
12 #define TIMER0L (65535-3*FOSC/12/1000)%256 //定时3MSVR
13 //--------------------------------------------------------------------------------------------------------
---
14 //内部寄存器定义
15 //--------------------------------------------------------------------------------------------------------
---
16 sfr P4 = 0xc0;
17 sfr ADC_CONTR = 0xC5;
18 sfr AUXR = 0x8E;
19 sfr ADC_DATA = 0xC6;
20 sfr P1_ADC_EN = 0x97;
21 //定义I/O口
22 sbit POW_UP = P3^5;
23 sbit CE = P3^4;
24 sbit DR2 = P3^3;
25 sbit SCK2 = P3^2;
26 sbit MOSI = P4^3;
27 sbit MISO = P1^7;
28 sbit SCK = P1^6;
29 sbit DOUT2 = P1^5;
30 sbit CS = P1^4;
31 sbit DR1 = P4^2;
32 sbit LED1 = P4^1;
33 sbit LED2 = P4^0;
34
35
36
37
38
39 /********************* I/O define end*****************************************************/
40
41
42 #define FRESELE 0x28 //频道选择
43 #define DATANUM 4 //有效数据位数
44
45 #define time0h (65535-3000)/256
46 #define time0l (65535-3000)%256 //定时3MS
47
48
49
50
51 code INT8U CofigBuf[15]=
52 {
53 0x00, //接收频道二有效数据长度
C51 COMPILER V7.08 MAIN 04/13/2006 17:21:21 PAGE 2
54
55 40, //接收频道一有效数据长度
56
57 0x00,0x00,0x00,0x00,0x00, //接收频道二地址
58
59 0x00,0xcd,0xef,0x12,0xaa, //接收频道一地址
60
61 0x83, //32位地址,16位CRC,使能CRC
62 //bit7~2:ADDR_W,最大40位
63
64 //bit1:CRC_L
65 //Logic 0: 8 bit CRC
66 //Logic 1: 16 bit CRC
67
68
69 //BIT0:CRC_EN
70 //Logic 0: On-chip CRC generation/checking disabled
71 //Logic 1: On-chip CRC generation/checking enabled
72
73
74 0x4f, //ShockBurst模式,250 kbps,16M晶振,0dBm最大功率
75
76 //Bit 15:RX2_EN
77 //Logic 0: One channel receive
78 //Logic 1: Two channels receive
79
80 //Bit 14:
81 //Communication Mode:
82 //Logic 0: nRF2401 operates in direct mode.
83 //Logic 1: nRF2401 operates in ShockBurst. mode
84
85 //Bit 13:
86 //RF Data Rate:
87 //Logic 0: 250 kbps
88 //Logic 1: 1 Mbps
89
90 //Bit 12-10:Selects the nRF2401 crystal frequency to be used:
91 // D12 D11 D10 Crystal Frequency [MHz]
92 // 0 0 0 4
93 // 0 0 1 8
94 // 0 1 0 12
95 // 0 1 1 16
96 // 1 0 0 20
97
98 //Bit 9-8:RF_PWR: Sets nRF2401 RF output power in transmit mode:
99 // D9 D8 P [dBm]
100 // 0 0 -20
101 // 0 1 -10
102 // 1 0 -5
103 // 1 1 0
104
105
106
107 0x50 //2400+4*1=2404MHZ=2.404G,发送模式
108
109 //Bit 7 – 1:RF_CH#: Sets the frequency channel the nRF2401 operates on.
110 //Channelrf = 2400MHZ + RF_CH# * 1.0MHZ
111
112 //Bit 0:Set active mode:
113 //Logic 0: transmit mode
114 //Logic 1: receive mode
115 };
C51 COMPILER V7.08 MAIN 04/13/2006 17:21:21 PAGE 3
116
117
118 INT8U AddrCofig[4]={0xcd, 0xef, 0x12, 0xaa}; //地址
119 INT8U TxBuf[8]={0x40, 0x22, 0x66, 0x88, 0x40, 0x00, 0x00, 0x00}; //发送绶冲区
120 INT8U RxBuf[8]={0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; //接收绶冲区
121 INT16U timer[2]; //超时计数器
122
123
124
125 /*****************************************************************************************
126 //函数名:void Delay100us(INT8U s)
127 //输入:时间
128 //输出:无
129 //功能描述:廷时
130 /*****************************************************************************************/
131 void Delay100us(INT8U n)
132 {
133 1 INT8U i;
134 1 while(n--)
135 1 {
136 2 for(i=0; i<35; i++);
137 2 }
138 1 }
139 /*****************************************************************************************
140 //函数名:delay(unsigned int s)
141 //输入:时间
142 //输出:无
143 //功能描述:普通廷时
144 /*****************************************************************************************/
145 delay(unsigned int s)
146 {
147 1 unsigned int i;
148 1 for(i=0; i<s; i++);
149 1 for(i=0; i<s; i++);
150 1 }
151 /*****************************************************************************************
152 //函数名
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -