📄 lm3229.lst
字号:
C51 COMPILER V8.08 LM3229 11/28/2007 22:30:54 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LM3229
OBJECT MODULE PLACED IN LM3229.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LM3229.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /********************************************************************************************************
2 /**--------------文件信息--------------------------------------------------------------------------------
3 **文 件 名: T6963C 128X128.c
4 **创 建 人: LUCKY 论坛ID muyuyuzhong
5 **最后修改日期: 2007年11月28日
6 **描 述: 基于T6963C图形液晶芯片的 LM4265 128x128液晶驱动,做简单修改通用适用基于T6963C的图形液晶
7 **
8 **说 明 :本来是想写LM3229 240x128的,但是LM3229只显示了上班屏幕.所以改成了LM4265了
9 ** 图形部分还没有写,因为还没找到合适的字模提取软件,也许是我还不会用,呵呵
10 **
11 **
12 **注 意:T6963C的字符集不是ASCII,一个8x8的字符点阵的字节顺序是由上而下的 高位在左 低位在右
13 *********************************************************************************************************/
14 /*********************************************************************************************************
15 ** 函数名称:
16 ** 功能描述:
17 **
18 ** 输 入:
19 **
20 ** 输 出:
21 **
22 ** 全局变量:
23 ** 调用模块:
24 **
25 ** 作 者:
26 ** 日 期:
27 **-------------------------------------------------------------------------------------------------------
28 ** 修改人:
29 ** 日 期:
30 **------------------------------------------------------------------------------------------------------
31 ********************************************************************************************************/
32
33 #include <reg51.h>
34 #include <intrins.h>
35
36
37 #ifndef UINT8
38 #define UINT8 unsigned char
39 #endif
40
41 #ifndef UINT16
42 #define UINT16 unsigned int
43 #endif
44
45 #ifndef INT8
46 #define INT8 signed char
47 #endif
48
49 #ifndef CHAR
50 #define CHAR unsigned char
51 #endif
52
53 #ifndef BOOL
54 #define BOOL bit
55 #endif
C51 COMPILER V8.08 LM3229 11/28/2007 22:30:54 PAGE 2
56 /*********************************************************************************************************
57 ** T6963C定义模块
58 **
59 ********************************************************************************************************/
60
61 /*********************定义液晶接口***********************/
62 sbit LCD_CD = P3^7 ; //LCD_CD = 1 写命令LCD_CD = 0 写数据
63 sbit LCD_RD = P3^6 ;
64 sbit LCD_WR = P3^5 ;
65 #define LCD_OutPort P1
66 /*--------------------------------------------------------*
67 *定义T6963C的状态字检测
68 *---------------------------------------------------------*/
69 #define CHECK_01 0x03 //检测0-1位,位0指令读写状态,位1数据读写状态:1 = 准备好 ,0 = 忙
70 #define CHECK_2 0x04 //检测2位,数据自动读状态:1 = 准备好 ,0 = 忙
71 #define CHECK_3 0x08 //检测3位,数据自动写状态:1 = 准备好 ,0 = 忙
72 #define CHECK_6 0x60 //检测6位,屏读/屏拷贝出错状态:1 = 出错,0 = 正确
73
74 #define COLUMN 16 //定义列为30,作为文本显示区宽度 、
75
76 /***************************T6963C的字符表******************************************
77 **----------------------------------------------------------------------------------
78 **0 0x00 0x01 0x02 0x03 0x04 0x03 0x06 0x07 0x08 0x09 0x0a 0x0b 0x0c 0x0d 0x0e 0x0f
79 ** 空格 ! " # $ % & ‘ ( ) * + , - . /
80 **----------------------------------------------------------------------------------
81 **1 0x10 0x11 0x12 0x13 0x14 0x13 0x16 0x17 0x18 0x19 0x1a 0x1b 0x1c 0x1d 0x1e 0x1f
82 ** 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
83 **---------------------------------------------------------------------------------
84 **2 0x20 0x21 0x22 0x23 0x24 0x23 0x26 0x27 0x28 0x29 0x2a 0x2b 0x2c 0x2d 0x2e 0x2f
85 ** @ A B C D E F G H I J K L M N O
86 **----------------------------------------------------------------------------------
87 **3 P Q R S T U V W X Y Z [ 反/ ] ^ _
88 **----------------------------------------------------------------------------------
89 **4 ' a b c d e f g h i j k l m n o
90 **----------------------------------------------------------------------------------
91 **5 p q r s t u v w x y z { 直| } ~ 空格
92 **----------------------------------------------------------------------------------
93 ** 0x0 1 5 a f
94 **其余见T6963C手册
95 /*********************************************************************************************************
96 ** 函数名称: CheckState
97 ** 功能描述: 读状态字,在读写数据之前必须要检测状态.在每一次对T6963C的软件操作之前,都要进行判"忙.
98 ** 只有在不忙的状态下计算机对T6963C的操作才有效
99 **
100 ** 输 入: bitCheck 检测相应的位
101 **
102 ** 输 出: 无
103 **
104 ** 全局变量: 无
105 ** 调用模块: 无
106 ** 说明 : CHECK_01 检测0-1位,位0指令读写状态,位1数据读写状态:1 = 准备好 ,0 = 忙
107 ** CHECK_2 检测2位,数据自动读状态:1 = 准备好 ,0 = 忙
108 ** CHECK_3 检测3位,数据自动写状态:1 = 准备好 ,0 = 忙
109 ** CHECK_6 检测6位,屏读/屏拷贝出错状态:1 = 出错,0 = 正确
110 ** 在仿真中,要关掉检测,实际中应打开
111 **-------------------------------------------------------------------------------------------------------
112 ** 修改人:
113 ** 日 期:
114 **------------------------------------------------------------------------------------------------------
115 ********************************************************************************************************/
116 void CheckState(UINT8 bitCheck)
117 {
C51 COMPILER V8.08 LM3229 11/28/2007 22:30:54 PAGE 3
118 1
119 1 /***********************************
120 1 //仿真时关掉状态检测
121 1 UINT8 status;
122 1 LCD_CD = 1;
123 1
124 1
125 1 do
126 1 {
127 1 LCD_RD = 0;
128 1 status = LCD_OutPort;
129 1 LCD_RD = 1;
130 1 status = bitCheck & status;
131 1 }while( status != bitCheck);
132 1 ********************************/
133 1 }
*** WARNING C280 IN LINE 116 OF LM3229.C: 'bitCheck': unreferenced local variable
134
135 /*********************************************************************************************************
136 ** 函数名称: WriteData
137 ** 功能描述: 写数据到T6963C
138 **
139 ** 输 入: dat 传输数据变量
140 **
141 ** 输 出: 无
142 **
143 ** 全局变量: 无
144 ** 调用模块: void CheckState(UINT8 bitCheck)
145 ** 说明 : 无
146 **-------------------------------------------------------------------------------------------------------
147 ** 修改人:
148 ** 日 期:
149 **------------------------------------------------------------------------------------------------------
150 ********************************************************************************************************/
151 void WriteData(UINT8 dat) //写数据
152 {
153 1 CheckState(CHECK_01); //检测状态位0 1
154 1 LCD_CD = 0;
155 1 LCD_WR = 0;
156 1 LCD_OutPort = dat;
157 1 LCD_WR = 1;
158 1 }
159
160 /*********************************************************************************************************
161 ** 函数名称: WriteCommand
162 ** 功能描述: 写命令到T6963C
163 **
164 ** 输 入: cmd 传输命令变量
165 **
166 ** 输 出: 无
167 **
168 ** 全局变量: LCD_CD
169 ** LCD_WR
170 ** 调用模块: void CheckState(UINT8 bitCheck)
171 ** 说明 : 无
172 **-------------------------------------------------------------------------------------------------------
173 ** 修改人:
174 ** 日 期:
175 **------------------------------------------------------------------------------------------------------
176 ********************************************************************************************************/
177 void WriteCommand(UINT8 cmd) //写命令
178 {
C51 COMPILER V8.08 LM3229 11/28/2007 22:30:54 PAGE 4
179 1 CheckState(CHECK_01); //检测状态位0 1
180 1 LCD_CD = 1;
181 1 LCD_WR = 0;
182 1 LCD_OutPort = cmd;
183 1 LCD_WR = 1;
184 1 }
185
186 /*********************************************************************************************************
187 ** 函数名称: ReadData
188 ** 功能描述: 从T6963C读数据到MCU
189 **
190 ** 输 入: 无
191 **
192 ** 输 出: dat 返回读出的数据
193 **
194 ** 全局变量: 无
195 ** 调用模块: void CheckState(UINT8 bitCheck)
196 ** 说明 : 无
197 **-------------------------------------------------------------------------------------------------------
198 ** 修改人:
199 ** 日 期:
200 **------------------------------------------------------------------------------------------------------
201 ********************************************************************************************************/
202 UINT8 ReadData(void) //读数据
203 {
204 1 UINT8 dat;
205 1 CheckState(CHECK_01); //检测状态位0 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -