📄 debug.lst
字号:
C51 COMPILER V7.02a DEBUG 04/01/2005 10:28:51 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE DEBUG
OBJECT MODULE PLACED IN D:\我的设~2\程序\DEBUGV~1\DEBUG.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE D:\我的设~2\程序\DEBUGV~1\DEBUG.C DB SB OE
stmt level source
1
2 #include"DEBUG.H"
3
4 //////////////////////////////////////////////////////////////////////////////////////
5 ///////////////延时函数///////////////////////////////////////////////////////////////
6 //////////////////////////////////////////////////////////////////////////////////////
7 void delay() //less than 1ms
8 {
9 1 uchar i;
10 1 for(i=0;i<100;i++)
11 1 _nop_();
12 1 }
13
14 void delay_160ms() //160ms
15 {
16 1 uchar i,j;
17 1 for(i=0;i<255;i++)
18 1 {
19 2 for(j=0;j<255;j++)
20 2 {
21 3 _nop_();
22 3
23 3 }
24 2 }
25 1 }
26
27 //延时500ms秒
28 void delay_500ms()
29 {
30 1 uchar i;
31 1 for(i=0;i<2;i++)
32 1 delay_160ms();
33 1 }
34
35 //延时1S
36 void delay_1s() //1s
37 {
38 1 uint i;
39 1 for(i=0;i<45000;i++)
40 1 {
41 2 _nop_();
42 2 _nop_();
43 2 }
44 1 }
45
46 ////////////////////////////////////////////////////////////////////////////////////////
47 /////////////液晶相关函数//////////////////////////////////////e/////////////////////////
48 ////////////////////////////////////////////////////////////////////////////////////////
49 //write command to LCM//
50 void write_cmd( uchar cmdData)
51 {
52 1 uint idata i;
53 1 SID=1;
54 1 for(i=0;i<5;i++) //5个1
55 1 {
C51 COMPILER V7.02a DEBUG 04/01/2005 10:28:51 PAGE 2
56 2 SCLK=0;SCLK=1;
57 2 }
58 1 SCLK=0;SID=0;SCLK=1; //RW
59 1 SCLK=0;SCLK=1; //RS
60 1 SCLK=0;SCLK=1; //0
61 1 SCLK=0;SID=cmdData&0x80;SCLK=1;
62 1 SCLK=0;SID=cmdData&0x40;SCLK=1;
63 1 SCLK=0;SID=cmdData&0x20;SCLK=1;
64 1 SCLK=0;SID=cmdData&0x10;SCLK=1;
65 1 SCLK=0;SID=0;SCLK=1; //四个0
66 1 SCLK=0;SCLK=1;
67 1 SCLK=0;SCLK=1;
68 1 SCLK=0;SCLK=1;
69 1 SCLK=0;SID=cmdData&0x08;SCLK=1;
70 1 SCLK=0;SID=cmdData&0x04;SCLK=1;
71 1 SCLK=0;SID=cmdData&0x02;SCLK=1;
72 1 SCLK=0;SID=cmdData&0x01;SCLK=1;
73 1 SCLK=0;SID=0;SCLK=1; //四个0
74 1 SCLK=0;SCLK=1;
75 1 SCLK=0;SCLK=1;
76 1 SCLK=0;SCLK=1;
77 1 SCLK=0;
78 1 delay();
79 1 }
80
81 //write data to LCD//
82 void write_data( char datData)
83 {
84 1 uint idata i;
85 1 SID=1; //五个 1
86 1 for(i=0;i<5;i++)
87 1 {
88 2 SCLK=0;SCLK=1;
89 2 }
90 1 SCLK=0;SID=0;SCLK=1; //RW
91 1 SCLK=0;SID=1;SCLK=1; //RS
92 1 SCLK=0;SID=0;SCLK=1;
93 1 SCLK=0;SID=datData&0x80;SCLK=1;
94 1 SCLK=0;SID=datData&0x40;SCLK=1;
95 1 SCLK=0;SID=datData&0x20;SCLK=1;
96 1 SCLK=0;SID=datData&0x10;SCLK=1;
97 1 SCLK=0;SID=0;SCLK=1;
98 1 SCLK=0;SCLK=1;
99 1 SCLK=0;SCLK=1;
100 1 SCLK=0;SCLK=1;
101 1 SCLK=0;SID=datData&0x08;SCLK=1;
102 1 SCLK=0;SID=datData&0x04;SCLK=1;
103 1 SCLK=0;SID=datData&0x02;SCLK=1;
104 1 SCLK=0;SID=datData&0x01;SCLK=1;
105 1 SCLK=0;SID=0;SCLK=1;
106 1 SCLK=0;SCLK=1;
107 1 SCLK=0;SCLK=1;
108 1 SCLK=0;SCLK=1;
109 1 SCLK=0;
110 1 //reset();
111 1 delay();
112 1 }
113
114
115 //液晶初始化函数
116 void init_LCD()
117 {
C51 COMPILER V7.02a DEBUG 04/01/2005 10:28:51 PAGE 3
118 1 write_cmd(0x30); //功能设定:八位控制界面,基本指令集
119 1 write_cmd(0x0c); //显示状态开关:整体显示
120 1 write_cmd(0x01); //清除显示
121 1 write_cmd(0x06); //进入点设定:光标的移动方向(光标右移位址计数器加一)
122 1 write_cmd(0x01); //clear lcm screen
123 1 }
124
125 //print string to LCD///////
126 void put_string( uchar display_start_addr,char *str_source)
127 {
128 1 char idata i;
129 1 write_cmd(display_start_addr);
130 1 delay();
131 1 for( i=0;*str_source!='\0';i++)
132 1 {
133 2 write_data(*str_source);
134 2 delay();
135 2 str_source++;
136 2 }
137 1 }
138
139 //show vegetalbe type screen
140 void type_screen()
141 {
142 1 put_string(0x90," "); //显示定位
143 1 switch(vege_page_index)
144 1 {
145 2 case 0:put_string(0x80,"01白萝卜02菠菜 05大白菜06大葱 03菜花 04长茄子");break;
146 2 case 1:put_string(0x80,"07大蒜 08冬瓜 11荷兰豆12红尖椒09豆角 10佛手 ");break;
147 2 case 2:put_string(0x80,"13胡萝卜14黄豆芽17鸡腿菇18尖椒 15黄瓜 16茴香 ");break;
148 2 case 3:put_string(0x80,"19茭白 20芥菜 23空心菜24苦瓜 21金针菇22韭菜 ");break;
149 2 case 4:put_string(0x80,"25莲藕菜26绿豆芽29木耳 30南瓜 27绿尖椒28毛豆 ");break;
150 2 case 5:put_string(0x80,"31平菇 32茄子 35山药 36生菜 33芹菜 34青椒 ");break;
151 2 case 6:put_string(0x80,"37生姜 38丝瓜 41茼蒿 42土豆 39蒜苗 40蒜薹 ");break;
152 2 case 7:put_string(0x80,"43莴笋 44西红柿47西洋芹48香菜 45西葫芦46西兰花");break;
153 2 case 8:put_string(0x80,"49香椿 50香菇 53洋白菜54洋葱头51小白菜52小葱 ");break;
154 2 case 9:put_string(0x80,"55油菜 56油麦菜 57圆茄子58竹笋 ");break;
155 2 default: break; //put_string(0x80,"page does not exist"); break;
156 2 }
157 1 put_string(0x98,"选择代号:");
158 1 write_cmd(0x9d); //显示地址设为第4行第6列
159 1 put_string(0x9d,vege_type) ; //显示当前所选择的蔬菜类型
160 1 }
161
162 //蔬菜价格界面显示
163 void price_screen()
164 {
165 1 char idata a[3]={0xa3,0xaf,'\0'} ; ////////////中文字符'/'的中文字库编码
166 1 write_cmd(0x01); //全部清除显示
167 1 put_string(0x90," "); //用于显示定位,如果没有这句就经常不会正常显示
168 1 if(vege_type[0]=='0')
169 1 switch(vege_type[1])
170 1 {
171 2 case'1':put_string(0x90,"输入白萝卜价格:"); break;
172 2 case'2':put_string(0x90,"输入菠菜价格:") ; break;
173 2 case'3':put_string(0x90,"输入菜花价格:") ; break;
174 2 case'4':put_string(0x90,"输入长茄子价格:"); break;
175 2 case'5':put_string(0x90,"输入大白菜价格:"); break;
176 2 case'6':put_string(0x90,"输入大葱价格:") ; break;
177 2 case'7':put_string(0x90,"输入大蒜价格:") ; break;
178 2 case'8':put_string(0x90,"输入冬瓜价格:") ; break;
179 2 case'9':put_string(0x90,"输入豆角价格:") ; break;
C51 COMPILER V7.02a DEBUG 04/01/2005 10:28:51 PAGE 4
180 2 default: break;
181 2 }
182 1 else if(vege_type[0]=='1')
183 1 switch(vege_type[1])
184 1 {
185 2 case'0':put_string(0x90,"输入佛手价格:") ; break;
186 2 case'1':put_string(0x90,"输入荷兰豆价格:"); break;
187 2 case'2':put_string(0x90,"输入红尖椒价格:"); break;
188 2 case'3':put_string(0x90,"输入胡萝卜价格:"); break;
189 2 case'4':put_string(0x90,"输入黄豆牙价格:"); break;
190 2 case'5':put_string(0x90,"输入黄瓜价格:") ; break;
191 2 case'6':put_string(0x90,"输入茴香价格:") ; break;
192 2 case'7':put_string(0x90,"输入鸡腿菇价格:"); break;
193 2 case'8':put_string(0x90,"输入尖椒价格:") ; break;
194 2 case'9':put_string(0x90,"输入茭白价格:") ; break;
195 2 default: break;
196 2 }
197 1 else if(vege_type[0]=='2')
198 1 switch(vege_type[1])
199 1 {
200 2 case'0':put_string(0x90,"输入芥菜价格:") ; break;
201 2 case'1':put_string(0x90,"输入金针菇价格:"); break;
202 2 case'2':put_string(0x90,"输入韭菜价格:") ; break;
203 2 case'3':put_string(0x90,"输入空心菜价格:"); break;
204 2 case'4':put_string(0x90,"输入苦瓜价格:") ; break;
205 2 case'5':put_string(0x90,"输入莲藕菜价格:"); break;
206 2 case'6':put_string(0x90,"输入绿豆牙价格:"); break;
207 2 case'7':put_string(0x90,"输入绿尖椒价格:"); break;
208 2 case'8':put_string(0x90,"输入毛豆价格:") ; break;
209 2 case'9':put_string(0x90,"输入木耳价格:") ; break;
210 2 default: break;
211 2 }
212 1 else if(vege_type[0]=='3')
213 1 switch(vege_type[1])
214 1 {
215 2 case'0':put_string(0x90,"输入南瓜价格:"); break;
216 2 case'1':put_string(0x90,"输入平菇价格:"); break;
217 2 case'2':put_string(0x90,"输入茄子价格:"); break;
218 2 case'3':put_string(0x90,"输入芹菜价格:"); break;
219 2 case'4':put_string(0x90,"输入青椒价格:"); break;
220 2 case'5':put_string(0x90,"输入山药价格:"); break;
221 2 case'6':put_string(0x90,"输入生菜价格:"); break;
222 2 case'7':put_string(0x90,"输入生姜价格:"); break;
223 2 case'8':put_string(0x90,"输入丝瓜价格:"); break;
224 2 case'9':put_string(0x90,"输入蒜苗价格:"); break;
225 2 default: break;
226 2 }
227 1 else if(vege_type[0]=='4')
228 1 switch(vege_type[1])
229 1 {
230 2 case'0':put_string(0x90,"输入蒜薹价格:") ; break;
231 2 case'1':put_string(0x90,"输入茼蒿价格:") ; break;
232 2 case'2':put_string(0x90,"输入土豆价格:") ; break;
233 2 case'3':put_string(0x90,"输入莴笋价格:") ; break;
234 2 case'4':put_string(0x90,"输入西红柿价格:"); break;
235 2 case'5':put_string(0x90,"输入西葫芦价格:"); break;
236 2 case'6':put_string(0x90,"输入西兰花价格:"); break;
237 2 case'7':put_string(0x90,"输入西洋芹价格:"); break;
238 2 case'8':put_string(0x90,"输入香菜价格:") ; break;
239 2 case'9':put_string(0x90,"输入香椿价格:") ; break;
240 2 default: break;
241 2 }
C51 COMPILER V7.02a DEBUG 04/01/2005 10:28:51 PAGE 5
242 1 else if(vege_type[0]=='5')
243 1 switch(vege_type[1])
244 1 {
245 2 case'0':put_string(0x90,"输入香菇价格:") ; break;
246 2 case'1':put_string(0x90,"输入小白菜价格:"); break;
247 2 case'2':put_string(0x90,"输入小葱价格:") ; break;
248 2 case'3':put_string(0x90,"输入洋白菜价格:"); break;
249 2 case'4':put_string(0x90,"输入洋葱头价格:"); break;
250 2 case'5':put_string(0x90,"输入油菜价格:") ; break;
251 2 case'6':put_string(0x90,"输入油麦菜价格:"); break;
252 2 case'7':put_string(0x90,"输入圆茄子价格:"); break;
253 2 case'8':put_string(0x90,"输入竹笋价格:") ; break;
254 2 default: break;
255 2 }
256 1 write_cmd(0x9a);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -