📄 lmb204bdc.lst
字号:
C51 COMPILER V7.06 LMB204BDC 11/16/2007 15:54:47 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE LMB204BDC
OBJECT MODULE PLACED IN LMB204BDC.OBJ
COMPILER INVOKED BY: D:\soft\isp\C51\BIN\C51.EXE LMB204BDC.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "io.h"
2 #include "LMB204BDC.h"
3 //#include "key.h"
4 //#include "interrupt.h"
5 //
6
7 uchar idata tab0[20];
8 uchar idata tab1[20];
9 uchar idata tab2[20];
10 uchar idata tab3[20];
11 // 1 31 30 36 0%
12 uchar code tab_phrase1[]={0x31,0x33,0x31,0x33,0x30,0x33,0x36,0x30};//阶段,温度,湿度,时间,风门,排气门
13 uchar code tab_phrase2[]={0x32,0x33,0x36,0x33,0x33,0x34,0x38,0x32,0x30};
14 uchar code tab_phrase3[]={0x33,0x34,0x31,0x33,0x35,0x33,0x36,0x34,0x30};
15 uchar code tab_phrase4[]={0x34,0x34,0x37,0x33,0x36,0x33,0x36,0x36,0x30};
16 uchar code tab_phrase5[]={0x35,0x35,0x34,0x33,0x37,0x32,0x34,0x36,0x30};
17 uchar code tab_phrase6[]={0x36,0x36,0x32,0x33,0x39,0x32,0x34,0x31,0x30,0x30};
18 uchar code tab_phrase7[]={0x37,0x36,0x38,0x34,0x30,0x32,0x34,0x31,0x30,0x30};
19
20 uchar lcd_buf[4];
21
22
23
24 /*=======================================================
25 显示字符串
26 =======================================================*/
27 void ePutstr(uchar x,uchar y, uchar *ptr)
28 {
29 1 uchar i,l=0;
30 1 while (ptr[l] >31)
31 1 {
32 2 l++;
33 2 };
34 1 for (i=0;i<l;i++)
35 1 {
36 2 DispOneChar(x++,y,ptr[i]);
37 2
38 2 if ( x == 20 )
39 2 {
40 3 x = 0;
41 3 if(y<3)
42 3 y=y+1;
43 3 else
44 3 y=0;
45 3 }
46 2 }
47 1 }
48
49 /*=======================================================
50 演示一行连续字符串,配合上位程序演示移动字串
51 =======================================================*/
52 void Display(uchar posx,uchar posy, uchar *tab)
53 {
54 1
55 1 uchar i;
C51 COMPILER V7.06 LMB204BDC 11/16/2007 15:54:47 PAGE 2
56 1
57 1 for (i=0;i<20;i++)
58 1 {
59 2 DispOneChar(posx++,posy,tab[i]);
60 2 }
61 1 }
62
63 /*=======================================================
64 显示光标定位
65 =======================================================*/
66 void LocateXY( uchar posx,uchar posy)
67 {
68 1
69 1 uchar temp;
70 1
71 1 temp = posx ;//& 0x13;
72 1 // posy &= 0x03;
73 1
74 1 if ( posy==1 )temp += 0x40;
75 1 if ( posy==2 )temp += 0x14;
76 1 if ( posy==3 )temp += 0x54;
77 1
78 1 temp |= 0x80;
79 1 LcdWriteCommand(temp,0);
80 1
81 1 }
82
83 /*=======================================================
84 按指定位置显示数出一个字符
85 =======================================================*/
86 void DispOneChar(uchar x,uchar y,uchar Wdata)
87 {
88 1
89 1 LocateXY( x, y ); // 定位显示地址
90 1 LcdWriteData(Wdata); // 写字符
91 1
92 1 }
93
94 /*=======================================================
95 初始化程序, 必须按照产品资料介绍的初始化过程进行
96 =======================================================*/
97 void LcdReset( void )
98 {
99 1
100 1
101 1 /* LcdWriteCommand( 0x38, 0); // 显示模式设置(不检测忙信号)
102 1 Delay5Ms();
103 1 LcdWriteCommand( 0x38, 0); // 共三次
104 1 Delay5Ms();
105 1 LcdWriteCommand( 0x38, 0);
106 1 Delay5Ms();*/
107 1 delay_ms(200);
108 1 LcdWriteCommand( 0x38, 1);
109 1 delay_ms(5);
110 1 LcdWriteCommand( 0x0c, 1); // 显示开及光标设
111 1 delay_ms(5);
112 1 LcdWriteCommand( 0x01, 1); // 显示清屏
113 1 delay_ms(5);
114 1 LcdWriteCommand( 0x06, 1); // 显示光标移动设置
115 1 delay_ms(5);
116 1 }
117
C51 COMPILER V7.06 LMB204BDC 11/16/2007 15:54:47 PAGE 3
118 /*=======================================================
119 写控制字符子程序: E=1 RS=0 RW=0
120 =======================================================*/
121 void LcdWriteCommand( uchar CMD,uchar AttribC )
122 {
123 1
124 1 if (AttribC) WaitForEnable(); // 检测忙信号?
125 1
126 1 RS = 0;
127 1 RW = 0;
128 1 // _nop_();
129 1 Elcm = 1;
130 1 DataPort = CMD;
131 1 Elcm = 0;
132 1 _nop_(); // 送控制字子程序
133 1
134 1
135 1 _nop_();
136 1 _nop_();
137 1 // 操作允许脉冲信号
138 1 }
139
140 /*=======================================================
141 当前位置写字符子程序: E =1 RS=1 RW=0
142 =======================================================*/
143 void LcdWriteData( uchar dataW )
144 {
145 1
146 1 WaitForEnable(); // 检测忙信号
147 1
148 1 RS = 1;
149 1 RW = 0;
150 1 // _nop_();
151 1 Elcm = 1;
152 1 DataPort = dataW;
153 1 Elcm = 0;
154 1
155 1 _nop_();
156 1
157 1
158 1 _nop_();
159 1 _nop_();
160 1 // 操作允许脉冲信号
161 1
162 1 }
163
164 /*=======================================================
165 正常读写操作之前必须检测LCD控制器状态: CS=1 RS=0 RW=1
166 DB7: 0 LCD控制器空闲; 1 LCD控制器忙
167 ========================================================*/
168 void WaitForEnable( void )
169 {
170 1
171 1 DataPort = 0xff;
172 1
173 1 RS =0;
174 1 RW = 1;
175 1 _nop_();
176 1 Elcm = 1;
177 1
178 1
179 1 while( DataPort & Busy );
C51 COMPILER V7.06 LMB204BDC 11/16/2007 15:54:47 PAGE 4
180 1
181 1 Elcm = 0;
182 1 _nop_();
183 1 _nop_();
184 1 }
185 //****************************************************
186 //function: tu_1
187 //input :无
188 //output :无
189 //modify :2007-11-14
190 //****************************************************
191 void tu_1(void)
192 {
193 1 tran_tab0();
194 1 tran_tab1();
195 1 tran_tab2();
196 1 tran_tab3();
197 1
198 1 Display(0,0,tab0);
199 1 Display(0,1,tab1);
200 1 Display(0,2,tab2);
201 1 Display(0,3,tab3);
202 1 }
203
204 //****************************************************
205 //function: 给TAB0赋全值
206 //input
207 //output :
208 //modify :2007-11-14
209 //****************************************************
210 void tran_tab0(void)
211 {
212 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -