📄 panel.lst
字号:
C51 COMPILER V7.06 PANEL 01/26/2004 20:24:41 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE PANEL
OBJECT MODULE PLACED IN PANEL.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE PANEL.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //-------------------------------------------------------------------------
2 // Filename : Panel.c
3 // Language : C for AT89S8252
4 // Revision : 1.0
5 // Initial Date : 24/06/2000
6 // Last Modify :
7 // System clock : 24.00MHZ
8 // Description : Lcd40x4 Display Routine Function For "RS" or "KOREA"
9 // P1 is used display Port: P1.3=EN2 P1.2=EN1 P1.0=RS
10 //-------------------------------------------------------------------------
11 #define _PANEL_H_
12 #include <reg52.h>
13 #include "Panel.h"
14 #undef _PANEL_H_
15 //-------------------------------------------------------------------------
16 #define DispPort P1
17 #define KeypadPort P0
18 #define OutputPort P2
19 #define BAUD19200 65536-(24000000/(32*19200))
20 sbit K0 = P0^0;
21 sbit K1 = P0^1;
22 sbit K2 = P0^2;
23 sbit K3 = P0^3;
24 sbit K4 = P0^4;
25 sbit K5 = P0^5;
26 sbit K6 = P0^6;
27 sbit K7 = P0^7;
28
29 //-------------------------------------------------------------------------
30 #define MSB_PERIOD -20000/256
31 #define LSB_PERIOD -20000%256
32 //--------------------------------------------------------------------------
33 unsigned char outp_buf=0xff;
34 unsigned char key_row_ptr=0;
35 unsigned char key_ptr;
36 unsigned char inc_ref;
37 char manual_buf[4];
38
39
40 //-------------------------------------------------------------------------
41 // function prototype
42 void _init_serial(unsigned int);
43 void _set_display (char, char);
44 void _res_display (char, char);
45 void _write_char (char, char);
46 void _delay5ms (void);
47 void _delay200us (void);
48 void _delay100us (void);
49 void _delay5us (void);
50 //-------------------------------------------------------------------------
51 //
52 // Routinues for 40x4 LCD Display.
53 //
54 //-------------------------------------------------------------------------
55 void _initial_disp (void)
C51 COMPILER V7.06 PANEL 01/26/2004 20:24:41 PAGE 2
56 {
57 1 _res_display(0, 0x30);
58 1 _res_display(1, 0x30);
59 1 _delay5ms();
60 1 _res_display(0, 0x30);
61 1 _res_display(1, 0x30);
62 1 _delay200us();
63 1 _res_display(0, 0x30);
64 1 _res_display(1, 0x30);
65 1 _delay200us();
66 1 _res_display(0, 0x20);
67 1 _res_display(1, 0x20);
68 1 _delay200us();
69 1 _set_display(0, 0x2c);
70 1 _set_display(1, 0x2c);
71 1 _delay200us();
72 1 _set_display(0, 0x0f);
73 1 _set_display(1, 0x0f);
74 1 _delay200us();
75 1 _set_display(0, 0x01);
76 1 _set_display(1, 0x01);
77 1 _delay200us();
78 1 _set_display(0, 0x06);
79 1 _set_display(1, 0x06);
80 1 _delay5ms();
81 1 _set_display(0, 0x0c);
82 1 _set_display(1, 0x0c);
83 1 }
84 //-------------------------------------------------------------------------
85
86 void _clear_disp (void)
87 {
88 1 _set_display(0, 0x01);
89 1 _set_display(1, 0x01);
90 1 _delay5ms();
91 1 }
92 //-------------------------------------------------------------------------
93 void _cursor_switch (char r,char stus)
94 {
95 1 switch(r){
96 2 case 0 :
97 2 case 1 :
98 2 r = 0;
99 2 break;
100 2 case 2 :
101 2 case 3 :
102 2 r = 1;
103 2 }
104 1 if (stus == ON )
105 1 _set_display(r, 0x0f); // r row ON ,r=0 ,1&2 row r=1 3&4 row
106 1 else
107 1 _set_display(r, 0x0c); // r row OFF
108 1 }
109 //-------------------------------------------------------------------------
110 void _cursor_position (char r, char c)
111 {
112 1 switch(r){
113 2 case 1 :
114 2 c += 0x40;
115 2 case 0 :
116 2 c |= 0x80;
117 2 _set_display(0,c);
C51 COMPILER V7.06 PANEL 01/26/2004 20:24:41 PAGE 3
118 2 break;
119 2 case 3 :
120 2 c += 0x40;
121 2 case 2 :
122 2 c |= 0x80;
123 2 _set_display(1,c);
124 2 }
125 1 }
126 //-------------------------------------------------------------------------
127 void _disp_msge (char r, char c, char *msge)
128 {
129 1 char i=0;
130 1 switch(r){
131 2 case 1 :
132 2 c += 0x40;
133 2 case 0 :
134 2 _set_display(0, c | 0x80);
135 2 while (msge[i] != 0)
136 2 _write_char(0, msge[i++]);
137 2 break;
138 2 case 3 :
139 2 c += 0x40;
140 2 case 2 :
141 2 _set_display(1, c | 0x80);
142 2 while (msge[i] != 0)
143 2 _write_char(1, msge[i++]);
144 2 break;
145 2 }
146 1 }
147 //-------------------------------------------------------------------------
148 void _disp_char (char r, char c, char v)
149 {
150 1 switch (r) {
151 2 case 0 :
152 2 _set_display(0,0x80+c);
153 2 r = 0;
154 2 break;
155 2 case 1 :
156 2 _set_display(0,0xc0+c);
157 2 r = 0;
158 2 break;
159 2 case 2 :
160 2 _set_display(1,0x80+c);
161 2 r = 1;
162 2 break;
163 2 case 3 :
164 2 _set_display(1,0xc0+c);
165 2 r = 1;
166 2 break;
167 2 }
168 1 _write_char(r,(char)('0'+(v/10)));
169 1 _write_char(r,(char)('0'+(v%10)));
170 1 }
171 //-------------------------------------------------------------------------
172 /* void _write_ascii (char r, char c, char ascii)
173 {
174 switch (r) {
175 case 0 :
176 _set_display(0,0x80+c);
177 r = 0;
178 break;
179 case 1 :
C51 COMPILER V7.06 PANEL 01/26/2004 20:24:41 PAGE 4
180 _set_display(0,0xc0+c);
181 r = 0;
182 break;
183 case 2 :
184 _set_display(1,0x80+c);
185 r = 1;
186 break;
187 case 3 :
188 _set_display(1,0xc0+c);
189 r = 1;
190 break;
191 }
192 _write_char(r,ascii);
193 } */
194 //-------------------------------------------------------------------------
195 void _disp_interge (char r, char c, unsigned v)
196 {
197 1 switch(r){
198 2 case 0 :
199 2 _set_display(0,0x80+c);
200 2 r = 0;
201 2 break;
202 2 case 1 :
203 2 _set_display(0,0xc0+c);
204 2 r = 0;
205 2 break;
206 2 case 2 :
207 2 _set_display(1,0x80+c);
208 2 r = 1;
209 2 break;
210 2 case 3 :
211 2 _set_display(1,0xc0+c);
212 2 r = 1;
213 2 break;
214 2 }
215 1
216 1 _write_char(r,(char)('0'+(v/1000)));
217 1 v %= 1000;
218 1 _write_char(r,(char)('0'+(v/100)));
219 1 v %= 100;
220 1 _write_char(r,(char)('0'+(v/10)));
221 1 _write_char(r,(char)('0'+(v%10)));
222 1 }
223 //-------------------------------------------------------------------------
224 void _disp_float (char r, char c, int v)
225 {
226 1 switch(r){
227 2 case 0 :
228 2 _set_display(0,0x80+c);
229 2 r = 0;
230 2 break;
231 2 case 1 :
232 2 _set_display(0,0xc0+c);
233 2 r = 0;
234 2 break;
235 2 case 2 :
236 2 _set_display(1,0x80+c);
237 2 r = 1;
238 2 break;
239 2 case 3 :
240 2 _set_display(1,0xc0+c);
241 2 r = 1;
C51 COMPILER V7.06 PANEL 01/26/2004 20:24:41 PAGE 5
242 2 break;
243 2 }
244 1 if(v>999)
245 1 _write_char(r,(char)('0'+(v/1000)));
246 1 v %= 1000;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -