?? lcd.lst
字號:
C51 COMPILER V7.20 LCD 08/13/2008 21:53:02 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN LCD.OBJ
COMPILER INVOKED BY: D:\基地\Keil\C51\BIN\C51.EXE LCD.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "reg51.h"
2 //#include<SST/SST89x5x4.h>
3 #include "lcd.h"
4
5
6
7
8 /*
9 void Out_lcd(void)
10 //void main()
11 {
12 char i=0;
13
14 LcdInit();
15
16 PutStr(0,0,"si ge zi");
17 PutStr(0,1,"hu yang");
18 while(1);
19
20 }
21
22
23 /**************************************
24 說明:LCD寫函數,完成lcd寫操作的物理時序
25 value:寫的具體數值
26 RS: 0-寫指令
27 1-寫數據
28 **************************************/
29
30 void LcdWrite(unsigned char value,bit RS)
31 {
32 1 /*1.設置RS信號線*/
33 1 Lcd_RS=RS;
34 1 /*2、設置RW信號線為讀*/
35 1 Lcd_RW=0;
36 1 /*設置LCD片選*/
37 1 SELECT_LCD();
38 1 /*4、通過P0端口寫值*/
39 1 P0=value;
40 1 /*5、鎖存*/
41 1 SELECT_NONE();
42 1 }
43
44
45
46
47
48
49
50 /**************************************
51 說明: LCD讀函數,完成LCD讀操作的物理時序
52 RS: 0-寫指令
53 1-寫數據
54 Return:讀出的具體值
55 **************************************/
C51 COMPILER V7.20 LCD 08/13/2008 21:53:02 PAGE 2
56
57 unsigned char LcdRead(bit RS)
58 {
59 1 unsigned char rt;
60 1 /*1 、設置RS信號線*/
61 1 Lcd_RS=RS;
62 1 /*2、設置RW信號線為讀*/
63 1 Lcd_RW=1;
64 1 /*3、釋放P0口*/
65 1 P0=0xff;
66 1 /*4、設置LCD片選*/
67 1 SELECT_LCD();
68 1 SELECT_LCD();
69 1 SELECT_LCD();
70 1 SELECT_LCD();
71 1 /*5、通過P0端口讀值*/
72 1 rt=P0;
73 1 /*6、鎖存*/
74 1 SELECT_NONE();
75 1
76 1 return rt;
77 1
78 1 }
79
80
81
82
83 /******************************
84 說明; LCD寫指令
85 Value:寫的具體值
86 Attrib:0-不檢測忙信號
87 1-監測忙信號
88 ******************************/
89 void LcdWriteCmd(unsigned char value,unsigned char attrib)
90 {
91 1 /*監測忙狀態*/
92 1 if(attrib)
93 1 while(LcdRead(0)&0x80);
94 1
95 1 LcdWrite(value,0);
96 1 }
97
98
99
100
101 /****************************
102 說明: LCD寫數據
103 ***************************/
104 void LcdWriteData(unsigned char value)
105 {
106 1 /*監測忙狀態*/
107 1 while(LcdRead(0)&0x80);
108 1
109 1 LcdWrite(value,1);
110 1 }
111
112
113 /****************************
114 說明:Lc讀數據
115 *************************
116 unsigned char LcdReadData()
117 {
C51 COMPILER V7.20 LCD 08/13/2008 21:53:02 PAGE 3
118 //*監測忙狀態*
119 while(LcdRead(0)&0x80);
120 return LcdRead(1);
121 }
122 */
123
124 /**************************
125 說明: 短延時,s5Ms
126 **************************/
127 void Delay5Ms(void)
128 {
129 1 unsigned int i=5552;
130 1 while(i--);
131 1 }
132
133
134 /*************************
135 說明:長延時,400Ms
136 **************************/
137 void Delay400Ms(void)
138 {
139 1 unsigned int i=80;
140 1 while(i--)
141 1 Delay5Ms();
142 1 }
143
144
145 /*********************************************
146 說明: LCD初始化函數,需要按照產品說明書完成
147 *********************************************/
148 void LcdInit(void)
149 {
150 1 Delay400Ms();
151 1
152 1 /*寫指令0x38連續3次,不檢測忙信號*/
153 1 LcdWriteCmd(0x38,0);
154 1 Delay5Ms();
155 1
156 1 LcdWriteCmd(0x38,0);
157 1 Delay5Ms();
158 1
159 1 LcdWriteCmd(0x38,0);
160 1 Delay5Ms();
161 1
162 1 //*以后的讀寫操作均要監測判斷忙信號*/
163 1 LcdWriteCmd(0x38,1);
164 1 //*先設置關屏*/
165 1 LcdWriteCmd(0x08,1);
166 1 //*清屏*/
167 1 LcdWriteCmd(0x01,1);
168 1 //*設置光標顯示模式*/
169 1 LcdWriteCmd(0x06,1);
170 1 //*開光標屏顯示光
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -