📄 lcd.lst
字号:
C51 COMPILER V4.01, LCD 10/11/03 19:44:11 PAGE 1
DOS C51 COMPILER V4.01, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN C:\WINDOWS\DESKTOP\YEJING\LCD.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE C:\WINDOWS\DESKTOP\YEJING\LCD.C DB SB OE
stmt level source
1 #include<reg51.h>
2
3 sbit cs1=P3^0;
4 sbit cs2=P3^1;
5 sbit rst=P3^2;
6 sbit rw=P3^3;
7 sbit di=P3^4;
8 sbit e=P3^5;
9 unsigned char x,y,kkk;
10 unsigned char *p[];
11 void lw(unsigned char ,unsigned char ,unsigned char );
12 unsigned char code xie[32]={
13 0x40,0x42,0xCC,0x04,0x00,0xFC,0x56,0x55,0xFC,0x50,0x90,0x10,0xFF,0x10,0x10,0x00,
14 0x00,0x00,0x3F,0x50,0x29,0x11,0x4D,0x83,0x7F,0x00,0x41,0x80,0x7F,0x00,0x00,0x00};
15 unsigned char code nin[32]={
16 0x80,0x40,0x30,0xFC,0x03,0x90,0x68,0x06,0x04,0xF4,0x04,0x24,0x44,0x8C,0x04,0x00,
17 0x00,0x20,0x38,0x03,0x38,0x40,0x40,0x49,0x52,0x41,0x40,0x70,0x00,0x09,0x30,0x00};
18 unsigned char code hao[32]={
19 0x10,0x10,0xF0,0x1F,0x10,0xF0,0x80,0x82,0x82,0x82,0xF2,0x8A,0x86,0x82,0x80,0x00,
20 0x80,0x43,0x22,0x14,0x0C,0x73,0x20,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00};
21 unsigned char code gantanhao[16]={
22 0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x33,0x30,0x00,0x00,0x00};
23
24 unsigned char code pin[32]={
25 0x20,0x3C,0x20,0x20,0xBF,0x24,0x24,0x00,0xF2,0x1A,0xD6,0x12,0x12,0xF2,0x02,0x00,
26 0x44,0x43,0x20,0x10,0x0B,0x04,0x43,0x40,0x27,0x18,0x07,0x08,0x10,0x27,0x60,0x00};
27 unsigned char code lv[32]={
28 0x00,0x0C,0x14,0xA4,0x04,0x64,0x35,0xAE,0x64,0x24,0x14,0xA4,0x14,0x04,0x04,0x00,
29 0x08,0x0A,0x09,0x08,0x08,0x0A,0x0B,0xFE,0x0A,0x0B,0x0C,0x08,0x09,0x0A,0x08,0x00};
30 unsigned char code dian[32]={
31 0x00,0x00,0xF8,0x48,0x48,0x48,0x48,0xFF,0x48,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
32 0x00,0x00,0x0F,0x04,0x04,0x04,0x04,0x3F,0x44,0x44,0x44,0x44,0x4F,0x40,0x70,0x00};
33 unsigned char code ya[32]={
34 0x00,0x00,0xFE,0x02,0x42,0x42,0x42,0x42,0xFA,0x42,0x42,0x42,0x62,0x42,0x02,0x00,
35 0x20,0x18,0x27,0x20,0x20,0x20,0x20,0x20,0x3F,0x20,0x21,0x2E,0x24,0x20,0x20,0x00};
36 unsigned char code liu[32]={
37 0x10,0x60,0x01,0x86,0x60,0x04,0x44,0x64,0x55,0x4E,0x44,0x64,0xC4,0x04,0x04,0x00,
38 0x04,0x04,0xFC,0x03,0x40,0x30,0x0F,0x00,0x00,0x7F,0x00,0x3F,0x40,0x40,0x70,0x00};
39 unsigned char code rong[32]={
40 0x10,0x0C,0x44,0x24,0x34,0x9C,0x45,0x36,0x44,0x8C,0x14,0x74,0x24,0x0C,0x04,0x00,
41 0x04,0x04,0x02,0x02,0xFD,0x44,0x44,0x44,0x44,0x44,0xFD,0x01,0x02,0x06,0x02,0x00};
42 unsigned char code H[16]={
43 0x08,0xF8,0x08,0x00,0x00,0x08,0xF8,0x08,0x20,0x3F,0x21,0x01,0x01,0x21,0x3F,0x20};
44 unsigned char code z[16]={
45 0x00,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x00,0x21,0x30,0x2C,0x22,0x21,0x30,0x00};
46 unsigned char code V[16]={
47 0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x00,0x00};
48 unsigned char code F[16]={
49 0x08,0xF8,0x88,0x88,0xE8,0x08,0x10,0x00,0x20,0x3F,0x20,0x00,0x03,0x00,0x00,0x00};
50 unsigned char code A[16]={
51 0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x38,0x20};
52 unsigned char code u[16]={
53 0x80,0x80,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x1F,0x20,0x20,0x20,0x10,0x3F,0x20};
54 unsigned char code m[16]={
55 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F};
56 unsigned char code num0[16]={
57 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00};
58 unsigned char code num1[16]={
59 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00};
C51 COMPILER V4.01, LCD 10/11/03 19:44:11 PAGE 2
60 unsigned char code num2[16]={
61 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00};
62 unsigned char code num3[16]={
63 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00};
64 unsigned char code num4[16]={
65 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00};
66 unsigned char code num5[16]={
67 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00};
68 unsigned char code num6[16]={
69 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00};
70 unsigned char code num7[16]={
71 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00};
72 unsigned char code num8[16]={
73 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00};
74 unsigned char code num9[16]={
75 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00};
76 unsigned char code dot[16]={
77 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00};
78 unsigned char code colon[16]={
79 0x00,0x00,0x00,0xC0,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00};
80 void delay(int num)
81 {
82 1 while(num--) ;
83 1 }
84 void write_chinese(x,y,width,array)
85 unsigned char x; /* horizontal x==[0,127] */
86 unsigned char y; /* vertical y==[0,7] */
87 unsigned char width;
88 unsigned char array[];
89 {
90 1 unsigned char j,dd;
91 1 for(j=0;j<width*2;j++)
92 1 {
93 2 dd=array[j];
94 2 if(j<width) lw(x+j,y,dd);
95 2 else lw(x+j-width,y+1,dd);
96 2 }
97 1 }
98 unsigned char read_status(void)
99 {
100 1 unsigned char status;
101 1 di=0;rw=0;e=0;rw=1;e=1;delay(2);e=0;e=1;
102 1 status = P1;
103 1 return(status);
104 1 }
105 void clear_screen(void)
106 {
107 1 unsigned char x,y;
108 1 for (y=0;y<8;y++)
109 1 {
110 2 for (x=0;x<128;x++)
111 2 lw(x,y,0x00);
112 2 }
113 1 }
114 void fillbyte(unsigned char byte)
115 {
116 1 unsigned char x,y;
117 1 for (y=0;y<8;y++)
118 1 {
119 2 for (x=0;x<128;x++)
120 2 lw(x,y,byte);
121 2 }
122 1 }
123 void fill(void)
124 {
125 1 unsigned char x,y;
C51 COMPILER V4.01, LCD 10/11/03 19:44:11 PAGE 3
126 1 for (y=0;y<8;y++)
127 1 {
128 2 for (x=0;x<128;x=x+2)
129 2 {lw(x,y,0xaa);lw(x+1,y,0x55);}
130 2 }
131 1 }
132 void lcd_init(void)
133 {
134 1
135 1 rst=0; delay(3); rst=1;/* Reset */
136 1 di=0;
137 1 /* Initial CS1 module */
138 1 cs1=1;cs2=0;
139 1 e=0;rw=0;P1=0x3f;e=1;delay(1);e=0;e=1;
140 1 e=0;rw=0;P1=0xc0;e=1;delay(1);e=0;e=1;
141 1 /* Initial CS2 module */
142 1 cs2=1;cs1=0;
143 1 e=0;rw=0;P1=0x3f;e=1;delay(1);e=0;e=1;
144 1 e=0;rw=0;P1=0xc0;e=1;delay(1);e=0;e=1;
145 1 /* Clear screen */
146 1 clear_screen();
147 1 fillbyte(0xff);
148 1
149 1 }
150
151
152
153 void lw(unsigned char x,unsigned char y,unsigned char dd)
154 {
155 1 if (x<64)
156 1 {
157 2 cs1=1;cs2=0;
158 2 di=rw=0;cs1=1;cs2=0;P1=0xb8|y;e=1;delay(0);e=0;delay(0);
159 2 di=rw=0;cs1=1;cs2=0;P1=0x40|x;e=1;delay(0);e=0;delay(0);
160 2 di=1;rw=0;cs1=1;cs2=0;P1=dd;e=1;delay(0);e=0;delay(0);
161 2 cs1=cs2=1;
162 2
163 2 }
164 1 else
165 1 {
166 2 cs1=0;cs2=1;x=x-64;
167 2 di=rw=0;cs1=0;cs2=1;P1=0xb8|y;e=1;delay(0);e=0;delay(0);
168 2 di=rw=0;cs1=0;cs2=1;P1=0x40|x;e=1;delay(0);e=0;delay(0);
169 2 di=1;rw=0;cs1=0;cs2=1;P1=dd;e=1;delay(0);e=0;delay(0);
170 2 cs1=cs2=1;
171 2 }
172 1 P1=0xff;
173 1 }
174
175
176
177 void main()
178 {
179 1 unsigned char i,dd;
180 1 loop: lcd_init();
181 1 delay(30000);
182 1 clear_screen();
183 1 fill();
184 1 delay(30000);
185 1
186 1 write_chinese(0x20,3,0x10,nin);
187 1 write_chinese(0x30,3,0x10,hao);
188 1 write_chinese(0x40,3,0x08,gantanhao);
189 1 write_chinese(0x48,3,0x08,gantanhao);
190 1 delay(50000);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -