📄 104-1602ʦ
字号:
C51 COMPILER V9.01 1602 05/13/2012 00:36:49 PAGE 1
C51 COMPILER V9.01, COMPILATION OF MODULE 1602
OBJECT MODULE PLACED IN 1602.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE 1602.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*-----------------------------------------------
2 名称:LCD1602
3 论坛:www.proteus.net.cn
4 编写:华科教育
5 日期:2010.5
6 修改:无
7 内容:
8 引脚定义如下:1-VSS 2-VDD 3-V0 4-RS 5-R/W 6-E 7-14 DB0-DB7 15-BLA 16-BLK
9 ------------------------------------------------*/
10 #include "1602.h"
11 #include "delay.h"
12
13 sbit RS = P2^6; //定义端口
14 sbit RW = P2^5;
15 sbit EN = P2^4;
16
17 #define RS_CLR RS=0
18 #define RS_SET RS=1
19
20 #define RW_CLR RW=0
21 #define RW_SET RW=1
22
23 #define EN_CLR EN=0
24 #define EN_SET EN=1
25
26 #define DataPort P1
27
28 /*------------------------------------------------
29 判忙函数
30 ------------------------------------------------*/
31 /*
32 bit LCD_Check_Busy(void)
33 {
34 DataPort= 0xFF;
35 RS_CLR;
36 RW_SET;
37 EN_CLR;
38 _nop_();
39 EN_SET;
40 return (bit)(DataPort & 0x80);
41 }
42 */
43 /*------------------------------------------------
44 写入命令函数
45 ------------------------------------------------*/
46 void LCD_Write_Com(unsigned char com)
47 {
48 1 // while(LCD_Check_Busy()); //忙则等待
49 1 RS_CLR;
50 1 RW_CLR;
51 1 EN_SET;
52 1 DataPort= com;
53 1 _nop_();
54 1 ///////////////
55 1 DelayMs(5);
C51 COMPILER V9.01 1602 05/13/2012 00:36:49 PAGE 2
56 1 //////////////////
57 1 EN_CLR;
58 1 }
59 /*------------------------------------------------
60 写入数据函数
61 ------------------------------------------------*/
62 void LCD_Write_Data(unsigned char Data)
63 {
64 1 // while(LCD_Check_Busy()); //忙则等待
65 1 RS_SET;
66 1 RW_CLR;
67 1 EN_SET;
68 1 DataPort= Data;
69 1 _nop_();
70 1 ///////////////
71 1 DelayMs(5);
72 1 //////////////////
73 1 EN_CLR;
74 1 }
75
76 /*------------------------------------------------
77 清屏函数
78 ------------------------------------------------*/
79 void LCD_Clear(void)
80 {
81 1 LCD_Write_Com(0x01);
82 1 DelayMs(5);
83 1 }
84 /*------------------------------------------------
85 写入字符串函数
86 ------------------------------------------------*/
87 void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s)
88 {
89 1 if (y == 0)
90 1 {
91 2 LCD_Write_Com(0x80 + x); //表示第一行
92 2 }
93 1 else
94 1 {
95 2 LCD_Write_Com(0xC0 + x); //表示第二行
96 2 }
97 1 while (*s)
98 1 {
99 2 LCD_Write_Data( *s);
100 2 s ++;
101 2 }
102 1 }
103 /*------------------------------------------------
104 写入字符函数
105 ------------------------------------------------*/
106 /* void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data)
107 {
108 if (y == 0)
109 {
110 LCD_Write_Com(0x80 + x);
111 }
112 else
113 {
114 LCD_Write_Com(0xC0 + x);
115 }
116 LCD_Write_Data( Data);
117 }*/
C51 COMPILER V9.01 1602 05/13/2012 00:36:49 PAGE 3
118 /*------------------------------------------------
119 初始化函数
120 ------------------------------------------------*/
121 void LCD_Init(void)
122 {
123 1 LCD_Write_Com(0x38); /*显示模式设置*/
124 1 DelayMs(5);
125 1 LCD_Write_Com(0x38);
126 1 DelayMs(5);
127 1 LCD_Write_Com(0x38);
128 1 DelayMs(5);
129 1 LCD_Write_Com(0x38);
130 1 LCD_Write_Com(0x08); /*显示关闭*/
131 1 LCD_Write_Com(0x01); /*显示清屏*/
132 1 LCD_Write_Com(0x06); /*显示光标移动设置*/
133 1 DelayMs(5);
134 1 LCD_Write_Com(0x0C); /*显示开及光标设置*/
135 1 }
136
137
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 158 ----
CONSTANT SIZE = ---- ----
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 + -