📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 06/09/2010 10:43:00 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN .\obj\main.obj
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND PRINT(.\obj\main.lst) OBJECT(.\obj\main.ob
-j)
stmt level source
1 /*-----------------------------------------------
2 名称:液晶显示密码锁
3 论坛:www.doflye.net
4 编写:shifang
5 日期:2009.5
6 修改:无
7 内容:第一行显示固定密码,第二行显示输入密码,密码输入完毕后会有正确或者错误提示
8 ------------------------------------------------*/
9 #include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义
10 #include<stdio.h>
11 #include"1602.h"
12 #include"delay.h"
13 #include"keyboard.h"
14
15
16 unsigned char code password[8]={1,2,3,4,5,6,7,8};//可以更改此密码做多组测试
17
18 /*------------------------------------------------
19 主程序
20 ------------------------------------------------*/
21 main()
22 {
23 1 unsigned char num,i,j;
24 1 unsigned char temp[8];
25 1 bit Flag;
26 1
27 1 LCD_Init(); //初始化液晶屏
28 1 DelayMs(10); //延时用于稳定,可以去掉
29 1 LCD_Clear(); //清屏
30 1 LCD_Write_String(0,0,"password12345678");//写入第一行信息,主循环中不再更改此信息,所以在while之前写入
31 1 LCD_Write_String(0,1,"Input password!"); //写入第二行信息,提示输入密码
32 1 while (1) //主循环
33 1 {
34 2
35 2
36 2 num=KeyPro(); //扫描键盘
37 2 if(num!=0xff) //如果扫描是按键有效值则进行处理
38 2 {
39 3 if(i==0) //输入是第一个字符的时候需要把改行清空,方便观看密码
40 3 LCD_Write_String(0,1," ");//清除该行
41 3 if(i<8) //密码是8位,大于8位时不再输入按键值
42 3 {
43 4 temp[i]=num;
44 4 LCD_Write_Char(i,1,num+'0');
45 4 }
46 3 i++; //输入数值累加
47 3 if(i==9)//8位后的按键不输入数值,相当于确认按键(任意按键即可)
48 3 {
49 4 i=0; //计数器复位
50 4 Flag=1;//先把比较位置1
51 4 for(j=0;j<8;j++)//循环比较8个数值,如果有一个不等 则最终Flag值为0
52 4 Flag=Flag&&(temp[j]==password[j]);//比较输入值和已有密码
53 4
54 4 if(Flag)//如果比较全部相同,标志位置1
C51 COMPILER V7.06 MAIN 06/09/2010 10:43:00 PAGE 2
55 4 {
56 5 LCD_Write_String(0,1,"Right Open!");//密码正确显示的信息
57 5 }
58 4 else
59 4 {
60 5 LCD_Write_String(0,1,"Wrong Retry!");//密码错误,提示重新输入
61 5 }
62 4
63 4 }
64 3 }
65 2 }
66 1 }
67
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 156 ----
CONSTANT SIZE = 84 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 10
IDATA SIZE = ---- ----
BIT SIZE = ---- 1
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -