📄 lcd_driver_user.lst
字号:
158 void Clear_Dot_LCD(int x,int y)
159 {
160 //可根据自己的需要填写代码
161 x = y; //无意义,仅为了让系统不提示警告
162 }
163 //========================================================================
164 // 函数: unsigned int Get_Dot_LCD(int x,int y)
165 // 描述: 获取在LCD的真实坐标系上的X、Y点上的当前填充色数据
166 // 参数: x X轴坐标
167 // y Y轴坐标
168 // 返回: 该点的颜色
169 // 备注: 暂不使用该函数
170 // 版本:
171 // 2006/10/15 First version
172 //========================================================================
173 unsigned int Get_Dot_LCD(int x,int y)
174 {
175 unsigned int Read_Data;
176 //可根据自己的需要填写代码
177 x = y; //无意义,仅为了让系统不提示警告
178 return Read_Data;
C51 COMPILER V8.08 LCD_DRIVER_USER 11/02/2007 15:16:56 PAGE 4
179 } */
180 /*
181 //========================================================================
182 // 函数: void Set_Dot_Addr_LCD(int x,int y)
183 // 描述: 设置在LCD的真实坐标系上的X、Y点对应的RAM地址
184 // 参数: x X轴坐标
185 // y Y轴坐标
186 // 返回: 无
187 // 备注: 仅设置当前操作地址,为后面的连续操作作好准备
188 // 版本:
189 // 2006/10/15 First version
190 // 2007/01/09 V1.2
191 //========================================================================
192 void Set_Dot_Addr_LCD(unsigned char x,unsigned char y)
193 {
194 unsigned char x_low,x_hight; //定义列地址的高低位指令
195 unsigned char y_Page; //用于存放要画点的位置所在的byte数据位置
196 x = x+1;
197 x_low = (x&0x0f); //定位列地址设置的低位指令
198 x_hight = ((x>>4)&0x0f)+0x10; //定位列地址设置的高位指令
199 y_Page = (y>>3)+0xb0; //Get the page of the byte
200 *COM_W_ADDR = y_Page;//LCD_RegWrite(y_Page);
201 *COM_W_ADDR = x_low;//LCD_RegWrite(x_low);
202 *COM_W_ADDR = x_hight;//LCD_RegWrite(x_hight);
203 }*/
204 /*
205 //========================================================================
206 // 函数: void LCD_Fill_s(unsigned int Number,unsigned int Color)
207 // 描述: 连续填充以Color色调的Number个点
208 // 参数: Number 填充的数量 Color 像素点的颜色
209 // 返回:
210 // 备注: 该函数可能会使用到
211 // 版本:
212 // 2006/10/15 First version
213 // 2007/01/09 V1.2
214 //========================================================================
215 void LCD_Fill_s(unsigned int Number,unsigned char Color)
216 {
217 while(Number!=0)
218 {
219 LCD_DataWrite(Color); //
220 Number--;
221 }
222 } */
223 //========================================================================
224 // 函数: void LCD_Fill(unsigned char Data)
225 // 描述: 会屏填充以Data的数据至各点中
226 // 参数: Data 要填充的颜色数据
227 // 返回: 无
228 // 备注: 仅在LCD初始化程序当中调用
229 // 版本:
230 // 2006/10/15 First version
231 // 2007/01/09 V1.2
232 //========================================================================
233 void LCD_Fill(unsigned char Data)
234 {
235 1 unsigned char i,j;
236 1 unsigned char uiTemp;
237 1 uiTemp = Dis_Y_MAX;
238 1 uiTemp = uiTemp>>3;
239 1 for(i=0;i<=uiTemp;i++) //往LCD中填充初始化的显示数据
240 1 {
C51 COMPILER V8.08 LCD_DRIVER_USER 11/02/2007 15:16:56 PAGE 5
241 2 LCD_RegWrite(0xb0+i);
242 2 LCD_RegWrite(0x01);
243 2 LCD_RegWrite(0x10);
244 2 for(j=0;j<=Dis_X_MAX;j++)
245 2 {
246 3 LCD_DataWrite(Data);
247 3 }
248 2 }
249 1 }
250 //========================================================================
251 // 函数: void LCD_Init(void)
252 // 描述: LCD初始化程序,在里面会完成LCD初始所需要设置的许多寄存器,具体如果
253 // 用户想了解,建议查看DataSheet当中各个寄存器的意义
254 // 参数: 无
255 // 返回: 无
256 // 备注:
257 // 版本:
258 // 2006/10/15 First version
259 // 2007/01/09 V1.2
260 //========================================================================
261 //延时程序
262
263 void TimeDelay(int Time)
264 {
265 1 int i;
266 1 while(Time > 0)
267 1 {
268 2 for(i = 0;i < 800;i++)
269 2 {
270 3 _nop_();
271 3 }
272 2 Time --;
273 2 }
274 1 }
275 void LCD_Init(void)
276 {
277 1 //LCD驱动所使用到的端口的初始化(如果有必要的话)
278 1 // LCD_PortInit();
279 1 // P0 = 0xff;
280 1 // P2 = 0xff;
281 1 LCD_RS = 0;
282 1 TimeDelay(50);
283 1 LCD_RS = 1;
284 1 TimeDelay(5);
285 1
286 1 LCD_RegWrite(M_LCD_ON); //LCD On
287 1 LCD_RegWrite(M_LCD_POWER_ALL); //设置上电控制模式
288 1
289 1 LCD_RegWrite(M_LCD_ELE_VOL); //电量设置模式(显示亮度)
290 1 LCD_RegWrite(0x1f); //指令数据0x0000~0x003f
291 1
292 1 LCD_RegWrite(M_LCD_VDD_SET); //V5内部电压调节电阻设置
293 1 LCD_RegWrite(M_LCD_VDD); //LCD偏压设置,V3时选
294 1
295 1 LCD_RegWrite(M_LCD_COM_REV); //Com 扫描方式设置
296 1 LCD_RegWrite(M_LCD_SEG_NOR); //Segment方向选择
297 1 LCD_RegWrite(M_LCD_ALL_LOW); //全屏点亮/变暗指令
298 1 LCD_RegWrite(M_LCD_ALL_NOR); //正向反向显示控制指令
299 1
300 1 LCD_RegWrite(M_LCD_STATIC_OFF); //关闭静态指示器
301 1 LCD_RegWrite(0x00); //指令数据
302 1
C51 COMPILER V8.08 LCD_DRIVER_USER 11/02/2007 15:16:56 PAGE 6
303 1 LCD_RegWrite(M_LCD_BEGIN_LINE+32); //设置显示起始行对应RAM
304 1 LCD_RegWrite(0xe0); //设置为读写改模式
305 1 LCD_Fill(LCD_INITIAL_COLOR);
306 1 }
307
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 353 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 1
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -