📄 rf_wakupb.lst
字号:
C51 COMPILER V7.20 RF_WAKUPB 07/08/2008 19:47:09 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE RF_WAKUPB
OBJECT MODULE PLACED IN RF_wakupB.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE RF_wakupB.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg24e1.h>
2 /* LED1-LED4 */
3 sbit LED1 = P0^7;
4 sbit LED2 = P0^6;
5 sbit LED3 = P0^5;
6 sbit LED4 = P0^4;
7 const char Test=0xAA;
8 struct RFConfig
9 {
10 unsigned char n;
11 unsigned char buf[15];
12 };
13
14 typedef struct RFConfig RFConfig;
15
16 #define ADDR_INDEX 8 // Index to address bytes in RFConfig.buf
17 #define ADDR_COUNT 4 // Number of address bytes
18 const RFConfig tconf =
19 {
20 15,
21 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
22 0xaa, 0xbb, 0x12, 0x34, 0x83, 0x6c, 0x04
23 };
24 const RFConfig rconf =
25 {
26 15,
27 0x08, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
28 0xaa, 0xbb, 0x12, 0x34, 0x83, 0x6c, 0x05
29 };
30
31 void Delay100us(volatile unsigned char n)
32 {
33 1 unsigned char i;
34 1 while(n--)
35 1 for(i=0;i<35;i++)
36 1 ;
37 1 }
38
39 void Delayms(volatile unsigned char n)
40 {
41 1 unsigned char j;
42 1 while(n--)
43 1 for(j=0;j<10;j++)
44 1 Delay100us(10);
45 1
46 1 }
47
48 unsigned char SpiReadWrite(unsigned char b)
49 {
50 1 EXIF &= ~0x20; // Clear SPI interrupt
51 1 SPI_DATA = b; // Move byte to send to SPI data register
52 1 while((EXIF & 0x20) == 0x00) // Wait until SPI hs finished transmitting
53 1 ;
54 1 return SPI_DATA;
55 1 }
C51 COMPILER V7.20 RF_WAKUPB 07/08/2008 19:47:09 PAGE 2
56
57 void Init_Receiver(void)
58 {
59 1 unsigned char b;
60 1
61 1 CS = 1;
62 1 Delay100us(0);
63 1 for(b=0;b<rconf.n;b++)
64 1 {
65 2 SpiReadWrite(rconf.buf[b]);
66 2 }
67 1 CS = 0;
68 1
69 1 CE = 1;
70 1 }
71
72 void TransmitPacket(unsigned char b)
73 {
74 1 unsigned char i;
75 1 CE = 1;
76 1 Delay100us(0);
77 1 for(i=0;i<ADDR_COUNT;i++)
78 1 SpiReadWrite(tconf.buf[ADDR_INDEX+i]);
79 1 SpiReadWrite(b);
80 1 CE = 0;
81 1 Delay100us(3); // Wait ~300us
82 1 }
83 void Init_transmit(void)
84 {
85 1 unsigned char b;
86 1
87 1 CS = 1;
88 1 Delay100us(0);
89 1 for(b=0;b<tconf.n;b++)
90 1 {
91 2 SpiReadWrite(tconf.buf[b]);
92 2 }
93 1 CS = 0;
94 1 }
95
96 void main(void)
97 {
98 1 unsigned char Temp;
99 1 P0_ALT=0x06;
100 1 P0_DIR=0x06;
101 1 PWR_UP=1;
102 1 Delay100us(30);
103 1 SPICLK=0;
104 1 SPI_CTRL=0x02;
105 1 Init_Receiver();
106 1
107 1 LED1=0;
108 1 Delayms(20);
109 1 LED1=1;
110 1
111 1 LED2=0;
112 1 Delayms(20);
113 1 LED2=1;
114 1
115 1 LED3=0;
116 1 Delayms(20);
117 1 LED3=1;
C51 COMPILER V7.20 RF_WAKUPB 07/08/2008 19:47:09 PAGE 3
118 1
119 1 LED4=0;
120 1 Delayms(20);
121 1 LED4=1;
122 1
123 1 while(1)
124 1 {
125 2 if(DR1==1)
126 2 {
127 3 Temp=SpiReadWrite(0);
128 3 if(Temp==Test)
129 3 {
130 4 Init_transmit();
131 4 TransmitPacket(Test);
132 4 Init_Receiver();
133 4 LED1=0;
134 4 Delayms(20);
135 4 LED1=1;
136 4 }
137 3 }
138 2
139 2 }
140 1 }
141
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 242 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 33 2
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 + -