//-----------------------------------------------------------------
// 名稱: 用1602LCD與24C04設計的電子密碼鎖
//-----------------------------------------------------------------
// 說明: 初始密碼由24C04.BIN設定為"111111".
// 按下數(shù)字鍵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字節(jié)
extern void Write_IIC(INT8U,INT16U,INT8U); //向指定地址寫入1字節(jié)
extern void delay_ms(INT16U x); //延時函數(shù)
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()
{
}
|