?? main.c
字號:
//-----------------------------------------------------------------
// 名稱: 用內置EEPROM與1602液晶設計的帶MD5加密的電子密碼鎖
//-----------------------------------------------------------------
// 說明: 初始密碼由Passwrod.BIN設定為:
// "e10adc3949ba59abbe56e057f20f883e",它由明文密碼"123456"進行
// MD5加密后得到.
//
// 數字鍵0-9中用于輸入密碼,密碼不超過10位,輸入完成后按下
// "開鎖鍵"開鎖,密碼正確時LED點亮,液晶屏顯示開鎖成功.
// 另外,本例還具備:上鎖,重新輸入密碼,保存新密碼,清除等功能.
// 重設密碼時要求先輸入正確的密碼并成功開鎖.
//
//-----------------------------------------------------------------
#include <avr/io.h>
#include <avr/eeprom.h>
#include <util/delay.h>
#include <string.h>
#define INT8U unsigned char
#define INT16U unsigned int
//電子鎖指示燈開關定義
//蜂鳴器
//液晶相關函數
extern void Initialize_LCD();
extern void LCD_ShowString(INT8U x, INT8U y,char *str);
//MD5加密函數
extern char* MD5String(char *str);
//鍵盤掃描相關函數即按鍵鍵值
extern INT8U Keys_Scan();
extern INT8U KeyMatrix_Down();
extern INT8U KeyNo;
//LCD提示字符串
const char *Title_Text = "Your Password...";
//顯示緩沖
char DSY_BUFFER[10] = "";
//保存在EEPROM中的密碼(MD5加密密碼,其長度為32位)
char EEPROM_Password[33];
//用戶輸入的密碼(密碼不超過10位)
char UserInputPassword[11];
//-----------------------------------------------------------------
// 蜂鳴器子程序
//-----------------------------------------------------------------
void Sounder()
{
}
//-----------------------------------------------------------------
// 清除密碼
//-----------------------------------------------------------------
void Clear_Password()
{
}
//-----------------------------------------------------------------
// 讀取EEPROM中的密碼(以'\0'或0xFF為結果標志)
//-----------------------------------------------------------------
void Read_EEPROM_Password()
{
}
//-----------------------------------------------------------------
// 將新密碼保存到EEPROM,為便于讀者調試觀察,
// 本函數同時保存了新密碼的明文和密文,保存位置分別為:0x0050,0x0000)
//-----------------------------------------------------------------
void Save_Password_TO_EEPROM()
{
}
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
int main()
{
INT8U i = 0;
INT8U IS_Valid_User = 0;
DDRA = 0xFF; PORTA = 0xFF; //配置端口
DDRC = 0xFF;
DDRD = 0xFF;
LED_OFF(); //初始時關閉LED指示燈
Initialize_LCD(); //LCD初始化
LCD_ShowString(0,0,(char*)Title_Text); //在第0行顯示提示信息
//AVR EEPROM的密碼已由初始化Password.BIN文件導入
//下面將EEPROM中預設的密碼讀入EEPROM_Password
Read_EEPROM_Password();
while(1)
{
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -