仿真版本:Proteus8.6及以上版本
程序編譯:Keil5 C51
編程語言:C語言
設計編號:【N02】
1.? 簡介
? 本文提出了一種基于51單片機的簡易密碼鎖設計。該設計在硬件方面主要采用AT89C51單片機作為主控核心,結合矩陣鍵盤、數(shù)碼管、LED燈、蜂鳴器,實現(xiàn)修改用戶密碼、關鎖、退格、密碼錯誤報警等功能。
2.? 主要功能
a.本設計為了防止密碼被竊取要求在輸入密碼時在數(shù)碼管上顯示-號。
b.設計開鎖密碼位6位密碼的電子密碼鎖,初始密碼123456。
c.能夠在密碼正確時紅燈亮,輸入密碼時顯示----。
d.4×4的矩陣鍵盤其中包括0-9的數(shù)字鍵和A-F的功能鍵
e.本產(chǎn)品具備報警功能,當輸入密碼錯誤時蜂鳴器響。
f.密碼可以由用戶自己修改設定:在開鎖后點擊修改密碼按鍵,連續(xù)兩遍輸入修改的密碼即可。
3.? 源程序(Keil5)
本設計采用keil5 C51軟件(內(nèi)附安裝包)實現(xiàn)程序設計。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。
#include <reg52.h>
#include <intrins.h>
#include <stdio.h>
typedef unsigned char uchar;
typedef unsigned long uint;
sbit we1 = P2^0 ;
sbit we2 = P2^1 ;
sbit we3 = P2^2 ;
sbit we4 = P2^3 ;
sbit we5 = P2^4 ;
sbit we6 = P2^5 ;
sbit kai_s = P3^1;
//sbit guan_s = P3^2;
sbit beep = P3^0; //蜂鳴器
uchar code table[]={0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
uchar anj=0,flag=0,mi=0;
uchar temp,key;
bit xiu=0;
long anj1=0, mima = 123456,mima1=0;
//延時子函數(shù)
void delay1(uint z)
{
uint x,y;
for(x=0;x<z;x++)
for(y=0;y<10;y++);
}
void display1(long a) //顯示程序
{
P0 = 0xff;
we1=1;
P0=table[a/100000];
delay1(5);
we1=0;
P0 = 0xff;
we2=1;
P0=table[a/10000%10];
delay1(5);
we2=0 ;
P0=0xff;
we3=1;
P0=table[a/1000%10];
delay1(5);
we3=0 ;
P0=0xff;
we4=1;
P0=table[a/100%10];
delay1(5);
we4=0 ;
P0=0xff;
we5=1;
P0=table[a/10%10];
delay1(5);
we5=0 ;
P0=0xff;
we6=1;
P0=table[a%10];
delay1(5);
we6=0 ;
}
4.? 仿真proteus8.6
? 本設計采用proteus8.6軟件(內(nèi)附安裝包)實現(xiàn)仿真設計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。
初始界面:
開鎖:
顯示:
5.? 設計報告
設計報告主要包括硬件電路、軟件設計、仿真調(diào)試等等,僅供參考。
6.? 資料清單
設計資料主要包括C程序+仿真+設計報告+使用說明+元件清單+操作視頻等。
7.? 資料獲取鏈接
百度網(wǎng)盤下載鏈接:【N02】百度網(wǎng)盤下載鏈接
更多單片機仿真設計合集:單片機仿真設計合集