📄 sc_t6963.lst
字号:
192 1 }
193
194 /***************************************************************
195 Function: // T6963_OutCommand1byte
196 Description:// 写1个参数的命令
197 Calls: // T6963_OutData T6963_OutCommand0byte
198 ***************************************************************/
199 void T6963_OutCommand1byte(uchar uData,uchar uCommand)
200 {
201 1 T6963_OutData(uData);
202 1 T6963_OutCommand0byte(uCommand);
203 1 }
204
205 /***************************************************************
206 Function: // T6963_OutCommand2byte
207 Description:// 写2个参数的命令
208 Calls: // T6963_OutData T6963_OutCommand0byte
209 ***************************************************************/
210 void T6963_OutCommand2byte(uchar Data1,uchar Data2,uchar uCommand)
211 {
212 1 T6963_OutData(Data1);
213 1 T6963_OutData(Data2);
214 1 T6963_OutCommand0byte(uCommand);
215 1 }
216
217 //----------------------------------------------------------------------------------//
218 //--------------------------------高层函数------------------------------------------//
219 //----------------------------------------------------------------------------------//
220
221 /***************************************************************
222 Function: // LcdCls
223 Description:// 液晶屏初始化
224 ***************************************************************/
225
226 void LcdInit(void)
227 {
228 1 T6963_COMMAND_REG &= T6963_RESET_ENABLE;
229 1 T6963_Delay(50); //将RESET脚电平拉低保持5个时钟周期以上(液晶屏使用6MHZ的晶振)
230 1 T6963_COMMAND_REG |= T6963_RESET_DISABLE; //LCM复位
231 1 T6963_OutCommand0byte(T6963_DISPLAY_OFF); //关闭显示
232 1 T6963_OutCommand2byte(0x00,0x00,T6963_SET_TXT_HOME_ADD); //设置文本显存页起始地址至0x0000
233 1 T6963_OutCommand2byte(30,0x00,T6963_SET_TXT_AREA); //设置文本区域(字符列数)
234 1 T6963_OutCommand2byte(0x00,0x10,T6963_SET_GRAPH_HOME_ADD); //设置图形显存页起始地址至0x1000
235 1 T6963_OutCommand2byte(30,0x00,T6963_SET_GRAPH_AREA); //设置文本区域(点阵列数/8)
236 1 T6963_OutCommand0byte(T6963_CUR_8LINE); //设置光标形状
237 1 T6963_OutCommand0byte(T6963_OR_MODE); //设置文本与图形的叠加模式
238 1 // T6963_OutCommand0byte(T6963_DISPLAY_ON+T6963_GRAPH_ON+T6963_TXT_ON+T6963_BLINK_ON); //打开显示
239 1 T6963_OutCommand0byte(T6963_DISPLAY_ON+T6963_GRAPH_ON+T6963_TXT_ON); //打开显示
240 1 }
241 /***************************************************************
C51 COMPILER V7.20 SC_T6963 03/28/2008 14:02:55 PAGE 5
242 Function: // LcdCls
243 Description:// 清屏(清全部缓存)
244 ***************************************************************/
245 void LcdCls(void)
246 {
247 1 uint i;
248 1 // uint j = 0;
249 1 T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
250 1 for(i = 0x00;i < 0x8000;i++)
251 1 {
252 2 T6963_OutData(0x00);
253 2 // if(i % 0x1000 == 0) j++;
254 2 }
255 1 T6963_OutCommand0byte(T6963_AUTO_RESET);
256 1 }
257
258 /***************************************************************
259 Function: // LcdClsTxt
260 Description:// 清指定的文本页
261 Input: TPage: 要显示的文本页号 (0-4)
262 ***************************************************************/
263 void LcdClsTxt(uchar TPage)
264 {
265 1 uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE;
266 1 uint i;
267 1 T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
268 1 T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
269 1 for(i = 0;i < T6963_TXT_PAGESIZE; i++)
270 1 {
271 2 T6963_OutData(0x00);
272 2 }
273 1 T6963_OutCommand0byte(T6963_AUTO_RESET);
274 1 }
275
276 /***************************************************************
277 Function: // LcdClsGraph
278 Description:// 清指定的文本页
279 Input: GPage: 要显示的图形页号 (0-6)
280 ***************************************************************/
281 void LcdClsGraph(uchar GPage)
282 {
283 1 uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE;
284 1 uint i;
285 1 T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
286 1 T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
287 1 for(i = 0;i < T6963_GRAPH_PAGESIZE; i++)
288 1 {
289 2 T6963_OutData(0x00);
290 2 }
291 1 T6963_OutCommand0byte(T6963_AUTO_RESET);
292 1 }
293
294 /***************************************************************
295 Function: // LcdTxtLayer
296 Description:// 切换显示指定文本页
297 Input: TPage: 要显示的文本页号 (0-4)
298 ***************************************************************/
299 void LcdTxtLayer(uchar TPage)
300 {
301 1 uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE;
302 1 T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8),T6963_SET_TXT_HOME_ADD);
303 1 }
C51 COMPILER V7.20 SC_T6963 03/28/2008 14:02:55 PAGE 6
304
305 /***************************************************************
306 Function: // GraphLayer
307 Description:// 切换显示指图形页
308 Input: GPage: 要显示的文本页号 (0-6)
309 ***************************************************************/
310 void LcdGraphLayer(uchar GPage)
311 {
312 1 uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE;
313 1 T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8),T6963_SET_GRAPH_HOME_ADD);
314 1 }
315
316
317
318
319
320 /***************************************************************
321 Function: // LcdPutChar
322 Description:// 在屏幕指定位置显示一个字符,应用于文本模式下
323 8*8大小的字符
324 T6963自带的字库不好用,字符代码没有和ASCII码对应,显示字符需要查表.
325 Input: TPage: 要显示的文本页号 (0-4)
326 CharX: 字符显示的横坐标 0---29
327 CharY: 字符显示的纵坐标 0---15
328 uChar: 字符对应的代码,需要查表
329 ***************************************************************/
330 void LcdPutChar(uchar TPage, uchar CharX,uchar CharY,uchar uChar)
331 {
332 1 uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + CharX + CharY*30;
333 1 T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
334 1 T6963_OutCommand1byte(uChar,T6963_DATA_WRITE_NO_ADP);
335 1 }
336
337 /***************************************************************
338 Function: // LcdStr
339 Description:// 应用于文本模式下,在屏幕指定位置显示字符串
340 格式为 2006-09-13
341 Input: TPage: 要显示的文本页号 (0-4)
342 StrX: 字符串在屏幕上显示的横坐标 0---29
343 StrY: 字符串在屏幕上显示的纵坐标 0---15
344 uString: 字符串存储的首地址
345 ***************************************************************/
346 void LcdStr(uchar TPage,uchar StrX,uchar StrY,uchar *uString)
347 {
348 1 uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + StrX + StrY*30;
349 1 uchar i;
350 1 T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
351 1 T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
352 1 for(i = 0; i < strlen(uString); i++)
353 1 {
354 2 T6963_OutData(*(uString+i) - 0x20);
355 2 }
356 1 T6963_OutCommand0byte(T6963_AUTO_RESET);
357 1 }
358
359 /***************************************************************
360 Function: // LcdClearStr
361 Description:// 应用于文本模式下,清除屏幕指定位置字符串
362 Input: TPage: 要显示的文本页号 (0-4)
363 StrX: 清除的字符串在屏幕上显示的横坐标 0---29
364 StrY: 清除的字符串在屏幕上显示的纵坐标 0---15
365 Length: 清除的字符串的长度
C51 COMPILER V7.20 SC_T6963 03/28/2008 14:02:55 PAGE 7
366 ***************************************************************/
367 void LcdClearStr(uchar TPage,uchar StrX,uchar StrY,uchar Length)
368 {
369 1 uint Add = T6963_TXT_HOME_ADD + TPage * T6963_TXT_PAGESIZE + StrX + StrY*30;
370 1 uchar i;
371 1 T6963_OutCommand2byte((uchar)Add, (uchar)(Add >> 8), T6963_SET_ADD_POINTER);
372 1 T6963_OutCommand0byte(T6963_DATA_AUTO_WRITE);
373 1 for(i = 0;i < Length;i++)
374 1 T6963_OutData(0x00);
375 1 T6963_OutCommand0byte(T6963_AUTO_RESET);
376 1 }
377
378 /***************************************************************
379 Function: // LcdBmp
380 Description:// 在屏幕指定位置显示一个图形(汉字,字符),
381 应用于图形模式下
382 Input: GPage: 要显示的图形页号 (0-6)
383 BmpX: 图形显示的横坐标 0×8---29×8
384 BmpY: 图形显示的纵坐标 0---127
385 BmpWidth: 图形的宽度 1×8---30×8
386 BmpHeigh: 图形的高度 1---128
387 BmpAdd: 图形存储数组的首地址
388 ***************************************************************/
389 void LcdBmp(uchar GPage, uchar BmpX, uchar BmpY, uchar* BmpAdd)
390 {
391 1 uint Add = T6963_GRAPH_HOME_ADD + GPage * T6963_GRAPH_PAGESIZE + BmpX/8 + BmpY*30;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -