?? lcd12864.lst
字號:
C51 COMPILER V8.05a LCD12864 09/09/2007 10:45:04 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN LCD12864.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE sources\LCD12864.c BROWSE INCDIR(.\include) DEBUG OBJECTEXTEND PRINT(.\LCD1
-2864.lst) OBJECT(LCD12864.obj)
line level source
1 //*************************************************************************************************
2 //* *
3 //* ******************************LCD12864驅動程序************************** *
4 //* *
5 //*************************************************************************************************
6
7 //*************************************************************************************************
8 //* *
9 //* ******************************頭文件及宏定義************************** *
10 //* *
11 //*************************************************************************************************
12 #include <at89x51.h>
13 #include "LCDShowMap.h"
14
15 #define RST P2_0
16 #define E P2_1
17 #define RW P2_2
18 #define DI P2_3
19 #define CS1 P2_5
20 #define CS2 P2_4
21 #define LCDPORT P0
22
23 #define BUSYSTATUS P0_7 //忙狀態位。
24
25 #define LCDSTARTROW 0xC0 //設置起始行指令。
26 #define LCDPAGE 0xB8 //設置頁指令。
27 #define LCDLINE 0x40 //設置列指令。
28
29
30 //*************************************************************************************************
31 //* *
32 //* ********************************讀忙標志位********************************* *
33 //* *
34 //*************************************************************************************************
35 bit bCheckBusy()
36 {
37 1 LCDPORT=0xFF;
38 1 RW=1;
39 1 DI=0;
40 1 E=1;
41 1 E=0;
42 1 return BUSYSTATUS;
43 1 }
44
45 //*************************************************************************************************
46 //* *
47 //* ********************************寫數據********************************* *
48 //* *
49 //*************************************************************************************************
50 void vWriteData(unsigned char ucData)
51 {
52 1 while(bCheckBusy());
53 1 LCDPORT=0xFF;
54 1
C51 COMPILER V8.05a LCD12864 09/09/2007 10:45:04 PAGE 2
55 1 RW=0;
56 1 DI=1;
57 1 LCDPORT=ucData;
58 1 E=1;
59 1 E=0;
60 1 }
61
62 //*************************************************************************************************
63 //* *
64 //* ********************************寫指令********************************* *
65 //* *
66 //*************************************************************************************************
67 void vWriteCMD(unsigned char ucCMD)
68 {
69 1 while(bCheckBusy());
70 1 LCDPORT=0xFF;
71 1
72 1 RW=0;
73 1 DI=0;
74 1 LCDPORT=ucCMD;
75 1 E=1;
76 1 E=0;
77 1 }
78
79 //*************************************************************************************************
80 //* *
81 //* ********************************LCD初始化函數******************************* *
82 //* *
83 //*************************************************************************************************
84 void vLCDInitialize()
85 {
86 1 CS1=1;
87 1 CS2=1;
88 1 vWriteCMD(0x38); //8位形式,兩行字符。
89 1 vWriteCMD(0x0F); //開顯示。
90 1 vWriteCMD(0x01); //清屏。
91 1 vWriteCMD(0x06); //畫面不動,光標右移。
92 1 vWriteCMD(LCDSTARTROW); //設置起始行。
93 1 }
94
95 //*************************************************************************************************
96 //* *
97 //* ******************************顯示自定義行********************************* *
98 //* *
99 //*************************************************************************************************
100 //在8×128的格子里顯示自定義長度的一行
101 void vShowCustomRow(unsigned char ucPage,unsigned char ucLine,unsigned char ucWidth,unsigned char *ucaRow)
102 {
103 1 unsigned char ucCount; //取值范圍:ucPage:0~7;ucLine:0~127;
104 1 if(ucLine<64) //ucWidth:0~127;ucLine+ucWidth<128。
105 1 {
106 2 CS1=1;
107 2 CS2=0;
108 2 vWriteCMD(LCDPAGE+ucPage);
109 2 vWriteCMD(LCDLINE+ucLine);
110 2 if((ucLine+ucWidth)<64)
111 2 {
112 3 for(ucCount=0;ucCount<ucWidth;ucCount++)
113 3 vWriteData(*(ucaRow+ucCount));
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -