?? 240160b.lst
字號:
C51 COMPILER V7.09 240160B 08/23/2004 10:54:00 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE 240160B
OBJECT MODULE PLACED IN 240160b.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.exe 240160b.c DB OE
line level source
1 /****************************************Copyright (c)**************************************************
2 ** 重慶東電通信技術(shù)有限公司
3 ** 生產(chǎn)技術(shù)部
4 **
5 ** http://www.dodem.com
6 **
7 **--------------文件信息--------------------------------------------------------------------------------
8 ** 文 件 名: 240160b.c
9 ** 創(chuàng) 建 人: 陳龍永
10 ** 最后修改日期: 2004年7月5日
11 ** 描 述: 臺灣晶采光電液晶240x160B,控制器SED1335F的驅(qū)動模塊,包括圖形方式下字符,漢字的顯示程式
12 **--------------歷史版本信息----------------------------------------------------------------------------
13 ** 創(chuàng)建人: 陳龍永
14 ** 版 本: V1.0
15 ** 日 期: 2004年7月5日
16 ** 描 述: 原始版本
17 **
18 **------------------------------------------------------------------------------------------------------
19 ** 修改人:
20 ** 版 本:
21 ** 日 期:
22 ** 描 述:
23 **
24 **--------------當(dāng)前版本修訂------------------------------------------------------------------------------
25 ** 修改人: 陳龍永
26 ** 日 期: 2004年7月5日
27 ** 描 述: 240x160B液晶驅(qū)動函數(shù)
28 **
29 **------------------------------------------------------------------------------------------------------
30 ********************************************************************************************************/
31 /*******************************************************************************************************
32 ** 液晶接口情況表述:
33 ** No: LCM ----- F022
34 ** ---------------------
35 ** 1...RESET..... 復(fù)位 復(fù)位信號,低電平有效,阻容式復(fù)位電路
36 ** 2.../RD ..... P13 讀有效
37 ** 3.../WR ..... P14 寫有效
38 ** 4.../CS ..... P15 液晶片選信號,低有效
39 ** 5...A0 ..... P16 寄存器選擇信號,命令數(shù)據(jù)方式選擇
40 ** 6...D0 ..... P6.0 數(shù)據(jù)總線 D0
41 ** 7...D1 ..... P6.1 數(shù)據(jù)總線 D1
42 ** 8...D2 ..... P6.2 數(shù)據(jù)總線 D2
43 ** 9...D3 ..... P6.3 數(shù)據(jù)總線 D3
44 ** 10..D4 ..... P6.4 數(shù)據(jù)總線 D4
45 ** 11..D5 ..... P6.5 數(shù)據(jù)總線 D5
46 ** 12..D6 ..... P6.6 數(shù)據(jù)總線 D6
47 ** 13..D7 ..... P6.7 數(shù)據(jù)總線 D7
48 ** 14..VDD ..... +3.3V 電源
49 ** 15..VSS ..... GND 地線
50 ** 16..VLCD ..... +25V 25V電壓輸出
51 ** 17..VADJ ..... VO 對比度調(diào)整輸入
52 ** 18..ELON ..... P17 背光打開/關(guān)閉
53 19,20 ..... NC
54
55 ** 間接方式,無須上拉電阻,所以數(shù)據(jù)口和控制口應(yīng)設(shè)置為推挽輸出方式
C51 COMPILER V7.09 240160B 08/23/2004 10:54:00 PAGE 2
56 ********************************************************************************************************/
57
58
59 #include "c8051F020.h"
60 #include "dotlib1.h"
61
62
63 #define Uchar unsigned char
64 #define Uint unsigned int
65 //240x160b,SED1335定義
66 #define paraP9 0x1e //相對于240x160
67 //光標(biāo)移動方向設(shè)置,后續(xù)參數(shù):無
68 #define CsrDirR 0x4c
69 #define CsrDirL 0x4d
70 #define CsrDirU 0x4e
71 #define CsrDirD 0x4f
72 /* 該指令規(guī)定了光標(biāo)指針CSR在計算機讀寫顯示數(shù)據(jù)后自動修復(fù)的方向,從顯示效果來說,
73 就是光標(biāo)移動的方向設(shè)置.該指令的兩個參數(shù)位DR1,DR0:
74 ===========================
75 DR1 DR0 自動定位方向
76 ===========================
77 0 0 右
78 0 1 左
79 1 0 上
80 1 1 下
81 ===========================
82 */
83
84 //光標(biāo)指針設(shè)置
85 #define CsrW 0x46
86 /* 該指令設(shè)置了光標(biāo)指針CSR.該指針有兩個功能:1.作為當(dāng)前光標(biāo)顯示的位置;2.作為
87 顯示存儲器當(dāng)前的地址指針.2個參數(shù):CSRL,CSRH
88 [說明]:當(dāng)光標(biāo)指針指向有效顯示區(qū)域之外時,光標(biāo)將自動消失,但不影響顯示數(shù)據(jù)的讀寫.
89 光標(biāo)指針在計算機的每次讀寫顯示數(shù)據(jù)操作后,將根據(jù)最近設(shè)置的光標(biāo)指針移動方向而自動
90 修正.光標(biāo)指針不受畫面滾動操作的影響.
91 */
92
93 //讀取光標(biāo)指針
94 #define CsrR 0x47
95 /* 該指令代碼寫入后,計算機將從SED1335等數(shù)據(jù)通道讀出當(dāng)前的光標(biāo)指針值.光標(biāo)指針讀
96 出的順序是先CSRL再CSRH.
97 */
98
99 //數(shù)據(jù)寫入設(shè)置,后續(xù)參數(shù)N字節(jié)
100 #define mWrite 0x42
101 /*該指令寫入后將允許計算機連續(xù)的向顯示存儲器內(nèi)寫入數(shù)據(jù),寫入的單元地址由光標(biāo)指針
102 CSR提供,寫操作完成后光標(biāo)指針自動根據(jù)所設(shè)置的光標(biāo)指針移動方向進(jìn)行修改,顯示數(shù)據(jù)
103 寫入操作在計算機寫入下一指令代碼后結(jié)束.
104 */
105
106 //數(shù)據(jù)讀取設(shè)置,后續(xù)參數(shù)N字節(jié)
107 #define mRead 0x43
108 /*該指令寫入將允許計算機連續(xù)地從顯示存儲器內(nèi)讀取數(shù)據(jù),讀取的單元地址由光標(biāo)指針
109 CSR提供讀操作完成后,光標(biāo)指針自動根據(jù)所設(shè)定的光標(biāo)移動方向進(jìn)行修改.顯示數(shù)據(jù)讀取
110 操作在計算機寫入下一個指令代碼后結(jié)束.
111 */
112
113 ////////////////////////////////////////////////////////////////////
114 //
115 /////////////液晶MODULE 240x160b,SED1335F0B驅(qū)動函數(shù)/////////////////
116 //
117 ////////////////////////////////////////////////////////////////////
C51 COMPILER V7.09 240160B 08/23/2004 10:54:00 PAGE 3
118 //-----------------------------------------------------------------------------
119 // 函數(shù):void WriteCmd(unsigned char cmd)(私有函數(shù),其他模塊不能調(diào)用)
120 //-----------------------------------------------------------------------------
121 /******************************************************************************
122 調(diào)用方式(Function):WriteCmd()
123 函數(shù)描述(Description):指令寫入函數(shù)
124 入口參數(shù)(Parameters):無
125 返回值(Returns):無
126 創(chuàng)建時間:16:07,PM,2004.4.19
127 修改時間:無
128 修改原因:無
129 ******************************************************************************/
130 void WriteCmd(Uchar cmd)
131 {
132 1 RD=1;
133 1 A0=1;
134 1 P6=cmd;
135 1 CS=0;
136 1 WR=0;
137 1 WR=1;
138 1 CS=1;
139 1 }
140
141
142 //-----------------------------------------------------------------------------
143 // 函數(shù):void WriteData(unsigned char datalcd) (私有函數(shù),其他模塊不能調(diào)用)
144 //-----------------------------------------------------------------------------
145 /******************************************************************************
146 調(diào)用方式(Function):WriteData(datalcd)
147 函數(shù)描述(Description):數(shù)據(jù)和指令的附屬參數(shù)寫入函數(shù)
148 入口參數(shù)(Parameters):
149 datalcd--待寫入的顯示數(shù)據(jù)或指令的附屬參數(shù)
150 返回值(Returns):無
151 創(chuàng)建時間:16:07,PM,2004.4.19
152 修改時間:無
153 修改原因:無
154 ******************************************************************************/
155 void WriteData(Uchar datalcd){
156 1
157 1 RD=1;
158 1 A0=0;
159 1 P6=datalcd;
160 1 CS=0;
161 1 WR=0;
162 1 WR=1;
163 1 CS=1;
164 1
165 1 }
166
167 //-----------------------------------------------------------------------------
168 // 函數(shù):unsigned char ReadfromLcd(void) (私有函數(shù),其他模塊不能調(diào)用)
169 //-----------------------------------------------------------------------------
170 /******************************************************************************
171 調(diào)用方式(Function):ReadfromLcd()
172 函數(shù)描述(Description):數(shù)據(jù)和光標(biāo)地址讀出函數(shù)
173 入口參數(shù)(Parameters):無
174 返回值(Returns):數(shù)據(jù)或光標(biāo)地址
175 創(chuàng)建時間:16:07,PM,2004.4.19
176 修改時間:無
177 修改原因:無
178 ******************************************************************************/
179 Uchar ReadfromLcd(void){
C51 COMPILER V7.09 240160B 08/23/2004 10:54:00 PAGE 4
180 1
181 1 Uchar rdata;
182 1
183 1 P6=0xff;
184 1 A0=1;
185 1 RD=0;
186 1 rdata=P6;
187 1 CS=0;
188 1 RD=1;
189 1 CS=1;
190 1 return(rdata);
191 1 }
192
193 //-----------------------------------------------------------------------------
194 // 函數(shù):void LcdInit(void)
195 //-----------------------------------------------------------------------------
196 /******************************************************************************
197 調(diào)用方式(Function):LcdInit()
198 函數(shù)描述(Description):液晶初始化函數(shù)
199 入口參數(shù)(Parameters):無
200 返回值(Returns):無
201 創(chuàng)建時間:16:07,PM,2004.4.19
202 修改時間:無
203 修改原因:無
204 ******************************************************************************/
205
206 void LcdInit(void){
207 1
208 1 WriteCmd(0x40); //進(jìn)行system set,要寫入8個參數(shù)
209 1 WriteData(0x30); //單屏結(jié)構(gòu),8×8點陣
210 1 WriteData(0x87); //字符寬度位7
211 1 WriteData(0x07); //字符高度為7
212 1 WriteData(0x1d); //一行顯示30個字符 (C/R)
213 1 WriteData(0x42); //頻率轉(zhuǎn)化
214 1 WriteData(0x9f); //每幀掃描160行 (L/F)
215 1 WriteData(0x1e); //一行共有30個字符
216 1 WriteData(0);
217 1
218 1 WriteCmd(0x44); //進(jìn)行Scroll,要寫入10個參數(shù)
219 1 WriteData(0x00);
220 1 WriteData(0x00);
221 1 WriteData(0xa0); //第一顯示區(qū)地址和所占的行數(shù)160行
222 1 WriteData(0xc0);
223 1 WriteData(0x12);
224 1 WriteData(0xa0); //第二顯示區(qū)地址和所占的行數(shù)160行
225 1 WriteData(0x80);
226 1 WriteData(0x25); //第三顯示區(qū)地址高8位、低8位和所占的行數(shù)160行
227 1 // WriteData(0x00);
228 1 // WriteData(0x00); //第四顯示區(qū)地址高8位、低8位和所占的行數(shù)160行
229 1
230 1 WriteCmd(0x5a); //以點為單位的水平移動量
231 1 WriteData(0x00); //水平卷動,初始化時必須清零
232 1
233 1 WriteCmd(0x5b); //顯示合成方式設(shè)置
234 1 WriteData(0x0c); //三屏圖形方式相加,或邏輯
235 1
236 1 WriteCmd(0x59); // 寫入指令代碼0x59
237 1 WriteData(0x04); // 顯示1區(qū)開顯示,2、3、4區(qū)關(guān)顯示;光標(biāo)關(guān)顯示
238 1 }
239
240 //-----------------------------------------------------------------------------
241 // 函數(shù):void LcdClr(void)
C51 COMPILER V7.09 240160B 08/23/2004 10:54:00 PAGE 5
242 //-----------------------------------------------------------------------------
243 /******************************************************************************
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -