📄 lcd1.lst
字号:
C51 COMPILER V7.09 LCD1 08/11/2005 12:18:21 PAGE 1
C51 COMPILER V7.09, COMPILATION OF MODULE LCD1
OBJECT MODULE PLACED IN lcd1.OBJ
COMPILER INVOKED BY: c:\Keil\C51\BIN\C51.EXE lcd1.c DEBUG OBJECTEXTEND PAGEWIDT
-H(79) PAGELENGTH(66)
line level source
1 //RS (CS) O H: Data L: Instruction Code
2 //R/W (SID) O H: Read L: Write
3 #include"reg51.h"
4 #define unchar unsigned char
5 #define unint unsigned int
6 #define LCDDATA P0
7 sbit RS=P1^5;
8 sbit RW=P2^1;
9 sbit EN=P1^7;
10 //sbit EN=P2^2;
11
12 //extern void disp_graphic(unsigned int ru_kou);
13
14 void delay20us(void)
15 {
16 1 unchar n;
17 1 for(n=0;n<15;n++);
18 1 }
19
20 void delay15ms(void)
21 {
22 1 unint n;
23 1 for(n=0;n<4800;n++);
24 1 }
25
26 void delay125us(void)
27 {
28 1 unchar n;
29 1 for(n=0;n<100;n++);
30 1 }
31
32
33 //EN下降沿写入数据
34 void lcd_write_command(unchar c) //向LCD模块的命令寄存器写一个字
-节c。
35 {
36 1 RS=0;
37 1 RW=0;
38 1 EN=0;
39 1 delay20us();
40 1 EN=1;
41 1 delay20us();
42 1 LCDDATA=c;
43 1 delay20us();
44 1 EN=0;
45 1 delay20us();
46 1 }
47
48 void lcd_write_data(unchar ddata) //向LCD模块的字符发生器或显存写
-一个字节data。
49 {
50 1 RS=1;
51 1 RW=0;
52 1 EN=0;
53 1 delay20us();
54 1 EN=1;
C51 COMPILER V7.09 LCD1 08/11/2005 12:18:21 PAGE 2
55 1 delay20us();
56 1 LCDDATA=ddata;
57 1 delay20us();
58 1 EN=0;
59 1 delay20us();
60 1 RS=0;
61 1 }
62
63
64
65 void lcd_init() //初始化LCD模块。
66 {
67 1 lcd_write_command(0x30); //基本命令集
68 1 delay125us();
69 1 lcd_write_command(0x0c); //整体开显示,游标关闭
70 1 delay125us();
71 1 lcd_write_command(0x01); //清除显示
72 1 delay15ms();
73 1 lcd_write_command(0x06); //游标方向设定
74 1 delay125us();
75 1 }
76 void lcd_clear()
77 {
78 1 lcd_write_command(0x01);
79 1 delay125us();
80 1 delay125us();
81 1 delay125us();
82 1 }
83
84 void lcd_write_sentence(unchar row,unchar col,unchar *string)
85 {
86 1 unchar i=0;
87 1 //lcd_clear();
88 1 switch(row)
89 1 {
90 2 case 1:
91 2 lcd_write_command(0x80+col);
92 2 delay125us();
93 2 break;
94 2 case 2:
95 2 lcd_write_command(0x90+col);
96 2 delay125us();
97 2 break;
98 2 case 3:
99 2 lcd_write_command(0x88+col);
100 2 delay125us();
101 2 break;
102 2 case 4:
103 2 lcd_write_command(0x98+col);
104 2 delay125us();
105 2 break;
106 2 default:
107 2 lcd_write_command(0x80);
108 2 delay125us();
109 2 break;
110 2 }
111 1 while(string[i])
112 1 {
113 2 lcd_write_data(string[i]);
114 2 delay125us();
115 2 i++;
116 2 }
117 1 }
118 void lcd_write_passage(unchar *string)
C51 COMPILER V7.09 LCD1 08/11/2005 12:18:21 PAGE 3
119 {
120 1 unchar i=0;
121 1 lcd_clear();
122 1 lcd_write_command(0x80);
123 1 while(string[i])
124 1 {
125 2 switch(i)
126 2 {
127 3 case 16:
128 3 lcd_write_command(0x90);
129 3 break;
130 3 case 32:
131 3 lcd_write_command(0x88);
132 3 break;
133 3 case 48:
134 3 lcd_write_command(0x98);
135 3 break;
136 3 //default:
137 3 //break;
138 3 }
139 2 lcd_write_data(string[i]);
140 2 delay125us();
141 2 i++;
142 2 }
143 1 }
144
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 275 ----
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 + -