📄 lcd1602.lst
字号:
C51 COMPILER V8.02 LCD1602 07/08/2008 20:47:02 PAGE 1
C51 COMPILER V8.02, 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"lcd1602.h"
2 uchar date[2];
3
4
5
6 void delay(uchar ms)
7 { // 延时子程序
8 1 uchar i;
9 1 while(ms--)
10 1 {
11 2 for(i = 0; i< 250; i++)
12 2 {
13 3 _nop_();
14 3 _nop_();
15 3 _nop_();
16 3 _nop_();
17 3 }
18 2 }
19 1 }
20
21 BOOL LCD_check_busy() //定义LCD_check_busy()返回值是位
22 { // 测试LCD忙碌状态
23 1 BOOL result;
24 1 rs = 0;
25 1 rw = 1;
26 1 ep = 1;
27 1 result = (BOOL)(LCD_DATA&0x80); //读取第八位
28 1 ep = 0;
29 1 return result; //返回检测信号
30 1 }
31
32 void lcd_write(uchar cd,uchar temp)
33 { // 写入指令数据到LCD
34 1 uchar i;
35 1 while(LCD_check_busy());
36 1 date[0]=temp&0xf0; //取高四位
37 1 date[1]=(temp<<4)&0xf0; //取低四位
38 1 for(i=0;i<2;i++) //循环二次,分别送数据的高低位
39 1 {
40 2 if(cd) //当写数据时使RS=1,当为写指令时RS=0
41 2 rs = 1;
42 2 else
43 2 rs=0;
44 2 rw = 0;
45 2 ep = 0;
46 2 LCD_DATA = date[i]; //送数据到LCD
47 2 if(cd) //保持RS原来的状态,不然会使送数据失败
48 2 rs = 1;
49 2 else
50 2 rs=0;
51 2 ep = 1;
52 2 ep = 0;
53 2 }
54 1 }
55
C51 COMPILER V8.02 LCD1602 07/08/2008 20:47:02 PAGE 2
56 void lcd_pos(uchar pos)
57 {
58 1 lcd_write(0,pos|0x80); //设定显示位置
59 1 }
60
61
62 void lcd_init()
63 { //LCD初始化设定
64 1
65 1 lcd_write(0,0x38); //写三个0x38是初始化要求
66 1 delay(1);
67 1 lcd_write(0,0x38);
68 1 delay(1);
69 1 lcd_write(0,0x38);
70 1 delay(1);
71 1 lcd_write(0,0x28); // 四位数据数、双行显示、5X7点阵字型体
72 1 delay(1);
73 1 lcd_write(0,0x0C); // 显示开、关光标
74 1 delay(1);
75 1
76 1 lcd_write(0,0x06); // 数据读、写操作后,AC自动增一
77 1 delay(1);
78 1 lcd_write(0,0x18);
79 1 delay(1);
80 1 lcd_write(0,0x01); //清除LCD的显示内容
81 1 delay(1);
82 1 }
83
84 void lcd_strwdat( uchar Loc,uchar *str )
85 { //写入字符串显示数据到LCD
86 1 lcd_pos(Loc);
87 1 while(*str!='\0')
88 1 {
89 2 lcd_write(1,*str);
90 2 str++;
91 2 }
92 1 }
93
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 203 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
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 + -