📄 lcd1602.lst
字号:
C51 COMPILER V7.02a LCD1602 05/13/2007 12:40:07 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 //********************************************************
2 // LCD1602.c File
3 // Created by xiaorunyi
4 // email: qq315626168@126.com
5 //*********************************************************
6 #include "LCD1602.h"
7
8
9 void LCD_Read_BF(void)
10 {
11 1
12 1 unsigned char read=0;
13 1
14 1 LCD1602_RW = HIGH; //RW 1
15 1 LCD1602_RS = LOW; //RS 0
16 1 LCD1602_EN = HIGH; //EN 1 Read BF
17 1
18 1 LCDIO = 0xFF;
19 1
20 1 do{
21 2 read = LCDIO;
22 2 }while(read&MSB);
23 1
24 1 LCD1602_EN = LOW;
25 1 }
26
27 void delay_1us(void) //1us延时函数
28 {
29 1 unsigned char i;
30 1 for(i=0;i<1;i++);
31 1 }
32
33 void LCD_en_write(void) //EN端产生一个高电平脉冲,写LCD
34 {
35 1 LCD1602_EN = HIGH;
36 1 delay_1us();
37 1 LCD1602_EN = LOW;
38 1 }
39
40 //********************************************************
41 void LCD_en_com(unsigned char command)
42 {
43 1 LCD_Read_BF();
44 1
45 1 LCD1602_RS = LOW; //RS 0
46 1 LCD1602_RW = LOW; //RW 0
47 1
48 1 LCDIO &= 0x0F;
49 1 LCDIO |= command&0xF0;
50 1
51 1 LCD_en_write();
52 1
53 1 command = command << 4;
54 1 LCDIO &= 0x0F;
55 1 LCDIO |= command&0xF0;
C51 COMPILER V7.02a LCD1602 05/13/2007 12:40:07 PAGE 2
56 1 LCD_en_write();
57 1 }
58 //********************************************************
59 void LCD_en_dat(unsigned char dat)
60 {
61 1 LCD_Read_BF();
62 1
63 1 LCD1602_RS = HIGH; //RS 1
64 1 LCD1602_RW = LOW; //RW 0
65 1
66 1 LCDIO &= 0x0F;
67 1 LCDIO |= dat&0xF0;
68 1
69 1 LCD_en_write();
70 1
71 1 dat = dat << 4;
72 1 LCDIO &= 0x0F;
73 1 LCDIO |= dat&0xF0;
74 1 LCD_en_write();
75 1 }
76 //********************************************************
77 void LCD_set_xy(unsigned char x,unsigned char y)
78 {
79 1 unsigned char address;
80 1 if(x == LINE1)
81 1 address = LINE1_HEAD + y;
82 1 else
83 1 address = LINE2_HEAD + y;
84 1 LCD_en_com(address);
85 1 }
86 //********************************************************
87 /*void LCD_write_char(unsigned x,unsigned char y,unsigned char dat)
88 {
89 LCD_set_xy(x,y);
90 LCD_en_dat(dat);
91 }*/
92 //********************************************************
93 void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)
94 {
95 1 LCD_set_xy(x,y);
96 1 while(*s)
97 1 {
98 2 LCDIO = *s;
99 2 LCD_en_dat(*s);
100 2 s++;
101 2 }
102 1 }
103 //*********************************************************
104 void LCD_init(void)
105 {
106 1 LCD_en_com(DATA_MODE);
107 1 //set 8 bit data transmission mode
108 1 LCD_en_com(OPEN_SCREEN);
109 1 //open display (enable lcd display)
110 1 LCD_en_com(DISPLAY_ADDRESS);
111 1
112 1 //set lcd first display address
113 1 CLEARSCREEN;
114 1 //clear screen
115 1 }
C51 COMPILER V7.02a LCD1602 05/13/2007 12:40:07 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 155 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -