找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2731|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)電子密碼鎖程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:554654 發(fā)表于 2019-6-4 14:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
功能鍵
                        S6---S15    數(shù)字鍵0-9
                S16---更改密碼      S17---更改密碼完畢后確認(rèn)
                S18---重試密碼、重新設(shè)定    S19---關(guān)閉密碼鎖
                初始密碼:000000   密碼位數(shù):6位
                注意:掉電后,所設(shè)密碼會(huì)丟失,重新上點(diǎn)時(shí),密碼恢復(fù)為原始的000000
                與P1相連的8位發(fā)光LED點(diǎn)亮代表鎖被打開;熄滅代表鎖被鎖上

程序功能: 本程序結(jié)合了24C02存儲(chǔ)器的存儲(chǔ)功能,可以掉電保存密碼。
            第一次運(yùn)行時(shí),若輸入000000原始密碼后無反應(yīng),可以試驗(yàn)著將主程序中前面的
            一小段被注釋線屏蔽的程序前的注釋線刪掉,然后重新編譯下載(可以將密碼還原為000000)。
            此后,再將這小段程序屏蔽掉,再編譯下載。方可正常使用。
          1、開鎖:
          下載程序后,直接按六次S7(即代表數(shù)字1),8位LED亮,鎖被打開,輸入密碼時(shí),
          六位數(shù)碼管依次顯示小橫杠。
          2、更改密碼:
          只有當(dāng)開鎖(LED亮)后,該功能方可使用。
          首先按下更改密碼鍵S16,然后設(shè)置相應(yīng)密碼,此時(shí)六位數(shù)碼管會(huì)顯示設(shè)置密碼對(duì)應(yīng)
          的數(shù)字。最后設(shè)置完六位后,按下S17確認(rèn)密碼更改,此后新密碼即生效。
          3、重試密碼:
          當(dāng)輸入密碼時(shí),密碼輸錯(cuò)后按下鍵S18,可重新輸入六位密碼。
          當(dāng)設(shè)置密碼時(shí),設(shè)置中途想更改密碼,也可按下此鍵重新設(shè)置。
          4、關(guān)閉密碼鎖:
          按下S19即可將打開的密碼鎖關(guān)閉。
推薦初級(jí)演示步驟:輸入原始密碼000000---按下更改密碼按鍵S16---按0到9設(shè)置密碼---按S17
            確認(rèn)密碼更改---按S18關(guān)閉密碼鎖---輸入新的密碼打開密碼鎖
*******************************************************************************/
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

uchar old1,old2,old3,old4,old5,old6; //原始密碼000000
uchar new1,new2,new3,new4,new5,new6;  //每次MCU采集到的密碼輸入
uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入數(shù)碼管顯示的變量
uchar wei,key,temp;

bit allow,genggai,ok,wanbi,retry,close;  //各個(gè)狀態(tài)位

sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
sbit sda=P2^0;                          //IO口定義
sbit scl=P2^1;

unsigned char code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};

/*****************IIC芯片24C02存儲(chǔ)器驅(qū)動(dòng)程序************************************/

void nop()
{
    _nop_();
    _nop_();
}
/////////24C02讀寫驅(qū)動(dòng)程序////////////////////
void delay1(unsigned int m)
{   unsigned intn;
    for(n=0;n<m;n++);
}

void init() //24c02初始化子程序
{
    scl=1;
    nop();
    sda=1;
    nop();
}

void start()       //啟動(dòng)I2C總線
{
    sda=1;
    nop();
    scl=1;
    nop();
    sda=0;
    nop();
    scl=0;
    nop();
}

void stop()        //停止I2C總線
{
    sda=0;
    nop();
    scl=1;功能鍵
                        S6---S15    數(shù)字鍵0-9
                S16---更改密碼      S17---更改密碼完畢后確認(rèn)
                S18---重試密碼、重新設(shè)定    S19---關(guān)閉密碼鎖
                初始密碼:000000   密碼位數(shù):6位
                注意:掉電后,所設(shè)密碼會(huì)丟失,重新上點(diǎn)時(shí),密碼恢復(fù)為原始的000000
                與P1相連的8位發(fā)光LED點(diǎn)亮代表鎖被打開;熄滅代表鎖被鎖上

程序功能: 本程序結(jié)合了24C02存儲(chǔ)器的存儲(chǔ)功能,可以掉電保存密碼。
            第一次運(yùn)行時(shí),若輸入000000原始密碼后無反應(yīng),可以試驗(yàn)著將主程序中前面的
            一小段被注釋線屏蔽的程序前的注釋線刪掉,然后重新編譯下載(可以將密碼還原為000000)。
            此后,再將這小段程序屏蔽掉,再編譯下載。方可正常使用。
          1、開鎖:
          下載程序后,直接按六次S7(即代表數(shù)字1),8位LED亮,鎖被打開,輸入密碼時(shí),
          六位數(shù)碼管依次顯示小橫杠。
          2、更改密碼:
          只有當(dāng)開鎖(LED亮)后,該功能方可使用。
          首先按下更改密碼鍵S16,然后設(shè)置相應(yīng)密碼,此時(shí)六位數(shù)碼管會(huì)顯示設(shè)置密碼對(duì)應(yīng)
          的數(shù)字。最后設(shè)置完六位后,按下S17確認(rèn)密碼更改,此后新密碼即生效。
          3、重試密碼:
          當(dāng)輸入密碼時(shí),密碼輸錯(cuò)后按下鍵S18,可重新輸入六位密碼。
          當(dāng)設(shè)置密碼時(shí),設(shè)置中途想更改密碼,也可按下此鍵重新設(shè)置。
          4、關(guān)閉密碼鎖:
          按下S19即可將打開的密碼鎖關(guān)閉。
推薦初級(jí)演示步驟:輸入原始密碼000000---按下更改密碼按鍵S16---按0到9設(shè)置密碼---按S17
            確認(rèn)密碼更改---按S18關(guān)閉密碼鎖---輸入新的密碼打開密碼鎖
*******************************************************************************/
#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char

uchar old1,old2,old3,old4,old5,old6; //原始密碼000000
uchar new1,new2,new3,new4,new5,new6;  //每次MCU采集到的密碼輸入
uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入數(shù)碼管顯示的變量
uchar wei,key,temp;

bit allow,genggai,ok,wanbi,retry,close;  //各個(gè)狀態(tài)位

sbit dula=P2^6;
sbit wela=P2^7;
sbit beep=P2^3;
sbit sda=P2^0;                          //IO口定義
sbit scl=P2^1;

unsigned char code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};

/*****************IIC芯片24C02存儲(chǔ)器驅(qū)動(dòng)程序************************************/

void nop()
{
    _nop_();
    _nop_();
}
/////////24C02讀寫驅(qū)動(dòng)程序////////////////////
void delay1(unsigned int m)
{   unsigned intn;
    for(n=0;n<m;n++);
}

void init() //24c02初始化子程序
{
    scl=1;
    nop();
    sda=1;
    nop();
}

void start()       //啟動(dòng)I2C總線
{
    sda=1;
    nop();
    scl=1;
    nop();
    sda=0;
    nop();
    scl=0;
    nop();
}

void stop()        //停止I2C總線
{
    sda=0;
    nop();
    scl=1;

【實(shí)驗(yàn)74】密碼鎖(掉電可記憶密碼).rar

30.93 KB, 下載次數(shù): 15, 下載積分: 黑幣 -5

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:554654 發(fā)表于 2019-6-4 21:40 | 只看該作者
基于單片機(jī)的水溫控制系統(tǒng)

溫控.zip

516.96 KB, 下載次數(shù): 2, 下載積分: 黑幣 -5

水溫控制系統(tǒng)

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表