📄 +
字号:
C51 COMPILER V7.50 1602动蘝 06/09/2010 20:52:45 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 1602动蘝
OBJECT MODULE PLACED IN 1602动态.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 1602动态.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 /*1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK*/
3
4 /*-----------------------------------------------
5 名称:LCD1602
6 内容:通过标准程序动态显示字符
7 ------------------------------------------------*/
8 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
9
10 sbit RS = P2^4; //定义端口
11 sbit RW = P2^5;
12 sbit EN = P2^6;
13
14 #define RS_CLR RS=0
15 #define RS_SET RS=1
16 #define RW_CLR RW=0
17 #define RW_SET RW=1
18 #define EN_CLR EN=0
19 #define EN_SET EN=1
20 /******************************************************************/
21 /* 微秒延时函数 */
22 /******************************************************************/
23 void delay_us(unsigned int n) //延时 如果需要高精度延时 请嵌入汇编
24 {
25 1 if (n == 0)
26 1 {
27 2 return ;
28 2 }
29 1 while (--n);
30 1 }
31 /******************************************************************/
32 /* 毫秒函数声明 */
33 /******************************************************************/
34 void delay_ms(unsigned char i)
35 {
36 1 unsigned char a, b;
37 1 for (a = 1; a < i; a++)
38 1 {
39 2 for (b = 1; b; b++)
40 2 { ; }
41 2 }
42 1 }
43 /******************************************************************/
44 /* 写入命令函数 */
45 /******************************************************************/
46 void LCD_write_com(unsigned char com)
47 {
48 1 RS_CLR;
49 1 RW_CLR;
50 1 EN_SET;
51 1 P0 = com;
52 1 delay_us(5);
53 1 EN_CLR;
54 1 }
55 /******************************************************************/
C51 COMPILER V7.50 1602动蘝 06/09/2010 20:52:45 PAGE 2
56 /* 写入数据函数 */
57 /******************************************************************/
58 void LCD_write_Data(unsigned char Data)
59 {
60 1 RS_SET;
61 1 RW_CLR;
62 1 EN_SET;
63 1 P0 = Data;
64 1 delay_us(5);
65 1 EN_CLR;
66 1 }
67 /******************************************************************/
68 /* 清屏函数 */
69 /******************************************************************/
70 void LCD_clear(void)
71 {
72 1 LCD_write_com(0x01);
73 1 delay_ms(5);}
74 /******************************************************************/
75 /* 写入字符串函数 */
76 /******************************************************************/
77 void LCD_write_str(unsigned char x,unsigned char y,unsigned char *s)
78 {
79 1 if (y == 0)
80 1 {
81 2 LCD_write_com(0x80 + x);
82 2 }
83 1 else
84 1 {
85 2 LCD_write_com(0xC0 + x);
86 2 }
87 1 while (*s)
88 1 {
89 2 LCD_write_Data( *s);
90 2 s ++;
91 2 }
92 1 }
93 /******************************************************************/
94 /* 写入字节函数 */
95 /******************************************************************/
96 void LCD_write_char(unsigned char x,unsigned char y,unsigned char Data)
97 {
98 1 if (y == 0)
99 1 {
100 2 LCD_write_com(0x80 + x);
101 2 }
102 1 else
103 1 {
104 2 LCD_write_com(0xC0 + x);
105 2 }
106 1 LCD_write_Data( Data);
107 1 }
108 /******************************************************************/
109 /* 初始化函数 */
110 /******************************************************************/
111 void LCD_init(void)
112 {
113 1 LCD_write_com(0x38); /*显示模式设置*/
114 1 delay_ms(5);
115 1 LCD_write_com(0x38);
116 1 delay_ms(5);
117 1 LCD_write_com(0x38);
C51 COMPILER V7.50 1602动蘝 06/09/2010 20:52:45 PAGE 3
118 1 delay_ms(5);
119 1 LCD_write_com(0x38);
120 1 LCD_write_com(0x08); /*显示关闭*/
121 1 LCD_write_com(0x01); /*显示清屏*/
122 1 LCD_write_com(0x06); /*显示光标移动设置*/
123 1 delay_ms(5);
124 1 LCD_write_com(0x0C); /*显示开及光标设置*/
125 1 }
126
127 /******************************************************************/
128 /* 主函数 */
129 /******************************************************************/
130 void main(void)
131 {
132 1 unsigned char i;
133 1 unsigned char *p;
134 1 delay_ms(100);
135 1 LCD_init();
136 1 while (1)
137 1 {
138 2 i = 1;
139 2 p = "huaqinmcu";
140 2 LCD_clear();
141 2 LCD_write_str(2,0,"Welcome to");
142 2 delay_ms(250);
143 2 while (*p)
144 2 {
145 3 LCD_write_char(i,1,*p);
146 3 i ++;
147 3 p ++;
148 3 delay_ms(250);
149 3 }
150 2 delay_ms(250);
151 2 }
152 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 252 ----
CONSTANT SIZE = 21 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 4
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 + -