📄 lcd_driver_user.lst
字号:
C51 COMPILER V7.50 LCD_DRIVER_USER 03/06/2007 23:20:31 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD_DRIVER_USER
OBJECT MODULE PLACED IN LCD_Driver_User.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD_Driver_User.c BROWSE DEBUG OBJECTEXTEND
line level source
1 //========================================================================
2 // 文件名: LCD_Driver_User.c
3 // 作 者: Xinqiang Zhang(email: Xinqiang@Mzdesign.com.cn)
4 // www.Mzdesign.com.cn
5 // 日 期: 2007/02/25
6 // 描 述: 底层接口驱动扩展程序集
7 //
8 // 参 考: 请参考具体显示器的硬件描述说明书或者是DataSheet,并以此来编写底
9 // 层接口驱动程序,以及LCD的初始化代码
10 // 版 本:
11 // 2007/02/25 First version Mz Design
12 // 注 意:
13 // 该驱动程序当中有很多已经被屏蔽掉的子程序,用户可根据自己的应用
14 // 取消屏障并作一定的修改(如果可能的话)
15 //========================================================================
16 #include "LCD_Config.h"
17 #include "LCD_PortConfig.h"
18 /*
19 //========================================================================
20 // 函数: void LCD_DataWrite(unsigned int Data)
21 // 描述: 写一个字节的显示数据至LCD中的显示缓冲RAM当中
22 // 参数: Data 写入的数据
23 // 返回: 无
24 // 备注: 无
25 // 版本:
26 // 2007/01/09 First version
27 //========================================================================
28 void LCD_DataWrite(unsigned char Dat)//,_Fill_Dot_LCD
29 {
30 *DAT_W_ADDR = Dat;
31 }
32 //========================================================================
33 // 函数: unsigned char LCD_DataRead(void)
34 // 描述: 从LCD中的显示缓冲RAM当中读一个字节的显示数据
35 // 参数: 无
36 // 返回: 读出的数据,
37 // 备注:
38 // 版本:
39 // 2007/01/09 First version
40 // 注意:
41 //========================================================================
42 unsigned char LCD_DataRead(void)
43 {
44 unsigned char Read_Data;
45 Read_Data = *DAT_R_ADDR;
46 Read_Data = *DAT_R_ADDR;//
47 //SPLC501在读出数据时需要连续两次读操作方可读出
48 return Read_Data;
49 }*/
50 //========================================================================
51 // 函数: void LCD_RegWrite(unsigned char Command)
52 // 描述: 写一个字节的数据至LCD中的控制寄存器当中
53 // 参数: Command 写入的数据,低八位有效(byte)
54 // 返回: 无
55 // 备注:
C51 COMPILER V7.50 LCD_DRIVER_USER 03/06/2007 23:20:31 PAGE 2
56 // 版本:
57 // 2007/01/09 First version
58 //========================================================================
59 void LCD_RegWrite(unsigned char Command)
60 {
61 1 *COM_W_ADDR = Command;
62 1 }
63 //========================================================================
64 // 函数: void Write_Dot_LCD(int x,int y,unsigned int i)
65 // 描述: 在LCD的真实坐标系上的X、Y点绘制填充色为i的点
66 // 参数: x X轴坐标
67 // y Y轴坐标
68 // i 要填充的点的颜色
69 // 返回: 无
70 // 备注:
71 // 版本:
72 // 2006/10/15 First version
73 // 2007/01/09 V1.2
74 //========================================================================
75 void Write_Dot_LCD(unsigned char x,unsigned char y,unsigned char i)
76 {
77 1 unsigned char x_low,x_hight; //定义列地址的高低位指令
78 1 unsigned char Dot_Mask_Buf=0x01;
79 1 unsigned char y_Page; //用于存放要画点的位置所在的byte数据位置
80 1 x = x+4;
81 1 x_low = (x&0x0f); //定位列地址设置的低位指令
82 1 x_hight = ((x>>4)&0x0f)+0x10; //定位列地址设置的高位指令
83 1 // y_Page = y&0x07; //取低三位
84 1 switch(y&0x07)
85 1 {
86 2 case 0: Dot_Mask_Buf = 0x01;break;
87 2 case 1: Dot_Mask_Buf = 0x02;break;
88 2 case 2: Dot_Mask_Buf = 0x04;break;
89 2 case 3: Dot_Mask_Buf = 0x08;break;
90 2 case 4: Dot_Mask_Buf = 0x10;break;
91 2 case 5: Dot_Mask_Buf = 0x20;break;
92 2 case 6: Dot_Mask_Buf = 0x40;break;
93 2 case 7: Dot_Mask_Buf = 0x80;break;
94 2 }
95 1 y_Page = (y>>3)+0xb0; //Get the page of the byte
96 1 *COM_W_ADDR = y_Page;//LCD_RegWrite(y_Page);
97 1 *COM_W_ADDR = x_low;//LCD_RegWrite(x_low);
98 1 *COM_W_ADDR = x_hight;//LCD_RegWrite(x_hight);
99 1 *COM_W_ADDR = 0xe0;//LCD_RegWrite(0xe0); //设置为读写改模式
100 1 y_Page = *DAT_R_ADDR;
101 1 y_Page = *DAT_R_ADDR;//LCD_DataRead(); //
102 1 if(i) y_Page |= Dot_Mask_Buf;
103 1 else y_Page &= ~Dot_Mask_Buf;
104 1 *DAT_W_ADDR = y_Page;//LCD_DataWrite(y_Page); //
105 1 *COM_W_ADDR = 0xee;//LCD_RegWrite(0xee); //读写改模式结束
106 1 }
107 /*
108 //========================================================================
109 // 函数: void Clear_Dot_LCD(int x,int y)
110 // 描述: 清除在LCD的真实坐标系上的X、Y点
111 // 参数: x X轴坐标
112 // y Y轴坐标
113 // 返回: 无
114 // 备注: 暂不使用该函数
115 // 版本:
116 // 2006/10/15 First version
117 //========================================================================
C51 COMPILER V7.50 LCD_DRIVER_USER 03/06/2007 23:20:31 PAGE 3
118 void Clear_Dot_LCD(int x,int y)
119 {
120 //可根据自己的需要填写代码
121 x = y; //无意义,仅为了让系统不提示警告
122 }
123 //========================================================================
124 // 函数: unsigned int Get_Dot_LCD(int x,int y)
125 // 描述: 获取在LCD的真实坐标系上的X、Y点上的当前填充色数据
126 // 参数: x X轴坐标
127 // y Y轴坐标
128 // 返回: 该点的颜色
129 // 备注: 暂不使用该函数
130 // 版本:
131 // 2006/10/15 First version
132 //========================================================================
133 unsigned int Get_Dot_LCD(int x,int y)
134 {
135 unsigned int Read_Data;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -