📄 12864z.lst
字号:
C51 COMPILER V8.02 12864Z 08/14/2008 17:37:18 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 12864Z
OBJECT MODULE PLACED IN 12864z.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864z.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at892051.h>
2 #include <intrins.h>
3 #include <string.h>
4
5 #define uchar unsigned char //自定义关键字
6
7 #define BUSY_FLAG P1_7 //液晶模块忙标志
8 #define MPU_RS_CH P3_5 //寄存器选择输入 RS
9 #define MPU_RW_CH P3_4 //读写控制 RW
10 #define MPU_ENABLE P3_7 //使能控制 E
11 #define MPU_PS_CH P3_1 //串/并传输控制 PSB
12 #define MPU_RESET P3_3 //液晶复位控制 RST
13 #define LCD_DATA P1 //液晶数据口 P1
14
15 #define LOW 0 //低电平
16 #define HIGH 1 //高电平
17 #define OFF 0 //逻辑关
18 #define ON 1 //逻辑开
19
20 //液晶模块指令集定义
21 //-----------------------------------------------
22
23 #define cClearDisplay 0x01 //清显示指令
24 #define cEntryModeSet 0x06 //设置输入模式
25 #define cDisplayOnCtrl 0x0c //设置开显控制
26 #define cFunctionSetB 0x30 //功能设定(基本指令)
27 #define cFunctionSetE 0x34 //功能设定(扩充指令)
28
29 //-----------------------------------------------
30 void checkLcdBusy (void)
31 {
32 1 LCD_DATA = 0xff;
33 1 MPU_RS_CH = LOW;
34 1 MPU_RW_CH = HIGH;
35 1 MPU_ENABLE = HIGH;
36 1 while (BUSY_FLAG);
37 1 MPU_ENABLE = LOW;
38 1 }
39
40 //-----------------------------------------------
41 void delayMs (uchar ms)
42 {
43 1 uchar i;
44 1 while (--ms)
45 1 for (i = 0; i < 125; i++);
46 1 }
47
48 //-----------------------------------------------
49 void delaySec (uchar sec)
50 {
51 1 uchar i;
52 1 while (--sec)
53 1 for (i = 0; i < 200; i++)
54 1 delayMs (6);
55 1 }
C51 COMPILER V8.02 12864Z 08/14/2008 17:37:18 PAGE 2
56
57 //-----------------------------------------------
58 void lcdWriteCommand (uchar Command)
59 {
60 1 checkLcdBusy();
61 1 MPU_RS_CH = LOW;
62 1 MPU_RW_CH = LOW;
63 1 LCD_DATA = Command;
64 1 MPU_ENABLE = HIGH;
65 1 delayMs(1);
66 1 MPU_ENABLE = LOW;
67 1 }
68
69 //-----------------------------------------------
70 void lcdClear (void)
71 {
72 1 lcdWriteCommand(cClearDisplay);
73 1 }
74
75 //-----------------------------------------------
76 void lcdInit (void) //初始化LCD子程序
77 {
78 1 MPU_RESET = LOW;
79 1 delayMs(40);
80 1 MPU_RESET = HIGH;
81 1 delayMs(1);
82 1 MPU_PS_CH = HIGH;
83 1 lcdWriteCommand(cFunctionSetE);
84 1 lcdWriteCommand(cFunctionSetB);
85 1 lcdClear();
86 1 lcdWriteCommand(cEntryModeSet);
87 1 lcdWriteCommand(cDisplayOnCtrl);
88 1 }
89
90 //-----------------------------------------------
91 void lcdWriteData (uchar Data)
92 {
93 1 checkLcdBusy();
94 1 MPU_RS_CH = HIGH;
95 1 MPU_RW_CH = LOW;
96 1 LCD_DATA = Data;
97 1 MPU_ENABLE = HIGH;
98 1 delayMs(1);
99 1 MPU_ENABLE = LOW;
100 1 }
101
102 //-----------------------------------------------
103 void dispString (uchar X, Y, speed, uchar *msg)
104 {
105 1 if (X == 0) X = 0x80;
106 1 else if (X == 1) X = 0x90;
107 1 else if (X == 2) X = 0x88;
108 1 else if (X == 3) X = 0x98;
109 1 Y = X + Y;
110 1 lcdWriteCommand(Y);
111 1 while (*msg)
112 1 {
113 2 lcdWriteData(*msg++);
114 2 delayMs(speed);
115 2 }
116 1 }
117
C51 COMPILER V8.02 12864Z 08/14/2008 17:37:18 PAGE 3
118 //-----------------------------------------------
119 void main (void)
120 {
121 1 lcdInit ();
122 1 lcdClear();
123 1 while(1)
124 1 {
125 2 dispString(0, 0, 100, "山西华鑫软件公司"); delaySec(1);
126 2 dispString(1, 2, 100, "皮带运输"); delaySec(1);
127 2 dispString(2, 1, 100, "综合保护监控"); delaySec(1);
128 2 dispString(3, 0, 100, "电话:03537040777"); delaySec(6);
129 2 lcdClear();
130 2 dispString(0, 0, 100, "公司名称:山西华"); delaySec(1);
131 2 dispString(1, 0, 100, "鑫电气软件公司"); delaySec(1);
132 2 dispString(2, 0, 100, "地址:山西省阳泉"); delaySec(1);
133 2 dispString(3, 0, 100, "市四矿煤山路"); delaySec(6);
134 2 lcdClear();
135 2 dispString(0, 0, 100, "www.sxhxdq.com"); delaySec(1);
136 2 dispString(1, 0, 100, "shanxihx@163.com"); delaySec(1);
137 2 dispString(2, 0, 100, "电话:03537040777"); delaySec(1);
138 2 dispString(3, 0, 100, "传真:03537042240"); delaySec(6);
139 2 lcdClear();
140 2 }
141 1 }
142
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 506 ----
CONSTANT SIZE = 167 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 8
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 + -