📄 lcd1602.lst
字号:
C51 COMPILER V7.02a LCD1602 08/28/2007 09:34:36 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN LCD1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD1602.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include"reg52.h"
2
3 //*******************LCD模块
4 //*******************LCD模块
5 #define LCD_DATA P1 //LCD的数据口
6
7 sbit LCD_BUSY=LCD_DATA^7; //LCD忙信号位
8
9 sbit LCD_RW=P0^1; //LCD读写控制
10 sbit LCD_RS=P0^0; //LCD寄存器选择
11 sbit LCD_EN=P0^2; //LCD使能信号
12
13
14
15
16 void LCD_check_busy(void) //检测LCD状态,看它是不是还在忙呢
17 {
18 1 while(1)
19 1 {
20 2 LCD_EN=0;
21 2 LCD_RS=0; //指令寄存器通信
22 2 LCD_RW=1; //read data
23 2 LCD_DATA=0xff;
24 2 LCD_EN=1;
25 2 if(!LCD_BUSY)break;
26 2 }
27 1 LCD_EN=0;
28 1 }
29
30 void LCD_cls(void) //LCD清屏
31 {
32 1
33 1 LCD_check_busy();
34 1 LCD_RS=0;
35 1 LCD_RW=0;
36 1 LCD_DATA=1;
37 1 LCD_EN=1;
38 1 LCD_EN=0;
39 1
40 1 }
41
42 void LCD_write_instruction(unsigned char LCD_instruction) //写指令到LCD
43 {
44 1 LCD_check_busy();
45 1 LCD_RS=0;
46 1 LCD_RW=0; //写数据
47 1
48 1 LCD_DATA=LCD_instruction;
49 1 LCD_EN=1;
50 1 LCD_EN=0;
51 1 }
52
53 void LCD_write_data(unsigned char LCD_data) //输出一个字节数据到LCD
54 {
55 1 LCD_check_busy();
C51 COMPILER V7.02a LCD1602 08/28/2007 09:34:36 PAGE 2
56 1 LCD_RS=1;
57 1 LCD_RW=0;
58 1
59 1 LCD_DATA=LCD_data;
60 1 LCD_EN=1;
61 1 LCD_EN=0;
62 1 }
63
64 void LCD_set_position(unsigned char x) //LCD光标定位到x处
65 {
66 1 LCD_write_instruction(0x80+x);
67 1 }
68
69
70
71
72
73 void LCD_printc(unsigned char lcd_data) //输出一个字符到LCD
74 {
75 1 LCD_write_data(lcd_data);
76 1 }
77
78 void LCD_prints(unsigned char *lcd_string) //输出一个字符串到LCD
79 {
80 1 unsigned char i=0;
81 1 while(lcd_string[i]!=0x00)
82 1 {
83 2 LCD_write_data(lcd_string[i]);
84 2 i++;
85 2 }
86 1 }
87
88 void LCD_initial(void) //初始化LCD
89 {
90 1 LCD_write_instruction(0x3c);
91 1 LCD_write_instruction(0x0c);
92 1 LCD_write_instruction(0x06);//显示屏一定要不移动。
93 1 LCD_cls();
94 1 }
95 //*************************LCD模块结束
96
97 void main()
98 {
99 1 LCD_initial();
100 1 LCD_set_position(0);
101 1 LCD_prints("www.lcrfan.com");
102 1 LCD_set_position(0x40);
103 1 LCD_prints(" QQ:46808933");
104 1 while(1)
105 1 {}
106 1
107 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 153 ----
CONSTANT SIZE = 28 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V7.02a LCD1602 08/28/2007 09:34:36 PAGE 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -