gy1206f6.lst
来自「STN ST7920 TEST CODE AND SPEC.」· LST 代码 · 共 224 行
LST
224 行
C51 COMPILER V7.20 GY1206F6 10/10/2004 13:11:12 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE GY1206F6
OBJECT MODULE PLACED IN GY1206f6.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE GY1206f6.c BROWSE DEBUG OBJECTEXTEND
line level source
1 // ST7920 128*64 2003.3.25
2 #include <reg52.h>
3 #include <delay.c>
4
5 #define Uchar unsigned char
6
7 sbit RS=P3^6;
8 sbit RW=P3^0;
9 sbit E =P3^5;
10 sbit RES=P3^7;
11 void ComWrite(Uchar com);
12 void DatWrite(Uchar dat);
13 void Initial(void);
14 void Disp(Uchar,Uchar);
15 void DispChar(Uchar,Uchar);
16 void DispBmp(Uchar *);
17 void DispRow(Uchar,Uchar);
18 Uchar c1=0xb0;
19 Uchar c2=0xa0;
20 extern char code w[];
21 void main(void)
22 {
23 1 Initial();
24 1
25 1 while(1)
26 1 {
27 2 ComWrite(0x01); //DDRAM clear
28 2 delay(200);
29 2 DispRow(0x0ff,0);//display com line
30 2 delay(200);
31 2 DispRow(0x00,0x0ff);//display com line
32 2 delay(200);
33 2 Disp(0xaa,0xaa);//display seg line
34 2 delay(200);
35 2 Disp(0x55,0x55);//display seg line
36 2 delay(200);
37 2 DispRow(0xaa,0x55);//display snower
38 2 delay(200);
39 2 DispRow(0x55,0xaa);//display snower
40 2 delay(200);
41 2 Disp(0x00,0x00);//no display
42 2 delay(200);
43 2 DispChar(0xb0,0xc0);//display Chinese
44 2 delay(200);
45 2 DispChar(0xc0,0xbc);//display Chinese
46 2 delay(200);
47 2 DispChar(0xb7,0xe6);//display Chinese
48 2 delay(200);
49 2 DispChar(0xc3,0xf7);//display Chinese
50 2
51 2 }
52 1
53 1 }
54
55 void DispBmp(Uchar *p)
C51 COMPILER V7.20 GY1206F6 10/10/2004 13:11:12 PAGE 2
56 {
57 1 Uchar HorAdd=0x80;
58 1 Uchar VerAdd=0x80;
59 1 ComWrite(0x04); // I/D =0
60 1 for(;VerAdd<0x80+32;VerAdd++)
61 1 {
62 2 ComWrite(0x34); // RE=1;
63 2 ComWrite(0x36); // Graphics=1;
64 2
65 2 ComWrite(VerAdd);
66 2 ComWrite(0x80);
67 2 ComWrite(0x32); // RE=0;
68 2
69 2 for(HorAdd = 0; HorAdd <0x0f; HorAdd++)
70 2 {DatWrite(*p++);DatWrite(*p++);}//{DatWrite(Updat);DatWrite(Dndat);}
71 2 }
72 1
73 1 delay(10000);
74 1 ComWrite(0x30); // RE=0;
75 1
76 1 }
77
78 void Disp(Uchar dot1,Uchar dot2)
79 {
80 1 Uchar HorAdd=0x80;
81 1 Uchar VerAdd=0x80;
82 1
83 1 for(;VerAdd<0x80+32;VerAdd++)
84 1 {
85 2 ComWrite(0x34); // RE=1;
86 2 ComWrite(0x36); // Graphics=1;
87 2
88 2 ComWrite(VerAdd);
89 2 ComWrite(0x80);
90 2 ComWrite(0x32); // RE=0;
91 2
92 2 for(HorAdd = 0; HorAdd <0x0f; HorAdd++)
93 2 {
94 3 DatWrite(dot1);DatWrite(dot1);
95 3 DatWrite(dot2);DatWrite(dot2);
96 3 }
97 2 }
98 1
99 1 delay(10000);
100 1 ComWrite(0x30); // RE=0;
101 1 }
102 void DispRow(Uchar dot1,Uchar dot2)
103 {
104 1 Uchar HorAdd=0x80;
105 1 Uchar VerAdd=0x80;
106 1 Uchar Temp=0;
107 1 bit flag=1;
108 1
109 1 for(;VerAdd<0x80+32;VerAdd++)
110 1 {
111 2 ComWrite(0x34); // RE=1;
112 2 ComWrite(0x36); // Graphics=1;
113 2
114 2 ComWrite(VerAdd);
115 2 ComWrite(0x80);
116 2 ComWrite(0x30); // RE=0;
117 2
C51 COMPILER V7.20 GY1206F6 10/10/2004 13:11:12 PAGE 3
118 2 if (flag==1)
119 2 {
120 3 Temp = dot1;
121 3 flag=0;
122 3 }
123 2 else
124 2 {
125 3 Temp = dot2;
126 3 flag=1;
127 3 }
128 2 for(HorAdd = 0; HorAdd <0x0f; HorAdd++)
129 2 {
130 3 DatWrite(Temp);DatWrite(Temp);
131 3 DatWrite(Temp);DatWrite(Temp);
132 3 }
133 2 }
134 1
135 1 delay(10000);
136 1 ComWrite(0x30); // RE=0;
137 1 }
138 void DispChar(Uchar Updat,Uchar Dndat)
139 {
140 1 Uchar cnt=0;
141 1 ComWrite(0x04); // I/D =0
142 1 // ComWrite(0x02);
143 1 ComWrite(0x9f); // SET DDRAM 00 TO AC
144 1 for(c1++,cnt=0;c1<0xf7,cnt<32;cnt++)
145 1 {DatWrite(c1);DatWrite(c2++);}
146 1 {DatWrite(Updat);DatWrite(Dndat);}
147 1 delay(10000);
148 1 }
149
150 void Initial()
151 {
152 1 delay(500);
153 1 RES =0;
154 1 delay(100);
155 1 RES =1;
156 1 delay(500);
157 1
158 1 ComWrite(0x30); //Function set 00 1 DL : x RE G 0
159 1 ComWrite(0x30); //Function set 00 1 DL : x RE G 0
160 1 ComWrite(0x0c); // 0000 : 1 D C B ;display on
161 1
162 1 ComWrite(0x34); // RE=1 Function set
163 1
164 1 ComWrite(0x0c); // sleep mode off
165 1 ComWrite(0x02); // enable CGRAM
166 1
167 1 ComWrite(0x30); // RE =0;Function set
168 1 ComWrite(0x06); // I/D=1
169 1 delay(150);
170 1
171 1 }
172
173 void DatWrite(Uchar dat)
174 {
175 1
176 1 RS =1;
177 1 RW =0;
178 1 E =1;
179 1 P1 =dat;
C51 COMPILER V7.20 GY1206F6 10/10/2004 13:11:12 PAGE 4
180 1 delay(0);
181 1 E =0;
182 1 delay(0);
183 1 }
184 void ComWrite(Uchar com)
185 {
186 1
187 1 RS =0;
188 1 RW =0;
189 1 E =1;
190 1 P1 =com;
191 1 delay(0);
192 1 E =0;
193 1 delay(0);
194 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 642 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 17
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?