📄 lcd12864.lst
字号:
C51 COMPILER V7.06 LCD12864 07/09/2007 21:28:40 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE LCD12864
OBJECT MODULE PLACED IN lcd12864.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd12864.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*****************************************************************/
2 /* */
-
3 /*名称: LCD12864显示程序 */
-
-
4 /*功能: 显示英文,数字,符号,图片。 */
-
5 /*难度等级: 高 */
-
6 /* 作者: zengrenliang */
7 /* 版权: http://www.51kaifa.com */
8 /*编写日期: 2006.05.20 */
-
-
9 /*****************************************************************/
10
11 #include <reg52.h>
12 #include <string.h>
13
14 #define uchar unsigned char
15
16 /**********引脚定义*********/
17
18 sbit lck = P3^5;//锁存信号
19
20 /********常用命令及参数定义********/
21 #define DISPON 0x3f
22 #define DISPOFF 0x3e
23 #define DISPFIRST 0xc0
24 #define SETX 0x40
25 #define SETY 0xb8
26 #define LCDBUZY 0x80
27 #define L 0x00
28 #define R 0x40
29 #define LIMIT 0x80
30
31
32 /**********全局变量************/
33 uchar cbyte;
34 uchar data statu;
35 bit xy;
36
37 /**************函数******************/
38
39 void WrL(uchar x);
40 void WrR(uchar x);
41 void Lcmcls(void);
42 void delay1s(void);
43 void Lcminit (void);
44 void Putpicture(uchar flag);
45 void delay(unsigned int time);
46 void VtoH8x16change(uchar *hzbuf);
47 void Puthalf(uchar *strch,uchar row,uchar col);
48 void Wrdata(uchar x,uchar row,uchar col);
C51 COMPILER V7.06 LCD12864 07/09/2007 21:28:40 PAGE 2
49 void Locatexy(uchar row,uchar col);
50 void vWrite8x16Character(uchar *ch,uchar row,uchar col,bit flag);
51 void vWrite8x16String(uchar *str,uchar col, uchar row, bit flag);
52
53
54 extern uchar code picture1[];
55 extern uchar code picture2[];
56 extern uchar code char_Table[95][16];
57
58 /***********主程序***************/
59 void main(void)
60 {
61 1 Lcminit();
62 1 while(1){
63 2 Putpicture(0);
64 2 delay1s();
65 2 Lcmcls();
66 2 Putpicture(1);
67 2 delay1s();
68 2 Lcmcls();
69 2 vWrite8x16String("abcdefghijklmn" ,0, 8,0);
70 2 vWrite8x16String("ABCDEFGHIJKLMN", 2, 8,0);
71 2 vWrite8x16String("12345678901234", 4, 8,0);
72 2 vWrite8x16String("+-*/!@#$%^&*()", 6, 8,0);
73 2 delay1s();
74 2 Lcmcls();
75 2 }
76 1
77 1 }
78
79
80 /***************微秒级延时*****************/
81 void delay(unsigned int time)
82 { unsigned int i;
83 1 for(i=0;i<time;i++);
84 1 }
85
86 /***************约5S延时********************/
87 void delay1s(void)
88 {
89 1 delay(50000);
90 1 delay(50000);
91 1 delay(50000);
92 1 delay(50000);
93 1 delay(50000);
94 1 delay(50000);
95 1 delay(50000);
96 1 delay(50000);
97 1 delay(50000);
98 1 delay(50000);
99 1 delay(50000);
100 1 delay(50000);
101 1 delay(50000);
102 1 delay(50000);
103 1 delay(50000);
104 1 }
105
106 //***********初始化LCD*******************/
107
108 void Lcminit (void)
109 {
110 1 cbyte=DISPOFF;
C51 COMPILER V7.06 LCD12864 07/09/2007 21:28:40 PAGE 3
111 1 WrL(cbyte);
112 1 WrR(cbyte);
113 1 cbyte=DISPON;
114 1 WrL(cbyte);
115 1 WrR(cbyte);
116 1 cbyte=DISPFIRST;
117 1 WrL(cbyte);
118 1 WrR(cbyte);
119 1 Lcmcls();
120 1 Locatexy(0,0);
121 1 }
122
123
124 /***************LCD清屏********************/
125 void Lcmcls(void)
126 { uchar i,j;
127 1 for(i=0;i<8;i++){
128 2 delay(6);
129 2 for(j=0;j<LIMIT;j++){
130 3 delay(6);
131 3 Wrdata(0x0,i,j);
132 3 }
133 2 }
134 1 }
135
136 /**************写左区***************/
137
138 void WrL(uchar x)
139 {
140 1
141 1 P0=0xFF;//P0口送FF,准备读
142 1 lck = 0;
143 1 P1 = 0x2a;//ELCD=1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -