當前位置:首頁 » 編程語言 » c語言開鎖

c語言開鎖

發布時間: 2022-03-15 17:11:19

c語言queue如何加鎖和解鎖

有兩種辦法:

  1. 重載一個queue模板,把鎖封裝到重載的函數里

  2. 每次使用queue的函數的時候加鎖,使用完畢後,解鎖

② 求C語言或C++的電子密碼鎖程序

.課題一:電子密碼鎖(難度:★★★)

求:
①設計並製作一個電子密碼鎖,要求具有六位數碼管顯示、4*4鍵盤、電子鎖(可用繼電器驅動)、聲光報警電路等。
②4*4鍵盤的16個按鍵功能分別為「0」—「9」、開始、確定、取消、修改密碼、手動報警、自定義功能,要求每個按鍵被按下時都會發出按鍵提示聲音。
③用戶使用密碼鎖要先按下「開始」鍵,數碼管顯示「------」,然後再輸入六位密碼,輸入的密碼用「*」表示,最後按下「確定」輸入密碼(密碼正確時數碼管顯示「open」,綠燈閃爍三次;密碼錯誤時數碼管顯示「error」,
紅燈閃爍三次)或按下「取消」取消操作(數碼管顯示「------」
)。
④開鎖密碼輸入連續3次出現錯誤,則電子鎖進入報警狀態,並發出連續的聲光報警,直至系統復位為止。
⑤密碼鎖的初始密碼為「000000」,管理員可以對密碼鎖的密碼進行設定或修改,但修改舊密碼前必須正確輸入新密碼,然後再連續兩次輸入新密碼,如果兩次輸入的新密碼不一致則修改失敗,紅燈閃爍三次。如果修改成功,則綠燈閃爍三次。
⑥電路可以使用各種驅動方法控制電子鎖的開和關。
注意:(1)必須使用真實的電子鎖,電子鎖尺寸規格不限,自行購買;
(2)顯示器件也可以使用1602液晶顯示器。

③ c級鎖開鎖公司能開嗎

c級鎖開鎖公司能開,因為鎖匠具備破解程序以及破解工具。

C級鎖芯,防止技術開啟≥10分鍾,防鑽≥30分鍾,防鋸≥30分鍾,防撬≥30分鍾,防拉≥30分鍾,防沖擊≥30分鍾。

鎖芯採用了多種異形彈珠多重組合,最多可編制數十億種鑰匙號碼,從而實現區域零互開(一千六百萬分之一)。


找人開鎖應注意以下這三件事:

1、查公司備案。

要找到一個正規可靠的開鎖公司。正規的開鎖公司,一般都必須有特種行業的營業執照,還必須在公安局備案。

當然,實際生活當中,很少會有人需要開鎖的時候,還得檢查一下開鎖公司的執照和備案情況。那麼,你最好去你的小區,或者附近找一個有門頭的,有實體店的開鎖師傅,多少能可靠一點。

2、談好價格。

找到了開鎖師傅之後,便是要談價格了。這里一定要注意,在你找開鎖師傅的時候,一定要跟他們說明白了,你家的鎖是哪種鎖,是防盜門的?還是普通的?鑰匙是十字的,還是一字的,或者是其他樣子的。因為不同的鎖開鎖難度是不一樣的,價格自然也不一樣。免得人家去了你那跟你漫天要價。

3、保證打開鎖。

接下來這一步非常重要,談好了價格之後,一定要跟開鎖的師傅講清楚,這個價格,你是必須要給我打開的,如果不保證能打不開,那我就另請高明。為什麼要說這個呢?因為鎖被捅咕了很多次之後,就算你有原來的鑰匙,也不一定再能打開了,這個鎖芯可能已經被他捅壞了。

④ 用c語言實現類似手機圖案解鎖的演算法

可以試下雙清手機,不過手機的個人設置的數據會給清除。進入Recovery模式(恢復模式)。一般安卓手機關機後,長按住音量「-」加電源鍵,同時按住3秒,即可進入 Recovery模式,進入Recovery模式後,執行「Wipe data/factory reset」和「Wipe cache partiton」,將之前系統一些配置、緩存清除。在此界面是通過音量鍵進行上下移動,電源鍵為確定。選擇「Reboot System Now」重啟手機。

⑤ 關於51單片機C語言 數碼管 4*4按鍵 簡單的密碼鎖 請您幫助一下

密碼鎖(掉電保護功能)
功能鍵
S6---S15 數字鍵0-9
S16---更改密碼 S17---更改密碼完畢後確認
S18---重試密碼、重新設定 S19---關閉密碼鎖
初始密碼:000000 密碼位數:6位
注意:掉電後,所設密碼會丟失,重新上點時,密碼恢復為原始的000000
與P1相連的8位發光LED點亮代表鎖被打開;熄滅代表鎖被鎖上

程序功能: 本程序結合了24C02存儲器的存儲功能,可以掉電保存密碼。
第一次運行時,若輸入000000原始密碼後無反應,可以試驗著將主程序中前面的
一小段被注釋線屏蔽的程序前的注釋線刪掉,然後重新編譯下載(可以將密碼還原為000000)。
此後,再將這小段程序屏蔽掉,再編譯下載。方可正常使用。
1、開鎖:
下載程序後,直接按六次S7(即代表數字1),8位LED亮,鎖被打開,輸入密碼時,
六位數碼管依次顯示小橫杠。
2、更改密碼:
只有當開鎖(LED亮)後,該功能方可使用。
首先按下更改密碼鍵S16,然後設置相應密碼,此時六位數碼管會顯示設置密碼對應
的數字。最後設置完六位後,按下S17確認密碼更改,此後新密碼即生效。
3、重試密碼:
當輸入密碼時,密碼輸錯後按下鍵S18,可重新輸入六位密碼。
當設置密碼時,設置中途想更改密碼,也可按下此鍵重新設置。
4、關閉密碼鎖:
按下S19即可將打開的密碼鎖關閉。
推薦初級演示步驟:輸入原始密碼000000---按下更改密碼按鍵S16---按0到9設置密碼---按S17
確認密碼更改---按S18關閉密碼鎖---輸入新的密碼打開密碼鎖
*******************************************************************************/
#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; //送入數碼管顯示的變數
uchar wei,key,temp;

bit allow,genggai,ok,wanbi,retry,close; //各個狀態位

sbit la=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存儲器驅動程序************************************/

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

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

void start() //啟動I2C匯流排
{
sda=1;
nop();
scl=1;
nop();
sda=0;
nop();
scl=0;
nop();
}

void stop() //停止I2C匯流排
{
sda=0;
nop();
scl=1;
nop();
sda=1;
nop();
}

void writebyte(unsigned char j) //寫一個位元組
{
unsigned char i,temp;
temp=j;
for (i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
nop();
sda=CY; //temp左移時,移出的值放入了CY中
nop();
scl=1; //待sda線上的數據穩定後,將scl拉高
nop();
}
scl=0;
nop();
sda=1;
nop();
}

unsigned char readbyte() //讀一個位元組
{
unsigned char i,j,k=0;
scl=0; nop(); sda=1;
for (i=0;i<8;i++)
{
nop(); scl=1; nop();
if(sda==1)
j=1;
else
j=0;
k=(k<<1)|j;
scl=0;
}
nop();
return(k);
}

void clock() //I2C匯流排時鍾
{
unsigned char i=0;
scl=1;
nop();
while((sda==1)&&(i<255))
i++;
scl=0;
nop();
}

////////從24c02的地址address中讀取一個位元組數據/////
unsigned char read24c02(unsigned char address)
{
unsigned char i;
start();
writebyte(0xa0);
clock();
writebyte(address);
clock();
start();
writebyte(0xa1);
clock();
i=readbyte();
stop();
delay1(100);
return(i);
}

//////向24c02的address地址中寫入一位元組數據info/////
void write24c02(unsigned char address,unsigned char info)
{
start();
writebyte(0xa0);
clock();
writebyte(address);
clock();
writebyte(info);
clock();
stop();
delay1(5000); //這個延時一定要足夠長,否則會出錯。因為24c02在從sda上取得數據後,還需要一定時間的燒錄過程。
}
/****************************密碼鎖程序模塊********************************************************/

void delay(unsigned char i)
{
uchar j,k;
for(j=i;j>0;j--)
for(k=125;k>0;k--);
}

void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)
{
la=0;
P0=table[a];
la=1;
la=0;

wela=0;
P0=0xfe;
wela=1;
wela=0;
delay(5);

P0=table[b];
la=1;
la=0;

P0=0xfd;
wela=1;
wela=0;
delay(5);

P0=table[c];
la=1;
la=0;

P0=0xfb;
wela=1;
wela=0;
delay(5);

P0=table[d];
la=1;
la=0;

P0=0xf7;
wela=1;
wela=0;
delay(5);

P0=table[e];
la=1;
la=0;

P0=0xef;
wela=1;
wela=0;
delay(5);

P0=table[f];
la=1;
la=0;

P0=0xdf;
wela=1;
wela=0;
delay(5);
}

void keyscan()
{
{
P3=0xfe;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xee:
key=0;
wei++;
break;

case 0xde:
key=1;
wei++;
break;

case 0xbe:
key=2;
wei++;
break;

case 0x7e:
key=3;
wei++;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
}
}
P3=0xfd;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xed:
key=4;
wei++;
break;

case 0xdd:
key=5;
wei++;
break;

case 0xbd:
key=6;
wei++;
break;

case 0x7d:
key=7;
wei++;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
}
}
P3=0xfb;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xeb:
key=8;
wei++;
break;

case 0xdb:
key=9;
wei++;
break;

case 0xbb:
genggai=1;
wei=0;
break;

case 0x7b:
if(allow)
ok=1;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
}
}
P3=0xf7;
temp=P3;
temp=temp&0xf0;
if(temp!=0xf0)
{
delay(10);
if(temp!=0xf0)
{
temp=P3;
switch(temp)
{
case 0xe7:
retry=1;
break;

case 0xd7:
close=1;
break;
}
while(temp!=0xf0)
{
temp=P3;
temp=temp&0xf0;
beep=0;
}
beep=1;
}
}
}
}

void shumima() //對按鍵採集來的數據進行分配
{
if(!wanbi)
{
switch(wei)
{
case 1:new1=key;
if(!allow) a=17;
else a=key; break;
case 2:new2=key;
if(a==17) b=17;
else b=key; break;
case 3:new3=key;
if(a==17) c=17;
else c=key; break;
case 4:new4=key;
if(a==17) d=17;
else d=key; break;
case 5:new5=key;
if(a==17) e=17;
else e=key; break;
case 6:new6=key;
if(a==17) f=17;
else f=key;
wanbi=1; break;
}
}
}

void yanzheng() //驗證密碼是否正確
{
if(wanbi) //只有當六位密碼均輸入完畢後方進行驗證
{
if((new1==old1)&(new2==old2)&(new3==old3)&(new4==old4)&(new5==old5)&(new6==old6))
allow=1; //當輸入的密碼正確,會得到allowe置一
}
}

void main()
{

init(); //初始化24C02
/*********下面的一小段程序的功能為格式化密碼存儲區。************
******當24c02中這些存儲區由於其他程序的運行而導致***************
*******所存數據發生了變化,或者密碼遺忘時, ********************
******可以刪掉其前面的注釋線,然後重新編譯下載。****************
******而將密碼還原為000000後,請將下面的程序用******************
******注釋屏蔽掉,重新編譯、下載,方可正常使用****************/
// write24c02(110,0x00);
// write24c02(111,0x00);//24c02的第110到115地址單元作為密碼存儲區
// write24c02(112,0x00);
// write24c02(113,0x00);
// write24c02(114,0x00);
// write24c02(115,0x00);
/*******************************************************************/

old1=read24c02(110);
old2=read24c02(111);
old3=read24c02(112);
old4=read24c02(113);
old5=read24c02(114);
old6=read24c02(115);

while(1)
{
keyscan();
shumima();
yanzheng();
if(allow) //驗證完後,若allow為1,則開鎖
{
P1=0x00;
if(!genggai)
wanbi=0;
}
if(genggai) //當S16更改密碼鍵被按下,genggai會被置一
{
if(allow) //若已經把鎖打開,才有更改密碼的許可權
{
while(!wanbi) //當新的六位密碼沒有設定完,則一直在這里循環
{
keyscan();
shumima();
if(retry|close) //而當探測到重試鍵S18或者關閉密碼鎖鍵S19被按下時,則跳出
{ wanbi=1;
break;
}
display(a,b,c,d,e,f);
}
}
}
if(ok) //更改密碼時,當所有六位新密碼均被按下時,可以按下此鍵,結束密碼更改
{ //其他時間按下此鍵無效
ok=0; wei=0;
genggai=0;
old1=new1;old2=new2;old3=new3; //此時,舊的密碼將被代替
old4=new4;old5=new5;old6=new6;
//新密碼寫入存儲區。
write24c02(110,old1);
write24c02(111,old2);
write24c02(112,old3);
write24c02(113,old4);
write24c02(114,old5);
write24c02(115,old6);
a=16;b=16;c=16;d=16;e=16;f=16;
}
if(retry) //當重試按鍵S18被按下,retry會被置位
{
retry=0; wei=0;wanbi=0;
a=16;b=16;c=16;d=16;e=16;f=16;
new1=0;new2=0;new3=0;new4=0;new5=0;new6=0;
}
if(close) //當關閉密碼鎖按鍵被按下,close會被置位
{
close=0;genggai=0;//所有變數均被清零。
wei=0; wanbi=0;
allow=0;
P1=0xff;
a=16;b=16;c=16;d=16;e=16;f=16;
new1=0;new2=0;new3=0;new4=0;new5=0;new6=0;
}
display(a,b,c,d,e,f); //實時顯示
}
}

⑥ 用什麼開鎖工具可開啟b級鎖和c級鎖

  1. 通過強扭工具,1分鍾內可以開啟b級鎖鎖芯。C級鎖芯的開鎖要由專業人士240分鍾以上才能打開。

  2. 目前,國內鎖芯市場上,包括A、B、C級鎖三種級別的鎖。其實看鑰匙就可以看出這三種鎖的區別。

  3. A級鎖:目前市面上A級防盜鎖鑰匙主要有一字鑰匙和十字鑰匙。A級鎖芯內部結構非常簡單,僅限於彈子的變化,彈子槽少而淺。防技術性開啟時間1分鍾內,互開率極高。彈子結構為單排彈子或十字鎖。A級鎖芯的開鎖時間:專業人士30秒內即可打開。無法升級。經過大量的調查得出結論,90%的小偷在一分鍾內未能將鎖開啟就會主動放棄,而小偷開A級鎖一般十幾秒就可打開,所以說,A級鎖安全系數較低。

  4. B級鎖:B級鎖鑰匙為平板鑰匙,有雙排彈子槽,跟A級鎖不同的地方在於鑰匙面多了一排彎彎曲曲不規則的線條。鎖芯主要類型為3種,電腦雙排鎖芯、雙排月牙鎖芯、雙面葉片鎖芯。防技術性開啟時間5分鍾內,互開率高。通過強扭工具,1分鍾內可以開啟鎖芯。B級鎖芯的開鎖時間:B級鎖芯專業人士5分鍾以上,120分鍾以下打開。

  5. C級鎖:目前市場上比較安全的是C級鎖芯,採用雙排、電腦、復合曲線槽專利鑰匙,270分鍾無法技術開啟。其中,C級鎖芯金融行業使用較多,民用較少。C級鎖芯的開鎖時間:專業人士240分鍾以上才能打開。

  6. 三種級別的開鎖時間各不相同,時間越長的,安全系數越高,被盜的可能性越低。

  7. 其實家裡防盜不能只靠防盜門,電視機前的您在家的時候還是要注意一些生活中的防盜細節,比如您一個人在家最好反鎖防盜門,晚上睡覺的時候關緊門窗,這樣家裡發生盜竊的概率也小一些。在購買防盜鎖的時候最好選擇品牌鎖具,因為有些雜牌的鎖具在製作時偷工減料,裡面的彈子不齊全,防盜性能也不是很好。

⑦ c語言根據條件解鎖3位密碼鎖

根據你的代碼修改,正確的邏輯如下:
#include<stdio.h>

int check1(int i,int j,int k)
{
if(i==2&&j!=4&&k!=6) return 1;
if(i!=2&&j==4&&k!=6) return 1;
if(i!=2&&j!=4&&k==6) return 1;
return 0;
}

int check2(int i,int j,int k)
{
if((i==5||i==8)&&j!=2&&j!=5&&j!=8&&k!=2&&k!=5&&k!=8) return 1;
if((j==2||j==8)&&i!=2&&i!=5&&i!=8&&k!=2&&k!=5&&k!=8) return 1;
if((k==2||k==5)&&i!=2&&i!=5&&i!=8&&j!=2&&j!=5&&j!=8) return 1;
return 0;
}

int check3(int i,int j,int k)
{
if(i==9&&(j==6||j==2)&&k!=6&&k!=9&&k!=2) return 1;
if(i==2&&j==6&&k!=6&&k!=9&&k!=2) return 1;
if(k==6&&(i==9||i==2)&&j!=6&&j!=9&&j!=2) return 1;
if(k==9&&i==2&&j!=6&&j!=9&&j!=2) return 1;
return 0;
}

int check4(int i,int j,int k)
{
if(i!=1&&i!=7&&i!=4&&j!=1&&j!=7&&j!=4&&k!=1&&k!=7&&k!=4)
{
return 1;
}
return 0;
}

int check5(int i,int j,int k)
{
if((i==1||i==9)&&j!=4&&j!=1&&j!=9&&k!=4&&k!=1&&k!=9) return 1;
if((j==4||j==9)&&i!=4&&i!=1&&i!=9&&k!=4&&k!=1&&k!=9) return 1;
if((k==4||k==1)&&i!=4&&i!=1&&i!=9&&j!=4&&j!=1&&j!=9) return 1;
return 0;
}

int main()
{
int i,j,k;
for(i=0;i<10;i++)
for(j=0;j<10;j++)
for(k=0;k<10;k++)
{
if(check1(i,j,k))
{
if(check2(i,j,k))
{
if(check3(i,j,k))
{
if(check4(i,j,k))
{
if(check5(i,j,k))
{
printf("%d%d%d\n",i,j,k);
}
}
}
}
}
}
}

⑧ 數字密碼鎖C語言編程

近年來,隨著生活水平的不斷改善,個人財富日益增長,人們對安全防盜的要求也逐漸提高。安全可靠、使用方便的電子密碼鎖成了人們防盜的首選。以Max +PlusⅡ(Multiple Array Matrix and ProgrammingLogic User SystemⅡ,多陣列矩陣及可編程邏輯用戶系統Ⅱ)為工作平台,使用PLD可編程器件和VHDL語言設計的帶音樂的電子密碼鎖具有密碼預置,誤碼鎖死及開鎖音樂提示等功能。這種設計不僅簡化了系統結構,降低了成本,更提高了系統的可靠和保密性。採用PLD可編程邏輯器件開發的數字系統,可以方便地升級和改進。

1 設計思路
密碼鎖電路由鍵盤控制、密碼設置和音樂演奏三大功能模塊組成,原理如圖1所示。Count,Keyvalue,Contrl,Smdisplay構成鍵盤控制模塊,Songer是音樂演奏模塊,Set是密碼設置模塊。

1.1 鍵盤控制
鍵盤主要完成向系統輸入數據,傳送命令等功能。它是一個機械彈性按鍵開關的集合,利用機械觸點的合、斷作用產生高、低電平。通過對電平高低狀態的檢測,以確認按鍵按下與否。一個電壓信號通過機械觸點的斷開、閉合過程的波形如圖2所示。

在該鍵盤電路中,Count模塊提供鍵盤的行掃描信號Q[3..0]。在沒有按鍵按下時,信號EN為高電平,行掃描輸出信號Q[3..0]的循環變化順序為0001 OO100100 1000 0001(依次掃描4行按鍵);當有按鍵按下時,信號EN為低電平,行掃描輸出信號Q[3..0]停止掃描,並鎖存當前的行掃描值。例如按下第一行的按鍵,那麼Q[3..O]=0001。
Keyvalue模塊的主要功能是對輸入按鍵的行信號Q[3..0]和列信號14[3..0]的當前組合值進行判斷來確定輸入按鍵的鍵值。
Contrl模塊的主要功能是實現按鍵的消抖,判斷是否有按鍵按下。確保對按鍵的提取處於圖2所示的閉合穩定時間范圍內,這就對本模塊的輸入時鍾信號有一定的要求,在本設計中該模塊輸入的時鍾信號頻率為64 Hz。Smdisplay模塊主要是完成數碼管動態掃描和七段解碼顯示的功能。
1.2 音樂演奏電路Songer
根據聲樂學知識,組成樂曲的每個音符的發音頻率值及其持續的時間是樂曲能連續演奏所需的兩個基本要素。獲得這兩個要素所對應的數值以及通過純硬體的手段來利用這些數值實現所希望樂曲的演奏效果是關鍵。如圖3所示,該電路需要由NOTETABS(音調發生器)、TONETABA、SPEAKER(數控分頻器)三個模塊組成,分別實現了聲音產生、節拍控制、音調控制的功能。

1.3 密碼設置
Set模塊是實現密碼鎖功能的核心模塊。其主要作用是設置密碼,Set為設置密碼的有效信號,可以實現修改密碼的功能。En為輸入密碼確認信號,當輸入完六位密碼後確認輸入,一旦輸入的密碼跟所設置的密碼一致時,則輸出信號OP有效(高電平);OP控制演奏音樂,此時音樂響起。若密碼不正確,則指示輸入錯誤及輸入次數,輸完三次無效後密碼鎖鎖死,必須由RESET信號(啟動信號,給一個低電平)重新打開密碼鎖功能。

2 電路的VHDL描述
鍵盤控制電路,音樂演奏電路以及密碼設置模塊均使用硬體描述語言VHSIC Hardware Description Lan-guage(VHDL)設計而成。例如:TONETABA的VHDL模型如下:

VHDL語言具有很強的電路描述和建模能力,能從多個層次對數字系統進行建模和描述,支持各種模式的設計方法:自頂向下與自底向上或混合方法,從而大大簡化了硬體的設計任務,提高了設計效率和可靠性。它同時具有與具體硬體電路無關和與設計平台無關的特性,所以用VHDL進行電子系統設計,設計者可以專心致力於其功能的實現,而不需要對其他相關因素花費過多的時間和精力。
設計步驟
3.1 設計輸入
首先在合適的路徑下建立本設計的文件夾,然後用VHDL語言編輯Count,Keyvalue,Contrl,Smdisplay等電路,並在Max+PlusⅡ軟體中使用文本編輯器輸入上述各電路模塊的VHDL程序,編譯生成各模塊;最後在Max+PlusⅡ軟體中使用圖形編輯器以自底向上的方法編輯原理圖。先編輯圖3電路,以Singer.gdf命名,其次使用「Create default Symbol」生成Songer模塊,然後再編輯如圖1所示原理電路圖。
3.2 模擬測試及編程下載配置
將設計好的項目存檔,並將其設置成Project。選擇目標器件為ACEX系列中的EP1K30QC208-2,啟動編譯,如果發現編譯出現錯誤,修正後再次編譯。編譯後即可對波形文件進行模擬,並進行測試和波形分析。分析完成後進行編程下載配置。
3.3 硬體測試
在高電平時,通過鍵盤的0~F號鍵進行6位密碼輸入,密碼輸入完畢後通過單擊確認鍵進行密碼設置確認。當輸入的密碼與設置的密碼一致時,揚聲器開始循環演奏樂曲,且數碼管SM8顯示輸入密碼的次數,數碼管SM7顯示密碼輸入是否正確。如果密碼正確,則SM7顯示『0』;如果密碼錯誤,則SM7顯示『E』。數碼管SM6~SM1顯示輸入的6位密碼。在密碼輸入正確開始演奏樂曲時,如果將撥位開關KD4撥向上,則數碼管SM8顯示樂曲的音符,而此時若將撥位開關KD3撥向上則停止演奏樂曲。發光二極體LED1~LED4顯示輸入按鍵的鍵值,LED16監控是否有按鍵按下。

4 結 語
使用Max+PlusⅡ軟體和VHDL語言設計電路,思路簡單,功能明了;不僅可以進行邏輯模擬,還可以進行時序模擬;使用PLD器件不僅省去了電路製作的麻煩,還可以反復多次進行硬體實驗,非常方便地修改設計,且設計的電路保密性很強。總之,採用Max+PlusⅡ軟體和VHDL語言使得復雜的電子系統的設計變得簡單容易,大大提高了設計效率。

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

⑨ 跪求一個C語言的程序!!!!關於密碼鎖的

建議到專業網站去咨詢一下吧,這里關注的較少。

⑩ C語言編寫一個密碼鎖程序,急求

你好!圖片太小,是什麼型號的單片機?程序什麼時間要?

下面是一個模擬,可以根據你的要求做修改!

熱點內容
掛機伺服器的搭建 發布:2025-01-16 12:34:07 瀏覽:414
安卓怎麼刪除信任憑證 發布:2025-01-16 12:22:06 瀏覽:335
代理編譯 發布:2025-01-16 12:07:59 瀏覽:793
伺服器為什麼老是無響應 發布:2025-01-16 12:07:59 瀏覽:891
安卓怎麼傳軟體到蘋果 發布:2025-01-16 12:01:28 瀏覽:952
pythonforzip 發布:2025-01-16 11:59:46 瀏覽:909
磁感密碼鎖有多少鑰匙 發布:2025-01-16 11:41:12 瀏覽:117
酷睿電腦配置怎麼查看 發布:2025-01-16 11:27:26 瀏覽:563
怎麼看安卓手機應用程序 發布:2025-01-16 11:19:36 瀏覽:109
ftp密碼為空怎麼處理 發布:2025-01-16 11:19:34 瀏覽:803