📄 1602.lst
字号:
C51 COMPILER V7.20 1602 03/15/2007 14:54:36 PAGE 1
C51 COMPILER V7.20, 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
3 1602字符型液晶显示实验
4 网址:http://www.kaifaban.com
5
6 功能:在第一行显示 welcome to!!!!!!
7 在第二行显示 www.kaifaban.com
8
9 ********************************************************************/
10 #include <reg51.h>
11 #include <intrins.h>
12 #define uchar unsigned char
13 sbit DI=P2^0;//指令数据选择信号
14 sbit RW=P2^1;//读写信号
15 sbit E=P2^2;//使能信号
16 uchar code dis1[] = {"welcome to!!!!!!"};
17 uchar code dis2[] = {"www.kaifaban.com"};
18 //延时子程序
19 delay(uchar ms){
20 1 uchar i;
21 1 while(ms--){
22 2 for(i=0; i<125;i++);
23 2 }
24 1 }
25 // 测试LCD忙碌状态
26 bit LcdBusy(){
27 1 bit result;
28 1 DI=0;
29 1 RW=1;
30 1 E=1;
31 1 _nop_();
32 1 _nop_();
33 1 _nop_();
34 1 _nop_();
35 1 result=(bit)(P0&0x80);
36 1 E=0;
37 1 return result;
38 1 }
39 // 写入指令数据到LCD
40 WriteCommand(uchar Command){
41 1 while(LcdBusy());
42 1 DI=0;
43 1 RW=0;
44 1 E=0;
45 1 _nop_();
46 1 _nop_();
47 1 P0=Command;
48 1 _nop_();
49 1 _nop_();
50 1 _nop_();
51 1 _nop_();
52 1 E=1;
53 1 _nop_();
54 1 _nop_();
55 1 _nop_();
C51 COMPILER V7.20 1602 03/15/2007 14:54:36 PAGE 2
56 1 _nop_();
57 1 E=0;
58 1 }
59 //设定显示位置
60 LcdPosition(uchar Position){
61 1 WriteCommand(Position|0x80);
62 1 }
63 //写入字符显示数据到LCD
64 WriteData(uchar Data){
65 1 while(LcdBusy());
66 1 DI=1;
67 1 RW=0;
68 1 E=0;
69 1 P0=Data;
70 1 _nop_();
71 1 _nop_();
72 1 _nop_();
73 1 _nop_();
74 1 E=1;
75 1 _nop_();
76 1 _nop_();
77 1 _nop_();
78 1 _nop_();
79 1 E=0;
80 1 }
81 //LCD初始化设定
82 LcdInit(){
83 1 WriteCommand(0x38);
84 1 delay(1);
85 1 WriteCommand(0x0c);
86 1 delay(1);
87 1 WriteCommand(0x06);
88 1 delay(1);
89 1 WriteCommand(0x01);//清除LCD的显示内容
90 1 delay(1);
91 1 }
92 //主程序
93 main(){
94 1 uchar i;
95 1 LcdInit();// 初始化LCD
96 1 delay(10);
97 1 LcdPosition(0x00);//设置显示位置为第一行的第1个字符
98 1 i=0;
99 1 while(dis1[i]!='\0'){
100 2 WriteData(dis1[i]);
101 2 i++;
102 2 }
103 1 LcdPosition(0x10);//设置显示位置为第二行第1个字符
104 1 i=0;
105 1 while(dis2[i]!='\0'){
106 2 WriteData(dis2[i]);
107 2 i++;
108 2 }
109 1 while(1);
110 1 }
111
112
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 189 ----
CONSTANT SIZE = 34 ----
C51 COMPILER V7.20 1602 03/15/2007 14:54:36 PAGE 3
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -