📄 lcd_dis.lst
字号:
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 1
C51 COMPILER V8.16, COMPILATION OF MODULE LCD_DIS
OBJECT MODULE PLACED IN .\Output\LCD_Dis.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\LCD_Driver\LCD_Dis.c BROWSE INCDIR(..\..\LCD_Driver) DEBUG OBJECTEXTE
-ND PRINT(.\LCD_Dis.lst) OBJECT(.\Output\LCD_Dis.obj)
line level source
1 //========================================================================
2 // 文件名: LCD_Dis.c
3 // 作 者: xinqiang Zhang(小丑) (email: xinqiang@Mzdesign.com.cn)
4 // 日 期: 2009/02/10
5 // 描 述: MzLH04-12864 LCD显示模块驱动V1.0版
6 // 基本功能接口函数集
7 //
8 // 参 考: 无
9 // 版 本:
10 // 2009/02/10 First version Mz Design
11 //========================================================================
12
13 #include "LCD_Config.h"
14
15 unsigned char X_Witch=6;
16 unsigned char Y_Witch=10;
17 unsigned char X_Witch_cn=16;
18 unsigned char Y_Witch_cn=16;
19 unsigned char Dis_Zero=0;
20 //========================================================================
21 // 函数: void LCD_Init(void)
22 // 描述: LCD初始化程序,主要在里面完成端口初始化以及LCD模块的复位
23 // 参数: 无
24 // 返回: 无
25 // 备注:
26 // 版本:
27 // 2009/02/10 First version Mz Design
28 //========================================================================
29 void TimeDelay(unsigned int Timers)
30 {
31 1 unsigned int i;
32 1 while(Timers)
33 1 {
34 2 Timers--;
35 2 for(i=0;i<100;i++) ;
36 2 }
37 1 }
38 void LCD_Init(void)
39 {
40 1 //SS和SCK预先设置为高电平
41 1 SPI_SCK = 1;
42 1 SPI_CS = 1;
43 1
44 1 //复位LCD模块
45 1 SPI_RES = 0;
46 1 TimeDelay(50);
47 1 //保持低电平大概2ms左右
48 1 SPI_RES = 1;
49 1 TimeDelay(80); //延时大概2ms左右
50 1 }
51 //========================================================================
52 // 函数: void SPI_SSSet(unsigned char Status)
53 // 描述: 置SS线状态
54 // 参数: Status =1则置高电平,=0则置低电平
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 2
55 // 返回: 无
56 // 版本:
57 // 2009/02/10 First version Mz Design
58 //========================================================================
59 void SPI_SSSet(unsigned char Status)
60 {
61 1 if(Status) //判断是要置SS为低还是高电平?//SS置高电平
62 1 SPI_CS = 1;
63 1 else //SS置低电平
64 1 SPI_CS = 0;
65 1 }
66 //========================================================================
67 // 函数: void SPI_Send(unsigned char Data)
68 // 描述: 通过串行SPI口输送一个byte的数据置模组
69 // 参数: Data 要传送的数据
70 // 返回: 无
71 // 版本:
72 // 2007/07/17 First version
73 // 2007/07/24 V1.2 for MCS51 Keil C
74 //========================================================================
75 void SPI_Send(unsigned char Data)
76 {
77 1 unsigned char i=0;
78 1 for(i=0;i<8;i++)
79 1 {
80 2 //SCK置低
81 2 SPI_SCK = 0;
82 2 if(Data&0x0080)
83 2 SPI_SDA = 1;
84 2 else SPI_SDA = 0;//
85 2 //SCK上升沿触发串行数据采样
86 2 SPI_SCK = 1;
87 2 Data = Data<<1; //数据左移一位
88 2 }
89 1 }
90 //========================================================================
91 // 函数: void FontSet(unsigned char Font_NUM,unsigned char Color)
92 // 描述: ASCII字符字体设置
93 // 参数: Font_NUM 字体选择,以驱动所带的字库为准
94 // Color 文本颜色,仅作用于ASCII字库
95 // 返回: 无
96 // 备注:
97 // 版本:
98 // 2007/07/19 First version
99 //========================================================================
100 void FontSet(unsigned char Font_NUM,unsigned char Color)
101 {
102 1 unsigned char ucTemp=0;
103 1 if(Font_NUM==0)
104 1 {
105 2 X_Witch = 6;//7;
106 2 Y_Witch = 10;
107 2 }
108 1 else
109 1 {
110 2 X_Witch = 8;
111 2 Y_Witch = 16;
112 2 }
113 1 ucTemp = (Font_NUM<<4)|Color;
114 1 //设置ASCII字符的字型
115 1 SPI_SSSet(0); //SS置低电平
116 1 SPI_Send(0x81); //传送指令0x81
C51 COMPILER V8.16 LCD_DIS 02/11/2009 00:49:30 PAGE 3
117 1 SPI_Send(ucTemp); //选择8X16的ASCII字体,字符色为黑色
118 1 SPI_SSSet(1); //完成操作置SS高电平
119 1 }
120 //========================================================================
121 // 函数: void FontMode(unsigned char Cover,unsigned char Color)
122 // 描述: 设置字符显示覆盖模式
123 // 参数: Cover 字符覆盖模式设置,0或1
124 // Color 覆盖模式为1时字符显示时的背景覆盖色
125 // 返回: 无
126 // 备注:
127 // 版本:
128 // 2008/11/27 First version
129 //========================================================================
130 void FontMode(unsigned char Cover,unsigned char Color)
131 {
132 1 unsigned char ucTemp=0;
133 1 ucTemp = (Cover<<4)|Color;
134 1 //设置ASCII字符的字型
135 1 SPI_SSSet(0); //SS置低电平
136 1 SPI_Send(0x89); //传送指令0x81
137 1 SPI_Send(ucTemp); //选择8X16的ASCII字体,字符色为黑色
138 1 SPI_SSSet(1); //完成操作置SS高电平
139 1 }
140 //========================================================================
141 // 函数: void FontSet_cn(unsigned char Font_NUM,unsigned char Color)
142 // 描述: 汉字库字符字体设置
143 // 参数: Font_NUM 字体选择,以驱动所带的字库为准
144 // Color 文本颜色,仅作用于汉字库
145 // 返回: 无
146 // 备注:
147 // 版本:
148 // 2007/07/19 First version
149 //========================================================================
150 void FontSet_cn(unsigned char Font_NUM,unsigned char Color)
151 {
152 1 unsigned char ucTemp=0;
153 1 if(Font_NUM==0)
154 1 {
155 2 X_Witch_cn = 12;
156 2 Y_Witch_cn = 12;
157 2 }
158 1 else
159 1 {
160 2 X_Witch_cn = 16;
161 2 Y_Witch_cn = 16;
162 2 }
163 1 ucTemp = (Font_NUM<<4)|Color;
164 1 //设置ASCII字符的字型
165 1 SPI_SSSet(0); //SS置低电平
166 1 SPI_Send(0x82); //传送指令0x81
167 1 SPI_Send(ucTemp); //选择8X16的ASCII字体,字符色为黑色
168 1 SPI_SSSet(1); //完成操作置SS高电平
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -