?? lcd1602.lst
字號:
C51 COMPILER V8.05a LCD1602 05/08/2009 21:03:45 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN LCD1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD1602.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <INIF.h>
2 uchar qq;
3 bit flag=0;
4 void delay3(uchar dat)
5 {
6 1 while(dat--);
7 1 }
8 void busy(void)
9 {
10 1 PORT_A=0xff;
11 1 rs=0;
12 1 rw=1;
13 1 en=1;
14 1 PORT=0x00; //把8155A口由輸出狀態(tài)轉(zhuǎn)為輸入狀態(tài)
15 1 while(PORT_A & 0x80);
16 1 PORT=0x03; //把8155A口由輸入狀態(tài)轉(zhuǎn)為輸出狀態(tài)
17 1 }
18 void wri(uchar dat)//寫指令
19 {
20 1
21 1 busy();
22 1 rs=0;
23 1 rw=0;
24 1 en=1;
25 1 PORT_A=dat;
26 1 en=0;
27 1 }
28 void wrd(uchar dat)//寫數(shù)據(jù)
29 {
30 1
31 1 busy();
32 1 rs=1;
33 1 rw=0;
34 1 en=1;
35 1 PORT_A=dat;
36 1 en=0;
37 1 }
38 void lcd1602init( )
39 {
40 1 wri(0x01);/*清除顯示*/
41 1 wri(0x38);/*設(shè)置8位格式,2行,5*7*/
42 1 wri(0x06);/*設(shè)定輸入方式,增量不移位*/
43 1 wri(0x0c);/*整體顯示,關(guān)光標(biāo),不閃爍*/
44 1 }
45 void lcd_clear()
46 {
47 1 wri( 0x01 );
48 1 }
49 //=========================
50 //顯示
51 //函數(shù):顯示數(shù)據(jù)首地址,顯示行數(shù)
52 //=========================
53 void lcd_string( uchar *p, uchar flag )
54 {
55 1 if( flag == 1 )
C51 COMPILER V8.05a LCD1602 05/08/2009 21:03:45 PAGE 2
56 1 {
57 2 qq = 0x80;
58 2 while( *p != '\0' )
59 2 {
60 3 wri( qq ); qq++;
61 3 wrd( *p ); p++;
62 3 delay3( 100 );
63 3 }
64 2 }
65 1 if( flag == 2 )
66 1 {
67 2 qq = 0xc0;
68 2 while( *p != '\0' )
69 2 {
70 3 wri( qq ); qq++;
71 3 wrd( *p ); p++;
72 3 delay3( 100 );
73 3 }
74 2 }
75 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 157 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 1 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -