📄 11-5.5.lst
字号:
175 0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
176 0xFC,0xFC,0x38,0x70,0xE0,0xFC,0xFC,0x00,//N
177 0x0F,0x0F,0x00,0x00,0x00,0x0F,0x0F,0x00,
178 0xF0,0xF8,0x0C,0x04,0x0C,0xF8,0xF0,0x00,//O
179 0x03,0x07,0x0C,0x08,0x0C,0x07,0x03,0x00,
C51 COMPILER V7.09 11_5_5 06/18/2004 09:33:22 PAGE 4
180 0x04,0xFC,0xFC,0x44,0x44,0x7C,0x38,0x00,//P
181 0x08,0x0F,0x0F,0x08,0x00,0x00,0x00,0x00,
182 0xF8,0xFC,0x04,0x04,0x04,0xFC,0xF8,0x00,//Q
183 0x07,0x0F,0x08,0x0E,0x3C,0x3F,0x27,0x00,
184 0x04,0xFC,0xFC,0x44,0xC4,0xFC,0x38,0x00,//R
185 0x08,0x0F,0x0F,0x00,0x00,0x0F,0x0F,0x00,
186 0x18,0x3C,0x64,0x44,0xC4,0x9C,0x18,0x00,//S
187 0x06,0x0E,0x08,0x08,0x08,0x0F,0x07,0x00,
188 0x00,0x1C,0x0C,0xFC,0xFC,0x0C,0x1C,0x00,//T
189 0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
190 0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,//U
191 0x07,0x0F,0x08,0x08,0x08,0x0F,0x07,0x00,
192 0xFC,0xFC,0x00,0x00,0x00,0xFC,0xFC,0x00,//V
193 0x01,0x03,0x06,0x0C,0x06,0x03,0x01,0x00,
194 0xFC,0xFC,0x00,0x80,0x00,0xFC,0xFC,0x00,//W
195 0x03,0x0F,0x0E,0x03,0x0E,0x0F,0x03,0x00,
196 0x0C,0x3C,0xF0,0xC0,0xF0,0x3C,0x0C,0x00,//X
197 0x0C,0x0F,0x03,0x00,0x03,0x0F,0x0C,0x00,
198 0x00,0x3C,0x7C,0xC0,0xC0,0x7C,0x3C,0x00,//Y
199 0x00,0x00,0x08,0x0F,0x0F,0x08,0x00,0x00,
200 0x1C,0x0C,0x84,0xC4,0x64,0x3C,0x1C,0x00,//Z
201 0x0E,0x0F,0x09,0x08,0x08,0x0C,0x0E,0x00,
202 0x80,0x80,0x80,0x80,0xe0,0xC0,0x80,0x00,//->0x5b(自定义显示字符)
203 0x01,0x01,0x01,0x01,0x07,0x03,0x01,0x00
204 //0x5c开始可以加入其他的自定义字符
205 };
206
207 ////////////////////////////////////////////////////////////////////////////////
208 //调用方式:void send_mi(uchar instuction)
209 //函数说明:发指令instruction到主窗口(内函数,私有,用户不能直接调用)
210 ////////////////////////////////////////////////////////////////////////////////
211 void send_mi(uchar instruction)
212 {
213 1 clr_E2(); //关S
214 1 set_E1(); //开M
215 1 wait_ready();
216 1 clr_A0(); //指令
217 1 clr_WR(); //写触发
218 1 NOP();
219 1 lcd_data = instruction; //指令码
220 1 NOP();
221 1 clr_E1(); //关M
222 1 }
223
224 ////////////////////////////////////////////////////////////////////////////////
225 //调用方式:void OutMD(uchar i)
226 //函数说明:发数据data到主窗口(内函数,私有,用户不能直接调用)
227 ////////////////////////////////////////////////////////////////////////////////
228 void send_md(uchar c)
229 {
230 1 clr_E2(); //关S
231 1 set_E1(); //开M
232 1 wait_ready();
233 1 set_A0(); //数据
234 1 clr_WR(); //写触发
235 1 NOP();
236 1 lcd_data = c; //数据
237 1 NOP();
238 1 clr_E1(); //关M
239 1 }
240
241 ////////////////////////////////////////////////////////////////////////////////
C51 COMPILER V7.09 11_5_5 06/18/2004 09:33:22 PAGE 5
242 //调用方式:void send_si(uchar instruction)
243 //函数说明:发指令instruction到从窗口(内函数,私有,用户不能直接调用)
244 ////////////////////////////////////////////////////////////////////////////////
245 void send_si(uchar instruction)
246 {
247 1 clr_E1(); //关M
248 1 set_E2(); //开S
249 1 wait_ready();
250 1 clr_A0(); //指令
251 1 clr_WR(); //写触发
252 1 NOP();
253 1 lcd_data=instruction; //指令码
254 1 NOP();
255 1 clr_E2(); //关S
256 1 }
257
258 ////////////////////////////////////////////////////////////////////////////////
259 //调用方式:void send_sd(uchar data)
260 //函数说明:发数据data到从窗口(内函数,私有,用户不直接调用)
261 ////////////////////////////////////////////////////////////////////////////////
262 void send_sd(uchar c)
263 {
264 1 clr_E1();
265 1 set_E2();
266 1 wait_ready();
267 1 set_A0(); //数据
268 1 clr_WR(); //写触发
269 1 lcd_data = c;
270 1 NOP();
271 1 clr_E2();
272 1 }
273
274 ////////////////////////////////////////////////////////////////////////////////
275 //等待ready:等待LCD内部操作完成
276 ////////////////////////////////////////////////////////////////////////////////
277 void wait_ready(void)
278 {
279 1 // DDRA = 0x00; //PA口输入
280 1 clr_A0(); //指令
281 1 set_WR(); //读
282 1 NOP();
283 1 while(lcd_data & status_busy); //读入LCD状态,1=忙,一直等待LCD内部操作完成
284 1 // DDRA = 0xff; //重新置PA口输出
285 1 }
286
287 ////////////////////////////////////////////////////////////////////////////////
288 //调用方式:void lcd_init(void)
289 //函数说明:122x32LCD初始化,开机后仅调用一次
290 ////////////////////////////////////////////////////////////////////////////////
291 void lcd_init(void)
292 {
293 1 send_mi(reset); //复位m-left,s-right
294 1 send_si(reset);
295 1
296 1 send_mi(disp_off); //关闭显示
297 1 send_si(disp_off);
298 1
299 1 send_mi(dynamic_driver); //动态驱动
300 1 send_si(dynamic_driver);
301 1
302 1 send_mi(clk32); //1/32占空比
303 1 send_si(clk32);
C51 COMPILER V7.09 11_5_5 06/18/2004 09:33:22 PAGE 6
304 1
305 1 send_mi(adc_select); //clockwise
306 1 send_si(adc_select);
307 1
308 1 send_mi(mode_write); //写模式
309 1 send_si(mode_write);
310 1
311 1 send_mi(col_addr_set);
312 1 send_mi(disp_start_line); //归回零列,设定显示起始行首
313 1 send_si(col_addr_set);
314 1 send_si(disp_start_line);
315 1
316 1 send_mi(disp_on); //开显示
317 1 send_si(disp_on);
318 1 }
319
320 ////////////////////////////////////////////////////////////////////////////////
321 //调用方式:void lcd_clr(void)
322 //函数说明:清屏
323 ////////////////////////////////////////////////////////////////////////////////
324 void lcd_clr(void)
325 {
326 1 uchar i, page;
327 1 for (page=0;page<4;page++)
328 1 {
329 2 send_mi(page_addr_set|page);
330 2 send_si(page_addr_set|page);
331 2 send_mi(0); //主窗口设置为0列
332 2 send_si(0); //从窗口设置为0列
333 2 for (i=0;i<62;i++)
334 2 {
335 3 send_md(0x00);
336 3 send_sd(0x00);
337 3 }
338 2 }
339 1 }
340
341 ////////////////////////////////////////////////////////////////////////////////
342 //调用方式:void set_page(uchar page)
343 //函数说明:同时设置主(右)从(左)显示页为0-3页
344 ////////////////////////////////////////////////////////////////////////////////
345 void set_page(uchar page)
346 {
347 1 send_mi(page_addr_set|page);
348 1 send_si(page_addr_set|page);
349 1 }
350
351 ////////////////////////////////////////////////////////////////////////////////
352 //调用方式:void SetAddress(uchar address)
353 //函数说明:同时设置主(右)从(左)列地址为0-61列
354 ////////////////////////////////////////////////////////////////////////////////
355 void set_address(uchar address)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -