📄 sent.lst
字号:
C51 COMPILER V7.05 SENT 06/30/2004 15:26:28 PAGE 1
C51 COMPILER V7.05, COMPILATION OF MODULE SENT
OBJECT MODULE PLACED IN sent.OBJ
COMPILER INVOKED BY: D:\CYGNAL\IDEFILES\C51\BIN\C51.EXE sent.c DB OE
stmt level source
1 //-----------------------------------------------------------------------------
2
3 #include <c8051f020.h> // SFR声明
4 #include <stdio.h>
5 #include <string.h>
6
7 //-----------------------------------------------------------------------------
8 // sfr定义及全局常量
9 //-----------------------------------------------------------------------------
10 #define SYSCLK 22118400 // 系统时钟为22118400HZ
11 #define BAUDRATE 9600 // UART0 波特率为19200HZ
12 //#define TX_LENGTH 16 // 接收缓冲器长度为16
13
14
15 sfr16 DP = 0x82; // 数据指针
16 sfr16 TMR3RL = 0x92; // Timer3 reload value
17 sfr16 TMR3 = 0x94; // Timer3 counter
18 sfr16 RCAP2 = 0xca; // Timer2 capture/reload
19 sfr16 T2 = 0xcc; // Timer2
20 sfr16 RCAP4 = 0xe4; // Timer4 capture/reload
21 sfr16 T4 = 0xf4; // Timer4
22 sbit PWR= P0^3; //P0.2 =1 为工作模式;P0.2=0为待机模式
23 sbit CS = P0^2; //P0.3=0为频道1,载波频率为433MHZ
24 //P0.3=1为频道2,载波频率为315HZ
25 sbit TXEN = P0^4; //P0.4=0为接收模式,P0.4=1为发射模式
26 sbit LED = P1^6 ; //LED显示发射状态
27 int i=0;
28 int m=0;
29 int j=0;
30 int k=0;
31 int n=0;
32 int p=0;
33 xdata char sendhead[]={0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
34 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,
35 0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa};
36 xdata char senddata[100]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
37 0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0x10,0x11,0x12,0x13,
38 0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,
39 0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,
40 0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f,0x30,0x31,
41
42 0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,
43 0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x43,0x44,0x45,
44 0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,
45 0x50,0x51,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,
46 0x59,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x61,0x62}; //---------------------------------------------
---------------------------------
47 // 全局变量
48 //-----------------------------------------------------------------------------
49 //unsigned char xdata sentdata[108]={
50 //存储空间定义成idata使用内部RAM
51 //unsigned char code *read; //读FLASH
52 //char idata TX_Buf[TX_LENGTH]; //发送缓冲区长度
53
54 //-----------------------------------------------------------------------------
C51 COMPILER V7.05 SENT 06/30/2004 15:26:28 PAGE 2
55 // 函数声明
56 //-----------------------------------------------------------------------------
57
58 void SYSCLK_Init (void); //系统时钟初始化函数声明
59 void PORT_Init (void); //端口初始化函数声明
60 void UART0_Init (void); //UART初始化函数声明
61 void UART0_ISR (void); //UART中断服务程序声明
62 //void SENT_Head (void);
63 void SENT_Datapacket (void);
64
65 //---------------------------------------------------------------------------
66 //发送函数
67 //---------------------------------------------------------------------------
68
69 //----------------------------------------------------------------------------
70 //主函数
71 //----------------------------------------------------------------------------
72 void main(void)
73 {
74 1 WDTCN = 0xde; //禁止看门狗定时器
75 1 WDTCN = 0xad;
76 1
77 1
78 1 SYSCLK_Init ();
79 1 PORT_Init ();
80 1 UART0_Init ();
81 1 PWR = 1; //置nRF401为工作模式
82 1 CS = 0;
83 1 for(k=0;k<1000;k++)
84 1 {for(i=0;i<100;i++);} //选择载波频率为433MHZ
85 1 TXEN = 1;
86 1 i=0;
87 1 k=0;
88 1 for(k=0;k<1000;k++)
89 1 {for(i=0;i<100;i++);}
90 1 EA = 1 ;
91 1 ES0=1;
92 1 LED=1;
93 1 //绿灯亮表示开始发送数据 //允许全局中断
94 1
95 1 RI0=0 ;
96 1 TI0=0;
97 1 //SBUF0=0xaa;
98 1 // TI0=1 ;
99 1 while (1) //TI0=1;
100 1
101 1 {
102 2 for(p=0;p<30;p++)
103 2 {
104 3 SBUF0=sendhead[p];
105 3 while(TI0==0);
106 3 TI0=0;
107 3 }
108 2 for(m=0;m<100;m++)
109 2 {
110 3 SBUF0=senddata[m];
111 3 while(TI0==0);
112 3
113 3 TI0=0;
114 3 //for(n=0;n<50000;n++);
115 3 }
116 2 //开始发送
C51 COMPILER V7.05 SENT 06/30/2004 15:26:28 PAGE 3
117 2 // if(m==20)
118 2 // m=0; //死循环,等待中断防止程序逻辑执行到此跳出,
119 2 } //接收不到中断,中断到来时根据中断向量表直
120 1 //接跳到中断服务程序来执行,执行完再返回到
121 1 //-----------------------------------------------------------------------------
122 1 //时钟初始化
123 1 //-----------------------------------------------------------------------------
124 1 //while(1);这条语句上来继续等待下一个中断。
125 1 }
126 void SYSCLK_Init (void)
127 {
128 1 int i; // 延时计数
129 1
130 1 OSCXCN = 0x67; // 使用外部时钟22.1184MHz
131 1
132 1 for (i=0; i < 256; i++) ; // 等侍晶振起振
133 1
134 1 while (!(OSCXCN & 0x80)) ; // 等待晶振稳定
135 1 OSCICN = 0x88; // 选择外部晶振作为系统时钟
136 1
137 1 //CKCON = 0x20; //定时器2使用系统时钟
138 1 }
139 //-----------------------------------------------------------------------------
140 // 交叉开关配置
141 //-----------------------------------------------------------------------------
142 //
143
144 void PORT_Init(void)
145 {
146 1 XBR0 = 0x04; //使能UART0
147 1 XBR1 = 0x00;
148 1 XBR2 = 0x40;
149 1 P0MDOUT |= 0xFD; //RX,即P0.1为漏极开路方式,其它为推挽方式
150 1 P1MDOUT |= 0x40; //p1.6为推挽方式
151 1
152 1
153 1 }
154 //--------------------------------------------------------------------------------------
155 //UART初始化
156 //--------------------------------------------------------------------------------------
157 //--------------------------------------------------------------------------------------
158 //UART初始化
159 //--------------------------------------------------------------------------------------
160 void UART0_Init (void)
161 {
162 1
163 1 SCON0=0x50;
164 1 TMOD=0x20;
165 1 TH1=-(SYSCLK/BAUDRATE/16);
166 1 TR1=1;
167 1 CKCON |=0x10;
168 1 PCON |=0x80;
169 1 //TI0=1;
170 1
171 1 }
172
173
174
175 //------------------------------------------------------------------------------------
176 //UART中断服务程序,中断向量4
177 //------------------------------------------------------------------------------------
178 //void UART0_ISR (void) interrupt 4 using 3
C51 COMPILER V7.05 SENT 06/30/2004 15:26:28 PAGE 4
179 //{
180 // if(j==20)
181 // {
182 //for(m=0;m<1000;m++);
183 // j=0;
184 // }
185
186
187 // SBUF0=senddata[m];
188 // m++;
189
190
191 //}
192
193
194
195
196
197
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 266 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 127 ----
PDATA SIZE = ---- ----
DATA SIZE = 12 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -