📄 lcd_driver_user.lst
字号:
C51 COMPILER V8.16 LCD_DRIVER_USER 12/22/2008 00:11:06 PAGE 1
C51 COMPILER V8.16, COMPILATION OF MODULE LCD_DRIVER_USER
OBJECT MODULE PLACED IN .\Output\LCD_Driver_User.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD_Driver\LCD_Driver_User.c COMPACT BROWSE INCDIR(.\LCD_Driver) DEBUG OBJE
-CTEXTEND PRINT(.\LCD_Driver_User.lst) OBJECT(.\Output\LCD_Driver_User.obj)
line level source
1 //========================================================================
2 // 文件名: LCD_Driver_User.c
3 // 作 者: Xinqiang Zhang(email: Xinqiang@Mzdesign.com.cn)
4 // www.Mzdesign.com.cn
5 // 日 期: 2008/12/11
6 // 描 述: 底层接口驱动扩展程序集
7 //
8 // 参 考: 请参考具体显示器的硬件描述说明书或者是DataSheet,并以此来编写底
9 // 层接口驱动程序,以及LCD的初始化代码
10 // 版 本:
11 // 2007/02/25 First version Mz Design
12 // 2008/06/11 V2.0 Mzdesign
13 // 注 意:
14 // 该驱动程序当中有很多已经被屏蔽掉的子程序,用户可根据自己的应用
15 // 取消屏障并作一定的修改(如果可能的话)
16 // 该文件与LCD的特性有关,为MzDesign通用版LCD驱动的V2.0版本,内含的
17 // 函数是标准的函数,每款LCD对应的通用版LCD驱动程序包都是一样的,只
18 // 是会针对不同的LCD模块会有一些区别,用户可以参考我们介绍V1.0版本
19 // 驱动的书<LCD驱动显控原理>.
20 // 相 关: 本例为针对MzDesign的MzT35C1 320X240点TFT屏作的移植改去,适用于51系
21 // 列单片机
22 //========================================================================
23 #include "LCD_Config.h"
24 #include "LCD_PortConfig.h"
25
26 unsigned char MzT35_Ctrl_Reg=0x01; //用于在用户程序中保存当前LCD显示图层以及当前操作图层的信息
27 //========================================================================
28 // 函数: void LCD_DataWrite(unsigned int Data)
29 // 描述: 写一个字节的显示数据至LCD中的显示缓冲RAM当中
30 // 参数: Data 写入的数据
31 // 返回: 无
32 // 备注: Mz 通用版LCD驱动程序 标准子函数
33 // 版本:
34 // 2007/01/09 First version
35 //========================================================================
36 /*
37 void LCD_DataWrite(LCDBYTE Dat)
38 {
39 LCD_DAT_W = (unsigned char)(Dat>>8);
40 LCD_DAT_W = (unsigned char)Dat;
41 } */
42 //========================================================================
43 // 函数: LCDBYTE LCD_DataRead(void)
44 // 描述: 从LCD中的显示缓冲RAM当中读一个字节的显示数据
45 // 参数: 无
46 // 返回: 读出的数据,
47 // 备注: Mz 通用版LCD驱动程序 标准子函数
48 // 版本:
49 // 2007/01/09 First version
50 // 注意:
51 //========================================================================
52
53 LCDBYTE LCD_DataRead(void)
54 {
C51 COMPILER V8.16 LCD_DRIVER_USER 12/22/2008 00:11:06 PAGE 2
55 1 LCDBYTE Read_Data;
56 1 Read_Data = LCD_DAT_R;
57 1 Read_Data = LCD_DAT_R;
58 1 Read_Data = LCD_DAT_R;
59 1 Read_Data = Read_Data<<8;
60 1 Read_Data |= LCD_DAT_R;
61 1 return Read_Data;
62 1 }
63 //========================================================================
64 // 函数: void LCD_RegWrite(LCDBYTE Command)
65 // 描述: 写一个字节的数据至LCD中的控制寄存器当中
66 // 参数: Command 写入的数据,低八位有效(byte)
67 // 返回: 无
68 // 备注: Mz 通用版LCD驱动程序 标准子函数
69 // 版本:
70 // 2007/01/09 First version
71 //========================================================================
72 /*
73 void LCD_RegWrite(LCDBYTE Command)
74 {
75 LCD_COM_W = Command;
76 } */
77 //========================================================================
78 // 函数: void Write_Dot_LCD(int x,int y,unsigned int i)
79 // 描述: 在LCD的真实坐标系上的X、Y点绘制填充色为i的点
80 // 参数: x X轴坐标
81 // y Y轴坐标
82 // i 要填充的点的颜色
83 // 返回: 无
84 // 备注: Mz 通用版LCD驱动程序 标准子函数
85 // 版本:
86 // 2006/10/15 First version
87 // 2007/01/09 V1.2
88 //========================================================================
89 void Write_Dot_LCD(DOTBYTE x,DOTBYTE y,LCDBYTE i)
90 {
91 1 y = (y<<8)+y;
92 1 LCD_RegWrite(0x00);
93 1 LCD_DataWrite(y);
94 1 LCD_DataWrite(x);
95 1 LCD_DataWrite(i);
96 1 }
97 //========================================================================
98 // 函数: LCDBYTE Get_Dot_LCD(DOTBYTE x,DOTBYTE y)
99 // 描述: 获取在LCD的真实坐标系上的X、Y点上的当前填充色数据
100 // 参数: x X轴坐标
101 // y Y轴坐标
102 // 返回: 该点的颜色
103 // 备注: 暂不使用该函数
104 // 版本:
105 // 2006/10/15 First version
106 //========================================================================
107 LCDBYTE Get_Dot_LCD(DOTBYTE x,DOTBYTE y)
108 {
109 1 LCDBYTE Read_Data;
110 1 //可根据自己的需要填写代码
111 1 LCD_RegWrite(0x00);
112 1 LCD_DataWrite(y);
113 1 LCD_DataWrite(x);
114 1 Read_Data = LCD_DataRead(); //
115 1 return Read_Data;
116 1 }
C51 COMPILER V8.16 LCD_DRIVER_USER 12/22/2008 00:11:06 PAGE 3
117
118 //========================================================================
119 // 函数: void Set_Dot_Addr_LCD(int x,int y)
120 // 描述: 设置在LCD的真实坐标系上的X、Y点对应的RAM地址
121 // 参数: x X轴坐标
122 // y Y轴坐标
123 // 返回: 无
124 // 备注: 仅设置当前操作地址,为后面的连续操作作好准备
125 // Mz 通用版LCD驱动程序 标准子函数
126 // 版本:
127 // 2006/10/15 First version
128 // 2007/01/09 V1.2
129 //========================================================================
130 void Set_Dot_Addr_LCD(DOTBYTE x,DOTBYTE y)
131 {
132 1 LCD_RegWrite(0x00);
133 1 LCD_DataWrite(y);
134 1 LCD_DataWrite(x);
135 1 }
136
137 //========================================================================
138 // 函数: void LCD_Fill_s(WORD Number,LCDBYTE Color)
139 // 描述: 连续填充以Color色调的Number个点
140 // 参数: Number 填充的数量 Color 像素点的颜色
141 // 返回:
142 // 备注: 该函数可能会使用到
143 // 版本:
144 // 2006/10/15 First version
145 // 2007/01/09 V1.2
146 //========================================================================
147 void LCD_Fill_s(WORD Number,LCDBYTE Color)
148 {
149 1 while(Number!=0)
150 1 {
151 2 LCD_DataWrite(Color);
152 2 Number--;
153 2 }
154 1 }
155 //========================================================================
156 // 函数: void LCD_Fill(unsigned int Data)
157 // 描述: 会屏填充以Data的数据至各点中
158 // 参数: Data 要填充的颜色数据
159 // 返回: 无
160 // 备注: Mz 通用版LCD驱动程序 标准子函数
161 // 版本:
162 // 2006/10/15 First version
163 // 2007/01/09 V1.2
164 //========================================================================
165 void LCD_Fill(LCDBYTE Data)
166 {
167 1 DOTBYTE i,j=0;
168 1 DOTBYTE uiTemp;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -