📄 jcc1602a16.lst
字号:
C51 COMPILER V7.09 JCC1602A16 04/26/2007 16:59:30 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE JCC1602A16
OBJECT MODULE PLACED IN JCC1602A16.OBJ
COMPILER INVOKED BY: C:\Keil\C51\Bin\C51.EXE JCC1602A16.C DB OE SMALL ROM(LARGE)
line level source
1 #include <reg51.h>
2 #include <intrins.h>
3 sbit RS=P2^1;
4 sbit RW=P3^6;
5 sbit E=P3^7;
6 sbit GO=P3^3;
7
8
9 void WriteCommand(unsigned char cmd);
10 void WritieData(unsigned char dat);
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 bit lcd_bz()
31 {
32 1 bit result;
33 1 RS = 0;
34 1 RW = 1;
35 1 E = 1;
36 1 _nop_();
37 1 _nop_();
38 1 _nop_();
39 1 _nop_();
40 1 result = (bit)(P0 & 0x80);
41 1 E = 0;
42 1 return result;
43 1 }
44
45 void WriteCommand(unsigned char cmd)
46 {
47 1 while(lcd_bz());
48 1 RS = 0;
49 1 RW = 0;
50 1 E = 0;
51 1 _nop_();
52 1 _nop_();
53 1 P1 = cmd;
54 1 _nop_();
55 1 _nop_();
C51 COMPILER V7.09 JCC1602A16 04/26/2007 16:59:30 PAGE 2
56 1 _nop_();
57 1 _nop_();
58 1 E = 1;
59 1 _nop_();
60 1 _nop_();
61 1 _nop_();
62 1 _nop_();
63 1 E = 0;
64 1 }
65
66 WriteData(unsigned char dat)
67 {
68 1 while(lcd_bz());
69 1 RS = 1;
70 1 RW = 0;
71 1 E = 0;
72 1 P1 = dat;
73 1 _nop_();
74 1 _nop_();
75 1 _nop_();
76 1 _nop_();
77 1 E = 1;
78 1 _nop_();
79 1 _nop_();
80 1 _nop_();
81 1 _nop_();
82 1 E = 0;
83 1 }
84
85 void Wait()
86 {
87 1 TR0=1;
88 1 GO=1;
89 1 while(GO);
90 1 DelayXms(500);
91 1 TR0=0;
92 1 }
93
94 void DelayXms(unsigned int i)
95 {
96 1 unsigned char a;
97 1 unsigned int b;
98 1 for(b=0;b<i;b++)
99 1 for(a=0;a<255;a++);
100 1 }
101
102 void WriteCGRAM()
103 {
104 1 unsigned char i;
105 1 WriteCommand(0x40);
106 1 DelayXms(6);
107 1 for(i=0;i<40;i++)
108 1 {
109 2 WriteData(CGRAM[i]);
110 2 }
111 1 }
112
113 void Display1(unsigned char P)
114 {
115 1 unsigned char i;
116 1 WriteCommand(0x02);
117 1 DelayXms(6);
C51 COMPILER V7.09 JCC1602A16 04/26/2007 16:59:30 PAGE 3
118 1 WriteCommand(0x80|0x00);
119 1 DelayXms(6);
120 1 for(i=0;i<16;i++)
121 1 {
122 2 WriteData(P);
123 2 }
124 1 WriteCommand(0x80|0x40);
125 1 DelayXms(6);
126 1 for(i=0;i<16;i++)
127 1 {
128 2 WriteData(P);
129 2 }
130 1 }
131
132 void Display2(unsigned char P1,unsigned char P2)
133 {
134 1 unsigned char i;
135 1 WriteCommand(0x02);
136 1 DelayXms(6);
137 1 WriteCommand(0x80|0x00);
138 1 DelayXms(6);
139 1 for(i=0;i<16;i++)
140 1 {
141 2 WriteData(P1++);
142 2 }
143 1 WriteCommand(0x80|0x40);
144 1 DelayXms(6);
145 1 for(i=0;i<16;i++)
146 1 {
147 2 WriteData(P2++);
148 2 }
149 1 }
150
151 void Display3(unsigned char P1,unsigned char P2)
152 {
153 1 unsigned char i;
154 1 WriteCommand(0x02);
155 1 DelayXms(6);
156 1 WriteCommand(0x80|0x00);
157 1 DelayXms(10);
158 1 for(i=0;i<16;i++)
159 1 {
160 2 WriteData(P1--);
161 2 }
162 1 WriteCommand(0x80|0x40);
163 1 DelayXms(10);
164 1 for(i=0;i<16;i++)
165 1 {
166 2 WriteData(P2--);
167 2 }
168 1 }
169
170 void Initial()
171 {
172 1 WriteCommand(0x38); //Function set
173 1 DelayXms(10);
174 1 WriteCommand(0x0c); //Display ON/OFF Control
175 1 DelayXms(10);
176 1 WriteCommand(0x01); //Display Clear
177 1 DelayXms(10);
178 1 WriteCommand(0x06); //Entry Mode Set
179 1 DelayXms(10);
C51 COMPILER V7.09 JCC1602A16 04/26/2007 16:59:30 PAGE 4
180 1 WriteCGRAM();
181 1 }
182
183
184 main()
185 {
186 1 Initial();
187 1 while(1)
188 1 {
189 2 Display1(0x02);
190 2 Wait();
191 2 Display1(0x01);
192 2 Wait();
193 2 Display1(0x02);
194 2 Wait();
195 2 Display1(0x03);
196 2 Wait();
197 2 Display1(0x04);
198 2 Wait();
199 2 Display2(0x30,0x58);
200 2 Wait();
201 2 Display2(0xa0,0xc8);
202 2 Wait();
203 2 Display3(0xff,0xd8);
204 2 Wait();
205 2 }
206 1 }
207
208
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 408 ----
CONSTANT SIZE = 40 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -