📄 menu.lst
字号:
C51 COMPILER V7.50 MENU 12/28/2007 10:53:52 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MENU
OBJECT MODULE PLACED IN menu.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE menu.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include"12864-pin.h"
3
4 void menu8();
5 void menu_operate(void);
6
7 bit compare(uchar *key);
8 extern bit VOI; // 声音开关
9 //////////////////////////////////////////////////////////////////////
10 void menu8_2_1(void)
11 {
12 1 clrddram();
13 1 send_i(0x0c); //关光标;
14 1 gotoxy(1,1);
15 1 LCD_puts("输入密码错误",12);
16 1 }
17
18 void menu8_2_2(void)
19 {
20 1 clrddram();
21 1 send_i(0x0c); //关光标;
22 1 gotoxy(1,1);
23 1 LCD_puts("两次密码不同",12);
24 1 }
25
26 void menu8_2_3(void)
27 {
28 1 clrddram();
29 1 send_i(0x0c); //关光标;
30 1 gotoxy(1,1);
31 1 LCD_puts("密码修改成功",12);
32 1 }
33
34 ////////////////////////////////////////////////////////////////////
35 void menu8_2_4()
36 {
37 1 clrddram();
38 1 send_i(0x0c); //关光标;
39 1 gotoxy(1,0);
40 1 LCD_puts("密码修改失败",12);
41 1 gotoxy(1,1);
42 1 LCD_puts("请使用万能开机",15);
43 1 gotoxy(1,2);
44 1 LCD_puts("方式恢复密码!",14);
45 1 }
46 //////////////////////////////////////////////////////////////////////////
47 /* 背光设置 *////////*/
48 void menu8_1(void)
49 {
50 1 uchar i=0;
51 1 clrddram();
52 1 send_i(0x0c); //关光标;
53 1 gotoxy(0,0);
54 1 LCD_puts("背光开",6);
55 1 gotoxy(0,1);
C51 COMPILER V7.50 MENU 12/28/2007 10:53:52 PAGE 2
56 1 LCD_puts("背光关",6);
57 1
58 1 while(1)
59 1 {
60 2 fill_GD(0,0+i,4,16,0xff); // 反白;
61 2 delay(200);
62 2 while(P1==0xff);
63 2 if(p17==0)
64 2 {
65 3 if(VOI==1) voice(); // 按键声音
66 3 break; // 按P17跳到前一菜单
67 3 }
68 2 if(p14==0)
69 2 {
70 3 if(VOI==1) voice(); // 按键声音
71 3 if(i==0) p26=0;
72 3 else p26=1;
73 3 }
74 2 if(p15==0)
75 2 {
76 3 if(VOI==1) voice(); // 按键声音
77 3 fill_GD(0,0+i,4,16,0x00); // 清除反白;
78 3 if(i==0)i=16; // 反白下调
79 3 else i=0;
80 3 }
81 2 if(p16==0)
82 2 {
83 3 if(VOI==1) voice(); // 按键声音
84 3 fill_GD(0,0+i,4,16,0x00); // 清除反白;
85 3 if(i==0) i=16;
86 3 else i=0;
87 3 }
88 2 }
89 1 }
90 ////////////////////////////////////////////////////////////////////////
91 //* 密码设置 */
92 void menu8_2(void)
93 {
94 1 uchar i,key1[6],key2[6],key3[6];
95 1 uchar j; // 写入出错次数累计变量
96 1 loop1:
97 1 clrgdram();
98 1 clrddram();
99 1 gotoxy(0,0);
100 1 LCD_puts("输入密码",9);
101 1 gotoxy(0,1);
102 1 LCD_puts("输新密码",9);
103 1 gotoxy(0,2);
104 1 LCD_puts("再输一遍",9);
105 1 send_i(0x0e); //开光标;
106 1 send_i(0x84); // 设置DDRAM 光标位置;
107 1 LCD_puts(" ",1);
108 1 for(i=0;i<6;) // 输入密码
109 1 {
110 2 key1[i]=gotkey();
111 2 if(VOI==1) voice(); // 按键声音
112 2 if(key1[i]>11) goto loop; //按P17反回上一菜单
113 2 {
114 3 LCD_puts("*",1);
115 3 i++;
116 3 }
117 2 }
C51 COMPILER V7.50 MENU 12/28/2007 10:53:52 PAGE 3
118 1
119 1 if(compare(key1)==0)
120 1 {
121 2 menu8_2_1(); // 密码错误
122 2 delay(800);
123 2 goto loop1;
124 2 }
125 1 else // 输入正确则继续输入
126 1 {
127 2 send_i(0x94); // 设置DDRAM 光标位置;
128 2 LCD_puts(" ",1);
129 2 for(i=0;i<6;) // 输新密码
130 2 {
131 3
132 3 key2[i]=gotkey();
133 3 if(VOI==1) voice(); // 按键声音
134 3 if(key2[i]>11) goto loop; //按P17反回上一菜单
135 3 {
136 4 LCD_puts("*",1);
137 4 i++;
138 4 }
139 3 }
140 2 send_i(0x8c); // 设置DDRAM 光标位置;
141 2 LCD_puts(" ",1);
142 2 for(i=0;i<6;) // 再输一遍
143 2 {
144 3 key3[i]=gotkey();
145 3 if(VOI==1) voice(); // 按键声音
146 3 if(key3[i]>11) goto loop; //按P17反回上一菜单
147 3 {
148 4 LCD_puts("*",1);
149 4 i++;
150 4 }
151 3 }
152 2 ///////////////////////////////
153 2 for(i=0;i<6;i++) // 比较两次输入的密码
154 2 {
155 3 if(key2[i]!=key3[i])
156 3 {
157 4 i=10;
158 4 break;
159 4 }
160 3 }
161 2 if(i==10) // 两次输入密码不一样
162 2 {
163 3 menu8_2_2();
164 3 delay(800);
165 3 goto loop1;
166 3 }
167 2 else
168 2 {
169 3 j=0;
170 3 do{
171 4 for(i=0;i<6;i++) write_appoint(i,key2[i]); // 修改成功,保存到24C02
172 4 j++;
173 4 if(j==5)
174 4 {
175 5 for(i=0;i<6;i++) key1[i]=read_appoint(i); // 如果连续四次写入出错刚读出24C02数据到key1[]
176 5 menu8_2_4();
177 5 while(p17==1); // 按P17跳出画面
178 5 goto loop;
179 5 }
C51 COMPILER V7.50 MENU 12/28/2007 10:53:52 PAGE 4
180 4 }while(compare(key2)==0); // 当密码写入出错时重复写入直到正确
181 3 menu8_2_3();
182 3 delay(800);
183 3 }
184 2 }
185 1 loop: send_i(0x0c); //关光标;
186 1 }
187
188 /////////////////////////////////////////////////////////////////////////////
189 void menu8_3()
190 {
191 1 uchar i=0;
192 1 clrgdram();
193 1 clrddram();
194 1 send_i(0x0c); //关光标;
195 1 gotoxy(0,0);
196 1 LCD_puts("声音开",6);
197 1 gotoxy(0,1);
198 1 LCD_puts("声音关",6);
199 1
200 1 while(1)
201 1 {
202 2 fill_GD(0,0+i,4,16,0xff); // 反白;
203 2 delay(200);
204 2 while(P1==0xff);
205 2 if(p17==0)
206 2 {
207 3 if(VOI==1) voice(); // 按键声音
208 3 break; // 按P17跳到前一菜单
209 3 }
210 2 if(p14==0)
211 2 {
212 3 if(VOI==1) voice(); // 按键声音
213 3 if(i==0) VOI=1;
214 3 else VOI=0;
215 3 }
216 2 if(p15==0)
217 2 {
218 3 if(VOI==1) voice(); // 按键声音
219 3 fill_GD(0,0+i,4,16,0x00); // 清除反白;
220 3 if(i==0)i=16; // 反白下调
221 3 else i=0;
222 3 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -