📄 lcd1602.lst
字号:
C51 COMPILER V8.08 LCD1602 09/23/2008 07:30:52 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LCD1602
OBJECT MODULE PLACED IN lcd1602.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd1602.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /***********************************************************
2 文件名称: lcd1602.c
3 作 者: 芦达
4 版 本: 1.0
5 说 明: LCM函数
6 修改记录:
7 ***********************************************************/
8 #include <reg52.h>
9 #include <lcd1602.h>
10 #include <delay.h>
11
12 char int2charLCD[20];
13 /***********************************************************
14 函数名称: write_LCD_command
15 函数功能: 将命令写入LCM
16 入口参数:
17 出口参数:
18 备 注:
19 ***********************************************************/
20 void write_LCD_command(unsigned command)
21 {
22 1 LCD_RS=COMMAND;
23 1 LCD_ENABLE=ENABLE;
24 1 P0=command;
25 1 DelayNS(20);
26 1 LCD_ENABLE=DISABLE;
27 1 P0=0;
28 1 }
29 /***********************************************************
30 函数名称: write_LCD_data
31 函数功能: 将数据写入LCM
32 入口参数:
33 出口参数:
34 备 注:
35 ***********************************************************/
36 void write_LCD_data(unsigned LCDdata)
37 {
38 1 LCD_RS=DATA;
39 1 LCD_ENABLE=ENABLE;
40 1 P0=LCDdata;
41 1 DelayNS(20);
42 1 LCD_ENABLE=DISABLE;
43 1 P0=0;
44 1 }
45 /***********************************************************
46 函数名称: init_LCD
47 函数功能: 初始化LCM
48 入口参数:
49 出口参数:
50 备 注:
51 ***********************************************************/
52 void init_LCD(void)
53 {
54 1 P0=0;
55 1 dula=0;
C51 COMPILER V8.08 LCD1602 09/23/2008 07:30:52 PAGE 2
56 1 wela=0;
57 1 write_LCD_command(TwoLine_8bit);
58 1 write_LCD_command(CURSOR_OFF);
59 1 write_LCD_command(CURSOR_RIGHT);
60 1 }
61 /***********************************************************
62 函数名称: clear_LCD
63 函数功能: LCM 清屏
64 入口参数:
65 出口参数:
66 备 注:
67 ***********************************************************/
68 void clear_LCD(void)
69 {
70 1 write_LCD_command(LCD_CLEAR);
71 1 write_LCD_command(CURSOR_HOME);
72 1 }
73 /***********************************************************
74 函数名称: display_LCD
75 函数功能: LCM显示字符串
76 入口参数:
77 出口参数:
78 备 注:
79 ***********************************************************/
80 void display_LCD_string(char *p)
81 {
82 1 while (*p)
83 1 {
84 2 write_LCD_data(*p);
85 2 p++;
86 2 }
87 1 }
88 /***********************************************************
89 函数名称: gotoxy
90 函数功能: 设置位置
91 入口参数:
92 出口参数:
93 备 注:
94 ***********************************************************/
95 void gotoxy(unsigned x,unsigned y)
96 {
97 1 if (x==1)
98 1 write_LCD_command(GOTO_LINE_1+y);
99 1 else
100 1 write_LCD_command(GOTO_LINE_2+y);
101 1 }
102 /***********************************************************
103 函数名称: display_LCD_number
104 函数功能: LCM显示数字
105 入口参数:
106 出口参数:
107 备 注:
108 ***********************************************************/
109 void display_LCD_number(unsigned long number,unsigned char dotwei)
110 { unsigned char x;
111 1 unsigned long y=number ;
112 1 unsigned char count=0;
113 1 if (y==0)
114 1 {
115 2 write_LCD_data('0');
116 2 }
117 1 else
C51 COMPILER V8.08 LCD1602 09/23/2008 07:30:52 PAGE 3
118 1 {
119 2 while (y)
120 2 { x=y%10;
121 3 y=y/10;
122 3 int2charLCD[count]=x+'0';
123 3 count++;
124 3 }
125 2
126 2 while(count<=dotwei)
127 2 {
128 3 int2charLCD[count]='0';
129 3 count++;
130 3 }
131 2 int2charLCD[count]=0;
132 2 for (x=count-1;x<20;x--)
133 2 {
134 3 if((x+1)==dotwei) write_LCD_data('.');
135 3 write_LCD_data(int2charLCD[x]);
136 3 }
137 2 for(;count<20;count++)
138 2 write_LCD_data(' ');
139 2 }
140 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 349 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 20 16
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 + -