📄 sed1335.lst
字号:
C51 COMPILER V7.50 SED1335 04/11/2008 10:06:08 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE SED1335
OBJECT MODULE PLACED IN SED1335.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE SED1335.c LARGE BROWSE DEBUG OBJECTEXTEND
line level source
1 /*******************************************************************************
2 文件名:SED1335.C
3 日期:2006-4-25 10:27
4 作者:李升义
5 说明:SED1335驱动的320*240LCD操作文件。所用LCM为台湾华凌光电的WG320240B。
6 硬件接口:
7 WG320240B引脚序号 连接方式
8
9 1...Vss.....Ground 接地
10 2...Vdd.....Power supply for logic LCM电源,+5V
11 3...VO......Driving voltage for LCD LCM对比度调节
12 4...AO......P3^0 数据/命令方式选择
13 5.../WR.....P3.1 写有效(低电平)
14 6.../RD.....P3.2 读有效(低电平)
15 7...D0 .....P5.0 数据总线 D0
16 8...-D1 .....P5.1 数据总线 D1
17 9...D2 .....P5.2 数据总线 D2
18 10..D3 .....P5.3 数据总线 D3
19 11..D4 .....P5.4 数据总线 D4
20 12..D5 .....P5.5 数据总线 D5
21 13..D6 .....P5.6 数据总线 D6
22 14..D7 .....P5.7 数据总线 D7
23 15../CS.....P3.3 LCM片选(低电平)
24 16../RES....P3.4 LCM复位(低电平)
25 17..VEE.....-V out 逆变-23.5V 负电压输出
26 18..NC
27 19..NC
28 20..NC
29 ******************************************************************************/
30 #include <stdlib.h>
31 #include <intrins.h>
32 #include <C8051F020.H>
33 #include <stdio.h>
34
35 #define uchar unsigned char
36 #define uint unsigned int
37 //============================ SED1335 常用指令列表 ===============================
38 #define SystemSet 0x40 //软件初始化指令,8个参数
39
40 uchar code SysParaTable[]=
41 {
42 0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00 //软件初始化指令参数表P1-P8
43 };
44
45 #define Scroll 0x44 //设置显示区域,卷动,10个参数
46 #define BasePart1 0x00 //显示一区起始地址
47 #define BasePart2 0x40 //显示二区起始地址
48 #define BasePart3 0x80 //显示三区起始地址
49 #define BasePart4 0x00 //显示四区起始地址
50
51 uchar code ScrParaTable[]= //Scroll命令参数表
52 {
53 0x00,BasePart1,0xF0,0x00,BasePart2,0xF0,0x00,BasePart3,0x00,BasePart4
54 };
55
C51 COMPILER V7.50 SED1335 04/11/2008 10:06:08 PAGE 2
56 #define SleepIn 0x53 //空闲状态设置
57 #define DispOn 0x59 //开显示
58 #define DispOff 0x58 //关显示
59 #define Ovlay 0x5b //规定画面重叠显示的合成方式及显示一、三区的显示属性,指令带有一个参数。
60 #define HdotScr 0x5a //设置点单元卷动位置
61
62 #define CsrForm 0x5d //设置光标形状
63
64 #define CsrDirR 0x4c //光标右移
65 #define CsrDirL 0x4d //光标左移
66 #define CsrDirU 0x4e //光标上移
67 #define CsrDirD 0x4f //光标下移
68
69 #define CsrW 0x46 //设置光标地址
70 #define CsrR 0x47 //读出光标地址
71
72 #define mWrite 0x42 //数据写入显示缓冲区
73 #define mRead 0x43 //从显示缓冲区读数据
74
75 #define paraP9 0x28
76
77 /*
78 sbit A0 = P3^0; //命令数据方式选择
79 sbit WR = P3^1; //写信号
80 sbit RD = P3^2; //读信号
81 sbit CS = P3^3; //片选信号
82 sbit RST = P3^4; //复位信号
83 */
84 /*LCM控制信号连接改为
85 A0:P6.0
86 WR:P6.1
87 RD:P6.2
88 CS:P6.3
89 RST:Unconnected
90 */
91
92 extern char code ASC_MSK[96*16]; /*asc码库*/
93 extern char code HZ16_16[]; /*16*16汉字库(宋体)*/
94 extern char code HZ32_32[]; /*32*32汉字库(楷体)*/
95 extern char code HZ24_24[]; /*24*24汉字库(隶体)*/
96 //extern char code HZ12_12[]; /*12*12汉字库(宋体)*/
97 extern char code Logo[]; /*32*32公司标志*/
98
99
100
101 //===============LCM操作函数声明======================================================
102 void LcmInitialize( void ); /*液晶显示初始化*/
103 void WriteCommand( uchar CommandByte ); /*写指令*/
104 void WriteData( uchar dataW ); /*写参数及显示数据*/
105 void LcmClear( void ); /*清屏函数*/
106 void Delay( uint tt ); /*不精确延时函数*/
107
108 void Locatexy(uchar x,uchar y, uchar attribs); /*定位光标*/
109 void Point(uint Px, uchar Py, uchar attr ); /*描点*/
110 void Linexy(uint x0,uchar y0,uint xt,uchar yt,uchar att); /*划线*/
111 void Putstr(uchar x,uchar y, uchar *pstr,uchar flag,bit inverse); /*输出16*16汉字字符串*/
112 void PutHz_32(uchar x,uchar y, uchar *pstr,uchar flag); /*输出32*32汉字字符串*/
113 void PutHz_24(uchar x,uchar y, uchar *pstr,uchar flag); /*输出24*24汉字字符串*/
114 //void PutHz_12(uchar x,uchar y, uchar *pstr,uchar flag); /*输出12*12汉字字符串*/
115 void PutLogo(uchar x,uchar y, uchar flag); /*输出公司标志*/
116 void Circle(uint Ox,uchar Oy,uchar Rx,uchar attr); /*画圆*/
117
C51 COMPILER V7.50 SED1335 04/11/2008 10:06:08 PAGE 3
118 void Send_int(uchar wei,uchar *str,uint shu); /*整数输出到字符串*/
119 void SPutf(uchar *format,uchar *str,float fvar); /*浮点数输出到字符串*/
120 void Put_uint(uchar x,uchar y,uchar weishu,uint shu,uchar attribte,bit inverse);/*显示整数*/
121 void Putf(uchar x,uchar y,uchar *p,float fbuf,uchar attribte);/*显示浮点数*/
122 uchar ReadDataLcm( void ); /*从LCM读数据*/
123
124 void EnableCursor(uchar flag); /*显示光标并闪烁*/
125
126 /*----------------------------------
127 函数说明:LCM初始化
128 -----------------------------------*/
129 void LcmInitialize( void )
130 {
131 1 uchar i;
132 1 // RST = 0;
133 1 // RST = 1;
134 1 WriteCommand( SystemSet ); // 系统参数设置
135 1 for (i=0;i<8;i++)
136 1 WriteData( SysParaTable[i] );
137 1 WriteCommand( Scroll ); //设定显示区域起始地址
138 1 for (i=0;i<10;i++)
139 1 WriteData( ScrParaTable[i] );
140 1 WriteCommand( HdotScr ); // 写入点位移指令代码
141 1 WriteData( 0 );
142 1 WriteCommand( Ovlay ); // 显示合成方式设置
143 1 WriteData( 4 ); // 0000 0100 显示一区图形,三区文本属性,二重"或"合
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -