成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

數(shù)電實(shí)驗(yàn):密碼保險(xiǎn)箱

trigkit4 / 3921人閱讀

摘要:設(shè)計(jì)理念通過撥動(dòng)開關(guān)輸入由四位二進(jìn)制表示的密碼,然后按鍵確認(rèn)輸入并校驗(yàn)。如果校驗(yàn)失敗,則數(shù)碼不亮,全亮,啟動(dòng)報(bào)警,直到輸入正確密碼并再次確認(rèn)校驗(yàn)成功后,滅,數(shù)碼顯示提示開鎖。

1.設(shè)計(jì)理念

通過撥動(dòng)開關(guān)輸入由四位二進(jìn)制表示的密碼,然后按鍵確認(rèn)輸入并校驗(yàn)。
如果校驗(yàn)通過,則led不亮,數(shù)碼led顯示0提示開鎖。
如果校驗(yàn)失敗,則數(shù)碼led不亮,led全亮,啟動(dòng)報(bào)警,直到輸入正確密碼并再次確認(rèn)校驗(yàn)成功后,led滅,數(shù)碼led顯示0提示開鎖。

安全性:

  • 開鎖成功或失敗提示明顯;
  • 密碼組合一共16種供選擇。但一旦輸入錯(cuò)誤便進(jìn)入報(bào)警模式;
  • 需要確認(rèn)輸入,避免意外誤觸;

視頻見附件。

2.代碼
(1) my_codelock.v

module my_codelock(seg_led,										//數(shù)碼							led_state,key_confirm,sw_input,		//led,開關(guān),按鍵							clk,rst										//消抖需要的輸入							);	input key_confirm;												//按鍵=確認(rèn)	input [3:0] sw_input;											//撥動(dòng)開關(guān)=輸入密碼	output [7:0] led_state;	reg [7:0] led_state;												//led表示狀態(tài)	reg [8:0] seg_led;	output [8:0] seg_led;											//數(shù)碼管提示正確打開				input clk,rst;			always@(*)begin	seg_led=9"h00;	if (key_confirm==0)begin										//當(dāng)按下確認(rèn)開始校對(duì)	if (sw_input==4"b0101) begin		led_state=8"b1111_1111;										//如果密碼正確,那就不亮led亮數(shù)碼板		seg_led=9"h3f;												end		else begin		led_state=8"b0000_0000;		end	end	end	 debounce  u1 (                                                      .clk (clk),                       .rst (rst),                       .key (key_confirm),                       .key_pulse ()                       );	endmodule

(1) debounce.v

module debounce (clk,rst,key,key_pulse);         parameter       N  =  1;                      //要消除的按鍵的數(shù)量 	input             clk;        input             rst;        input 	[N-1:0]   key;                        //輸入的按鍵						output  [N-1:0]   key_pulse;                  //按鍵動(dòng)作產(chǎn)生的脈沖	         reg     [N-1:0]   key_rst_pre;                //定義一個(gè)寄存器型變量存儲(chǔ)上一個(gè)觸發(fā)時(shí)的按鍵值        reg     [N-1:0]   key_rst;                    //定義一個(gè)寄存器變量?jī)?chǔ)存儲(chǔ)當(dāng)前時(shí)刻觸發(fā)的按鍵值         wire    [N-1:0]   key_edge;                   //檢測(cè)到按鍵由高到低變化是產(chǎn)生一個(gè)高脈沖         //利用非阻塞賦值特點(diǎn),將兩個(gè)時(shí)鐘觸發(fā)時(shí)按鍵狀態(tài)存儲(chǔ)在兩個(gè)寄存器變量中        always @(posedge clk  or  negedge rst)          begin             if (!rst) begin                 key_rst <= {N{1"b1}};                //初始化時(shí)給key_rst賦值全為1,{}中表示N個(gè)1                 key_rst_pre <= {N{1"b1}};             end             else begin                 key_rst <= key;                     //第一個(gè)時(shí)鐘上升沿觸發(fā)之后key的值賦給key_rst,同時(shí)key_rst的值賦給key_rst_pre                 key_rst_pre <= key_rst;             //非阻塞賦值。相當(dāng)于經(jīng)過兩個(gè)時(shí)鐘觸發(fā),key_rst存儲(chǔ)的是當(dāng)前時(shí)刻key的值,key_rst_pre存儲(chǔ)的是前一個(gè)時(shí)鐘的key的值             end               end         assign  key_edge = key_rst_pre & (~key_rst);//脈沖邊沿檢測(cè)。當(dāng)key檢測(cè)到下降沿時(shí),key_edge產(chǎn)生一個(gè)時(shí)鐘周期的高電平         reg	[17:0]	  cnt;                       //產(chǎn)生延時(shí)所用的計(jì)數(shù)器,系統(tǒng)時(shí)鐘12MHz,要延時(shí)20ms左右時(shí)間,至少需要18位計(jì)數(shù)器              //產(chǎn)生20ms延時(shí),當(dāng)檢測(cè)到key_edge有效是計(jì)數(shù)器清零開始計(jì)數(shù)        always @(posedge clk or negedge rst)           begin             if(!rst)                cnt <= 18"h0;             else if(key_edge)                cnt <= 18"h0;             else                cnt <= cnt + 1"h1;             end           reg     [N-1:0]   key_sec_pre;                //延時(shí)后檢測(cè)電平寄存器變量        reg     [N-1:0]   key_sec;                              //延時(shí)后檢測(cè)key,如果按鍵狀態(tài)變低產(chǎn)生一個(gè)時(shí)鐘的高脈沖。如果按鍵狀態(tài)是高的話說明按鍵無效        always @(posedge clk  or  negedge rst)          begin             if (!rst)                  key_sec <= {N{1"b1}};                             else if (cnt==18"h3ffff)                 key_sec <= key;            end       always @(posedge clk  or  negedge rst)          begin             if (!rst)                 key_sec_pre <= {N{1"b1}};             else                                    key_sec_pre <= key_sec;                      end             assign  key_pulse = key_sec_pre & (~key_sec);      endmodule

3.RTL電路

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/121775.html

相關(guān)文章

  • 區(qū)塊鏈從根本上重新塑造人與人之間,人與物質(zhì)世界之間的關(guān)系

    摘要:區(qū)塊鏈?zhǔn)擒浖_源運(yùn)動(dòng)所結(jié)出的果子。原因是區(qū)塊鏈創(chuàng)造的信任是基于代碼產(chǎn)生的。 上一講中,我們深入探討了區(qū)塊鏈對(duì)一些基本問題的答案,包括對(duì)時(shí)間的答案、對(duì)空間的答案以及對(duì)能量的答案。在這一篇文章中,我們將從區(qū)塊鏈作為基本工具的工具論方面切入。這個(gè)方面包括了它是怎樣看待這個(gè)世界的:它使用了哪些工具,以及它使用了哪些方法?構(gòu)造了哪些全新的博弈環(huán)境并形成了哪些新的博弈均衡態(tài)?這些方法也許和人們過去...

    Shisui 評(píng)論0 收藏0
  • 區(qū)塊鏈正在重塑法律(上)

    摘要:秘猿科技法務(wù)總監(jiān)錢靖受邀參加北京大學(xué)數(shù)字金融研究中心舉辦的數(shù)字金融第十講,作為主講嘉賓就區(qū)塊鏈正在重塑法律做了主題演講。而區(qū)塊鏈在很大程度上可以幫助解決這些問題。第三個(gè)方面涉及到區(qū)塊鏈對(duì)每個(gè)部門法的影響。 showImg(https://segmentfault.com/img/bVboMSK?w=1280&h=543); 秘猿科技法務(wù)總監(jiān)錢靖受邀參加北京大學(xué)數(shù)字金融研究中心舉辦的數(shù)字...

    wendux 評(píng)論0 收藏0
  • 數(shù)據(jù)可用不可見!揭秘螞蟻區(qū)塊鏈摩斯安全計(jì)算平臺(tái)

    摘要:安全透明輕量的螞蟻區(qū)塊鏈摩斯安全計(jì)算基礎(chǔ)設(shè)施螞蟻摩斯依托螞蟻金融科技平臺(tái),結(jié)合區(qū)塊鏈技術(shù),將復(fù)雜的隱私保護(hù)與密碼學(xué)算法透明化產(chǎn)品化,提供安全發(fā)布安全模型安全統(tǒng)計(jì)安全查詢安全腳本等核心功能。 摘要:?螞蟻區(qū)塊鏈摩斯安全計(jì)算平臺(tái)針對(duì)數(shù)據(jù)安全信任、個(gè)人隱私保護(hù)以及數(shù)據(jù)基礎(chǔ)設(shè)施不足等痛點(diǎn),秉持?jǐn)?shù)據(jù)可用不可見和將計(jì)算移動(dòng)到數(shù)據(jù)端的原則,借助區(qū)塊鏈、密碼學(xué)、隱私保護(hù)、安全多方計(jì)算、可信計(jì)算等前沿...

    zhisheng 評(píng)論0 收藏0
  • 9塊錢部署一個(gè)小程序

    摘要:第二步微信開發(fā)工具你可以下微信的,了解小程序的前端和后端的開發(fā)結(jié)構(gòu)。第三步微信的后臺(tái)處理購買主機(jī)建站會(huì)獲得一個(gè)可用的無備案的域名。 小程序制作和部署從本質(zhì)上是和其他的網(wǎng)站是一樣的,需要域名、服務(wù)器空間和數(shù)據(jù)庫。域名就是你們家的地址,服務(wù)器空間就是你們家房子,數(shù)據(jù)庫就是你們家的保險(xiǎn)柜。 但是小程序和網(wǎng)站又有不同,小程序的前端部分是需要通過微信開發(fā)工具上傳到微信的服務(wù)器上,就是說你們家的...

    wuyangchun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<