//-----------------------------------------------------------------
// 名称: 用1602LCD与24C04设计的电子密码锁
//-----------------------------------------------------------------
// 说明: 初始密码由24C04.BIN设定为"111111".
// 按下数字键0-9可输入密码,不超过6位,输入完成后按下A
// 键开锁,密码正确时LED点亮,液晶屏显示开锁成功.
// 其他键功能是:B-上锁 C-重新输入密码 D-保存新密码 E-清除
// 重设密码时要求先输入正确的密码成功开锁.
//
//-----------------------------------------------------------------
#include <reg51.h>
#include <string.h>
#define INT8U unsigned char
#define INT16U unsigned int
//上次按键和当前按键序号,该矩阵中序号范围为0-15,16表示无按键
INT8U Pre_KeyNo = 16, KeyNo = 16 ;
INT8U DSY_BUFFER[10] = ""; //显示缓冲
INT8U UserPassword[7] = ""; //用户输入的密码
INT8U IIC_Password[7]; //从IIC存储器读取的密码
extern void Initialize_LCD(); //液晶初始化
extern void LCD_ShowString(INT8U, INT8U ,INT8U*); //显示字符串
extern void IIC_Init(); //IIC初始化
extern INT8U Random_Read(INT8U,INT16U); //从指定地址读取1字节
extern void Write_IIC(INT8U,INT16U,INT8U); //向指定地址写入1字节
extern void delay_ms(INT16U x); //延时函数
extern INT8U Keys_Scan(); //扫描键盘返回键值
void Beep(); //蜂鸣器
sbit LED_OPEN = P2^7; //开锁亮灯
sbit BEEP = P3^7; //蜂鸣器
//-----------------------------------------------------------------
// 蜂鸣器子程序
//-----------------------------------------------------------------
void Beep()
{
INT8U i;for (i = 0; i < 100; i++) { delay_ms(1); BEEP = ~BEEP; }
BEEP = 0;
}
//-----------------------------------------------------------------
// 清除密码
//-----------------------------------------------------------------
void Clear_Pwd() { }
//-----------------------------------------------------------------
// 读取密码字符串(以'\0'为结束标志)
//-----------------------------------------------------------------
void Read_IIC_Pwd()
{
}
//-----------------------------------------------------------------
// 写密码字符串(结束标志'\0'注意一并写入)
//-----------------------------------------------------------------
void Write_IIC_Pwd()
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
}
|