📄 lcd1602.lst
字号:
C51 COMPILER V7.02a LCD1602 09/12/2008 14:50:32 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 <at89x51.h>
2
3 #define MSB 0x80
4 #define LSB 0x00
5 #define TRUE 1
6 #define FALSE 0
7 #define HIGH 1
8 #define LOW 0
9
10 #define LINE1 0
11 #define LINE2 1
12 #define LINE1_HEAD 0x80
13 #define LINE2_HEAD 0xC0
14 #define DATA_MODE 0x38
15 #define OPEN_SCREEN 0x0C
16 #define DISPLAY_ADDRESS 0x80
17 #define CLEARSCREEN LCD_en_com(0x01)
18
19 #define LCDIO P1
20 sbit LCD1602_RS=P3^2;
21 sbit LCD1602_RW=P3^1;
22 sbit LCD1602_EN=P3^0;
23
24 void LCD_Read_BF(void)
25 {
26 1 unsigned char read=0;
27 1
28 1 LCD1602_RS = LOW; //RS 0
29 1 LCD1602_RW = HIGH; //RW 1
30 1 LCD1602_EN = HIGH; //EN 1 Read BF
31 1
32 1 LCDIO = 0xFF;
33 1 LCDIO = 0xFF;
34 1 do{
35 2 read = LCDIO;
36 2 }while(read&MSB);
37 1 }
38 //*************************************
39 void LCD_en_com(unsigned char command)
40 {
41 1 LCD_Read_BF();
42 1
43 1 LCD1602_RS = LOW; //RS 0
44 1 LCD1602_RW = LOW; //RW 0
45 1
46 1 LCD1602_EN = HIGH; //EN --\|/__ Write command
47 1 LCDIO = command;
48 1 LCD1602_EN = LOW;
49 1 }
50 //*********************************
51 void LCD_en_dat(unsigned char dat)
52 {
53 1 LCD_Read_BF();
54 1
55 1 LCD1602_RS = HIGH; //RS 1
C51 COMPILER V7.02a LCD1602 09/12/2008 14:50:32 PAGE 2
56 1 LCD1602_RW = LOW; //RW 0
57 1
58 1 LCD1602_EN = HIGH; //EN --\|/__ Write data
59 1 LCDIO = dat;
60 1 LCD1602_EN = LOW;
61 1 }
62 //**********************************************
63 void LCD_set_xy(unsigned char x,unsigned char y)
64 {
65 1 unsigned char address;
66 1 if(x == LINE1)
67 1 address = LINE1_HEAD + y;
68 1 else
69 1 address = LINE2_HEAD + y;
70 1 LCD_en_com(address);
71 1 }
72 //****************************************************************
73 /*void LCD_write_char(unsigned x,unsigned char y,unsigned char dat)
74 {
75 LCD_set_xy(x,y);
76 LCD_en_dat(dat);
77 } */
78 //*********************************************************************
79 void LCD_write_string(unsigned char x,unsigned char y,unsigned char *s)
80 {
81 1 LCD_set_xy(x,y);
82 1 while(*s)
83 1 {
84 2 LCDIO = *s;
85 2 LCD_en_dat(*s);
86 2 s++;
87 2 }
88 1 }
89 //****************/*********************
90 void LCD_init(void)
91 {
92 1 LCD_en_com(DATA_MODE);
93 1 //set 8 bit data transmission mode
94 1 LCD_en_com(OPEN_SCREEN);
95 1 //open display (enable lcd display)
96 1 LCD_en_com(DISPLAY_ADDRESS);
97 1 //set lcd first display address
98 1 CLEARSCREEN;
99 1 //clear screen
100 1 }
101 //**************************************
102
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 113 ----
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 + -