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