📄 lcd1602.lst
字号:
C51 COMPILER V8.16 LCD1602 01/11/2009 11:10:52 PAGE 1
C51 COMPILER V8.16, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN .\bin\LCD1602.obj
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE src\LCD1602.c ROM(COMPACT) BROWSE DEBUG OBJECTEXTEND PRINT(.\
-bin\LCD1602.lst) OBJECT(.\bin\LCD1602.obj)
line level source
1 #include<reg51.h>
2 #include"inc/define.h"
3 #include"inc/lcd1602.h"
4
5 #define BUSY 0x80 //用于检测LCD状态字中的Busy标识
6
7 u8 BusyCheck() //忙检测 LCD正操作忙则返回1;不忙则返回0
8 {
9 1 u8 flag;
10 1
11 1 LCD_Data = 0xFF;
12 1 LCD_RS = 0;
13 1 LCD_RW = 1;
14 1 LCD_E = 1;
15 1 flag = LCD_Data & BUSY;
16 1 LCD_E = 0;
17 1
18 1 return flag;
19 1 }
20 void BusyWait() //忙等待 一直等到LCD不忙时再返回
21 {
22 1 while(1 == BusyCheck())
23 1 ;
24 1 }
25
26 void WriteCMD(u8 CData)
27 {
28 1 BusyWait();
29 1 LCD_Data = CData;
30 1 LCD_RS = 0;
31 1 LCD_RW = 0;
32 1 LCD_E = 1;
33 1 LCD_E = 0;
34 1 }
35
36 void WriteData(u8 DData)
37 {
38 1 BusyWait();
39 1 LCD_Data = DData;
40 1 LCD_RS = 1;
41 1 LCD_RW = 0;
42 1 LCD_E = 1;
43 1 LCD_E = 0;
44 1 }
45
46 u8 ReadData()
47 {
48 1 u8 DData;
49 1 LCD_RS = 1;
50 1 LCD_RW = 1;
51 1 LCD_E = 1;
52 1 DData=LCD_Data;
53 1 LCD_E = 0;
54 1
C51 COMPILER V8.16 LCD1602 01/11/2009 11:10:52 PAGE 2
55 1 return DData;
56 1 }
57
58 /**********在指定位置显示一个字符*************/
59 void DisplayChar(u8 x,u8 y,uchar DData)
60 {
61 1 x &= 0xF;
62 1 y &= 0x1; //限制x不能大于15,y不能大于1
63 1 if (1 == y)
64 1 x |= 0x40; //当要显示第二行时地址码 0x40;
65 1 x |= 0x80; //算出指令码
66 1 WriteCMD(x); //这里不检测忙信号,发送地址码
67 1 WriteData(DData);
68 1 }
69
70 /*********按指定位置显示一串字符**************/
71 void DisplayStr(u8 x,u8 y,uchar *DData)
72 {
73 1 u8 char_posi = 0;
74 1 x &= 0xF;
75 1 y &= 0x1; //限制x不能大于15,y不能大于1
76 1 while ((DData[char_posi] != '\0') && (x <= 0x0F)) //若到达字串尾则退出并且位置不在末尾
77 1 {
78 2 DisplayChar(x,y,DData[char_posi]); //显示单个字符
79 2 char_posi++;
80 2 x++;
81 2 }
82 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 156 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -