📄 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口由输出状态转为输入状态
15 1 while(PORT_A & 0x80);
16 1 PORT=0x03; //把8155A口由输入状态转为输出状态
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)//写数据
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);/*设置8位格式,2行,5*7*/
42 1 wri(0x06);/*设定输入方式,增量不移位*/
43 1 wri(0x0c);/*整体显示,关光标,不闪烁*/
44 1 }
45 void lcd_clear()
46 {
47 1 wri( 0x01 );
48 1 }
49 //=========================
50 //显示
51 //函数:显示数据首地址,显示行数
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)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -