📄 12864final.lst
字号:
C51 COMPILER V8.05a 12864FINAL 03/06/2009 16:23:02 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE 12864FINAL
OBJECT MODULE PLACED IN 12864final.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 12864final.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*************************************************
2 *COMPANY : 北斗星工业化学研究所
3
4 *NAME : 12864液晶驱动源文件
5
6 *AUTHOR : 王敬明
7
8 *FUNCTIONG : 显示汉字和英文字母及数字
9
10 *ADD : 驱动芯片HD16202
11
12 *VERSION : V1.0
13
14 ***************************************************/
15 #include<ADI/ADuC834.h>
16 #include"ziku.h"
17
18 /***************宏定义及位定义*********************/
19 #define busy 0x80
20 #define uchar unsigned char
21 #define uint unsigned int
22 #define LCD_DATA P0
23 void LCD_Clr();
24 sbit LCD_RS=P2^3;
25 sbit LCD_RW=P2^4;
26 sbit LCD_EN=P2^5;
27 sbit LCD_CSA=P2^6;
28 sbit LCD_CSB=P2^7;
29 sbit LCD_RST=P2^2;
30
31 //void delay(uint t)
32 //{
33 // uint i,j;
34 // for(i=0;i<t;i++)
35 // for(j=0;j<10;j++);
36 //}
37
38 /***************读液晶状态字*********************/
39 unsigned char ReadLCDStatus(void)
40 {
41 1 LCD_DATA = 0xFF;
42 1 LCD_RS = 0;
43 1 LCD_RW = 1;
44 1 LCD_EN = 0;
45 1 LCD_EN = 0;
46 1 LCD_EN = 1;
47 1 while (LCD_DATA & busy); //检测忙信号
48 1 // delay(1);
49 1 LCD_EN = 0;
50 1 return(P0);
51 1 }
52
53 /*****************写液晶命令*********************/
54 void WriteLCD_Command(uchar Command)
55 {
C51 COMPILER V8.05a 12864FINAL 03/06/2009 16:23:02 PAGE 2
56 1 ReadLCDStatus ();
57 1 LCD_RS = 0;
58 1 LCD_RW = 0;
59 1 LCD_DATA = Command;
60 1 LCD_EN = 1;
61 1 // delay(1);
62 1 LCD_EN = 0;
63 1 }
64
65 /*****************写液晶数据*********************/
66 void WriteLCD_Data(unsigned char Data)
67 {
68 1 ReadLCDStatus();
69 1 LCD_RS = 1;
70 1 LCD_RW = 0;
71 1 LCD_DATA = Data;
72 1 LCD_EN = 1;
73 1 // delay(1);
74 1 LCD_EN=0;
75 1 }
76
77 /*****************初始化液晶*********************/
78 void LCD_Init()
79 {
80 1 WriteLCD_Command(0x3E);
81 1 WriteLCD_Command(0xC0);
82 1 WriteLCD_Command(0x3F);
83 1 LCD_Clr();
84 1 LCD_CSB=0;
85 1 LCD_CSA=1;
86 1 }
87
88 /*****************显示汉字数据*******************/
89 /************Page0~7、Rom0~63、汉字数组**********/
90 void LCD_Display_Word(unsigned char Page,unsigned char Rom,unsigned char *Data)
91 {
92 1 unsigned char i;
93 1 if(Rom>63)
94 1 {
95 2 LCD_CSB=1;
96 2 LCD_CSA=0;
97 2 }
98 1 else
99 1 {
100 2 LCD_CSB=0;
101 2 LCD_CSA=1;
102 2 }
103 1 if((LCD_CSA==1)&&(LCD_CSB==0))
104 1 {
105 2 WriteLCD_Command(0xB8+Page);//页地址
106 2 WriteLCD_Command(0x40+Rom);//列地址
107 2 for(i=0;i<16;i++)
108 2 {
109 3 WriteLCD_Data(Data[i]);
110 3 }
111 2 WriteLCD_Command(0xB8+Page+1);//页地址+1
112 2 WriteLCD_Command(0x40+Rom);//列地址
113 2 for(i=16;i<32;i++)
114 2 {
115 3 WriteLCD_Data(Data[i]);
116 3 }
117 2 }
C51 COMPILER V8.05a 12864FINAL 03/06/2009 16:23:02 PAGE 3
118 1 if((LCD_CSA==0)&&(LCD_CSB==1))
119 1 {
120 2 WriteLCD_Command(0xB8+Page);//页地址
121 2 WriteLCD_Command(0x40+(Rom-64));//列地址
122 2 for(i=0;i<16;i++)
123 2 {
124 3 WriteLCD_Data(Data[i]);
125 3 }
126 2 WriteLCD_Command(0xB8+Page+1);//页地址+1
127 2 WriteLCD_Command(0x40+(Rom-64));//列地址
128 2 for(i=16;i<32;i++)
129 2 {
130 3 WriteLCD_Data(Data[i]);
131 3 }
132 2 }
133 1 }
134
135 /*****************显示字符数据*******************/
136 void LCD_Display_Eng(unsigned char Page,unsigned char Rom,unsigned char *Data)
137 {//页0~7、列0~63、汉字数组
138 1 unsigned char i;
139 1 if(Rom>63)
140 1 {
141 2 LCD_CSB=1;
142 2 LCD_CSA=0;
143 2 }
144 1 else
145 1 {
146 2 LCD_CSB=0;
147 2 LCD_CSA=1;
148 2 }
149 1 if((LCD_CSA==1)&&(LCD_CSB==0))
150 1 {
151 2 WriteLCD_Command(0xB8+Page);//页地址
152 2 WriteLCD_Command(0x40+Rom);//列地址
153 2 for(i=0;i<8;i++)
154 2 {
155 3 WriteLCD_Data(Data[i]);
156 3 }
157 2 WriteLCD_Command(0xB8+Page+1);//页地址+1
158 2 WriteLCD_Command(0x40+Rom);//列地址
159 2 for(i=8;i<16;i++)
160 2 {
161 3 WriteLCD_Data(Data[i]);
162 3 }
163 2 }
164 1 if((LCD_CSA==0)&&(LCD_CSB==1))
165 1 {
166 2 WriteLCD_Command(0xB8+Page);//页地址
167 2 WriteLCD_Command(0x40+(Rom-64));//列地址
168 2 for(i=0;i<8;i++)
169 2 {
170 3 WriteLCD_Data(Data[i]);
171 3 }
172 2 WriteLCD_Command(0xB8+Page+1);//页地址+1
173 2 WriteLCD_Command(0x40+(Rom-64));//列地址
174 2 for(i=8;i<16;i++)
175 2 {
176 3 WriteLCD_Data(Data[i]);
177 3 }
178 2 }
179 1 }
C51 COMPILER V8.05a 12864FINAL 03/06/2009 16:23:02 PAGE 4
180
181 /********************清屏幕**********************/
182 void LCD_Clr()
183 {
184 1 unsigned char j,i;
185 1 WriteLCD_Command(0xB8);
186 1 WriteLCD_Command(0x40);
187 1 for(i=0;i<8;i++)
188 1 {
189 2 WriteLCD_Command(0xB8+i);
190 2 WriteLCD_Command(0x40);
191 2 for(j=0;j<128;j++)
192 2 {
193 3 WriteLCD_Data(0x00);
194 3 }
195 2 }
196 1 }
197
198 /********************显示文档*********************/
199 void Display_Text(void)
200 {
201 1 LCD_Display_Word(0,16,dis1); //北
202 1 LCD_Display_Word(0,32,dis2); //斗
203 1 LCD_Display_Word(0,48,dis3); //星
204 1 LCD_Display_Word(0,64,dis4); //工
205 1 LCD_Display_Word(0,80,dis5); //化
206 1 LCD_Display_Word(0,96,dis6); //所
207 1 LCD_Display_Eng(2,32,dis7); //b
208 1 LCD_Display_Eng(2,40,dis8); //i
209 1 LCD_Display_Eng(2,48,dis9); //g
210 1 LCD_Display_Eng(2,56,dis10); //-
211 1 LCD_Display_Eng(2,64,dis11); //d
212 1 LCD_Display_Eng(2,72,dis12); //i
213 1 LCD_Display_Eng(2,80,dis13); //p
214 1 LCD_Display_Eng(2,88,dis14); //p
215 1 LCD_Display_Eng(2,96,dis15); //e
216 1 LCD_Display_Eng(2,104,dis16); //r
217 1 LCD_Display_Eng(4,48,dis17); //1
218 1 LCD_Display_Eng(4,56,dis18); //2
219 1 LCD_Display_Eng(4,64,dis19); //8
220 1 LCD_Display_Eng(4,72,dis20); //6
221 1 LCD_Display_Eng(4,80,dis21); //4
222 1 LCD_Display_Word(6,48,dis22);//王
223 1 LCD_Display_Word(6,64,dis23);//敬
224 1 LCD_Display_Word(6,80,dis24);//明
225 1 }
226
227 /******************主体函数**********************/
228 void main()
229 {
230 1 // LCD_RST = 0;
231 1 // delay(5);
232 1 // LCD_RST = 1;
233 1 LCD_Init();
234 1 Display_Text();
235 1 while(1)
236 1 {}
237 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 701 ----
C51 COMPILER V8.05a 12864FINAL 03/06/2009 16:23:02 PAGE 5
CONSTANT SIZE = 560 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 8
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 + -