?? t6963c.lst
字號:
C51 COMPILER V7.01 T6963C 04/27/2007 22:08:22 PAGE 1
C51 COMPILER V7.01, COMPILATION OF MODULE T6963C
OBJECT MODULE PLACED IN t6963c.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE t6963c.c COMPACT BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <AT89X52.h>
2 #include "t6963c.h"
3 #include "fangkuai.h"
4 #include "typedef.h"
5
6 static uint txthome=0x0000;
7 static uint grshome=0x1000;
8
9 //LCD接口定義
10 sfr PORTD = 0x90 ;
11 sbit PCD = P2^7 ;
12 sbit PWR = P2^5 ;
13 sbit PRD = P2^6 ;
14
15 //常量數據
16 unsigned char code CCTable[] = {
17 /*馮 CB7EB */
18 0x00,0x47,0x20,0x29,0x09,0x09,0x11,0x13,0x21,0xE0,0x2F,0x20,0x20,0x20,0x20,0x20,
19 0x00,0xF8,0x08,0x08,0x10,0x10,0x10,0xFC,0x04,0x04,0xF4,0x04,0x04,0x04,0x28,0x10,
20
21 /*燕 CD1E0 */
22 0x04,0x04,0xFF,0x04,0x17,0x10,0xF7,0x14,0x34,0xD7,0x00,0x28,0x24,0x66,0xC2,0x00,
23 0x40,0x40,0xFE,0x40,0xC0,0x14,0xDE,0x50,0x52,0xCE,0x00,0x88,0x44,0x66,0x22,0x00,
24
25 /*輝 CBBD4 */
26 0x10,0x13,0x96,0x58,0x51,0xFE,0x28,0x28,0x29,0x28,0x28,0x2B,0x4C,0x48,0x80,0x00,
27 0x00,0xFE,0x44,0x40,0xFC,0x40,0xA0,0xA0,0xFC,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,
28
29 /*制 CD6C6 */
30 0x24,0x34,0x24,0x3F,0x44,0x04,0x7F,0x04,0x3F,0x24,0x24,0x24,0x24,0x27,0x05,0x04,
31 0x04,0x04,0x24,0xA4,0x24,0x24,0xA4,0x24,0xA4,0xA4,0xA4,0xA4,0x84,0x84,0x14,0x08,
32
33 /*作 CD7F7 */
34 0x08,0x0C,0x09,0x13,0x12,0x34,0x50,0x90,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
35 0x80,0x80,0x00,0xFE,0x80,0x88,0xFC,0x80,0x80,0x84,0xFE,0x80,0x80,0x80,0x80,0x80,
36
37 /*得 CB5C3 */
38 0x13,0x1A,0x23,0x4A,0x8B,0x10,0x13,0x30,0x50,0x97,0x10,0x11,0x11,0x11,0x10,0x10,
39 0xF8,0x08,0xF8,0x08,0xF8,0x00,0xFE,0x10,0x10,0xFE,0x10,0x10,0x10,0x10,0x50,0x20,
40
41 /*分 CB7D6 */
42 0x08,0x0C,0x08,0x10,0x10,0x20,0x40,0x9F,0x04,0x04,0x04,0x04,0x08,0x10,0x20,0x40,
43 0x80,0x80,0x40,0x20,0x30,0x18,0x0E,0xE4,0x20,0x20,0x20,0x20,0x20,0xA0,0x40,0x00,
44
45 /*等 CB5C8 */
46 0x20,0x3E,0x28,0x45,0x85,0x3F,0x01,0xFF,0x00,0x00,0x7F,0x04,0x02,0x02,0x00,0x00,
47 0x80,0xFC,0xA0,0x10,0x10,0xF8,0x00,0xFE,0x20,0x20,0xFC,0x20,0x20,0x20,0xA0,0x40,
48
49 /*級 CBCB6 */
50 0x10,0x13,0x20,0x24,0x44,0xF8,0x10,0x21,0x7D,0x41,0x02,0x1A,0xE4,0x08,0x11,0x06,
51 0x00,0xF8,0x88,0x88,0x90,0x90,0xBE,0x44,0x44,0x48,0x28,0x10,0x30,0x48,0x8E,0x04,
52
53 /*按 CB0B4 */
54 0x10,0x10,0x10,0x13,0xFE,0x10,0x14,0x1B,0x30,0xD1,0x11,0x10,0x10,0x11,0x56,0x20,
55 0x40,0x20,0x20,0xFE,0x04,0x40,0x40,0xFE,0x88,0x10,0x90,0x60,0x58,0x8E,0x04,0x00,
C51 COMPILER V7.01 T6963C 04/27/2007 22:08:22 PAGE 2
56
57 /*開 CBFAA */
58 0x00,0x7F,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x08,0x08,0x10,0x20,0x40,0x00,
59 0x00,0xFE,0x20,0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
60
61 /*始 CCABC */
62 0x10,0x18,0x10,0x10,0xFC,0x25,0x24,0x44,0x44,0x28,0x18,0x14,0x22,0x42,0x80,0x00,
63 0x20,0x30,0x20,0x48,0x84,0xFE,0x84,0x00,0xFC,0x84,0x84,0x84,0x84,0xFC,0x84,0x00,
64
65 /*太 CCCAB */
66 0x01,0x01,0x01,0x01,0x7F,0x01,0x01,0x01,0x02,0x02,0x04,0x05,0x08,0x10,0x20,0x40,
67 0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x80,0x40,0x20,0x10,0x98,0xCC,0x86,0x04,
68
69 /*棒 CB0F4 */
70 0x20,0x20,0x27,0x20,0xFB,0x20,0x77,0x69,0xA2,0xAD,0x20,0x27,0x20,0x20,0x20,0x20,
71 0x40,0x40,0xFC,0x40,0xF8,0x80,0xFE,0x20,0x58,0xF6,0x40,0xFC,0x40,0x40,0x40,0x40,
72
73 /*了 CC1CB */
74 0x00,0x7F,0x00,0x00,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x05,0x02,
75 0x00,0xFC,0x18,0x60,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
76
77 /*! CA3A1 */
78 0x00,0x00,0x00,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x00,
79 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
80
81 };
82
83
84 /////////////////////////底層調用小函數/////////////////////////////////////////
85 ////////////////////////////////////////////////////////////////////////////////
86
87 //延時幾微秒
88 void delay(void)
89 {
90 1 uchar i=0;
91 1 i++;
92 1 i++;
93 1 }
94 //讀狀態位0和1,sta0=1:指令讀寫狀態準備好;sta1=1:數據讀寫狀態準備好
95 void ST01Read(void)
96 {
97 1
98 1 PORTD=0XFF;
99 1 while(1){
100 2 PCD=1;
101 2 PRD=0;
102 2 PRD=1;
103 2 if ((PORTD^0==1)&&(PORTD^1==1)) break; //判斷指令、數據讀寫狀態是否準備好
104 2
105 2 }
106 1 }
107
108 //讀狀態位sta2, 檢測數據自動 讀 狀態是否準備好
109 static void ST2Read(void)
110 {
111 1
112 1 PORTD=0XFF;
113 1 while(1){
114 2 PCD=1;
115 2 PRD=0;
116 2 PRD=1;
117 2 if (PORTD^2==1) break;
C51 COMPILER V7.01 T6963C 04/27/2007 22:08:22 PAGE 3
118 2 }
119 1 }
120
121 //讀狀態位sta3, sta3=1:數據自動 寫 狀態準備好
122 static void ST3Read(void){
123 1
124 1 PORTD=0XFF;
125 1 while(1)
126 1 {
127 2 PCD=1;
128 2 PRD=0;
129 2 PRD=1;
130 2 if (PORTD^3==1) break;
131 2 }
132 1 }
133
134 //讀狀態位sta6, 檢測屏讀或屏拷貝出錯狀態:sta6=1:出錯;sta6=0:正確
135 static void ST6Read(void)
136 {
137 1
138 1 PORTD=0XFF;
139 1 while(1)
140 1 {
141 2 PCD=1;
142 2 PRD=0;
143 2 PRD=1;
144 2 if (PORTD^6==0) break;
145 2 }
146 1 }
147
148 //////////////////////////////////對T6963C進行讀寫數據/////////////////////////////////
149
150 //寫數據
151 static void WRData(uchar DData)
152 {
153 1 ST01Read();
154 1 PCD=0;
155 1 PORTD=DData;
156 1 PWR=0;
157 1 PWR=1;
158 1 }
159
160 ///讀數據
161 static void RDData(void)
162 {
163 1 ST01Read();
164 1 PCD=0;
165 1 PRD=0;
166 1 PRD=1;
167 1 }
168
169 //寫命令
170 static void WRCommand(uchar command)
171 {
172 1 ST01Read();
173 1 PCD=1;
174 1 PWR=0;
175 1 PORTD=command;
176 1 PWR=1;
177 1 }
178
179 //單參數指令
C51 COMPILER V7.01 T6963C 04/27/2007 22:08:22 PAGE 4
180 static void WRCommandOne(uchar data1,uchar command)
181 {
182 1 WRData(data1); //寫數據
183 1 WRCommand(command); //寫命令
184 1 }
185 //雙參數指令
186 static void WRCommandTwo(uchar data1,uchar data2,uchar command)
187 {
188 1 WRData(data1); //寫數據
189 1 WRData(data2); //寫數據
190 1 WRCommand(command); //寫命令
191 1 }
192
193 ////////////////////////////////////////////////////////////////////////////////////
194
195 /////////////////////////////T6963C常用處理程序/////////////////////////////////////
196 ////////////////////////////////////////////////////////////////////////////////////
197
198 //初始化T6963 LCD 顯示
199 void Init_LCD_Graphic(void)
200 {
201 1
202 1 //設置文本顯示首地址
203 1
204 1 WRCommandTwo(0x00,0x00,0x40);
205 1
206 1 //設置文本顯示區寬度 40字節
207 1
208 1 WRCommandTwo(0x10,0x00,0x41);
209 1
210 1 //設置圖形顯示區首地址
211 1
212 1 WRCommandTwo(0x00,0x10,0x42); //首地址0x0800
213 1
214 1 //設置圖形顯示區寬度
215 1
216 1 WRCommandTwo(0x10,0x00,0x43); //40字節
217 1
218 1 //設置CGRAM的首地址
219 1
220 1 WRCommandTwo(0x03,0x00,0x22);
221 1
222 1 //設置顯示方式
223 1
224 1 WRCommand(0x80); //啟用內部字符發生器,顯示方式是文本與圖形邏輯或
225 1
226 1 //設置顯示狀態
227 1
228 1 WRCommand(0x9f); //啟用光標閃爍、光標顯示、文本顯示、圖形顯示
229 1
230 1 }
231
232 //清顯示RAM
233 void ClrGraphic(void){
234 1 uint i;
235 1 //設置顯示地址
236 1
237 1 WRCommandTwo(0x00,0x00,0x24);
238 1
239 1 //進入自動寫方式
240 1
241 1 WRCommand(0xb0);
C51 COMPILER V7.01 T6963C 04/27/2007 22:08:22 PAGE 5
242 1 //清8KRAM
243 1
244 1 for(i=0;i<256;i++){
245 2
246 2 WRData(0x00);
247 2 }
248 1 //退出自動寫方式
249 1
250 1 WRCommand(0xb2);
251 1 }
252
253 /////////////////////////////////////////////////////////////////////////
254 //***********************************************************************
255 //= 函數原型: void char_addr_Pointer_Set(uchar x, uchar y)
256 //= 功 能: 根據字符的行列設置vram地址
257 //= 參 數: x行坐標,y列坐標
258 //= 返 回 值:
259 //= 函數性質:私有函數
260 //***********************************************************************
261
262 void char_addr_Pointer_Set(uchar x, uchar y)
263 {
264 1 uint iPos;
265 1 uint temp;
266 1 iPos = y * 16 + x + txthome;
267 1 temp=iPos;
268 1 y=iPos>>8;
269 1 x=temp&0x00ff;
270 1 WRCommandTwo(x,y,0x24);
271 1 }
272
273 //************************************************************************
274 //= 函數原型: void image_addr_Pointer_Set(uchar x, uchar y)
275 //= 功 能: 根據的行列設置圖形字節的地址
276 //= 參 數:
277 //= 返 回 值:
278 //= 函數性質:私有函數
279 //************************************************************************
280 void image_addr_Pointer_Set(uchar x, uchar y)
281 {
282 1 uint iPos;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -