?? 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 + -