📄 demo.lst
字号:
C51 COMPILER V3.20, SN-50203013 DEMO 03/11/03 16:10:51 PAGE 1
DOS C51 COMPILER V3.20, COMPILATION OF MODULE DEMO
OBJECT MODULE PLACED IN F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.OBJ
COMPILER INVOKED BY: C:\WAVE\P51\C51.EXE F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C DB SB OE
stmt level source
1 #include <reg51.h>
2 #include <math.h>
3 #include <absacc.h>
4 /* 直接访问方式地址定义,根据用户平台接口修改 */
5 #define cwadd XBYTE[0x0000] /* 写指令代码地址 */
6 #define cradd XBYTE[0x0200] /* 写显示数据地址 */
7 #define dwadd XBYTE[0x0100] /* 读显示数据地址 */
8 #define dradd XBYTE[0x0300] /* 读忙状态地址 */
9 /* 定义标志位 */
10 sbit ACC_7=ACC^7;
11 /* 设为全局变量 */
12 unsigned int com,dat;
13 /*-----------光标移动演示用字库-----------*/
14 unsigned int TABCL[18]={0x43,0x75,0x72,0x73,0x6f,0x72,0x20,0x4c,0x65,0x66,0x74,0x20,0x53,0x63,0x72,0x6f,0
-x6c,0x6c};
15 /*-----------画面滚动演示用字库----------*/
16 unsigned int TABL[11]={0x4c,0x65,0x66,0x74,0x20,0x53,0x63,0x72,0x6f,0x6c,0x6c};
17 /*-----------建立自定义演示用字符库-----------*/
18 code unsigned int CGTAB[9][8]={0x08,0x0f,0x12,0x0f,0x0a,0x1f,0x02,0x02, /* "↓"代码=0 */
19 0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00, /* "月"代码=1 */
20 0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00, /* "日"代码=2 */
21 0x11,0x0a,0x04,0x1f,0x04,0x1f,0x04,0x00, /* "¥"代码=3 */
22 0x0e,0x00,0x1f,0x0a,0x0a,0x0a,0x13,0x00, /* "元"代码=4 */
23 0x18,0x18,0x07,0x08,0x08,0x08,0x07,0x00, /* "℃"代码=5 */
24 0x04,0x0a,0x15,0x04,0x04,0x04,0x04,0x00, /* "↑"代码=6 */
25 0x17,0x15,0x15,0x15,0x15,0x15,0x17,0x00, /* "10"代码=7 */
26 0x04,0x04,0x04,0x04,0x15,0x0a,0x04,0x00 }; /* "↓"代码=8 */
27 /*-----------自定义字符显示用字库-----------*/
28 code unsigned int TABDY[4][9]={0x4d,0x44,0x4c,0x53,0x34,0x30,0x32,0x36,0x36,
29 0x20,0x03,0x32,0x35,0x35,0x2e,0x30,0x30,0x04,
30 0x31,0x39,0x39,0x37,0x00,0x37,0x01,0x31,0x02,
31 0x20,0x54,0x3d,0x33,0x35,0x05,0x06,0x20,0x07};
32
33 /******************/
34 void main()
35 {
36 1 unsigned int i,j,k,comp;
37 1 int_1(); /* 调初始化函数 */
*** WARNING 206 IN LINE 37 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'int_1': missing function-prototype
38 1 SCROLL(); /* 调滚动演示函数 */
*** WARNING 206 IN LINE 38 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'SCROLL': missing function-prototype
39 1 CL_ENTER(); /* 调光标移动函数 */
*** WARNING 206 IN LINE 39 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'CL_ENTER': missing function-prototype
40 1 L_ENTER(); /* 调画面滚动函数 */
*** WARNING 206 IN LINE 40 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'L_ENTER': missing function-prototype
41 1 HOME(); /* 调回归原始位函数 */
*** WARNING 206 IN LINE 41 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'HOME': missing function-prototype
42 1 /*----------修改错误显示演示段----------*/
43 1 com=0x80; /* 设置DDRAM地址 */
44 1 PR1(); /* 调写指令函数 */
*** WARNING 206 IN LINE 44 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'PR1': missing function-prototype
45 1 for(i=0;i<12;i++)
46 1 {
47 2 dat=RDTAB[i]; /* 取字符代码 */
*** ERROR 202 IN LINE 47 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'RDTAB': undefined identifier
C51 COMPILER V3.20, SN-50203013 DEMO 03/11/03 16:10:51 PAGE 2
48 2 PR2(); /* 调写数据函数 */
*** WARNING 206 IN LINE 48 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'PR2': missing function-prototype
49 2 }
50 1 DA_READ(); /* 调修改错误显示函数 */
*** WARNING 206 IN LINE 50 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'DA_READ': missing function-prototype
51 1 /*---------自定义字符显示段------------*/
52 1 com=0x80; /* 设置DDRAM地址 */
53 1 PR1(); /* 调写指令函数 */
54 1 for(i=0;i<4;i++)
55 1 {
56 2 for(j=0;j<8;j++)
57 2 {
58 3 dat=TABDY[i][j]; /* 取字符代码 */
59 3 PR2(); /* 调写数据函数 */
60 3 }
61 2 }
62 1 /*------------CGRAM显示段--------------*/
63 1
64 1 CGRAM(); /* 调自定义字符库函数 */
*** WARNING 206 IN LINE 64 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'CGRAM': missing function-prototype
65 1 com=0x80; /* 设置DDRAM地址 */
66 1 PR1(); /* 调写指令函数 */
67 1 for(i=0;i<9;i++)
68 1 {
69 2 dat=i; /* 取字符代码 */
70 2 PR2(); /* 调写数据函数 */
71 2 }
72 1 }
73 /*******************/
74 /* 初始化函数 */
75 /*******************/
76 int_1()
77 {
78 1 unsigned int i,j;
79 1 for(j=0;j<3;j++)
80 1 {
81 2 cwadd=0x30; /* 工作方式设置指令代码 */
82 2 for(i=0;i<100;i++) /* 延时大于等于4.1μs(100可根据需要调整) */
83 2 {}
84 2 }
85 1 cwadd=0x38; /* 设置工作方式(8位总线) */
86 1 com=0x01; /* 清屏 */
87 1 PR1(); /* 调写指令函数 */
88 1 com=0x06; /* 设置输入方式 */
89 1 PR1(); /* 调写指令函数 */
90 1 com=0x0f; /* 设置显示方式 */
91 1 PR1(); /* 调写指令函数 */
92 1 }
93 /*********************/
94 /* 光标移动函数 */
95 /*********************/
96 CL_ENTER()
97 {
98 1 unsigned int i,j;
99 1 com=0x04; /* 输入方式(0x04画面不动光标左移,0x06画面不动光标右移) */
100 1 PR1(); /* 调写指令函数 */
101 1 com=0x90; /* 设置DDRAM地址 */
102 1 PR1(); /* 调写指令函数 */
103 1 for(i=0;i<18;i++)
104 1 {
105 2 dat=TABCL[i]; /* 取字符代码 */
106 2 PR2(); /* 调写数据函数 */
C51 COMPILER V3.20, SN-50203013 DEMO 03/11/03 16:10:51 PAGE 3
107 2 for(j=0;j<100;j++) /* 延时(100可根据需要调整)*/
108 2 {}
109 2 }
110 1 }
111 /*******************/
112 /* 画面滚动函数 */
113 /*******************/
114 L_ENTER()
115 {
116 1 unsigned int i,j;
117 1 com=0x05; /* 输入方式(com=0x05画面右移,com=0x07画面左移) */
118 1 PR1(); /* 调写指令函数 */
119 1 com=0x80; /* 设置DDRAM地址 */
120 1 PR1(); /* 调写指令函数 */
121 1 for(i=0;i<11;i++)
122 1 {
123 2 dat=TABL[i]; /* 取字符代码 */
124 2 PR2(); /* 调写数据函数 */
125 2 for(j=0;j<100;j++) /* 延时(100可根据需要调整)*/
126 2 {}
127 2 }
128 1 }
129 /*********************/
130 /* 滚动演示函数 */
131 /*********************/
132 SCROLL()
133 {
134 1 unsigned int i,j;
135 1 com=0x80; /* 设置DDRAM地址 */
136 1 PR1(); /* 调写指令函数 */
137 1 for(i=0;i<128;i++)
138 1 {
139 2 dat=0x21; /* 字符代码设置 */
140 2 PR2(); /* 调写数据函数 */
141 2 for(j=0;j<100;j++) /* 延时(100可根据需要调整)*/
142 2 {}
143 2 }
144 1 com=0x90; /* 设置DDRAM地址 */
145 1 PR1(); /* 调写指令函数 */
146 1 for(i=0;i<8;i++)
147 1 {
148 2 for(j=0;j<100;j++) /* 延时(100可根据需要调整) */
149 2 {}
150 2 com=0x10; /* com=0x10 光标左移一次,com=0x14 光标右移一次 */
151 2 PR1(); /* 调写指令函数 */
152 2 }
153 1 com=0x90; /* 设置DDRAM地址 */
154 1 PR1(); /* 调写指令函数 */
155 1 for(i=0;i<8;i++)
156 1 {
157 2 for(j=0;j<100;j++) /* 延时(100可根据需要调整) */
158 2 {}
159 2 com=0x18; /* com=0x18画面左移一次,com=0x1c画面右移一次*/
160 2 PR1(); /* 调写指令函数 */
161 2 }
162 1 }
163 /***********************/
164 /* 回归原始位函数 */
165 /***********************/
166 HOME()
167 {
168 1 com=0x02; /* 设置归home位指令代码 */
C51 COMPILER V3.20, SN-50203013 DEMO 03/11/03 16:10:51 PAGE 4
169 1 PR1(); /* 调写指令函数 */
170 1 }
171 /**************************/
172 /* 建立自定义函数 */
173 /**************************/
174 CGRAM()
175 {
176 1 unsigned char i,j;
177 1 com=0x40; /* 设置CGRAM地址 */
178 1 PR1(); /* 调写指令函数 */
179 1 for(i=0;i<9;i++)
180 1 {
181 2 for(j=0;j<8;j++)
182 2 {
183 3 dat=CGTAB[i][j]; /* 取字模 */
184 3 PR2(); /* 调写数据函数 */
185 3 }
186 2 }
187 1 }
188 /********************/
189 /* 读BF和AC值函数 */
190 /********************/
191 PR0()
192 {
193 1 com=cradd;
194 1 }
195 /*******************/
196 /* 写指令函数 */
197 /*******************/
198 PR1()
199 {
200 1 busy(); /* 调判忙函数 */
*** WARNING 206 IN LINE 200 OF F:\WHR_SOFT\PYSOFT\HD44780\CHD44780\DEMO.C: 'busy': missing function-prototype
201 1 cwadd=com; /* 写指令 */
202 1 }
203 /*******************/
204 /* 写数据函数 */
205 /*******************/
206 PR2()
207 {
208 1 busy(); /* 调判忙函数 */
209 1 dwadd=dat; /* 写数据 */
210 1 }
211 /*******************/
212 /* 读数据函数 */
213 /*******************/
214 PR3()
215 {
216 1 busy(); /* 调判忙函数 */
217 1 dat=dradd; /* 读数据 */
218 1 }
219 /*****************/
220 /* 判忙函数 */
221 /*****************/
222 busy()
223 {
224 1 do
225 1 {
226 2 ACC=cradd; /* 读状态字 */
227 2 }
228 1 while (ACC_7==1); /* 判“忙”标志 */
229 1 }
C51 COMPILER V3.20, SN-50203013 DEMO 03/11/03 16:10:51 PAGE 5
C51 COMPILATION COMPLETE. 10 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -