📄 1602.lst
字号:
C51 COMPILER V7.50 1602 09/08/2006 21:35:56 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 /* 程序名:LCM1602液晶显示代码 */
3 /* */
4 /* 晶振:12.0 M CPU型号:AT89S52 */
5 /* */
6 /* */
7 /* 功能描述: 1602显示,需将J15(1,2)跳线帽插上 */
8 /* 但是要拔去J2跳线帽? */
9 /* */
10 /* http://www.mculover.net */
11 /* http://www.mculover.net/bbs */
12 /* */
13 /* */
14 /* 湘灵电子工作室 版权所有 */
15 /* 2006-03-20 */
16 /************************************************************************************/
17
18 #include <reg51.h>
19
20 #define Lcd_Data P0 //定义数据端口
21
22 sbit RS = P2 ^ 0; //定义和LCM的连接端口
23 sbit RW = P2 ^ 1;
24 sbit E = P2 ^ 2;
25 sbit Busy = P0 ^ 7;
26
27 unsigned char code welcome[] = {"Welcome to : "};
28 unsigned char code website[] = {"www.mculover.net"};
29 unsigned char code designed[]={"Designed By:"};
30 unsigned char code whomi[]={"whoami"};
31
32 /******************************************************************************/
33 void Delay(unsigned char t)//延时子程序,延时 1MS*t S
34 {
35 1 unsigned char a;
36 1 while(--t != 0)
37 1 {
38 2 for(a = 0; a < 125; a++);
39 2 }
40 1 }
41
42 /******************************************************************************/
43 void Read_Busy(void)//读忙信号判断
44 {
45 1 do{
46 2 Lcd_Data = 0xff;
47 2 RS = 0;
48 2 RW = 1;
49 2 E = 0;
50 2 Delay(2);
51 2 E = 1;
52 2 }while(Busy);
53 1 }
54
55 /******************************************************************************/
C51 COMPILER V7.50 1602 09/08/2006 21:35:56 PAGE 2
56 void Write_Comm(unsigned char lcdcomm) //写指令函数
57 {
58 1 Lcd_Data = lcdcomm;
59 1 RS = 0;
60 1 RW = 0;
61 1 E = 0;
62 1 Read_Busy();
63 1 E = 1;
64 1 }
65
66 /******************************************************************************/
67 void Write_Data(unsigned char lcddata)//写数据函数
68 {
69 1 Lcd_Data = lcddata;
70 1 RS = 1;
71 1 RW = 0;
72 1 E = 0;
73 1 Read_Busy();
74 1 E = 1;
75 1 }
76
77 /******************************************************************************/
78 void Init_LCD(void)//初始化LCD
79 {
80 1 Delay(400); //稍微延时,等待LCM进入工作状态
81 1 Write_Comm(0x01);//清显示
82 1 // Write_Comm(0x02);//光标归位
83 1 Write_Comm(0x38);//8位2行5*8
84 1 Write_Comm(0x06);//文字不动,光标右移
85 1 Write_Comm(0x0c);//显示开/关,光标开闪烁开
86 1 // Write_Comm(0x18);//左移
87 1 }
88
89 /******************************************************************************/
90 void main(void)//主函数
91 {
92 1 unsigned char i;
93 1
94 1 Init_LCD(); //初始化 LCM
95 1
96 1 Write_Comm(0x80);//写入"welcome to"首地址(第一行)
97 1
98 1 for(i=0;i<16;i++)
99 1 {
100 2 Write_Data( welcome[i] );//显示welcometo字样
101 2 }
102 1
103 1 Write_Comm(0xc0);//写入"web"首地址(第2行)
104 1
105 1 for(i=0;i<16;i++)
106 1 {
107 2 Write_Data( website[i] );//显示http;//www.mculover.net
108 2 }
109 1
110 1 while(1)
111 1 {
112 2 ;
113 2 }
114 1 }
115
C51 COMPILER V7.50 1602 09/08/2006 21:35:56 PAGE 3
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 134 ----
CONSTANT SIZE = 54 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -