?? digital-v-lcd.lst
字號(hào):
C51 COMPILER V8.08 DIGITAL_V_LCD 11/17/2008 19:55:28 PAGE 4
180 1 writeCommand(0x0c);//設(shè)置顯示狀態(tài):顯示器開,有光標(biāo),關(guān)閃爍 writeCommand(0x0f)
181 1 //writeCommand(0x0c);writeCommand(0x0e)
182 1 writeCommand(0x06);
183 1 }
184
185 /**********************************************************
186 函數(shù)名稱: display_xy
187 函數(shù)描述: LCD確定光標(biāo)位置函數(shù)
188 入口參數(shù): 列坐標(biāo)x,行坐標(biāo)y
189 **********************************************************/
190
191 void display_xy(uchar x,uchar y)
192 {
193 1 if(y==1) //若第二行則光標(biāo)地址加0x80
194 1 x+=0x40;
195 1 x+=0x80;
196 1 writeCommand(x);
197 1 }
198
199 /**********************************************************
200 函數(shù)名稱: display_char
201 函數(shù)描述: 顯示字符函數(shù)
202 入口參數(shù): 列坐標(biāo)x,行坐標(biāo)y,輸入數(shù)據(jù)
203 **********************************************************/
204
205 void display_char(uchar x,uchar y,uchar inputData)
206 {
207 1 display_xy(x,y); //確定光標(biāo)位置
208 1 writeData(inputData); //輸入字符數(shù)據(jù)
209 1 }
210
211 /**********************************************************
212 函數(shù)名稱: display_string
213 函數(shù)描述: 顯示字符串函數(shù)
214 入口參數(shù): 列坐標(biāo)x,行坐標(biāo)y,輸入數(shù)據(jù)串
215 **********************************************************/
216
217 void display_string(uchar x,uchar y,uchar *stringData)
218 {
219 1 uchar columnCoordinate=x; //定義列坐標(biāo)
220 1 uchar rowCoordinate=y; //定義行坐標(biāo)
221 1
222 1 while(*stringData!='\0') //循環(huán)條件:字符串沒有結(jié)束
223 1 {
224 2 display_char(columnCoordinate,rowCoordinate,*stringData);
225 2 columnCoordinate++;
226 2 stringData++;
227 2 /* if(*stringData==0x60) //設(shè)置是否回車顯示
228 2 rowCoordinate++;
229 2 if(rowCoordinate==2)
230 2 rowCoordinate=0; */
231 2 if(columnCoordinate==16)
232 2 {
233 3 columnCoordinate=0;
234 3 rowCoordinate++;
235 3 if(rowCoordinate==2) //當(dāng)前頁(yè)面顯示完,準(zhǔn)備下一頁(yè)顯示
236 3 {
237 4 delay(400); //翻頁(yè)速度
238 4 writeCommand(0x01); //顯示完一頁(yè)后清屏,下一頁(yè)內(nèi)容更新
239 4 rowCoordinate=0; //重新在第一行顯示
240 4 }
241 3 }
C51 COMPILER V8.08 DIGITAL_V_LCD 11/17/2008 19:55:28 PAGE 5
242 2 //writeCommand(0x01);
243 2 }
244 1
245 1 //一次顯示結(jié)束
246 1 //delay(400);//停留時(shí)間,全部?jī)?nèi)容重新顯示
247 1
248 1 }
249
250 //以上是TLC1602的驅(qū)動(dòng)程序
251
252
253 /**********************************************************
254 函數(shù)名稱:initialSerial
255 函數(shù)描述:串行口初始化
256 入口參數(shù): 無
257 **********************************************************/
258
259 /*void initialSerial()
260 {
261 TMOD=0x20;
262 SCON=0x50;
263 TH1=0xfd;
264 TL1=0xfd;
265 TR1=1;
266 EA=1;
267 }
268
269 /**********************************************************
270 函數(shù)名稱:serialSend
271 函數(shù)描述:串行口發(fā)送函數(shù)
272 入口參數(shù): AD轉(zhuǎn)換結(jié)果
273 **********************************************************/
274 /*void serialSend(uchar send[])
275 {
276 uchar i;
277 while(1) //設(shè)置發(fā)送的數(shù)組元素個(gè)數(shù)
278 {
279 SBUF=send[i];
280 while(!TI);
281 TI=0;
282 i++;
283 if(i==5)
284 break;
285 }
286 }
287
288 /**********************************************************
289 函數(shù)名稱:T0interrupt
290 函數(shù)描述:T0定時(shí)函數(shù),控制采樣時(shí)刻
291 入口參數(shù): 無
292 **********************************************************/
293 /*void T0interrupt() interrupt 1 using 1
294 {
295 uchar nCounter;
296 TH0=0x3C;
297 TL0=0XB0;
298 if(nCounter==INTERVAL)
299 {
300 nCounter=0;
301 ADFlag=1;
302 }
303 nCounter++;
C51 COMPILER V8.08 DIGITAL_V_LCD 11/17/2008 19:55:28 PAGE 6
304
305 }
306
307
308 /**********************************************************
309 函數(shù)名稱: main
310 函數(shù)描述:主函數(shù)
311 入口參數(shù): 無
312 **********************************************************/
313
314 void main(void)
315 {
316 1 uint adData,adResult;
317 1 uchar hundredBit,tenBit,oneBit;
318 1 uchar dataString[6]; //轉(zhuǎn)換結(jié)果數(shù)據(jù)
319 1 uchar inputdata[]="The Voltage is:";//待顯示的內(nèi)容
320 1 delay(100); //等待LCD進(jìn)入工作狀態(tài)
321 1 initialLcd1602();
322 1 //initialSerial();
323 1 //循環(huán)顯示內(nèi)容
324 1 while(1)
325 1 {
326 2
327 2 display_string(0,0,inputdata); //起始顯示位置
328 2 adResult=adConvert(0);
329 2 adData=adResult*1.0/4096*500; //設(shè)置精度為0.01,AD參考電壓為5V
330 2 oneBit=adData%10; //個(gè)位數(shù)
331 2 tenBit=(adData/10)%10; //十位數(shù)
332 2 hundredBit=(adData/100)%10; // 百位數(shù)
333 2
334 2 dataString[0]=hundredBit+0x30;
335 2 dataString[1]=0x2E;//設(shè)置小數(shù)點(diǎn)
336 2 dataString[2]=tenBit+0x30;
337 2 dataString[3]=oneBit+0x30;
338 2 dataString[4]=0x56; //設(shè)置'V'
339 2 //以上為對(duì)AD轉(zhuǎn)換數(shù)據(jù)的處理
340 2
341 2 display_string(6,1,dataString);
342 2 //delay(100);
343 2 // serialSend(dataString);
344 2
345 2 }
346 1 }
347
348
349
350
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 469 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 34
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -