freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機(jī)控制的密碼鎖設(shè)計(jì)(編輯修改稿)

2024-12-22 20:01 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 動(dòng)信號(hào)與已開(kāi)鎖指示信號(hào)。 ③密碼輸入錯(cuò)誤 3 次的計(jì)時(shí),計(jì)時(shí) 15s,在則 15s 內(nèi)無(wú)法再次輸入密碼, 15 秒過(guò)后清除所有報(bào)警與指示。中斷服務(wù)程序流程圖如圖 311 所示。 圖 311 密碼鎖中斷服務(wù)程序流程圖 單片機(jī)資源的分配與變量的定義: 密碼的輸入與判斷需要定義 4 個(gè)變量。原始密碼存儲(chǔ)在數(shù)組 init_val[6]中。鍵盤(pán)輸入的密碼存儲(chǔ)在數(shù)據(jù) show_val[6]中,變量 key_index 的值表示當(dāng)前按鍵是六位密碼中的哪一位,每輸入一個(gè)密碼數(shù)字該變量增一。密碼輸入錯(cuò)誤的次數(shù)暫存在變量 error_num 中。 計(jì)時(shí)功能需要 5 個(gè)變量。模式變量 t_state 存儲(chǔ)計(jì)時(shí)屬于什么狀態(tài), 0 表示待機(jī)計(jì)時(shí), 1 表示密碼正確的計(jì)時(shí), 2 表示密碼錯(cuò)誤 3 次的計(jì)時(shí)。三個(gè)變量( t_val_15s,t_val_5s, t_val_4s)分別實(shí)現(xiàn)待機(jī)、密碼正確和密碼錯(cuò)誤 3 次后的計(jì)時(shí)工作。定時(shí)器 T1 每 250ms 產(chǎn)生一次中斷,變量 T1_t 記錄定時(shí)器溢出中斷的次數(shù),當(dāng)記錄到 4000 時(shí)表示計(jì)時(shí) 1 秒。 ( 4)設(shè)計(jì)系統(tǒng)軟件調(diào)試方案、硬件調(diào)試方案及軟硬件聯(lián)合調(diào)試方案 軟件調(diào)試方案:偉福軟件中,在“文件 \新建文件”中,新建 C 語(yǔ)言源程序文件,編寫(xiě)相應(yīng)的程序。在“文件 \新建項(xiàng)目”的菜單中,新建項(xiàng)目并將 C 語(yǔ)言源程序文件包括在項(xiàng)目文件中。 在 “項(xiàng)目 \編譯”菜單中將 C 源文件編譯,檢查語(yǔ)法錯(cuò)誤及邏輯錯(cuò)誤。在編譯成 功后,產(chǎn)生以 “ *.hex”和“ *.bin” 后綴的目標(biāo)文件。 硬件調(diào)試方案:在設(shè)計(jì)平臺(tái)中,將單片機(jī)的 分別與 8 個(gè)獨(dú)立式鍵盤(pán)通過(guò)插線(xiàn)連接起來(lái),將 分別與 4 個(gè)發(fā)光二極管連接起來(lái), 與蜂鳴器的輸入連接起來(lái)。 在偉福中將程序文件編譯成目標(biāo)文件后,將下載線(xiàn)安裝在實(shí)驗(yàn)平臺(tái)的下載線(xiàn)接口上,運(yùn)行“ MCU 下載程序”,選擇相應(yīng)的 flash 數(shù)據(jù)文件,點(diǎn)擊“編程”按鈕,將程序文件下載到單片機(jī)的 Flash 中。 然后,上電重新啟動(dòng)單片機(jī),檢查所編寫(xiě)的程序是否達(dá)到題目的要求,是否全面完整地完成試 題的內(nèi)容。 程序設(shè)計(jì) //晶振 , T1 每 250 微秒中斷,按鍵 ,發(fā)光二極管接 , /*變量的定義 : show_val[6]: 顯示的值 init_val[6]: 密碼初始值 key_val: 返回按鍵的值 255表示無(wú)按鍵按下 key_index: 當(dāng)前按鍵是哪一位密碼 T1_t: 定時(shí)器計(jì)數(shù)溢出數(shù) t_val_15s: 報(bào)警計(jì)時(shí)的數(shù)值 t_val_5s: 待機(jī)時(shí) 間計(jì)時(shí) t_val_4s: 輸入正確,等待 4 秒清除開(kāi)鎖信號(hào) t_state: 計(jì)時(shí)狀態(tài) error_num: 錯(cuò)誤次數(shù) led_seg_code:數(shù)碼管 7 段碼 */ include /* 說(shuō)明 key0=P1^0。 key1=P1^1。key2=P1^2。 key3=P1^3。key4=P1^4。key5=P1^5。enter=P1^6。esc=P1^7。*/ sbit relay_open=P3^0。 //電磁鎖開(kāi)鎖驅(qū)動(dòng) sbit pw_error=P3^1。 //密碼錯(cuò)誤信號(hào) sbit alarm_out=P3^2。 //報(bào)警輸出 sbit open_lock=P3^3。 //已開(kāi)鎖指示信號(hào) sbit audio_out=P3^4。 //有源蜂鳴器 unsigned char data t_val_15s,t_val_5s,t_val_4s,t_state。 unsigned int data T1_t。 unsigned char data key_val,key_index,key_val_old。 unsigned char data state_val,error_num。 unsigned char data show_val[6]。 char code init_val[6]={1,2,3,4,5,0}。 char code led_seg_code[11]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00}。 //led_seg_code[09] 代表 09 led_seg_code[10]=0x00 數(shù)碼管不顯示任何內(nèi)容 //延時(shí)程序 void delay(unsigned int i)//延時(shí) { while(i)。 } //清除輸入內(nèi)容 void init_variant() {unsigned char i。 for(i=0。i6。i++) show_val[i]=10。 //led_seg_code[10]=0x00 表示數(shù)碼管不顯示任何內(nèi)容 key_index=0。 //沒(méi) 有任何輸入或清除所有輸入時(shí),保存當(dāng)前鍵的位置 } //按鍵掃描 unsigned char scan_key() { unsigned char i,k。 i=P1。 if (i==0xff amp。amp。 t_state!=2) { k=255。 } //無(wú)鍵按下 else //有鍵按下 { delay(500)。 //延時(shí)去抖動(dòng) if(i!=P1) {k=255。} else { TR1=1。 //有鍵按下則開(kāi)定時(shí)器
點(diǎn)擊復(fù)制文檔內(nèi)容
試題試卷相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1