?? lcd_show.lst
字號:
C51 COMPILER V6.23a LCD_SHOW 11/24/2007 16:35:08 PAGE 1
C51 COMPILER V6.23a, COMPILATION OF MODULE LCD_SHOW
OBJECT MODULE PLACED IN LCD_SHOW.OBJ
COMPILER INVOKED BY: D:\profession software\c51單片機\Keil3\Keil\C51\BIN\C51.EXE LCD_SHOW.C BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"TC9012.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 void Dis4bitNumber( uchar x,uchar y, uint Number );
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 V6.23a LCD_SHOW 11/24/2007 16:35:08 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 V6.23a LCD_SHOW 11/24/2007 16:35:08 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 V6.23a LCD_SHOW 11/24/2007 16:35:08 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 V6.23a LCD_SHOW 11/24/2007 16:35:08 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 V6.23a LCD_SHOW 11/24/2007 16:35:08 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 + -