📄 lcd5110-
字号:
155 编写日期:20080918
156 ----------------------------------------------*/
157 void LCD_write_byte(unsigned char dt, unsigned char command)
158 {
159 1 unsigned char i;
160 1 sce=0;
161 1 dc=command;
162 1 for(i=0;i<8;i++)
163 1 {
164 2 if(dt&0x80)
165 2 sdin=1;
166 2 else
167 2 sdin=0;
168 2 dt=dt<<1;
169 2 sclk=0;
170 2 sclk=1;
171 2 }
172 1 dc=1;
173 1 sce=1;
174 1 sdin=1;
175 1 }
176 /*---------------------------------------
177 LCD_init: 3310LCD初始化
178 编写日期:20080918
179 ----------------------------------------- */
C51 COMPILER V9.00 5110_51 05/23/2010 21:30:25 PAGE 4
180 void LCD_init(void)
181 {
182 1 res=0;
183 1 delayms(10);
184 1 res=1;
185 1 LCD_write_byte(0x21,0);//初始化Lcd,功能设定使用扩充指令
186 1 LCD_write_byte(0xC6,0);//设定液晶偏置电压
187 1 LCD_write_byte(0x06,0);//温度校正
188 1 LCD_write_byte(0x13,0);;//1:48
189 1 LCD_write_byte(0x20,0);//使用基本指令
190 1 LCD_write_byte(0x0C,0);//设定显示模式,正常显示
191 1 }
192 /*-------------------------------------------
193 LCD_set_XY: 设置LCD坐标函数
194 输入参数:X:0-83 Y:0-5
195 编写日期:20080918
196 ---------------------------------------------*/
197 void LCD_set_XY(unsigned char X, unsigned char Y)
198 {
199 1 LCD_write_byte(0x40 | Y, 0);// column
200 1 LCD_write_byte(0x80 | X, 0);// row
201 1 }
202 /*------------------------------------------
203 LCD_clear: LCD清屏函数
204 编写日期:20080918
205 --------------------------------------------*/
206 void LCD_clear(void)
207 {
208 1 unsigned char t;
209 1 unsigned char k;
210 1 LCD_set_XY(0,0);
211 1 for(t=0;t<6;t++)
212 1 {
213 2 for(k=0;k<84;k++)
214 2 {
215 3 LCD_write_byte(0x00,1);
216 3
217 3 }
218 2 }
219 1 }
220 /*---------------------------------------------
221 LCD_write_shu: 显示6(宽)*16(高)点阵列数字字母符号等半角类
222 输入参数:c:显示的字符;
223 编写日期:20080918
224 -----------------------------------------------*/
225 void LCD_write_shu(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
226 {
227 1 unsigned char i;
228 1
229 1 LCD_set_XY(row*6, page);// 列,页
230 1 for(i=0; i<6;i++)
231 1 {
232 2 LCD_write_byte(shuzi[c*12+i],1);
233 2 }
234 1
235 1 LCD_set_XY(row*6, page+1);// 列,页
236 1 for(i=6; i<12;i++)
237 1 {
238 2 LCD_write_byte(shuzi[c*12+i],1);
239 2 }
240 1 }
241 /*---------------------------------------------
C51 COMPILER V9.00 5110_51 05/23/2010 21:30:25 PAGE 5
242 LCD_write_hanzi: 显示12(宽)*16(高)点阵列汉字等半角类
243 输入参数:c:显示的字符;
244 编写日期:20080918
245 -----------------------------------------------*/
246 void LCD_write_hanzi(unsigned char row, unsigned char page,unsigned char c) //row:列 page:页 dd:字符
247 {
248 1 unsigned char i;
249 1
250 1 LCD_set_XY(row*6, page);// 列,页
251 1 for(i=0; i<12;i++)
252 1 {
253 2 LCD_write_byte(hanzi[c*24+i],1);
254 2 }
255 1
256 1 LCD_set_XY(row*6, page+1);// 列,页
257 1 for(i=12; i<24;i++)
258 1 {
259 2 LCD_write_byte(hanzi[c*24+i],1);
260 2 }
261 1 }
262
263
264 main()
265 {
266 1
267 1 unsigned char k;
268 1 sce=0;
269 1 res=0;
270 1 for(k=0;k<250;k++);
271 1 res=1;
272 1 LCD_init(); //初始化LCD模块
273 1 LCD_clear(); //清屏幕
274 1 LCD_write_hanzi(0,0,0); //单
275 1 LCD_write_hanzi(2,0,1); //片
276 1 LCD_write_hanzi(4,0,2); //机
277 1 LCD_write_hanzi(6,0,3); //开
278 1 LCD_write_hanzi(8,0,4); //发
279 1 LCD_write_hanzi(10,0,5); //工
280 1 LCD_write_hanzi(12,0,6); //作
281 1 LCD_write_hanzi(0,2,7); //室
282 1
283 1 LCD_write_hanzi(2,4,8); //雨
284 1 LCD_write_hanzi(4,4,9); //亭
285 1 LCD_write_hanzi(6,4,10); //电
286 1 LCD_write_hanzi(8,4,11); //子
287 1
288 1 LCD_write_shu(10,4,0); //>
289 1 LCD_write_shu(11,4,1); //W
290 1 LCD_write_shu(12,4,2); //Y
291 1 LCD_write_shu(13,4,3); //G
292 1
293 1
294 1
295 1 while(1)
296 1 {
297 2
298 2 delayms(5000);
299 2 }
300 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
C51 COMPILER V9.00 5110_51 05/23/2010 21:30:25 PAGE 6
CODE SIZE = 460 ----
CONSTANT SIZE = 456 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -