📄 fasong.lst
字号:
C51 COMPILER V8.02 FASONG 08/09/2008 15:37:27 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE FASONG
OBJECT MODULE PLACED IN Fasong.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Fasong.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <ABSACC.h>
3 #include <intrins.h>
4 #include <stdio.h>
5 #define uint unsigned int
6 #define uchar unsigned char
7 #define BYTE_BIT0 0x01
8 #define BYTE_BIT1 0x02
9 #define BYTE_BIT2 0x04
10 #define BYTE_BIT3 0x08
11 #define BYTE_BIT4 0x10
12 #define BYTE_BIT5 0x20
13 #define BYTE_BIT6 0x40
14 #define BYTE_BIT7 0x80
15 ////////////SPI指令
16 #define WC 0x00
17 #define RC 0x10
18 #define WTP 0x20
19 #define RTP 0x21
20 #define WTA 0x22
21 #define RTA 0x23
22 #define RRP 0x24
23 bdata unsigned char DATA_BUF;
24 #define DATA7 ((DATA_BUF&BYTE_BIT7) != 0)
25 #define DATA0 ((DATA_BUF&BYTE_BIT0) != 0)
26 sbit flag =DATA_BUF^7;
27 sbit flag1 =DATA_BUF^0;
28 #define TxRxBuf_Len 32
29 unsigned char TxRxBuffer2[TxRxBuf_Len];
30 unsigned char TxRxBuffer0[TxRxBuf_Len]=
31 {
32
33 0x43,0x35,0x32,0x30,0x33,//0x06,0x07,0x08,
34 //0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,
35 //0x17,0x18,0x19,0x20,0x21,0x22,0x23,0x24,
36 //0x25,0x26,0x27,0x28,0x29,0x30,0x31,0x32,
37 };
38 //配置口定义//
39 sbit TXEN=P1^0;
40 sbit TRX_CE=P3^2;
41 sbit PWR=P1^1;
42 sbit MISO=P1^6;
43 sbit MOSI=P1^5;
44 sbit SCK=P1^7;
45 sbit CSN=P1^3;
46 /////////////////////////////////////////////////////
47 sbit AM=P1^4;
48 sbit DR=P3^3;
49 sbit CD=P1^2;
50 ///////////////////////////////////////////////////////
51 //sbit DQ=P3^5 ;
52 ///////////////////////////////////////////////////////
53 sbit RS = P3^7;
54 sbit RW = P3^6;
55 sbit E = P3^5;
C51 COMPILER V8.02 FASONG 08/09/2008 15:37:27 PAGE 2
56 //液晶配置口定义//
57
58 //RF寄存器配置//
59 unsigned char idata RFConf[11]=
60 {
61 0x00, //配置命令//
62 0x4c, //CH_NO,配置频段在423MHZ
63 0x0C, //输出功率为10db,不重发,节电为正常模式
64 0x44, //地址宽度设置,为4字节
65 0x20,0x20, //接收发送有效数据长度为32字节
66 0xCC,0xCC,0xCC,0xCC, //接收地址
67 0x58, //CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振
68 };
69 bit lcdbit;
70 code TxAddress[4]={0xcc,0xcc,0xcc,0xcc};
71 //////////////
72
73 ///////////延时/////////////////
74 static void Delay(uchar n)
75 {
76 1 uint i;
77 1 while(n--)
78 1 for(i=0;i<80;i++);
79 1 }
80
81 ///////等待液晶上条指令完成延时////////
82 void LCDdelay(void)
83 { uint i;
84 1 for(i=0;i<=255;i++)
85 1 { }
86 1 }
87 /////////LCD写数据////////////////////////////
88 void LCDwdata(void)
89 {
90 1 RS=1;
91 1 RW=0;
92 1 E=1;
93 1 LCDdelay();
94 1 E=0;
95 1 LCDdelay();
96 1 E=1;
97 1 }
98 /////////LCD写指令//////////////////////
99 void enable(void)
100 {
101 1 RS=0;
102 1 RW=0;
103 1 E=1;
104 1 LCDdelay();
105 1 E=0;
106 1 LCDdelay();
107 1 E=1;
108 1 }
109 ////////LCD初始化/////////////////
110 void initLCD(void)
111 {
112 1 P0=0x01;
113 1 enable();
114 1 P0=0x38;
115 1 enable();
116 1 P0=0x0c;
117 1 enable();
C51 COMPILER V8.02 FASONG 08/09/2008 15:37:27 PAGE 3
118 1 P0=0x06;
119 1 enable();
120 1 P0=0x82; //初始显示位置
121 1 enable();
122 1 }
123 void LCD_write(unsigned char a)
124 {
125 1 P0=a;
126 1 LCDwdata();
127 1 }
128 /////////模仿SPI时序//////////////
129 unsigned char SpiRead(void)
130 {
131 1 unsigned char i;
132 1 for (i=0;i<8;i++)
133 1 {
134 2 DATA_BUF=DATA_BUF<<1;
135 2 SCK=1;
136 2 if (MISO) //读取最高位,保存至最末尾,通过左移位完成整个字节
137 2 {
138 3 DATA_BUF|=BYTE_BIT0;
139 3 }
140 2 else
141 2 {
142 3 DATA_BUF&=~BYTE_BIT0;
143 3 }
144 2 SCK=0;
145 2 }
146 1 return DATA_BUF;
147 1 }
148
149 void SpiWrite(unsigned char send)
150 {
151 1 unsigned char i;
152 1 DATA_BUF=send;
153 1 for (i=0;i<8;i++)
154 1 {
155 2 if (DATA7) //总是发送最高位
156 2 {
157 3 MOSI=1;
158 3 }
159 2 else
160 2 {
161 3 MOSI=0;
162 3 }
163 2 SCK=1;
164 2 DATA_BUF=DATA_BUF<<1;
165 2 SCK=0;
166 2 }
167 1 }
168 ////////////////初始化nRF905///////////////////
169 void nRF905Init(void)
170 {
171 1 CSN=1; // Spi disable
172 1 SCK=0; // Spi clock line init low
173 1 DR=0; // Init DR for input
174 1 AM=0; // Init AM for input
175 1 CD=0; // Init CD for input
176 1 PWR=1; // nRF905 power on
177 1 TRX_CE=0; // Set nRF905 in standby mode
178 1 TXEN=0; // set radio in Rx mode
179 1 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -