main.lst
来自「菜鸟,详细NRF24E1运用,程序,电路」· LST 代码 · 共 217 行
LST
217 行
C51 COMPILER V9.00 MAIN 11/02/2010 21:45:08 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 "reg51.h"
3 #include "intrins.h"
4 /*************************************/
5 #define uint unsigned int
6 #define uchar unsigned char
7 #define Dat 0x00
8 #define Cmd 0x01
9 /*************************************
10 #define DIO P00
11 #define SCLK P01
12 #define CS P02
13 #define RESET P03
14 *************************************/
15
16 sbit DIO = P0^0 ;
17 sbit SCLK = P0^1 ;
18 sbit CS = P0^2 ;
19 sbit RESET = P0^3 ;
20
21
22 #define Enableint do{EA=1;}while(0)
23 #define Disableint do{EA=1;}while(0)
24 /**************************************/
25 typedef enum YON{false,true}bool;
26 /**************************************/
27 uchar code tab[]={
28 "这是一个液晶测试"
29 "小江编写,仅供简"
30 "程序,由南华大学"
31 "当测试,谢谢支持"
32 };
33 /***************************************
34 /
35 /延时函数delay()
36 /
37 ****************************************/
38 void delay (uint us)
39 {
40 1 while(us--);
41 1 }
42 /**************************************
43 /
44 /delayms()延迟指定的ms数
45 /
46 **************************************/
47 void delayms (uint ms)
48 {
49 1 uint i,j;
50 1 for(i=0;i<ms;i++)
51 1 for(j=0;j<15;j++)
52 1 delay(1);
53 1 }
54 /***************************************
C51 COMPILER V9.00 MAIN 11/02/2010 21:45:08 PAGE 2
55 /
56 /nRF24LE1的I/O口初始化
57 /
58 ***************************************/
59 void IOCNFG()
60 {
61 1 // P0DIR&=0XF0; /*设置P0.0~P0.3为输出*/
62 1 }
63 /***************************************
64 /
65 /nRF24LE1工作时钟设置
66 /
67 ***************************************/
68 void WorkClkSet()
69 {
70 1 // CLKCTRL = 0x28;
71 1 // CLKLFCTRL = 0x01;
72 1 }
73 /**************************************
74 /
75 /ResetLcd()复位液晶显示
76 /
77 ***************************************/
78 void ResetLcd(void)
79 {
80 1 RESET=0;
81 1 delayms(10);
82 1 RESET=1;
83 1 }
84 /**************************************
85 /
86 /串行写一个字节
87 /
88 **************************************/
89 void SendByte(uchar dat)
90 {
91 1 uchar i;
92 1 for(i=0;i<8;i++)
93 1 {
94 2 SCLK=0;
95 2 if(dat&0x80)
96 2 DIO=1;
97 2 else
98 2 DIO=0;
99 2 SCLK=1;
100 2 dat=dat<<1;
101 2 }
102 1 }
103
104 /**************************************
105 /
106 /通过串行方式往LCD里写数据或者指令
107 /
108 ***************************************/
109 void WLcd( uchar Dat_Cmd,uchar dat)
110 {
111 1 uchar tmp;
112 1 if(Cmd==Dat_Cmd)
113 1 {
114 2 tmp=0xf8;
115 2 }
116 1 else if(Dat==Dat_Cmd)
C51 COMPILER V9.00 MAIN 11/02/2010 21:45:08 PAGE 3
117 1 {
118 2 tmp=0xfa;
119 2 }
120 1 SendByte(tmp);
121 1 SendByte((dat&0xF0));
122 1 SendByte((dat&0x0F));
123 1 }
124 /*****************************************
125 /
126 /LCD初始化函数
127 /
128 ******************************************/
129 void init_lcd (void)
130 { delay(100);
131 1 WLcd(Cmd,0x30); /*使用基本指令集*/
132 1 WLcd(Cmd,0x0c); /*开显示,关游标*/
133 1 WLcd(Cmd,0x01); /*清屏,地址指针指向00H*/
134 1 WLcd(Cmd,0x02);
135 1 WLcd(Cmd,0x80); /*光标的移动方向*/
136 1 delay(100);
137 1 }
138 /******************************************
139 /
140 /显示汉字或字符
141 /
142 *******************************************/
143 void chn_disp (uchar code *chn)
144 {
145 1 uchar i,j;
146 1 WLcd(Cmd,0x80);
147 1 for (j=0;j<4;j++)
148 1 {
149 2 for (i=0;i<16;i++)
150 2 {
151 3 WLcd(Dat,chn[j*16+i]);
152 3 }
153 2 }
154 1 }
155 /*****************************************
156 /
157 /清DDRAM
158 /
159 ******************************************/
160 void clrram(void)
161 {
162 1 WLcd(Cmd,0x30); /*功能设定 */
163 1 WLcd(Cmd,0x01); /*清除显示指令*/
164 1 delay(180);
165 1 }
166
167 /******************************************
168 /
169 /主函数部分
170 /
171 *******************************************/
172 void main ()
173 {
174 1 // Disableint; /*中断关闭 */
175 1 // WorkClkSet(); /*设置nRF24LE1的时钟*/
176 1 // IOCNFG(); /*I/O口初始设置 */
177 1 init_lcd(); /*液晶初始化 */
178 1 // Enableint; /*使能中断 */
C51 COMPILER V9.00 MAIN 11/02/2010 21:45:08 PAGE 4
179 1 {
180 2 chn_disp(tab);
181 2 // delayms(500);
182 2 }
183 1 while (1);
184 1
185 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 253 ----
CONSTANT SIZE = 65 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?