📄 ra8835.lst
字号:
C51 COMPILER V7.20 RA8835 08/19/2008 11:47:52 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE RA8835
OBJECT MODULE PLACED IN ra8835.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe ra8835.c DB OE
line level source
1 #include <ra8835.h>
2 #include <wordlib.h>
3 //#include "variable.h"
4 //LCD初始化时 命令SystemSet 后的8个参数
5 Uchar code ParaSysTable8[]= {
6 0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00
7 };
8 //LCD初始化时 命令Scroll 后的10个参数
9 Uchar code ParaScrTableA[]= {
10 0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4
11 };
12
13 Uchar test_read;
14
15 extern void Delay( Uint tt );
16 extern xdata unsigned char byte_sel,position_sel,yuyan_sel;
17 /*=====================================
18 ** 函数名称: WriteCommand
19 ** 功能描述: 写指令到LCD模块MISSING DEVICE
20 ** 输入参数: 待写入的数据值 类型 Uchar
21 **
22 ** 输出参数: 无
23 **
24 ** 全局变量: 无
25 ** 调用模块:
26 **---------------------------------------
27 ** 作 者: wjf
28 ** 日 期: 2008/07/30
29 ** 注:具体操作时序图参考液晶显示模块使用手册第9页
30 ======================================*/
31 void WriteCommand( Uchar CommandByte ) {
32 1
33 1 lcd_CS = 0;
34 1 lcd_A0 = 1;
35 1 lcd_WR = 0;
36 1 lcd_RD = 1;
37 1 lcd_CMD = CommandByte;
38 1 Delay(2);
39 1 lcd_WR = 1;
40 1 lcd_CS = 1;
41 1 }
42
43 /*=====================================
44 ** 函数名称: WriteData
45 ** 功能描述: 写数据到LCD模块显示内存
46 ** 输入参数: 待写入的数据值 类型 Uchar
47 **
48 ** 输出参数: 无
49 **
50 ** 全局变量: 无
51 ** 调用模块:
52 **---------------------------------------
53 ** 作 者: wjf
54 ** 日 期: 2008/07/30
55 ** 注:具体操作时序图参考液晶显示模块使用手册第9页
C51 COMPILER V7.20 RA8835 08/19/2008 11:47:52 PAGE 2
56 ======================================*/
57 void WriteData( Uchar dataW ) {
58 1
59 1 lcd_CS = 0;
60 1 lcd_A0 = 0;
61 1 lcd_WR = 0;
62 1 lcd_RD = 1;
63 1 lcd_DATA = dataW;
64 1 Delay(2);
65 1 lcd_WR = 1;
66 1 lcd_CS = 1;
67 1 lcd_A0 = 1;
68 1 }
69 /*=====================================
70 ** 函数名称: ReadData
71 ** 功能描述: 读数据从LCD模块显示内存
72 ** 输入参数: 无
73 **
74 ** 输出参数: 无
75 **
76 ** 全局变量: 无
77 ** 调用模块: 测试函数 LcmTest
78 **---------------------------------------
79 ** 作 者: wjf
80 ** 日 期: 2008/08/04
81 ** 注:具体操作时序图参考液晶显示模块使用手册第9页
82 ======================================*/
83 unsigned char ReadData(void)
84 {
85 1 char address_data;
86 1 lcd_CS = 0;
87 1 lcd_A0 = 1;
88 1 Delay(1);
89 1 lcd_WR = 1;
90 1 lcd_RD = 0;
91 1 Delay(5);
92 1 address_data = lcd_DATA;
93 1 lcd_RD = 1;
94 1 lcd_CS = 1;
95 1 lcd_A0 = 1;
96 1 return(address_data);
97 1 }
98
99
100 /*======================================================
101 ** 函数名称: LcmInition
102 ** 功能描述: 初始化RA8835 具体初始化内容参看程序行注释
103 ** 输入参数: 无
104 **
105 ** 输出参数: 无
106 **
107 ** 全局变量: ParaSysTable8[] ParaScrTableA[]
108 ** 调用模块: main.c中main()
109 **------------------------------------------------------
110 ** 作 者: wjf
111 ** 日 期: 2008/07/31
112 =======================================================*/
113 void LcmInition( void ) {
114 1
115 1 Uchar i;
116 1 WriteCommand( SystemSet ); // 系统参数设置
117 1 for (i=0;i<8;i++) {
C51 COMPILER V7.20 RA8835 08/19/2008 11:47:52 PAGE 3
118 2 WriteData( ParaSysTable8[i] );
119 2 }
120 1 WriteCommand( Scroll ); //设定显示区域起始地址
121 1 for (i=0;i<10;i++) {
122 2 WriteData( ParaScrTableA[i] );
123 2 }
124 1 WriteCommand( HdotScr ); // 写入点位移指令代码
125 1 WriteData( 0x00 ); // 写入P1参数
126 1 WriteCommand( Ovlay ); // 显示合成方式设置
127 1 WriteData( 0x04 ); // 0000 0100 显示一区图形,三区文本属性,二重"或"合成
128 1
129 1 WriteCommand( 0x4c ); //设置光标移动的方向为 光标向右移动 地址:CSR+1→CSR
130 1
131 1 WriteCommand( DispOn ); // 显示状态设置
132 1 WriteData( 0x54 ); // 显示 1~4 区开显示,光标关显示
133 1
134 1 }
135 /*============================================================================
136 ** 函数名称: LcmRest
137 ** 功能描述: 复位LCD——RA8835
138 ** 输入参数: 无
139 **
140 ** 输出参数: 无
141 **
142 ** 全局变量: 无
143 ** 调用模块:
144 **---------------------------------------------------------------------------
145 ** 作 者: wjf
146 ** 日 期: 2008/08/06
147 ============================================================================*/
148
149 void LcmRest( void ) {
150 1 lcd_RES=0;
151 1 Delay(1000);
152 1 lcd_RES=1;
153 1 }
154
155 /*============================================================================
156 ** 函数名称: LcmClear
157 ** 功能描述: LCD清屏函数 清除32K的显示内存
158 ** 输入参数: 无
159 **
160 ** 输出参数: 无
161 **
162 ** 全局变量: 无
163 ** 调用模块:
164 **---------------------------------------------------------------------------
165 ** 作 者: wjf
166 ** 日 期: 2008/08/01
167 ============================================================================*/
168
169 void LcmClear( void ) {
170 1
171 1 Uint i1=32768;
172 1
173 1 WriteCommand( CsrDirR ); // 光标移动方向定义:自动右移
174 1 WriteCommand( CsrW ); // 光标Locate,定位
175 1 WriteData( 0 ); // 写入参数CSRL设置参数光标指针低8位
176 1 WriteData( 0 ); // 写入参数CSRH设置参数光标指针高8位
177 1 WriteCommand( mWrite ); // 数据写入指令,代码0x42
178 1 while(i1--) {
179 2 WriteData( 0x00 ); // 写入数据0
C51 COMPILER V7.20 RA8835 08/19/2008 11:47:52 PAGE 4
180 2 }
181 1 }
182 /*======================================================
183 ** 函数名称: LcmTest
184 ** 功能描述: 测试LCD Display Memory 的写读
185 ** 输入参数: 无
186 **
187 ** 输出参数: 无
188 **
189 ** 全局变量:
190 ** 调用模块:
191 **------------------------------------------------------
192 ** 作 者: wjf
193 ** 日 期: 2008/08/04
194 =======================================================*/
195 void LcmTest( void ) {
196 1
197 1 WriteCommand( 0x46 ); //设置光标地址
198 1 WriteData( 0 );
199 1 WriteData( 0 );
200 1 WriteCommand( mWrite ); // 显示数据写入指令,代码0x42
201 1 WriteData( 0x55 );
202 1
203 1 WriteCommand( 0x46 ); //设置光标地址
204 1 WriteData( 0 );
205 1 WriteData( 0 );
206 1 WriteCommand( mRead ); //显示数据读出指令,代码0x43
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -