📄 lcd.lst
字号:
C51 COMPILER V7.50 LCD 10/17/2005 10:28:55 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE LCD
OBJECT MODULE PLACED IN lcd.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*********************************************************************************************************
2 ** 320240ALCD控制
3 **
4 **
5 **--------------当前版本信息----------------------------------------------------------------------------
6 ** 文件名: lcd.c
7 ** 创建人: 刘明宇
8 ** 日 期: 2005年10月11日
9 ** 描 述: LCD320240A控制的主文件
10 ** 硬件连接
11 ** 51 lcd
12 ** P0~7-------->D0~7
13 ** P2.7-------->cs
14 ** P2.6-------->A0
15 ** P1.0-------->Res
16 ** wr -------->wr
17 ** rd -------->rd
18 **
19 **--------------历史版本信息----------------------------------------------------------------------------
20 ** 无
21 **------------------------------------------------------------------------------------------------------
22 ** 修改人:
23 ** 日 期:
24 ** 描 述:
25 **
26 **------------------------------------------------------------------------------------------------------
27 ********************************************************************************************************/
28
29 #include <REG52.H>
30 #include <stdio.h>
31 #include <INTRINS.H>
32 #include <ABSACC.H>
33 #include "lcd.h"
34 #include "disdata.h"
35
36
37
38
39
40 /*LCD initial parameters*/
41 /*
42 在下面的数据里面,第四个0x27对应是显示的横向范围,8位除去
43 -------------------240128的SYSTEM SET 参数-------------------------------
44 unsigned char SYSTAB[8]={0x30,0x87,0x09,0x1d,0x64,0xa0,0x1e,0x00};
45
46 unsigned char SCRTAB[10]={0x00,0x00,0xa0,0x00,0x00,0xa0,0x00,0x80,0x00,0x00};
47
48 Uchar code ParaSysTable8[]= {
49 0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00 // P1-P8参数
50 };
51 */
52 BYTE code SYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00};
53 //BYTE code SYSTAB[8]={0x30,0x87,0x07,0x27,0x42,0xf0,0x28,0x00};
54 BYTE code SCRTAB[10]={0x00,0x00,0xf0,0x00,0x40,0xf0,0x00,0x80,0x00,0x00};
55
C51 COMPILER V7.50 LCD 10/17/2005 10:28:55 PAGE 2
56 /****************************************************************************
57 * 名称:main
58 * 功能:主函数
59 * 入口参数:无
60 * 出口参数:无
61 ****************************************************************************/
62 void main(void)
63 {
64 1 BYTE i;
65 1 serial_init();
66 1 Lcd_res=0;
67 1 Lcd_res=1;
68 1 test_serial();
69 1
70 1 INITLCD();
71 1 CLRSCREEN();
72 1 FULLSCREEN();
73 1 while(1)
74 1 {
75 2 sam1();
76 2 delaylong(50000);
77 2 CLRSCREEN();
78 2 delaylong(10000);
79 2 FULLSCREEN();
80 2 delaylong(10000);
81 2 }
82 1
83 1 }
*** WARNING C280 IN LINE 64 OF LCD.C: 'i': unreferenced local variable
84
85
86 /*************************SBUROUTINES OF LCD DRIVE**************************/
87
88 /****************************************************************************
89 * 名称:WLCDCOM
90 * 功能:写LCD控制命令
91 * 入口参数:com
92 * 出口参数:无
93 ****************************************************************************/
94 void WLCDCOM(BYTE com )
95 //写LCD控制命令
96 {
97 1 SEDWRCOM=com;
98 1 _nop_();
99 1 }
100
101 /****************************************************************************
102 * 名称:WLCDDATA
103 * 功能:写LCD控制参数和显示字符数据
104 * 入口参数:ref
105 * 出口参数:无
106 ****************************************************************************/
107 void WLCDDATA(BYTE ref )
108 //写LCD控制参数和显示字符数据
109 {
110 1 SEDWRDAT=ref;
111 1 _nop_();
112 1 }
113
114 /****************************************************************************
115 * 名称:CLRVRAM
116 * 功能:显示存储器清零
C51 COMPILER V7.50 LCD 10/17/2005 10:28:55 PAGE 3
117 * 入口参数:无
118 * 出口参数:无
119 ****************************************************************************/
120 void CLRVRAM(void)
121 //显示存储器清零
122 {
123 1 WORD i,j;
124 1 WLCDCOM(CSRRGT);
125 1 WLCDCOM(CSRW);
126 1 WLCDDATA(0x00);
127 1 WLCDDATA(0x00);
128 1 WLCDCOM(MWRITE);
129 1 for(i=0;i<=0xff;i++)
130 1 {
131 2 for(j=0;j<=0xff;j++)
132 2 {
133 3 WLCDDATA(0x00);
134 3 }
135 2 }
136 1 }
137
138 /****************************************************************************
139 * 名称:CLRSCREEN
140 * 功能:清除显示屏幕
141 * 入口参数:无
142 * 出口参数:无
143 ****************************************************************************/
144 void CLRSCREEN(void)
145 //清除显示屏幕
146 {
147 1 WORD i,j;
148 1 //BYTE a;
149 1 WLCDCOM(CSRRGT);
150 1 WLCDCOM(CSRW);
151 1 WLCDDATA(0X00);
152 1 WLCDDATA(0X00);
153 1 WLCDCOM(MWRITE);
154 1 /*
155 1 for(i=0;i<0xa0;i++)
156 1 {
157 1 for(j=0;j<0x1e0;j++)
158 1 {
159 1 WLCDDATA(0x00);
160 1 }
161 1 }*/
162 1 for(i=0;i<9600;i++)
163 1 {
164 2 WLCDDATA(0x00);
165 2 }
166 1 }
*** WARNING C280 IN LINE 147 OF LCD.C: 'j': unreferenced local variable
167
168 /****************************************************************************
169 * 名称:WNUMBER
170 * 功能:显示0~9等10个数字
171 * 入口参数:...
172 * 出口参数:无
173 ****************************************************************************/
174 void WNUMBER(BYTE x,BYTE y,BYTE (*p)[16],BYTE num )
175 //功能:显示0~9等10个数字,num为要显示的数字的值(16×8)
176 //x坐标寄存器(字节),y坐标寄存器(点行)
177 {
C51 COMPILER V7.50 LCD 10/17/2005 10:28:55 PAGE 4
178 1 WORD temp;
179 1 BYTE hi,lo;
180 1 BYTE a,b,c;
181 1 temp=y*AP;
182 1 hi=HIBYTE(temp);
183 1 lo=LOBYTE(temp);
184 1 lo=x+lo;
185 1 if(CY==1) {hi+=0x01;CY=0;}
186 1
187 1 WLCDCOM(CSRDOWN);
188 1 WLCDCOM(CSRW);
189 1 WLCDDATA(lo);
190 1 WLCDDATA(hi);
191 1 WLCDCOM(MWRITE);
192 1 for(c=0;c<16;c++)
193 1 {
194 2 WLCDDATA(*(*(p+num)+c));
195 2 }
196 1 lo=lo+0x01;
197 1 if(CY==1) {hi+=0x01;CY=0;}
198 1 }
*** WARNING C280 IN LINE 180 OF LCD.C: 'a': unreferenced local variable
*** WARNING C280 IN LINE 180 OF LCD.C: 'b': unreferenced local variable
199
200 /****************************************************************************
201 * 名称:WBLOCK
202 * 功能:显示16×8点字符
203 * 入口参数:...
204 * 出口参数:无
205 ****************************************************************************/
206 void WBLOCK(BYTE x,BYTE y,BYTE (*p)[16],BYTE num )
207 //功能:显示16×8点字符,num为要显示的字符块长度
208 //x坐标为低8位寄存器(字节),y坐标寄存器(点行)
209 {
210 1 WORD temp;
211 1 BYTE hi,lo;
212 1 BYTE a,b,c;
213 1 temp=y*AP;
214 1 hi=HIBYTE(temp);
215 1 lo=LOBYTE(temp);
216 1 lo=x+lo;
217 1 if(CY==1) {hi+=0x01;CY=0;}
218 1
219 1 WLCDCOM(CSRDOWN);
220 1 WLCDCOM(CSRW);
221 1 WLCDDATA(lo);
222 1 WLCDDATA(hi);
223 1 WLCDCOM(MWRITE);
224 1 for(c=0;c<16;c++)
225 1 {
226 2 WLCDDATA(*(*(p+num-1)+c));
227 2 }
228 1 lo=lo+0x01;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -