📄 prg-jcc1602a15-01-a.lst
字号:
C51 COMPILER V7.09 PRG_JCC1602A15_01_A 04/04/2007 08:56:32 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE PRG_JCC1602A15_01_A
OBJECT MODULE PLACED IN PRG-JCC1602A15-01-A.OBJ
COMPILER INVOKED BY: C:\Keil\C51\Bin\C51.EXE PRG-JCC1602A15-01-A.C DB OE SMALL ROM(LARGE)
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3 sbit RS=P3^0;
4 sbit RW=P3^1;
5 sbit E=P3^2;
6 sbit GO=P3^3;
7
8
9 void WriteCommand(unsigned char Command);
10 void WritieData(unsigned char Data);
11 bit ReadBusy();
12 void Initial();
13 void DelayXms(unsigned int n);
14 void Display(unsigned char d);
15 void Wait();
16 void WriteCGRAM();
17 void Display1(unsigned char P);
18 void Display2(unsigned char P1,unsigned char P2);
19 void Display3(unsigned char P1,unsigned char P2);
20
21 unsigned char code CGRAM[]={
22 0X00,0XFF,0X00,0XFF,0X00,0XFF,0X00,0XFF,
23 0X55,0X55,0X55,0X55,0X55,0X55,0X55,0X55,
24 0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,
25 0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
26 0XAA,0X55,0XAA,0X55,0XAA,0X55,0XAA,0X55,
27 };
28
29
30 void WriteCommand(unsigned char Command)
31 {
32 1 while(ReadBusy());
33 1 RS=0;
34 1 RW=0;
35 1 E=1;
36 1 _nop_();
37 1 _nop_();
38 1 P1=Command;
39 1 _nop_();
40 1 _nop_();
41 1 E=0;
42 1 _nop_();
43 1 _nop_();
44 1 E=1;
45 1 _nop_();
46 1 _nop_();
47 1 P1=Command<<4;
48 1 _nop_();
49 1 _nop_();
50 1 E=0;
51 1 _nop_();
52 1 _nop_();
53 1 }
54
55 void WriteData(unsigned char Command)
C51 COMPILER V7.09 PRG_JCC1602A15_01_A 04/04/2007 08:56:32 PAGE 2
56 {
57 1 while(ReadBusy());
58 1 RS=1;
59 1 RW=0;
60 1 E=1;
61 1 _nop_();
62 1 _nop_();
63 1 P1=Command;
64 1 _nop_();
65 1 _nop_();
66 1 E=0;
67 1 _nop_();
68 1 _nop_();
69 1 E=1;
70 1 _nop_();
71 1 _nop_();
72 1 P1=Command<<4;
73 1 _nop_();
74 1 _nop_();
75 1 E=0;
76 1 _nop_();
77 1 _nop_();
78 1 }
79
80 bit ReadBusy()
81 {
82 1 bit Busy;
83 1 RS=0;
84 1 RW=1;
85 1 E=1;
86 1 _nop_();
87 1 Busy = (bit)(P1 & 0x80);
88 1 _nop_();
89 1 E=0;
90 1 _nop_();
91 1 return Busy;
92 1 }
93
94 void Wait()
95 {
96 1 TR0=1;
97 1 GO=1;
98 1 while(GO);
99 1 DelayXms(500);
100 1 TR0=0;
101 1 }
102
103 void DelayXms(unsigned int i)
104 {
105 1 unsigned char a;
106 1 unsigned int b;
107 1 for(b=0;b<i;b++)
108 1 for(a=0;a<255;a++);
109 1 }
110
111 void WriteCGRAM()
112 {
113 1 unsigned char i;
114 1 WriteCommand(0x40);
115 1 DelayXms(2);
116 1 for(i=0;i<40;i++)
117 1 {
C51 COMPILER V7.09 PRG_JCC1602A15_01_A 04/04/2007 08:56:32 PAGE 3
118 2 WriteData(CGRAM[i]);
119 2 }
120 1 }
121
122 void Display1(unsigned char P)
123 {
124 1 unsigned char i;
125 1 WriteCommand(0x80|0x00);
126 1 DelayXms(2);
127 1 for(i=0;i<16;i++)
128 1 {
129 2 WriteData(P);
130 2 }
131 1 WriteCommand(0x80|0x40);
132 1 DelayXms(2);
133 1 for(i=0;i<16;i++)
134 1 {
135 2 WriteData(P);
136 2 }
137 1 }
138
139 void Display2(unsigned char P1,unsigned char P2)
140 {
141 1 unsigned char i;
142 1 WriteCommand(0x80|0x00);
143 1 DelayXms(2);
144 1 for(i=0;i<16;i++)
145 1 {
146 2 WriteData(P1++);
147 2 }
148 1 WriteCommand(0x80|0x40);
149 1 DelayXms(2);
150 1 for(i=0;i<16;i++)
151 1 {
152 2 WriteData(P2++);
153 2 }
154 1 }
155
156 void Display3(unsigned char P1,unsigned char P2)
157 {
158 1 unsigned char i;
159 1 WriteCommand(0x80|0x00);
160 1 DelayXms(3);
161 1 for(i=0;i<16;i++)
162 1 {
163 2 WriteData(P1--);
164 2 }
165 1 WriteCommand(0x80|0x40);
166 1 DelayXms(3);
167 1 for(i=0;i<16;i++)
168 1 {
169 2 WriteData(P2--);
170 2 }
171 1 }
172
173 void Initial()
174 {
175 1 WriteCommand(0x28); //Function set
176 1 DelayXms(3);
177 1 WriteCommand(0x0c); //Display ON/OFF Control
178 1 DelayXms(3);
179 1 WriteCommand(0x01); //Display Clear
C51 COMPILER V7.09 PRG_JCC1602A15_01_A 04/04/2007 08:56:32 PAGE 4
180 1 DelayXms(3);
181 1 WriteCommand(0x06); //Entry Mode Set
182 1 DelayXms(3);
183 1 WriteCGRAM();
184 1 }
185
186
187 main()
188 {
189 1 Initial();
190 1 while(1)
191 1 {
192 2 Display1(0x00);
193 2 Wait();
194 2 Display1(0x01);
195 2 Wait();
196 2 Display1(0x02);
197 2 Wait();
198 2 Display1(0x03);
199 2 Wait();
200 2 Display1(0x04);
201 2 Wait();
202 2 Display2(0x30,0x58);
203 2 Wait();
204 2 Display2(0xa0,0xc8);
205 2 Wait();
206 2 Display3(0xff,0xd8);
207 2 Wait();
208 2 }
209 1 }
210
211
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 480 ----
CONSTANT SIZE = 40 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 11
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -