?? lcd1602.lst
字號:
C51 COMPILER V8.02 LCD1602 07/08/2008 20:47:02 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN lcd1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd1602.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"lcd1602.h"
2 uchar date[2];
3
4
5
6 void delay(uchar ms)
7 { // 延時子程序
8 1 uchar i;
9 1 while(ms--)
10 1 {
11 2 for(i = 0; i< 250; i++)
12 2 {
13 3 _nop_();
14 3 _nop_();
15 3 _nop_();
16 3 _nop_();
17 3 }
18 2 }
19 1 }
20
21 BOOL LCD_check_busy() //定義LCD_check_busy()返回值是位
22 { // 測試LCD忙碌狀態
23 1 BOOL result;
24 1 rs = 0;
25 1 rw = 1;
26 1 ep = 1;
27 1 result = (BOOL)(LCD_DATA&0x80); //讀取第八位
28 1 ep = 0;
29 1 return result; //返回檢測信號
30 1 }
31
32 void lcd_write(uchar cd,uchar temp)
33 { // 寫入指令數據到LCD
34 1 uchar i;
35 1 while(LCD_check_busy());
36 1 date[0]=temp&0xf0; //取高四位
37 1 date[1]=(temp<<4)&0xf0; //取低四位
38 1 for(i=0;i<2;i++) //循環二次,分別送數據的高低位
39 1 {
40 2 if(cd) //當寫數據時使RS=1,當為寫指令時RS=0
41 2 rs = 1;
42 2 else
43 2 rs=0;
44 2 rw = 0;
45 2 ep = 0;
46 2 LCD_DATA = date[i]; //送數據到LCD
47 2 if(cd) //保持RS原來的狀態,不然會使送數據失敗
48 2 rs = 1;
49 2 else
50 2 rs=0;
51 2 ep = 1;
52 2 ep = 0;
53 2 }
54 1 }
55
C51 COMPILER V8.02 LCD1602 07/08/2008 20:47:02 PAGE 2
56 void lcd_pos(uchar pos)
57 {
58 1 lcd_write(0,pos|0x80); //設定顯示位置
59 1 }
60
61
62 void lcd_init()
63 { //LCD初始化設定
64 1
65 1 lcd_write(0,0x38); //寫三個0x38是初始化要求
66 1 delay(1);
67 1 lcd_write(0,0x38);
68 1 delay(1);
69 1 lcd_write(0,0x38);
70 1 delay(1);
71 1 lcd_write(0,0x28); // 四位數據數、雙行顯示、5X7點陣字型體
72 1 delay(1);
73 1 lcd_write(0,0x0C); // 顯示開、關光標
74 1 delay(1);
75 1
76 1 lcd_write(0,0x06); // 數據讀、寫操作后,AC自動增一
77 1 delay(1);
78 1 lcd_write(0,0x18);
79 1 delay(1);
80 1 lcd_write(0,0x01); //清除LCD的顯示內容
81 1 delay(1);
82 1 }
83
84 void lcd_strwdat( uchar Loc,uchar *str )
85 { //寫入字符串顯示數據到LCD
86 1 lcd_pos(Loc);
87 1 while(*str!='\0')
88 1 {
89 2 lcd_write(1,*str);
90 2 str++;
91 2 }
92 1 }
93
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 203 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -