📄 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 ** 重庆东电通信技术有限公司
3 ** 生产技术部
4 **
5 ** http://www.dodem.com
6 **
7 **--------------文件信息--------------------------------------------------------------------------------
8 ** 文 件 名: 240160b.c
9 ** 创 建 人: 陈龙永
10 ** 最后修改日期: 2004年7月5日
11 ** 描 述: 台湾晶采光电液晶240x160B,控制器SED1335F的驱动模块,包括图形方式下字符,汉字的显示程式
12 **--------------历史版本信息----------------------------------------------------------------------------
13 ** 创建人: 陈龙永
14 ** 版 本: V1.0
15 ** 日 期: 2004年7月5日
16 ** 描 述: 原始版本
17 **
18 **------------------------------------------------------------------------------------------------------
19 ** 修改人:
20 ** 版 本:
21 ** 日 期:
22 ** 描 述:
23 **
24 **--------------当前版本修订------------------------------------------------------------------------------
25 ** 修改人: 陈龙永
26 ** 日 期: 2004年7月5日
27 ** 描 述: 240x160B液晶驱动函数
28 **
29 **------------------------------------------------------------------------------------------------------
30 ********************************************************************************************************/
31 /*******************************************************************************************************
32 ** 液晶接口情况表述:
33 ** No: LCM ----- F022
34 ** ---------------------
35 ** 1...RESET..... 复位 复位信号,低电平有效,阻容式复位电路
36 ** 2.../RD ..... P13 读有效
37 ** 3.../WR ..... P14 写有效
38 ** 4.../CS ..... P15 液晶片选信号,低有效
39 ** 5...A0 ..... P16 寄存器选择信号,命令数据方式选择
40 ** 6...D0 ..... P6.0 数据总线 D0
41 ** 7...D1 ..... P6.1 数据总线 D1
42 ** 8...D2 ..... P6.2 数据总线 D2
43 ** 9...D3 ..... P6.3 数据总线 D3
44 ** 10..D4 ..... P6.4 数据总线 D4
45 ** 11..D5 ..... P6.5 数据总线 D5
46 ** 12..D6 ..... P6.6 数据总线 D6
47 ** 13..D7 ..... P6.7 数据总线 D7
48 ** 14..VDD ..... +3.3V 电源
49 ** 15..VSS ..... GND 地线
50 ** 16..VLCD ..... +25V 25V电压输出
51 ** 17..VADJ ..... VO 对比度调整输入
52 ** 18..ELON ..... P17 背光打开/关闭
53 19,20 ..... NC
54
55 ** 间接方式,无须上拉电阻,所以数据口和控制口应设置为推挽输出方式
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 //光标移动方向设置,后续参数:无
68 #define CsrDirR 0x4c
69 #define CsrDirL 0x4d
70 #define CsrDirU 0x4e
71 #define CsrDirD 0x4f
72 /* 该指令规定了光标指针CSR在计算机读写显示数据后自动修复的方向,从显示效果来说,
73 就是光标移动的方向设置.该指令的两个参数位DR1,DR0:
74 ===========================
75 DR1 DR0 自动定位方向
76 ===========================
77 0 0 右
78 0 1 左
79 1 0 上
80 1 1 下
81 ===========================
82 */
83
84 //光标指针设置
85 #define CsrW 0x46
86 /* 该指令设置了光标指针CSR.该指针有两个功能:1.作为当前光标显示的位置;2.作为
87 显示存储器当前的地址指针.2个参数:CSRL,CSRH
88 [说明]:当光标指针指向有效显示区域之外时,光标将自动消失,但不影响显示数据的读写.
89 光标指针在计算机的每次读写显示数据操作后,将根据最近设置的光标指针移动方向而自动
90 修正.光标指针不受画面滚动操作的影响.
91 */
92
93 //读取光标指针
94 #define CsrR 0x47
95 /* 该指令代码写入后,计算机将从SED1335等数据通道读出当前的光标指针值.光标指针读
96 出的顺序是先CSRL再CSRH.
97 */
98
99 //数据写入设置,后续参数N字节
100 #define mWrite 0x42
101 /*该指令写入后将允许计算机连续的向显示存储器内写入数据,写入的单元地址由光标指针
102 CSR提供,写操作完成后光标指针自动根据所设置的光标指针移动方向进行修改,显示数据
103 写入操作在计算机写入下一指令代码后结束.
104 */
105
106 //数据读取设置,后续参数N字节
107 #define mRead 0x43
108 /*该指令写入将允许计算机连续地从显示存储器内读取数据,读取的单元地址由光标指针
109 CSR提供读操作完成后,光标指针自动根据所设定的光标移动方向进行修改.显示数据读取
110 操作在计算机写入下一个指令代码后结束.
111 */
112
113 ////////////////////////////////////////////////////////////////////
114 //
115 /////////////液晶MODULE 240x160b,SED1335F0B驱动函数/////////////////
116 //
117 ////////////////////////////////////////////////////////////////////
C51 COMPILER V7.09 240160B 08/23/2004 10:54:00 PAGE 3
118 //-----------------------------------------------------------------------------
119 // 函数:void WriteCmd(unsigned char cmd)(私有函数,其他模块不能调用)
120 //-----------------------------------------------------------------------------
121 /******************************************************************************
122 调用方式(Function):WriteCmd()
123 函数描述(Description):指令写入函数
124 入口参数(Parameters):无
125 返回值(Returns):无
126 创建时间: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 // 函数:void WriteData(unsigned char datalcd) (私有函数,其他模块不能调用)
144 //-----------------------------------------------------------------------------
145 /******************************************************************************
146 调用方式(Function):WriteData(datalcd)
147 函数描述(Description):数据和指令的附属参数写入函数
148 入口参数(Parameters):
149 datalcd--待写入的显示数据或指令的附属参数
150 返回值(Returns):无
151 创建时间: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 // 函数:unsigned char ReadfromLcd(void) (私有函数,其他模块不能调用)
169 //-----------------------------------------------------------------------------
170 /******************************************************************************
171 调用方式(Function):ReadfromLcd()
172 函数描述(Description):数据和光标地址读出函数
173 入口参数(Parameters):无
174 返回值(Returns):数据或光标地址
175 创建时间: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 // 函数:void LcdInit(void)
195 //-----------------------------------------------------------------------------
196 /******************************************************************************
197 调用方式(Function):LcdInit()
198 函数描述(Description):液晶初始化函数
199 入口参数(Parameters):无
200 返回值(Returns):无
201 创建时间:16:07,PM,2004.4.19
202 修改时间:无
203 修改原因:无
204 ******************************************************************************/
205
206 void LcdInit(void){
207 1
208 1 WriteCmd(0x40); //进行system set,要写入8个参数
209 1 WriteData(0x30); //单屏结构,8×8点阵
210 1 WriteData(0x87); //字符宽度位7
211 1 WriteData(0x07); //字符高度为7
212 1 WriteData(0x1d); //一行显示30个字符 (C/R)
213 1 WriteData(0x42); //频率转化
214 1 WriteData(0x9f); //每帧扫描160行 (L/F)
215 1 WriteData(0x1e); //一行共有30个字符
216 1 WriteData(0);
217 1
218 1 WriteCmd(0x44); //进行Scroll,要写入10个参数
219 1 WriteData(0x00);
220 1 WriteData(0x00);
221 1 WriteData(0xa0); //第一显示区地址和所占的行数160行
222 1 WriteData(0xc0);
223 1 WriteData(0x12);
224 1 WriteData(0xa0); //第二显示区地址和所占的行数160行
225 1 WriteData(0x80);
226 1 WriteData(0x25); //第三显示区地址高8位、低8位和所占的行数160行
227 1 // WriteData(0x00);
228 1 // WriteData(0x00); //第四显示区地址高8位、低8位和所占的行数160行
229 1
230 1 WriteCmd(0x5a); //以点为单位的水平移动量
231 1 WriteData(0x00); //水平卷动,初始化时必须清零
232 1
233 1 WriteCmd(0x5b); //显示合成方式设置
234 1 WriteData(0x0c); //三屏图形方式相加,或逻辑
235 1
236 1 WriteCmd(0x59); // 写入指令代码0x59
237 1 WriteData(0x04); // 显示1区开显示,2、3、4区关显示;光标关显示
238 1 }
239
240 //-----------------------------------------------------------------------------
241 // 函数:void LcdClr(void)
C51 COMPILER V7.09 240160B 08/23/2004 10:54:00 PAGE 5
242 //-----------------------------------------------------------------------------
243 /******************************************************************************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -