📄 main.lst
字号:
C51 COMPILER V9.00 MAIN 11/13/2010 14:57:23 PAGE 1
C51 COMPILER V9.00, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\KEIL C V4\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
*** WARNING C500 IN LINE 1 OF MAIN.C: LICENSE ERROR (R208: RENEW LICENSE ID CODE (LIC))
1
2 #include "reg24le1.h"
3 /*****************************************
4 /nRF24LE1和ZLG7289键盘管理和数码显示芯片
5 ******************************************/
6 #define DIO P07
7 #define SCLK P02
8 #define INT P06 /*一定接上拉电阻*/
9 #define CS P00
10 #define Disableint do{EA=0;}while(0)
11 #define Enableint do{EA=1;}while(0)
12 #define BAUD_2400 2400
13 #define BAUD_4800 4800
14 #define BAUD_9600 9600
15 #define BAUD_14400 14400
16 #define BAUD_19200 19200
17 #define BAUD_38400 38400
18 typedef unsigned int uint;
19 typedef unsigned char uchar;
20 /*****************************************
21 /延时函数
22 *****************************************/
23 void Delay(uint x)
24 {
25 1 uchar l;
26 1 for(;x>0;x--)
27 1 for(l=12;l>0;l--)
28 1 {}
29 1 }
30 /*****************************************
31 /nRF24LE1时钟设置
32 ******************************************/
33 void SetMcuClk()
34 {
35 1 CLKCTRL = 0x28; /*使用 XCOSC16M */
36 1 CLKLFCTRL = 0x01;
37 1 }
38 /*****************************************
39 /nRF24LE1的串口初始化
40 ******************************************/
41 void Uartinit(uint baud)
42 {
43 1 P0DIR &= 0xF7; /* 设置P0.3(TxD)为输出 */
44 1 P0DIR |= 0x10; /* 设置P0.4(RxD)为输入 */
45 1 S0CON = 0x50; /* 串口模式选择允许接收*/
46 1 PCON |= 0x80; /* 波特率倍增 */
47 1 WDCON |= 0x80; /* 选用内部波特率发生器*/
48 1 switch(baud)
49 1 {
50 2 case 38400:
51 2 {
52 3 S0RELL = 0xF3;
53 3 S0RELH = 0x03;
54 3 }
C51 COMPILER V9.00 MAIN 11/13/2010 14:57:23 PAGE 2
55 2 break;
56 2 case 19200:
57 2 {
58 3 S0RELL =0xE6;
59 3 S0RELH =0x03;
60 3 }
61 2 break;
62 2 case 14400:
63 2 {
64 3 S0RELL =0xDE;
65 3 S0RELH =0x03;
66 3 }
67 2 break;
68 2 case 9600 :
69 2 {
70 3 S0RELL =0xCC;
71 3 S0RELH =0x03;
72 3 }
73 2 break;
74 2 case 4800 :
75 2 {
76 3 S0RELL =0x98;
77 3 S0RELH =0x03;
78 3 }
79 2 break;
80 2 case 2400 :
81 2 {
82 3 S0RELL =0x30;
83 3 S0RELH =0x03;
84 3 }
85 2 break;
86 2 default :
87 2 {
88 3 S0RELL =0xCC;
89 3 S0RELH =0x03;
90 3 }
91 2 break;
92 2 }
93 1 return ;
94 1 }
95 /****************************************
96 /nRF24LE1串口发送一个字符
97 *****************************************/
98 void putch(uchar ch)
99 {
100 1 S0BUF=ch;
101 1 while(!TI0);
102 1 TI0=0;
103 1 }
104 /****************************************
105 /nRF24LE1串口发送一个字符串
106 *****************************************/
107 void puts(char *str)
108 {
109 1 while(*str!='\0')
110 1 {
111 2 putch(*str++);
112 2 }
113 1 Delay(10);
114 1 }
115 /****************************************
116 /nRF24LE1的I/O口初始化函数
C51 COMPILER V9.00 MAIN 11/13/2010 14:57:23 PAGE 3
117 *****************************************/
118 void ZLG7289init()
119 {
120 1 P0DIR=(BIT_6|BIT_7);/*初始化INT1和DIO为输入*/
121 1 CS=1;
122 1 SCLK=1;
123 1 DIO=1;
124 1 INT=1;
125 1 /*开启外部中断接上拉电阻,输入端口选择INT*/
126 1 INTEXP|=BIT_4; /*INT1使能 */
127 1 IT0=1; /*下降沿触发*/
128 1 EX0=1; /*开启外部中断*/
129 1 }
130 /****************************************
131 /模拟spi接口传输一个字节
132 *****************************************/
133 void WriteSPI(uchar Dat)
134 {
135 1 uchar cT = 8;
136 1 P0DIR &=(~(BIT_7));
137 1 /*
138 1 * 循环写一个字节的数据
139 1 */
140 1 do {
141 2 if((Dat & 0x80) == 0x80) {
142 3 DIO=1;
143 3 } else {
144 3 DIO=0;
145 3 }
146 2 Dat <<= 1;
147 2 SCLK=1;
148 2 Delay(5);
149 2 SCLK=0;
150 2 Delay(5);
151 2 } while (--cT != 0);
152 1
153 1 }
154 /***************************************
155 /从模拟的SPI读取一个字节
156 ****************************************/
157 uchar ReadSPI(void)
158 {
159 1 uchar cDat = 0;
160 1 uchar cT = 8;
161 1 P0DIR|=BIT_7; /*设置为输入,需要接上拉电阻*/
162 1 /*
163 1 * 循环读一个字节的数据
164 1 */
165 1 do {
166 2 SCLK=1;
167 2 Delay(5);
168 2 cDat <<= 1;
169 2 if (DIO) {
170 3 cDat++;
171 3 }
172 2 SCLK=0;
173 2 Delay(5);
174 2 } while (--cT != 0);
175 1 return cDat;
176 1 }
177 /****************************************
178 /给7289写指令
C51 COMPILER V9.00 MAIN 11/13/2010 14:57:23 PAGE 4
179 *****************************************/
180 void WriteCmd(uchar Cmd)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -