📄 lcd_show.lst
字号:
C51 COMPILER V7.50 LCD_SHOW 06/24/2007 16:02:39 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD_SHOW
OBJECT MODULE PLACED IN LCD_SHOW.OBJ
COMPILER INVOKED BY: D:\程序\keil\C51\BIN\C51.EXE LCD_SHOW.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"PS2.H"
2
3 sbit CS = P2^5;
4 sbit SID=P2^6;
5 sbit CLK=P2^7;
6 sbit FSB=P2^4;
7 sbit RST=P2^3;
8
9
10 uchar code addr[]={ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
11 0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,
12 0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,
13 0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9e,0x9f };//DDRAM地址
14 extern unsigned char Time[];
15
16 /*****************************函数列表*******************************/
17 void InitLcd( void );
18 void Send(unsigned char senddata);
19 void delay( uint t );
20 void WriteCmd( uchar cmd );
21 void WriteData( uchar Data );
22 void display( uchar *x_add,uchar *dat1,uchar *dat2 );
23 void DisHz16x16(uchar x,uchar y,uchar *Data);
24 void Dis5bitNumber( uchar x,uchar y, uint Number );
25 void DisMhz( uchar x,uchar y );
26 void WhiteLine( uchar line );
27 void CleanScreen( void );
28 void CleanUnit( uchar x,uchar y );
29 void DisTab( uchar x,uchar y );
30 void DisMenu( void );
31 void MenuLoop( uchar Tab_X,uchar Tab_Y );
32 void DisSaveChannelNote( void );
33 void DisInput(unsigned char Input);
34 void DisString(unsigned char *String,unsigned char Length);
35
36 unsigned char CountInput = 0;
37 /*****************************初始化子程序******************************/
38 void InitLcd(void)
39 {
40 1
41 1 delay( 50000 );//延时45MS
42 1
43 1 FSB = 0;
44 1 CS = 1;
45 1 WriteCmd( 0x30 );
46 1 delay( 150 );//延时150us
47 1
48 1 WriteCmd(0x30);
49 1 delay( 45 );//延时45us
50 1
51 1 WriteCmd( 0x0C );
52 1 delay( 150 );//延时150us
53 1
54 1 CleanScreen();
55 1 delay( 15000 );//延时12MS
C51 COMPILER V7.50 LCD_SHOW 06/24/2007 16:02:39 PAGE 2
56 1
57 1 WriteCmd(0x06);
58 1 }
59
60 /*****************************延时子程序***************************/
61 void delay( uint t )
62 {
63 1 while( t-- );
64 1 }
65 /***********************************************************
66 函数名称:
67 函数功能:
68 入口参数:
69 出口参数:
70 备 注:
71 ***********************************************************/
72 void DelayUS(unsigned int n) //N us延时函数
73 {
74 1 unsigned int i=0;
75 1 for (i=0;i<n;i++)
76 1 _nop_();
77 1 }
78 /***********************************************************
79 函数名称:
80 函数功能: 发送命令
81 入口参数:
82 出口参数:
83 备 注:
84 ***********************************************************/
85 void Send(unsigned char senddata)
86 {
87 1 unsigned char i;
88 1 for(i=0;i<8;i++)
89 1 {
90 2 if((senddata)&0x80)
91 2 SID = 1;
92 2 else
93 2 SID = 0;
94 2 CLK = 1;
95 2 _nop_();
96 2 CLK = 0;
97 2 senddata<<=1;
98 2 }
99 1 }
100
101
102 /*******************************写指令子程序***************************/
103 void WriteCmd( uchar cmd )
104 {
105 1 Send(0xf8);
106 1 Send(cmd&0xf0);
107 1 Send(cmd<<4);
108 1 DelayUS(20);
109 1 }
110
111 /***********************************写数据子程序****************************/
112 void WriteData(unsigned char Data)
113 {
114 1 Send(0xfa);
115 1 Send(Data&0xf0);
116 1 Send(Data<<4);
117 1 DelayUS(20);
C51 COMPILER V7.50 LCD_SHOW 06/24/2007 16:02:39 PAGE 3
118 1 }
119
120
121 /***********************************************************
122 函数名称:
123 函数功能:显示16X16汉字 带有X,Y坐标
124 入口参数:
125 出口参数:
126 备 注: X(0~~7)Y(0~~3)
127 ***********************************************************/
128 void DisHz16x16(uchar x,uchar y,uchar *Data)
129 {
130 1 WriteCmd( addr[(8*y+x)] );
131 1 WriteData( *Data );
132 1 WriteData( *(Data+1) );
133 1 }
134 /***********************************************************
135 函数名称:
136 函数功能: 显示2位数字
137 入口参数:
138 出口参数:
139 备 注:
140 ***********************************************************/
141 void Dis2bitNumber( uchar x,uchar y, uint Number )
142 {
143 1 WriteCmd( addr[(8*y+x)] );
144 1 WriteData( LCDNumber[(Number/16)] );
145 1 WriteData( LCDNumber[(Number%16)] );
146 1 WriteCmd( 0x30 );
147 1 }
148 /***********************************************************
149 函数名称:
150 函数功能: 显示4位数字
151 入口参数:
152 出口参数:
153 备 注:
154 ***********************************************************/
155 void Dis4bitNumber( uchar x,uchar y, uint Number )
156 {
157 1 WriteCmd( addr[(8*y+x)] );
158 1 WriteData( LCDNumber[Number/1000] );
159 1 WriteData( LCDNumber[(Number/100)%10] );
160 1 WriteCmd( addr[(8*y+x+1)] );
161 1 WriteData( LCDNumber[(Number/10)%10] );
162 1 WriteData( LCDNumber[(Number%10)] );
163 1 WriteCmd( 0x30 );
164 1 }
165 /***********************************************************
166 函数名称:
167 函数功能:
168 入口参数:
169 出口参数:
170 备 注:
171 ***********************************************************
172 void DisInput(unsigned char Input)
173 {
174 if(CountInput%2==0)
175 {
176 if(CountInput==64)
177 {
178 CountInput = 0;
179 CleanScreen();
C51 COMPILER V7.50 LCD_SHOW 06/24/2007 16:02:39 PAGE 4
180 }
181
182 WriteCmd( addr[CountInput/2] );
183 }
184 WriteData(Input);
185
186 if(Input==99)
187 {
188 WriteData(0x20);
189 }
190 else
191 {
192 WriteData(LCDNumber[Input]);
193 }
194
195 CountInput++;
196
197 }
198 /***********************************************************
199 函数名称:
200 函数功能:显示4位数字,其中两位为小数
201 入口参数:
202 出口参数:
203 备 注:
204 ***********************************************************
205 void Dis5bitNumber( uchar x,uchar y, uint Number )
206 {
207 WriteCmd( addr[(8*y+x)] );
208 WriteData( LCDNumber[Number/1000] );
209 WriteData( LCDNumber[(Number/100)%10] );
210 WriteCmd( addr[(8*y+x+1)] );
211 WriteData(0x2e);
212 WriteData( LCDNumber[(Number/10)%10] );
213 WriteCmd( addr[(8*y+x+2)] );
214 WriteData( LCDNumber[(Number%10)] );
215
216 WriteCmd( 0x30 );
217 }
218 /***********************************************************
219 函数名称:
220 函数功能:清屏
221 入口参数:
222 出口参数:
223 备 注:
224 ***********************************************************/
225 void CleanScreen( void )
226 {
227 1 WriteCmd( 0x01 );
228 1
229 1 }
230 /***********************************************************
231 函数名称:
232 函数功能:清除单位块
233 入口参数:
234 出口参数:
235 备 注:
236 ***********************************************************
237 void CleanUnit( uchar x,uchar y )
238 {
239 WriteCmd( addr[(8*y+x)] );
240 WriteData( 0x20 );
241 WriteData( 0x20 );
C51 COMPILER V7.50 LCD_SHOW 06/24/2007 16:02:39 PAGE 5
242 }
243
244 /***********************************************************
245 函数名称:
246 函数功能:
247 入口参数:
248 出口参数:
249 备 注:
250 ***********************************************************/
251 void DisString(unsigned char *String,unsigned char Length)
252 {
253 1 unsigned char i;
254 1 WriteCmd( addr[0] );
255 1 for(i=0;i<=Length;i++)
256 1 {
257 2 if(i%2==0)
258 2 {
259 3 if(i==64)
260 3 {
261 4 CleanScreen();
262 4 }
263 3 WriteCmd( addr[i/2] );
264 3 }
265 2 WriteData(String[i]);
266 2 }
267 1 }
268 /***********************************************************
269 函数名称:
270 函数功能:显示声音
271 入口参数:
272 出口参数:
273 备 注:
274 ***********************************************************
275 void DisSoundValue( void )
276 {
277
278
279
280 }
281
282
283 /***********************************************************
284 函数名称:
285 函数功能:
286 入口参数:
287 出口参数:
288 备 注: 秒 分 时 日 月 星期 年
289 ***********************************************************
290 void DisDs1302( void )
291 {
292 Get1302(&Time[0]);
293 Dis2bitNumber(0,0,Time[6]);
294 DisHz16x16(1,0,&nian);
295 Dis2bitNumber(2,0,Time[4]);
296 DisHz16x16(3,0,&yue);
297 Dis2bitNumber(4,0,Time[3]);
298 DisHz16x16(5,0,&ri);
299 // Dis2bitNumber(6,0,Time[2]);
300 // DisHz16x16(7,0,&ri);
301 Dis2bitNumber(0,1,Time[2]);
302 WriteData(0x3a);
303 Dis2bitNumber(2,1,Time[1]);
C51 COMPILER V7.50 LCD_SHOW 06/24/2007 16:02:39 PAGE 6
304 WriteData(0x3a);
305 Dis2bitNumber(4,1,Time[0]);
306 DisHz16x16(5,1,&xing);
307 DisHz16x16(6,1,&qi);
308 Dis2bitNumber(7,1,Time[5]);
309 }
310
311 /***********************************************************
312 函数名称:
313 函数功能:控制对目录的操作
314 入口参数:浮标X,Y坐标
315 出口参数:
316 备 注:
317 ***********************************************************/
318
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 444 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 7
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -