?? 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 + -