📄 lcd1602.lst
字号:
C51 COMPILER V8.02 LCD1602 03/29/2010 10:44:00 PAGE 1
C51 COMPILER V8.02, 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 #include <reg51.h>
2 #include "LCD1602.h"
3 //短延时函数:ShortDelay()
4 void ShortDelay(uchar i)
5 {
6 1 for(;i>0;i--) ;
7 1 }
8 //长延时函数:LongDelay()
9 void LongDelay(uint i)
10 {
11 1 uint j;
12 1 for(;i>0;i--)
13 1 { for(j=1000;j>0;j--);}
14 1 }
15
16
17 //写指令函数:WriteInstruc()
18 void WriteInstruc(uint Instruc)
19 {
20 1 while(StatusCheck());
21 1 RS=0;
22 1 RW=0;
23 1 ShortDelay(1);
24 1 E=0;
25 1 P0 = Instruc;
26 1 ShortDelay(1);
27 1 E=1;
28 1 ShortDelay(10);
29 1 E=0;
30 1 ShortDelay(1);
31 1 }
32
33 //读BF以及AC的值函数:Read_BF_AC()
34 uint Read_BF_AC()
35 {
36 1 uint temp;
37 1 P0=0xff;
38 1 RS=0;
39 1 RW=1;
40 1 ShortDelay(1);
41 1 E=0;
42 1 ShortDelay(1);
43 1 E=1;
44 1 ShortDelay(1);
45 1 temp = P0;
46 1 ShortDelay(10);
47 1 E=0;
48 1 ShortDelay(1);
49 1 return(temp);
50 1 }
51
52 //写数据到RAM函数:WriteData()
53 void WriteData(uint data1)
54 {
55 1 RS=1;
C51 COMPILER V8.02 LCD1602 03/29/2010 10:44:00 PAGE 2
56 1 RW=0;
57 1 //ShortDelay(1);
58 1 E=0;
59 1 P0 = data1;
60 1 //ShortDelay(1);
61 1 E=1;
62 1 ShortDelay(10);
63 1 E=0;
64 1 }
65
66 //从RAM读数据函数:ReadData()
67 uint ReadData(void)
68 {
69 1 uint temp;
70 1 P0=0xff;
71 1 RS=1;
72 1 RW=1;
73 1 ShortDelay(1);
74 1 E=0;
75 1 ShortDelay(1);
76 1 E=1;
77 1 ShortDelay(1);
78 1 temp = P0;
79 1 ShortDelay(10);
80 1 E=0;
81 1 ShortDelay(1);
82 1 RW=0;
83 1 RS=0;
84 1 return(temp);
85 1 }
86
87 //检测LCD控制器状态函数:StatusCheck()
88 //返回一bit数:1 —— 忙;0 —— 闲
89 bit StatusCheck()
90 {
91 1 return((bit)(Read_BF_AC() & 0x80));
92 1 }
93
94 //在指定位置显示字符函数: DispCharacter()
95 // x为行号,y为列号,
96 // data为显示字符的码字数据
97 void DispCharacter(uint x, uint y, uint data1)
98 {
99 1 uint temp;
100 1 while(StatusCheck()); //若LCD控制器忙,则等待
101 1
102 1 temp = y & 0x0f;
103 1 x &= 0x01;
104 1 if(x) temp |= 0x40;
105 1 SetDDRAM_Add(temp); //设置显示位置
106 1
107 1 WriteData(data1);
108 1 }
109
110 //LCD复位函数:LCDReset()
111 void LCDReset()
112 {
113 1 ClearScreen();
114 1 CursorReturn();
115 1 }
C51 COMPILER V8.02 LCD1602 03/29/2010 10:44:00 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 237 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -