📄 zk.lst
字号:
C51 COMPILER V8.02 ZK 03/31/2009 16:00:07 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE ZK
OBJECT MODULE PLACED IN C:\DOCUME~1\ADMINI~1\桌面\NEWPRO~1\ZK.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\DOCUME~1\ADMINI~1\桌面\NEWPRO~1\ZK.C DB SB OE
line level source
1 #include<REG51.H>
2 #include "INTRINS.H"
3
4 #define LCD_BUS P0
5 sbit RS= P2^5;
6 sbit RW=P2^6;
7 sbit E =P2^7;
8 /*
9 sbit pcb=P1^3;
10 sbit RS= P1^0;
11 sbit RW=P1^1;
12 sbit E =P1^2;
13 */
14
15
16
17
18
19
20 ////////////////////////////////////
21
22 ////////////////////////////////////
23
24 void delay(unsigned int t) ; //延时t倍///
25
26 unsigned char check_bf(unsigned char Address_AC); //LCD标志位查询//
27 void write_data(unsigned char dispdata); //写数据//
28 void write_comand(unsigned char cmdcode); //写命令//
29
30 void lcd_init(); ///LCD初始化//
31 void stringdisp (unsigned char code *str,unsigned char adress); //显示字符串//
32
33
34 void disp_graph(); //总界面:教室灯控系统
35 void disp_graph_password(); //密码输入登录界面
36 void disp_graph_set(); //系统设置总界面
37 /////////////////////////////////////////////////////
38
39 unsigned char code str[]=" 教室灯控系统 "; //登陆总界面
40 unsigned char code str1[]=" ●登陆界面 →";
41 unsigned char code str2[]=" ●设置界面 →";
42
43 unsigned char code str_password1[]="请输入登录密码:"; //输入密码界面
44 unsigned char code str_password2[]=" ****** ";
45 unsigned char code str_password3[]=" 1 2 3 4 5 6 ";
46 unsigned char code str_password4[]=" 6 7 8 9 ";
47
48 unsigned char code str_set1[]="设置选项: "; //设置总界面
49 unsigned char code str_set2[]="●密码设置 →";
50 unsigned char code str_set3[]="●系统时间设置→";
51 unsigned char code str_set4[]="●定时时间设置→";
52
53 // unsigned char code str3[]="1234567891234567";
54
55 // unsigned char code str12[14][3]={"1 ","2 ","3 ","4 ","5 ","6 ","7 ","8 ","9 ","10","11","12","13","14"
C51 COMPILER V8.02 ZK 03/31/2009 16:00:07 PAGE 2
-,};
56
57 //////////////////////////////////////////////////////////////////
58 void main()
59 {
60 1
61 1 LCD_BUS=0XFF;
62 1
63 1
64 1 LCD_BUS=LCD_BUS
65 1 lcd_init();
*** ERROR C141 IN LINE 65 OF C:\DOCUME~1\ADMINI~1\桌面\NEWPRO~1\ZK.C: syntax error near 'lcd_init'
66 1 stringdisp("1",0x8b);
67 1 //disp_graph(); //登陆总界面
68 1 //disp_graph_password();
69 1 // disp_graph_set();
70 1
71 1
72 1 //stringdisp(&str3,0x80); ///////显示开机画面//////
73 1
74 1 //write_comand(0x85);
75 1 // stringdisp("1",0x88);
76 1 // data_disp(198,0x98); //数字显示
77 1
78 1 delay(100);
79 1 }
80
81 /**********************************************************************
82 函数原型: void delay(unsigned int t)
83 入口参数:
84 t : 延时程序t倍的100us
85 出口参数: 无
86 返 回 值: 无
87 说 明: LCD液晶延时子程序t倍100us
88 **********************************************************************/
89 ///////////////////延时程序/////////////////////////////////////
90
91 void delay(unsigned int t) //延时程序t倍100us
92 {
93 1 unsigned char j;
94 1 unsigned int i;
95 1 for(i=0;i<t;i++)
96 1 for(j=0;j<29;j++);
97 1
98 1 }
99 /***********************************************************************
100 函数原型:check_bf(unsigned char Address_AC)
101 入口参数:无
102 出口参数:无
103
104 返回值:
105 Address_AC:当前状态的地址(一个无符号字符)
106 功能说明:LCD液晶的状态BF查询和DDRAM的地址查询
107 ************************************************************************/
108 ////////////////////////////查询BF///////////////////////////////////////
109
110 unsigned char check_bf(unsigned char Address_AC)
111 {
112 1 unsigned char BF; ////忙标志位,BF是某字节的一位,是D7位,如果为1,则忙//////
113 1 LCD_BUS=0x00 ;
114 1 do
115 1 {
C51 COMPILER V8.02 ZK 03/31/2009 16:00:07 PAGE 3
116 2 RS=0;
117 2 RW=1;
118 2 E=1;
119 2 BF=LCD_BUS; /////此处BF定义不是一个位,而是一个字节,不过在处理中代表标志位bf///
120 2 _nop_();
121 2 E=0;
122 2 Address_AC=BF;
123 2 BF=BF&0x80; ////取出BF////
124 2 }while( BF!=0x00 ) ; //////判断是否忙?///////
125 1 Address_AC=Address_AC&0x7f; ///读出DDRAM的地址指针AC的值
126 1 delay(5) ;
127 1 return(Address_AC);
128 1 }
129 /**********************************************************************
130 函数原型:write_comand(unsigned char cmdcode)
131 入口参数:
132 cmdcode : 命令字 (0x01:清屏)
133 出口参数: 无
134 返 回 值: 无
135 说 明: 对lcd写命令字
136 **********************************************************************/
137 /////////////////////////写命令子程序//////////////////////////////////
138
139 void write_comand(unsigned char cmdcode)
140 {
141 1 check_bf();
142 1 RS=0;
143 1 RW=0;
144 1 E=1;
145 1 LCD_BUS=cmdcode;
146 1 _nop_();
147 1 _nop_();
148 1 _nop_();
149 1 _nop_();
150 1 E=0;
151 1 delay(5) ;
152 1 }
153 /***********************************************************************
154 函数原型:write_data(unsigned char dispdata)
155 入口参数:
156 dispdata:写入lcd要显示内容
157 出口参数:无
158 返回值: 无
159 功能说明:LCD液晶的数据写入指令
160 ************************************************************************/
161 //////////////////////////写数据子程序///////////////////////////////////
162
163 void write_data(unsigned char dispdata)
164 {
165 1 check_bf();
166 1 RS=1;
167 1 RW=0;
168 1 E=1;
169 1 LCD_BUS=dispdata;
170 1 _nop_();
171 1 _nop_();
172 1 _nop_();
173 1 _nop_();
174 1 _nop_();
175 1
176 1 E=0;
177 1
C51 COMPILER V8.02 ZK 03/31/2009 16:00:07 PAGE 4
178 1 }
179 /******************************************************************
180 函数:lcd_init()
181 入口参数:无
182 出口参数:无
183 返回值:无
184 功能说明:LCD液晶的初始化
185 ********************************************************************/
186 /////////////////////////液晶初始化////////////////////////////////
187 void lcd_init()
188 {
189 1 delay(100);
190 1 write_comand(0x30); //8并,基本指令
191 1 delay(10);
192 1 write_comand(0x30); //8并,
193 1 delay(5);
194 1
195 1 // write_comand(0x0c); //整体显示开,游标关不反白
196 1 // write_comand(0x0d); //整体显示开,游标关反白
197 1 write_comand(0x0f); //整体显示开,游标开反白
198 1 delay(10);
199 1
200 1 write_comand(0x01); //清屏
201 1 delay(5);
202 1
203 1 write_comand(0x06); //游标移动方向及地址AC的增减方式
204 1
205 1 }
206 /***********************************************************************
207 函数原型:stringdisp(unsigned char code *str,unsigned char adress)
208 入口参数:
209 str:要写入lcd显示的字符串数组
210 adress :要设定字符串在液晶显示中地址
211 出口参数:无
212 返回值: 无
213 功能说明:LCD液晶的字符串显示子程序
214 ************************************************************************/
215
216 ///////////////////////////字符串显示////////////////////////////////////
217
218 void stringdisp(unsigned char code *str,unsigned char adress) //字符串显示
219 {
220 1 write_comand(0x30);
221 1 write_comand(adress);
222 1 while(*str>0)
223 1 {
224 2 write_data(*str) ;
225 2 str++;
226 2 delay(1);
227 2 }
228 1 }
229
230
231 ///////////////////////////系统登陆界面///////////////////////////////////
232
233 void disp_graph()
234 {
235 1 lcd_init();
236 1 stringdisp(&str,0x80); //////总界面:教室灯控系统////////
237 1 delay(100);
238 1 stringdisp(&str1,0x88); //////总界面:登陆界面////////////
239 1 delay(100);
C51 COMPILER V8.02 ZK 03/31/2009 16:00:07 PAGE 5
240 1 // stringdisp(&str2,0x88); //////总界面:设置界面////////////
241 1 // delay(100);
242 1 write_comand(0x8f);
243 1
244 1
245 1 // write_comand(0x34); ////设置为全反白显示
246 1 // write_comand(0x05);
247 1 }
248
249
C51 COMPILATION COMPLETE. 0 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -