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