📄 320240.lst
字号:
C51 COMPILER V7.06 320240 12/20/2008 16:55:15 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE 320240
OBJECT MODULE PLACED IN 320240.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE 320240.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*
2 ;-------------------------------------------------------------------
3 ;
4 ; LCM指令端口地址FFFFH:数据端口地址:FFFEH
5 ; 320*240点阵整屏的点象素为76800,也就有9600(2580H)个字节,单屏图形方式
6 ; 所以第一区显示缓存地址范围为:0000H----257FH
7 ; 所以第二区显示缓存地址范围为:2580H----4AFFH
8 ; 所以第三区显示缓存地址范围为:4B00H----707FH
9 ; 320*240点阵整屏---一行占40个字节的显示缓存
10 ;
11 ;--------------------------------------------------------------------
12 */
13
14 #include <reg52.h>
15 //include "240160.h"
16 #define uchar unsigned char
17 #define uint unsigned int
18 //=====================================
19 void LcdCommand(uchar com);
20 void LcdDataWrite(uchar dat);
21 void Initialize(void);
22 void delay(uint);
23 void SetCursor(uchar,uchar);
24 void WriteOneWork(uchar,uchar,uchar *);
25 void WriteLine(uchar,uchar,uchar);
26 //==============================================
27 sbit RST= P2^4;
28 sbit A0 = P2^3;
29 sbit CS = P2^2;
30 sbit R_D = P2^1;
31 sbit W_R = P2^0;
32 //==============================================
33 uchar code ZKWU[]=
34 {0x00,0x10,0x1F,0xF8,0x10,0x10,0x10,0x10,0x1F,0xF0,0x00,0x00,0x00,0x10,0x3F,
35 0xF8,0x01,0x00,0x01,0x04,0xFF,0xFE,0x02,0x80,0x02,0x40,0x04,0x20,0x18,0x1C,0x60,0x08};
36 uchar code ZKLIN[]=
37 {0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x20,0x10,0x60,0x38,0x70,
38 0x34,0xB0,0x54,0xA8,0x51,0x28,0x92,0x26,0x14,0x24,0x10,0x20,0x10,0x20,0x10,0x20};
39
40
41
42
43 void LcdCommand(uchar com)
44 {
45 1 CS = 0;
46 1 R_D = 1;
47 1 A0 = 1;
48 1 P1 = com;
49 1 W_R = 0;
50 1 W_R = 1;
51 1 CS = 1;
52 1 A0 = 0;
53 1 }
54
55
C51 COMPILER V7.06 320240 12/20/2008 16:55:15 PAGE 2
56 void LcdDataWrite(uchar dat);
57 {
*** ERROR C141 IN LINE 57 OF 320240.C: syntax error near '{'
58 CS = 0;
*** ERROR C231 IN LINE 58 OF 320240.C: 'CS': redefinition
*** ERROR C231 IN LINE 58 OF 320240.C: 'CS': redefinition
59 R_D = 1;
*** ERROR C231 IN LINE 59 OF 320240.C: 'R_D': redefinition
*** ERROR C231 IN LINE 59 OF 320240.C: 'R_D': redefinition
60 A0 = 0;
*** ERROR C231 IN LINE 60 OF 320240.C: 'A0': redefinition
*** ERROR C231 IN LINE 60 OF 320240.C: 'A0': redefinition
61 P1 = dat;
*** ERROR C231 IN LINE 61 OF 320240.C: 'P1': redefinition
*** ERROR C202 IN LINE 61 OF 320240.C: 'dat': undefined identifier
*** ERROR C231 IN LINE 61 OF 320240.C: 'P1': redefinition
62 W_R = 0;
*** ERROR C231 IN LINE 62 OF 320240.C: 'W_R': redefinition
*** ERROR C231 IN LINE 62 OF 320240.C: 'W_R': redefinition
63 W_R = 1;
*** ERROR C279 IN LINE 63 OF 320240.C: 'W_R': multiple initialization
*** ERROR C231 IN LINE 63 OF 320240.C: 'W_R': redefinition
*** ERROR C231 IN LINE 63 OF 320240.C: 'W_R': redefinition
64 CS = 1;
*** ERROR C279 IN LINE 64 OF 320240.C: 'CS': multiple initialization
*** ERROR C231 IN LINE 64 OF 320240.C: 'CS': redefinition
*** ERROR C231 IN LINE 64 OF 320240.C: 'CS': redefinition
65 A0 = 1;
*** ERROR C279 IN LINE 65 OF 320240.C: 'A0': multiple initialization
*** ERROR C231 IN LINE 65 OF 320240.C: 'A0': redefinition
*** ERROR C231 IN LINE 65 OF 320240.C: 'A0': redefinition
66 }
*** ERROR C141 IN LINE 66 OF 320240.C: syntax error near '}'
67
68
69 /******************************** 初始化LCD函数 ********************************/
70 void Initialize(void)
71 {
72 1 uint i;
73 1 LcdCommand(0x40); /* ---------LCD SYSTEM SET系统设置令,8个参数--------
74 1 */
75 1 LcdDataWrite(0x30);
76 1 LcdDataWrite(0x87);
77 1 LcdDataWrite(0x07);
78 1 LcdDataWrite(39); /* 显示域长度为320dot */
79 1 LcdDataWrite(0x36); /* 确定液晶工作频率 */
80 1 LcdDataWrite(239); /* 显示屏高度为240dot */
81 1 LcdDataWrite(40); /* 显示屏一行所占显示缓冲区字节数(L) */
82 1 LcdDataWrite(0); /* 显示屏一行所占显示缓冲区字节数(H) */
83 1 delay(0x9);
84 1 LcdCommand(0x44); /* ---------LCD SCROLL显示区设置命令,最多10个参数---
85 1 ------ */
86 1 LcdDataWrite(0x00); /* 显示1区对应的显示RAM起始高8位地址 */
87 1 LcdDataWrite(0x00); /* 显示1区对应的显示RAM起始低8位地址 */
88 1 LcdDataWrite(240); /* 显示1区占用240个dot行 */
89 1 LcdDataWrite(0x80); /* 显示2区对应的显示RAM起始低8位地址 */
90 1 LcdDataWrite(0x25); /* 显示2区对应的显示RAM起始高8位地址 */
91 1 LcdDataWrite(240); /* 显示3区占用240个dot行 */
92 1 LcdDataWrite(0x00); /* 显示3区对应的显示RAM起始低8位地址 */
93 1 LcdDataWrite(0x4b); /* 显示3区对应的显示RAM起始高8位地址 */
94 1 delay(0x9);
95 1 LcdCommand(0x5a); /* 水平卷动,初始化时必须清零 */
C51 COMPILER V7.06 320240 12/20/2008 16:55:15 PAGE 3
96 1 LcdDataWrite(0x00);
97 1 delay(0x9);
98 1 LcdCommand(0x5b); /* 各个显示区的合成方式,1个参数 */
99 1 LcdDataWrite(0x1c); /* 参数:显示方式为三屏图形叠加,逻辑或 */
100 1 delay(0x9);
101 1 LcdCommand(0x59); /* 打开显示,1个参数 */
102 1 LcdDataWrite(0x04); /* 只显示第一个区并关闪烁 */
103 1 delay(0x9);
104 1 LcdCommand(0x4c); /* 光标自动向右增一?*/
105 1 delay(0x9);
106 1 LcdCommand(0x46); /* 设定光标位置命令 */
107 1 LcdDataWrite(0); /* 从0000位置开始 */
108 1 LcdDataWrite(0);
109 1 delay(0x9);
110 1 LcdCommand(0x42); /* 允许MPU连续地把显示数据写入显示区内命令 */
111 1 for(i=0;i<32760;i++)
112 1 {
113 2
114 2 LcdDataWrite(0); /* 将32K显缓全部清零,即LCD不显示任何东西 */
115 2 }
116 1 }
117 /* --------------------------设定光标,允许显示------------------------- */
118 void SetCursor(uchar CursorHIGH,uchar CursorLOW)
119 {
120 1 delay(0x9);
121 1 LcdCommand(0x46); /* 设定光标位置命令 */
122 1 LcdDataWrite(CursorLOW); /* 从0000位置开始 */
123 1 LcdDataWrite(CursorHIGH);
124 1 delay(0x9);
125 1 LcdCommand(0x42); /* 允许MPU连续地把显示数据写入显示区内命令 */
126 1 }
127 /* ---------------------------在指定位置显示一个汉字--------------------------- */
128 void WriteOneWork(uchar CurHIGH,uchar CurLOW,uchar * ZiKu)
129 {
130 1 uchar i;
131 1 SetCursor(CurHIGH,CurLOW); /* 设定光标,允许显示 */
132 1 i=0;
133 1 do
134 1 {
135 2 LcdDataWrite(ZiKu[i]);
136 2 i=i+2;
137 2 }
138 1 while(i<0x1e);
139 1 SetCursor(CurHIGH,CurLOW+1);
140 1 i=1;
141 1 while(i<0x1f)
142 1 {
143 2 LcdDataWrite(ZiKu[i]);
144 2 i=i+2;
145 2 }
146 1 }
147 /* ----------------------延时子程序----------------------------- */
148 void delay(uint delx)
149 {
150 1 uint i=0;
151 1 while(i<delx)
152 1 {
153 2 i++;
154 2 }
155 1 }
156 void main(void)
157 {
C51 COMPILER V7.06 320240 12/20/2008 16:55:15 PAGE 4
158 1 uchar i;
159 1 SP=0x60;
160 1 EA=0;
161 1 delay(0x30);
162 1 Initialize();
163 1 delay(0x9);
164 1 LcdCommand(0x4f); /* 光标地址自动向下增一 */
165 1 WriteOneWork(0,0,ZKWU);
166 1 WriteOneWork(0x2,0x80,ZKLIN);
167 1 while(1);
168 1 }
169
C51 COMPILATION COMPLETE. 0 WARNING(S), 22 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -