📄 drivert6963.lst
字号:
C51 COMPILER V8.08 DRIVERT6963 06/18/2008 01:56:31 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE DRIVERT6963
OBJECT MODULE PLACED IN .\4.Obj\DriverT6963.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 3.Source\DriverT6963.c BROWSE INCDIR(.\2.Inc) DEBUG OBJECTEXTEND PRINT(.\5.
-List\DriverT6963.lst) OBJECT(.\4.Obj\DriverT6963.obj)
line level source
1 /**********************************************************************************************
2 ***模块名称: T6963 驱动库 ***
3 ***模块功能: ***
-
4 ***作 者: METAL MAX ***
5 ***调用方式: ***
6 ***日 志: 日期 版本 修改人 事件 ***
7 *** 2007/9/13 V1.00 METAL MAX 搭建程序框架 ***
8 *** 2007/9/14 V1.01 METAL MAX 具体底层程序添加 ***
9 *** 2007/9/15 V1.02 METAL MAX 具体底层程序添加 ***
10 *** 2007/9/16 V1.03 METAL MAX 具体底层程序添加 ***
11 *** 2008/5/22 V2.0 METAL MAX 将文件合成为一个库文件 ***
12 ***备 注: ***
13 **********************************************************************************************/
14 #include <intrins.h>
15 #include <reg52.h>
16 #include <math.h>
17 #include "PinDefine.h" //端口定义头文件
18 #include "DriverT6963.h" //T6963驱动库
19
20 #define CursorPointer 0X21 //设置光标指针
21 #define OffsetRegister 0X22 //设置偏移寄存器
22 #define AddrPointer 0X24 //设置地址指示器
23 //6963设置控制命令定义
24 #define TextHomeAddr 0X40 //设置正文首地址
25 #define TextArea 0X41 //设置正文区域(宽度)
26 #define GraphicHomeAddr 0X42 //设置图形首地址
27 #define GraphicArea 0X43 //设置图形区域(宽度)
28 //6963模式设置
29 #define ORModeIn 0X80 //设置片内CGROM,为或模式,
30 #define EXORModeIn 0X81 //设置片内CGROM,为异或模式,
31 #define ANDModeIn 0X83 //设置片内CGROM,为与模式
32 #define TextAttributeModeIn 0X84 //设置片内CGROM,为文本模式
33 #define ORModeEx 0X88 //设置片外CGROM,为或模式,
34 #define EXORModeEx 0X89 //设置片外CGROM,为异或模式,
35 #define ANDModeEx 0X8B //设置片外CGROM,为与模式
36 #define TextModeEx 0X8C //设置片外CGROM,为文本模式
37 //内、外部CGROM设置
38 #define CGROMIN 0X98 //
39 #define CGROMEX 0X9C //
40 //6963设置显示模式命令定义
41 //显示模式控制位定义;
42 /**************************************************************************************/
43 // 7 6 5 4 3 2 1 0
44 // 1 0 0 1 Graphic Text Cursor CursorBlink
45 // 9 x x x x H
46 /**************************************************************************************/
47 #define DisplayOff 0X90 //显示关
48
49 #define CursorOnBlinkOff 0X92 //光标开,闪光关
50 #define CursorOnBlinkOn 0X93 //光标开,闪光开
51 #define TextOnGraphicOff 0X94 //文本开,图像关
52 #define TextOffGraphicOn 0X98 //文本关,图像开
53 #define TextOnGraphicOn 0X9C //文本开,图像开
C51 COMPILER V8.08 DRIVERT6963 06/18/2008 01:56:31 PAGE 2
54 //6963设置光标式样命令定义
55 #define CursorL1 0XA0 //设置光标一行
56 #define CursorL2 0XA1 //设置光标二行
57 #define CursorL3 0XA2 //设置光标三行
58 #define CursorL4 0XA3 //设置光标四行
59 #define CursorL5 0XA4 //设置光标五行
60 #define CursorL6 0XA5 //设置光标六行
61 #define CursorL7 0XA6 //设置光标七行
62 #define CursorL8 0XA7 //设置光标八行
63 //6963数据自动读写命令定义
64 #define AutoWrite 0XB0 //设置数据自动写
65 #define AutoRead 0XB1 //设置数据自动读
66 #define AutoReset 0XB2 //设置自动复位
67 //6963数据读写命令定义
68 #define WriteIADP 0XC0 //数据自动写,地址自动增加
69 #define ReadIADP 0XC1 //数据自动读,地址自动增加
70 #define WriteDADP 0XC2 //数据自动写,地址自动减少
71 #define ReadDADP 0XC3 //数据自动读,地址自动减少
72 #define WriteNoADP 0XC4 //数据自动写,地址不变
73 #define ReanNoADP 0XC5 //数据自动读,地址不变
74 //6963屏幕闪烁命令定义
75 #define ScreenPeek 0XE0 //屏幕闪烁
76 //6963屏幕复制命令定义
77 #define ScreenCopy 0XE4 //屏幕复制
78
79 /**********************************************************************************************
80 **函数名称:LCM内部标志位查询程序组 **
81 **函数功能:查询LCM内部运行标志 **
82 **入口参数:无 **
83 **出口参数:无 **
84 **具体资源: **
85 **调用程序: **
86 **备注: **
87 **********************************************************************************************/
88 unsigned char GetLCMStatus(void) //读取状态值
89 {
90 1 unsigned char temp;
91 1 DPORT_LCM = 0XFF;
92 1 CD_LCM = 1;
93 1 CE_LCM = 0;
94 1 WR_LCM = 1;
95 1 RD_LCM = 0;
96 1 _nop_();
97 1 _nop_();
98 1 _nop_();
99 1 _nop_();
100 1 temp = DPORT_LCM;
101 1 _nop_();
102 1 RD_LCM = 1;
103 1 CE_LCM = 1;
104 1 CD_LCM = 0;
105 1 return(temp);
106 1 }
107
108 void St01Chk(void) //判断第0,1位是否为1
109 {
110 1 unsigned char temp;
111 1
112 1 do
113 1 {
114 2 temp = GetLCMStatus();
115 2 }while((temp & 0x01)&(temp & 0x02));
C51 COMPILER V8.08 DRIVERT6963 06/18/2008 01:56:31 PAGE 3
116 1 }
117
118 void AutoChk(void) //判断第2位
119 {
120 1 unsigned char temp;
121 1
122 1 do
123 1 {
124 2 temp = GetLCMStatus();
125 2 }while((temp & 0x04) & (temp &0X08));
126 1 }
127
128 void St4Chk(void) //判断第4位
129 {
130 1 unsigned char temp;
131 1
132 1 do
133 1 {
134 2 temp = GetLCMStatus();
135 2 }while(temp & 0x10);
136 1 }
137
138 void St5Chk(void) //判断第5位
139 {
140 1 unsigned char temp;
141 1
142 1 do
143 1 {
144 2 temp = GetLCMStatus();
145 2 }while(temp & 0x20);
146 1 }
147
148 void St6Chk(void) //判断第6位
149 {
150 1 unsigned char temp;
151 1
152 1 do
153 1 {
154 2 temp = GetLCMStatus();
155 2 }while(temp & 0x40);
156 1 }
157
158 void St7Chk(void) //判断第7位
159 {
160 1 unsigned char temp;
161 1
162 1 do
163 1 {
164 2 temp = GetLCMStatus();
165 2 }while(temp & 0x80);
166 1 }
167
168
169 /**********************************************************************************************
170 **函数名称: void LowWriteCmd(unsigned char CMD) **
171 **函数功能: 完成底层命令写入 **
172 **入口参数: **
173 **出口参数: **
174 **具体资源: **
175 **调用程序: **
176 **备注: **
177 **********************************************************************************************/
C51 COMPILER V8.08 DRIVERT6963 06/18/2008 01:56:31 PAGE 4
178 void LowWriteCmd(unsigned char CMD)
179 {
180 1 St01Chk();
181 1 CD_LCM = 1;
182 1 CE_LCM = 0;
183 1 RD_LCM = 1;
184 1 WR_LCM = 0;
185 1 _nop_();
186 1 DPORT_LCM = CMD;
187 1 _nop_();
188 1 WR_LCM = 1;
189 1 CE_LCM = 1;
190 1 CD_LCM = 0;
191 1 }
192
193
194 /**********************************************************************************************
195 **函数名称: **
196 **函数功能: **
197 **入口参数: **
198 **出口参数: **
199 **具体资源: **
200 **调用程序: **
201 **备注: **
202 **********************************************************************************************/
203 void LowWriteData(unsigned char DAT)
204 {
205 1 St01Chk();
206 1 CD_LCM = 0;
207 1 CE_LCM = 0;
208 1 RD_LCM = 1;
209 1 WR_LCM = 0;
210 1 _nop_();
211 1 DPORT_LCM = DAT;
212 1 _nop_();
213 1 WR_LCM = 1;
214 1 CE_LCM = 1;
215 1 CD_LCM = 0;
216 1 }
217
218
219 /**********************************************************************************************
220 **函数名称: **
221 **函数功能: **
222 **入口参数: **
223 **出口参数: **
224 **具体资源: **
225 **调用程序: **
226 **备注: **
227 **********************************************************************************************/
228 void WCIntData(unsigned char CMD, unsigned int DAT)
229 {
230 1 unsigned char temp;
231 1
232 1 temp = DAT; //lower 8 bits.
233 1 LowWriteData(temp);
234 1 temp = DAT >> 8; //uper 8 bits.
235 1 LowWriteData(temp);
236 1 LowWriteCmd(CMD);
237 1 }
238
239 /**********************************************************************************************
C51 COMPILER V8.08 DRIVERT6963 06/18/2008 01:56:31 PAGE 5
240 **函数名称: **
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -