📄 lcd_show.lst
字号:
C51 COMPILER V7.02b LCD_SHOW 08/21/2005 15:01:40 PAGE 1
C51 COMPILER V7.02b, COMPILATION OF MODULE LCD_SHOW
OBJECT MODULE PLACED IN lcd_show.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE lcd_show.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*****************************************/
2 /* Copyright (c) 2005, 通信工程学院 */
3 /* All rights reserved. */
4 /* /* 作 者:戴佳 */
5 /*****************************************/
6
7 #include "lcd_show.h"
8
9 #define uint unsigned int
10 #define uchar unsigned char
11
12 #define CSA P2_1
13 #define CSB P2_0
14 #define E P2_3
15 #define RW P2_5
16 #define DI P2_6
17
18 sbit busy_bit=ACC^7;//lcd state byte bit 7
19
20 /*下面是对液晶屏gxm12864d操作的函数, 128x64点阵,汉字显示,CSA,CSB用来进行左右显示区的选择。*/
21
22 /* 发命令i到主窗口*/
23 void lcd_mwc(uchar i)
24 {
25 1 CSA=1;
26 1 CSB=0;
27 1 RW=1;
28 1 DI=0;
29 1 do {ACC=LCD;}
30 1 while (busy_bit) ;//wait for lcd not busy
31 1 RW=0;
32 1 LCD=i;
33 1 }
34
35 /* 写数据i到主窗口*/
36 void lcd_mwd(uchar i)
37 {
38 1 CSA=1;
39 1 CSB=0;
40 1 RW=1;
41 1 DI=0;
42 1 do {ACC=LCD;} while (busy_bit);//wait for lcd not busy
43 1 RW=0;
44 1 DI=1;
45 1 LCD=i;
46 1 }
47
48 /* 清屏 */
49 void lcd_clear(void)
50 {
51 1 uchar i;
52 1 uchar page;
53 1 for (page=0xb8;page<0xc0;page++)
54 1 {
55 2 lcd_mwc(page); /*设置显示页面*/
C51 COMPILER V7.02b LCD_SHOW 08/21/2005 15:01:40 PAGE 2
56 2
57 2 lcd_mwc(0x40); /*设置列地址*/
58 2
59 2 for (i=0;i<64;i++)
60 2 {
61 3
62 3 lcd_mwd(0);
63 3 }
64 2 }
65 1 }
66
67 //初始化lcd
68 void lcd_init(void)
69 {
70 1 lcd_mwc(0xc0);
71 1
72 1 lcd_mwc(0x3f);
73 1
74 1 }
75
76 //dispm_hz_up() display up half of a hanzi in left area
77 void dispm_hz_up(uchar code * hz)
78 {
79 1 uchar i;
80 1 for (i=0;i<16;i++) lcd_mwd(*(hz+i));
81 1 }
82
83 //dispm_hz_down() display down half of a hanzi in left area
84 void dispm_hz_down(uchar code * hz)
85 {
86 1 uchar i;
87 1 for (i=16;i<32;i++) lcd_mwd(*(hz+i));
88 1 }
89
90
91 void main(void)
92 {
93 1 E=1;
94 1 lcd_clear();
95 1 lcd_init();
96 1
97 1 lcd_mwc(0xb8);
98 1 lcd_mwc(0x40);
99 1
100 1 dispm_hz_up(&QING);
101 1 dispm_hz_up(&CHA);
102 1 dispm_hz_up(&KA);
103 1
104 1 lcd_mwc(0xb9);
105 1 lcd_mwc(0x40);
106 1
107 1 dispm_hz_down(&QING);
108 1 dispm_hz_down(&CHA);
109 1 dispm_hz_down(&KA);//display "请插卡"
110 1
111 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 179 ----
CONSTANT SIZE = 96 ----
XDATA SIZE = ---- ----
C51 COMPILER V7.02b LCD_SHOW 08/21/2005 15:01:40 PAGE 3
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -