📄 ziku.lst
字号:
C51 COMPILER V8.02 ZIKU 07/29/2007 11:17:46 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE ZIKU
OBJECT MODULE PLACED IN ziku.OBJ
COMPILER INVOKED BY: D:\yanzhengtao\C51\BIN\C51.EXE ziku.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<regx51.h>
2 #include <intrins.h>
3 #include <string.h>
4 #define uchar unsigned char
5 #define data P0;
6 #define BUSY_FLAG P0_7 //液晶模块忙标志
7 #define MPU_RESET P3_0 //液晶复位控制
8 #define MPU_RS_CH P3_1 //寄存器选择输入
9 #define MPU_RW_CH P3_2 //读写控制
10 #define MPU_ENABLE P3_3 //使能控制
11 #define LCD_DATA P0 //液晶数据口
12
13 //-----------------------------------------------
14 //液晶模块指令集定义
15 #define cClearDisplay 0x01 //清显示指令
16 #define cEntryModeSet 0x06 //设置输入模式
17 #define cDisplayOnCtrl 0x0c //设置开显控制
18 #define cFunctionSetB 0x30 //功能设定(基本指令)
19 void delayMs (uchar ms);
20 void checkLcdBusy (void);
21 //===============================================
22 void lcdWriteCommand (uchar Command)
23 {
24 1 checkLcdBusy();
25 1 delayMs (2);
26 1 MPU_RS_CH = 0;
27 1 MPU_RW_CH = 0;
28 1 LCD_DATA = Command;
29 1 MPU_ENABLE = 1;
30 1 delayMs(1);
31 1 MPU_ENABLE = 0;
32 1 }
33 //========延时====================================
34 void delayMs (unsigned int ms)
35 {
*** WARNING C235 IN LINE 35 OF ZIKU.C: parameter 1: different types
36 1 uchar i;
37 1 while (--ms)
38 1 {
39 2 for (i = 0; i < 125; i++);
40 2 }
41 1 }
42 //===============================================
43 void checkLcdBusy (void)
44 { char i=1;
45 1 while(i--);
46 1 }
47 //===============================================
48 void lcdWriteData (uchar Data)
49 {
50 1 checkLcdBusy();
51 1 delayMs (2);
52 1 MPU_RS_CH = 1;
53 1 MPU_RW_CH = 0;
54 1 LCD_DATA = Data;
C51 COMPILER V8.02 ZIKU 07/29/2007 11:17:46 PAGE 2
55 1 MPU_ENABLE = 1;
56 1 delayMs(1);
57 1 MPU_ENABLE = 0;
58 1 }
59
60 //===============================================
61 void dispString (uchar X, Y, unsigned int speed, uchar *msg)
62 {
63 1 if (X == 0)
64 1 {
65 2 X = 0x80;
66 2 }
67 1 else if (X == 1)
68 1 {
69 2 X = 0x90;
70 2 }
71 1 else if (X == 2)
72 1 {
73 2 X = 0x88;
74 2 }
75 1 else if (X == 3)
76 1 {
77 2 X = 0x98;
78 2 }
79 1 else;
80 1 Y= X + Y;
81 1 lcdWriteCommand(Y);
82 1 while (*msg)
83 1 {
84 2 lcdWriteData(*msg++);
85 2 delayMs(speed);
86 2 }
87 1 }
88 //===============================================
89 void lcdClear (void)
90 {
91 1 lcdWriteCommand(cClearDisplay);
92 1 }
93 //===============================================
94 void lcdInit (void)
95 {
96 1 MPU_RESET = 0;
97 1 delayMs(40);
98 1 MPU_RESET = 1;
99 1 delayMs(1);
100 1 P2=0xfe;
101 1 lcdWriteCommand(0x01);//清除显示
102 1 lcdWriteCommand(0x30);//30H--基本指令操作
103 1 lcdWriteCommand(0x0c);//开显示,关光标,不闪烁
104 1 lcdWriteCommand(0x06);//指定在资料写入或读取时,光标的移动方向,DDRAM的地址计数器(AC)加1。
105 1
106 1 }
107 //===============================================
108 void delaySec (uchar sec)
109 {
110 1 uchar i;
111 1 while (--sec)
112 1 {
113 2 for (i = 0; i < 200; i++)
114 2 {
115 3 delayMs (6);
116 3 }
C51 COMPILER V8.02 ZIKU 07/29/2007 11:17:46 PAGE 3
117 2 }
118 1 }
119 void main (void)
120 {
121 1 lcdInit ();
122 1 lcdClear();
123 1
124 1 dispString(0, 0, 1, "┏━━━━━━┓");
125 1 dispString(1, 0, 1, "┃12864LCD测试┃");
126 1 dispString(2, 0, 1, "┃画面人物宝儿┃");
127 1 dispString(3, 0, 1, "┗━━━━━━┛");
128 1 delaySec(6);
129 1 lcdClear();
130 1 dispString(0, 3, 100, "how are you?");
131 1 dispString(1, 0, 100, " 系统初始化...");
132 1 dispString(2, 0, 100, "海军工程大学");
133 1 dispString(3, 0, 100, " 船动院学闫政涛");
134 1
135 1 }
136
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 412 ----
CONSTANT SIZE = 129 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 9
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -