📄 lcd1302.lst
字号:
C51 COMPILER V7.50 LCD1302 03/15/2007 23:40:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD1302
OBJECT MODULE PLACED IN LCD1302.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE LCD1302.C BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /**************************************************************************
3
4 THE 1602 CHAR LCD LIB
5
6 COPYRIGHT (c) 2005 BY JJJ.
7 -- ALL RIGHTS RESERVED --
8
9 File Name: LCD.h
10 Author: Jiang Jian Jun
11 Created: 2005/4/3
12 Modified: NO
13 Revision: 1.0
14
15 ***************************************************************************/
16
17 //#ifndef LCD_CHAR_1602_2005_4_9
18 //#define LCD_CHAR_1602_2005_4_9
19
20 //#include <intrins.h>
21
22 //Port Definitions**********************************************************
23 //sbit LcdRs = P2^0;
24 //sbit LcdRw = P2^1;
25 //sbit LcdEn = P2^2;
26 //sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
27
28 //内部等待函数**************************************************************************
29 //unsigned char LCD_Wait(void)
30 /*{
31 LcdRs=0;
32 LcdRw=1; _nop_();
33 LcdEn=1; _nop_();
34 //while(DBPort&0x80);//在用Proteus仿真时,注意用屏蔽此语句,在调用GotoXY()时,会进入死循环,
35 //可能在写该控制字时,该模块没有返回写入完备命令,即DBPort&0x80==0x80
36 //实际硬件时打开此语句
37 LcdEn=0;
38 return DBPort;
39 }*/
40 //向LCD写入命令或数据************************************************************
41 //#define LCD_COMMAND 0 // Command
42 //#define LCD_DATA 1 // Data
43 //#define LCD_CLEAR_SCREEN 0x01 // 清屏
44 //#define LCD_HOMING 0x02 // 光标返回原点
45 /*void LCD_Write(bit style, unsigned char input)
46 {
47 LcdEn=0;
48 LcdRs=style;
49 LcdRw=0; _nop_();
50 DBPort=input; _nop_();//注意顺序
51 LcdEn=1; _nop_();//注意顺序
52 LcdEn=0; _nop_();
53 LCD_Wait();
54 }
55 */
C51 COMPILER V7.50 LCD1302 03/15/2007 23:40:45 PAGE 2
56 //设置显示模式************************************************************
57 /*#define LCD_SHOW 0x04 //显示开
58 #define LCD_HIDE 0x00 //显示关
59
60 #define LCD_CURSOR 0x02 //显示光标
61 #define LCD_NO_CURSOR 0x00 //无光标
62
63 #define LCD_FLASH 0x01 //光标闪动
64 #define LCD_NO_FLASH 0x00 //光标不闪动
65
66 void LCD_SetDisplay(unsigned char DisplayMode)
67 {
68 LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
69 }
70 */
71 //设置输入模式************************************************************
72 /*#define LCD_AC_UP 0x02
73 #define LCD_AC_DOWN 0x00 // default
74
75 #define LCD_MOVE 0x01 // 画面可平移
76 #define LCD_NO_MOVE 0x00 //default
77
78 void LCD_SetInput(unsigned char InputMode)
79 {
80 LCD_Write(LCD_COMMAND, 0x04|InputMode);
81 }
82 */
83 //移动光标或屏幕************************************************************
84 /*
85 #define LCD_CURSOR 0x02
86 #define LCD_SCREEN 0x08
87 #define LCD_LEFT 0x00
88 #define LCD_RIGHT 0x04
89 void LCD_Move(unsigned char object, unsigned char direction)
90 {
91 if(object==LCD_CURSOR)
92 LCD_Write(LCD_COMMAND,0x10|direction);
93 if(object==LCD_SCREEN)
94 LCD_Write(LCD_COMMAND,0x18|direction);
95 }
96 */
97 //初始化LCD************************************************************
98 /*void LCD_Initial()
99 {
100 LcdEn=0;
101 LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵
102 LCD_Write(LCD_COMMAND,0x38);
103 LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR); //开启显示, 无光标
104 LCD_Write(LCD_COMMAND,LCD_CLEAR_SCREEN); //清屏
105 LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE); //AC递增, 画面不动
106 }
107 */
108 //************************************************************************
109 /*void GotoXY(unsigned char x, unsigned char y)
110 {
111 if(y==0)
112 LCD_Write(LCD_COMMAND,0x80|x);
113 if(y==1)
114 LCD_Write(LCD_COMMAND,0x80|(x-0x40));
115 }
116 void Print(unsigned char *str)
117 {
C51 COMPILER V7.50 LCD1302 03/15/2007 23:40:45 PAGE 3
118 while(*str!='\0')
119 {
120 LCD_Write(LCD_DATA,*str);
121 str++;
122 }
123 }*/
124 /*
125 void LCD_LoadChar(unsigned char user[8], unsigned char place)
126 {
127 unsigned char i;
128 LCD_Write(LCD_COMMAND,0x40|(place*8));
129 for(i=0; i<8; i++)
130 LCD_Write(LCD_DATA,user[i]);
131 }
132 */
133 //************************************************************************
134 //#endif
135 #ifndef _LCD1602_H_
136 #define _LCD1602_H_
137
138 //输入方式设置
139 #define LCD_AC_AUTO_INCREMENT 0x06 //数据读、写操作后,AC自动增一
140 #define LCD_AC_AUTO_DECREASE 0x04 //数据读、写操作后,AC自动减一
141 #define LCD_MOVE_ENABLE 0x05 //数据读、写操作,画面平移
142 #define LCD_MOVE_DISENABLE 0x04 //数据读、写操作,画面不动
143 #define LCD_GO_HOME 0x02 //AC=0,光标、画面回HOME位
144 //设置显示、光标及闪烁开、关
145 #define LCD_DISPLAY_ON 0x0C //显示开
146 #define LCD_DISPLAY_OFF 0x08 //显示关
147 #define LCD_CURSOR_ON 0x0A //光标显示
148 #define LCD_CURSOR_OFF 0x08 //光标不显示
149 #define LCD_CURSOR_BLINK_ON 0x09 //光标闪烁
150 #define LCD_CURSOR_BLINK_OFF 0x08 //光标不闪烁
151 //光标、画面移动,不影响DDRAM
152 #define LCD_LEFT_MOVE 0x18 //LCD显示左移一位
153 #define LCD_RIGHT_MOVE 0x1C //LCD显示右移一位
154 #define LCD_CURSOR_LEFT_MOVE 0x10 //光标左移一位
155 #define LCD_CURSOR_RIGHT_MOVE 0x14 //光标右移一位
156 //工作方式设置
157 #define LCD_DISPLAY_DOUBLE_LINE 0x38 //两行显示
158 #define LCD_DISPLAY_SINGLE_LINE 0x30 //单行显示
159 #define LCD_CLEAR_SCREEN 0X01 //清屏
160 /***********************LCD1602地址相关******************************/
161 #define LINE1_HEAD 0x80 // 第一行DDRAM起始地址
162 #define LINE2_HEAD 0xc0 // 第二行DDRAM起始地址
163 #define LINE1 0 //第一行
164 #define LINE2 1 //第二行
165 #define LINE_LENGTH 16 //每行的最大字符长度
166 /***********************LCD1602接线引脚定义**************************/
167
168 #define LCDIO P0 //定义P2口与LCD1602的数据口相接
169 sbit LCD_RS=P2^0;
*** ERROR C202 IN LINE 169 OF LCD1302.C: 'P2': undefined identifier
170 sbit LCD_RW=P2^1;
*** ERROR C202 IN LINE 170 OF LCD1302.C: 'P2': undefined identifier
171 sbit LCD_EN=P2^2;
*** ERROR C202 IN LINE 171 OF LCD1302.C: 'P2': undefined identifier
172 sbit LCD_BUSY=LCDIO^7;
*** ERROR C202 IN LINE 172 OF LCD1302.C: 'P0': undefined identifier
173 /**********************另外相关的定*********************************/
174 #define HIGH 1
175 #define LOW 0
C51 COMPILER V7.50 LCD1302 03/15/2007 23:40:45 PAGE 4
176 #define TURE 1
177 #define FALSE 0
178 #define uchar unsigned char
179 #define uint unsigned int
180
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -