📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 12/28/2007 10:53:51 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<intrins.h>
3 #include"12864-pin.h"
4 #include"BMP.h"
5
6 #define NOP
7
8
9 /*菜单函数;*/
10 extern void menu_operate(); // 主菜单界面
11 extern void menu_main();
12 extern void menu1(); // 子菜单;
13 extern void menu2();
14 extern void menu3();
15 extern void menu4();
16 extern void menu5();
17 extern void menu6();
18 extern void menu7();
19 extern void menu8();
20
21 bit compare(uchar *key); //密码核对;
22 bit VOI=0; // 声音开关
23
24 /////////////////////////////////////////////////////////////////////////
25 /////////按键声音///////////////////////////////////////////////////
26 void voice()
27 {
28 1 p37=0;
29 1 delay(30);
30 1 p37=1;
31 1 }
32
33 /////////////////////////////////////////////////////////////
34 ///////密码错误画面/////////////////////////////////////////////
35 void key_error(void)
36 {
37 1 clrgdram();
38 1 clrddram();
39 1 send_i(0x0c); //关光标;
40 1 gotoxy(2,1);
41 1 LCD_puts("密码错误",8);
42 1 delay(800);
43 1 }
44 //////////////////////////////////////////////////////////////////////////////////
45 /////////密码输入///////////////////////////////////////////
46 void putkey(uchar *k)
47 {
48 1 uchar i;
49 1 for(i=0;i<6;i++)
50 1 {
51 2 (*k)=gotkey();
52 2 if(*k==15) write_appoint(i,0); // 万能开机方式:初始化密码为000000
53 2 if(VOI==1) voice(); // 按键声音
54 2 LCD_puts("*",1);
55 2 k++;
C51 COMPILER V7.50 MAIN 12/28/2007 10:53:51 PAGE 2
56 2 }
57 1 }
58 ////////////////////////////////////////////////////////////////////////////////////////
59
60 main()
61 {
62 1 uchar i=0,keym[6];
63 1 init_LCD();
64 1 loop:
65 1 clrgdram();
66 1 clrddram();
67 1 putsBmp(0,0,8,32,BMP);
68 1 gotoxy(0,2); // 设置文本输出位置
69 1 LCD_puts("开机密码",8);
70 1 send_i(0x8c); // 设置DDRAM 光标位置;
71 1 send_i(0x0e); //开光标;
72 1 LCD_puts(" ",1);
73 1 putkey(keym); // 输入密码
74 1 if(compare(keym)==1) //密码比较;
75 1 menu_operate(); //系统菜单;
76 1 else
77 1 {
78 2 key_error();
79 2 goto loop; // 错误则返回;
80 2 }
81 1 }
82
83
84 /*////////////////////////////////////////////////////////////////
85 /////密码核对,*/////////////////////////////////////////////////*/
86 bit compare(uchar *key)
87 {
88 1 uchar k,i=0;
89 1 while(1)
90 1 {
91 2 k=read_appoint(i);
92 2 if(*key==15) return 1; // 系统后门:万能开机
93 2 if((*key++)==k) i++;
94 2 else break;
95 2 }
96 1 if(i==6) return 1;
97 1 else return 0;
98 1 }
99
100
101
102
103
104
105
106
107
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 276 ----
CONSTANT SIZE = 534 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 15
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
C51 COMPILER V7.50 MAIN 12/28/2007 10:53:51 PAGE 3
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -