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