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

正文內容

大學本科-可視門禁系統的設計-資料下載頁

2024-12-07 09:22本頁面

【導讀】在現代智能建筑中裝設安全防范裝置和可視對講門禁裝置是發(fā)展的必然趨勢。信號輸入放大模塊、音頻信號輸出前置放大模塊以及鍵盤組成。采用匯編語言編寫單片機。出訪客頭像等功能。利用鍵盤作為控制信號輸入,實現房號(機號)修改、摘/掛機控制、單雙工控制、開門信號發(fā)送、監(jiān)控大門口等控制功能。

  

【正文】 學本科畢業(yè)設計 14 下面將介紹幾個本程序中重要的子程序。 鍵盤掃描程序 設計 4 4鍵盤輸入 程序 過程 ( 1) 首先判斷鍵盤有鍵閉合嗎?判別方法為列線 ~ 0,再讀 ~,若全為“ 1”,則無鍵閉合,否則有鍵閉合。 ( 2) 去除鍵抖動。方法為判別到鍵盤上有鍵閉合后,延遲大約 10ms再判別鍵盤上有無鍵閉合,若仍然有,則認為鍵盤上有一個鍵處于穩(wěn)定閉合期。 ( 3) 若有鍵閉合,對鍵盤列 線進行掃描 ,進一步判斷是哪個鍵閉合 。 1 1 1 0 掃描過程 1 1 0 1 1 0 1 1 0 1 1 1 ( 4) 為了保證鍵的一次閉合 CPU只作一次 處理,等待輸入鍵釋放后才對輸入鍵進行處理 [10]。 4 4鍵盤輸入程序 流程圖 根據 掃描 過程 分析 ,繪畫出 4 4鍵盤掃描子程序的流程圖 如圖 3- 2[10]。 N Y Y N N Y 圖 32 鍵盤掃描子程序流程圖 4 4鍵盤輸入程序 下面是鍵盤掃描輸入子程序 [10]: KEY: JNB ,TOTHEENDNOT LCALL KS1 ; 是否有鍵按下 JZ KEY ; 無鍵按下,返回 (等于零轉) LCALL D_10MS ; 10mS 延時 LCALL KS1 ; 是否有鍵按下 JZ KEY ; 無鍵按下,返回 (等于零轉) SURECHECK:SETB ;開語音輸出 KEY 延遲 10ms 消抖 有鍵閉合嗎? 有鍵閉合嗎? 判斷閉合鍵鍵號 閉合鍵釋放嗎? 輸入鍵號 → A 返回 大學本科畢業(yè)設計 15 SETB ET2 ;開定時中斷 T2,產生按鍵音信號 SETB TR2 MOV 34H, 00H ;按鍵音標志位清 0 MOV 33H, 250 MOV R2,0EFH ; 。賦首列掃描字 MOV R3,00H ; 賦首列指針 LK1: MOV P0,R2 ; 掃描字 =P1 LCALL D_250US MOV A,P0 ; 讀 P1口 JB ,LONE ; 0行無鍵按下,轉 1行(等于 1 轉) MOV A,0 ; 0行有鍵按下,賦行號 =A LJMP LKP ; 轉求鍵號 LONE: JB ,LTW0 ; 1行無鍵按下,轉 2行 MOV A,4 ; 1行有鍵 按下,賦行號 =A LJMP LKP ; 轉求鍵號 LTW0: JB ,LTHR ; 2行無鍵按下,轉 3行 MOV A,8 ; 2行有鍵按下,賦行號 =A LJMP LKP ; 轉求鍵號 LTHR: JB ,NEXT ; 3行無鍵按下,轉列加一 MOV A,12 ; 3行有鍵按下,賦行號 =A LJMP LKP ; 轉求鍵號 NEXT: INC R3 ; 列加一,指向下一列 MOV A,R2 ; 掃描字 =A RL A ; 掃描字左移 MOV R2,A ; 暫存掃描字 LJMP LK1 ; 轉下一列掃描 LKP: ADD A,R3 ; 求鍵值(當前行 +當前列) MOV DPTR,JTAB MOVC A,@A+DPTR PUSH Acc ; 鍵值 壓入堆棧 LK2: LCALL KS1 ; 是否有鍵按下 LCALL D_10MS JNZ LK2 ; A不等于 0,再判斷 POP Acc ; 鍵已經釋放, A=鍵值 RET ;返回 單片機通信程序 本電路的單片機通信不是采用串行通信,而是加上了一個輔助通信電路,比串行通信多 用了兩個 I/O口,但少用了一條通信線,適合樓宇可視門禁的布線,減少布線成本。時大學本科畢業(yè)設計 16 鐘信號和 通信編碼信號在同一條線上傳輸,這就要求在程序設計時應用單片機的外部中斷和定時中斷來作為時鐘同 步,正確地解碼,完成單片機的通信。 單片機通信編碼 單片機通信編碼種類: ① 將要發(fā)送的數據轉換成二進制數字編碼,直接通過單片機的 I/O口連續(xù)發(fā)送出去,“ 1”為高電平,“ 0”為低電平 ,如圖 33所示 ;解碼時也是直接連續(xù)判別I/O口的電平,高電平為“ 1”,低電平為“ 0”。這種方式通信程序簡單,但在線路較長,誤碼率比較高。 1 0 1 1 0 1 0 0 1 0 1 0 1 0 0 圖 33 數據二進制編碼 ② 用不同的高低電平組合來表示二進制“ 1”和“ 0”。 如圖 33所示 。 bit“ 0” bit“ 1” 圖 34 “ 0”和“ 1”的編碼 ③在發(fā)送數據編碼 時,首先發(fā)送數據代碼,再發(fā)送數碼反碼,反碼用于比較,這就減小了誤碼率,但通信速度會變慢 。 在本電路程序設計中,我們采用的是第一種編碼方式, 直接發(fā)送 16位二進制代碼, 它只是用在電路調試中, 程序 編寫 簡單 ,調試 方便, 但在實際應用中,考慮的因素很多,用第三種較好。 單片機 串行 通信 串行接口的有異步和同步兩種基本通信方式。異步通信采用用異步傳送格式,如圖 35 所示。數據發(fā)送和接收均將起始位和停止位作為開始和結束的標志。在異步通信中,起始位占用一位(低電平),用來表示字符開始。其后為 7 或 8 位的數據 編碼,第 8 位通常做為奇偶校驗位。最后為停止位(高電平)用來表示字符傳送結束。串行通信中,每秒傳送的數據位稱為波特率。如數據傳送的波特率為 1200 波特,則每秒傳送字節(jié)為 120個,而字節(jié)中每一位傳送時間即為波特率的倒數: T=1/1200=。同樣,如數據傳送的波特率為 9600 波特,則字節(jié)中每一位傳送時間為 T=1/9600= ms。根據數據傳送的波特率即字節(jié)中每一位的傳送時間,便可用普通 I/O 口來模擬實現串行通信的時序。 在本系統的單片機通信中,加入了一個通信輔助模塊,用普通的 I/O口 模擬串行通信,每個碼的時間用單片機的定時中斷來計算 完成。 起始位 7或 8位數據位 校驗位 停止位 0 0/1 0/1 0/1 0/1 0/1 0/1 0/1 0/1 1 圖 35 異步通信一幀數據格式 大學本科畢業(yè)設計 17 單片機通信流程圖 單片機的通信程序流程圖如圖 36所示 。 N N Y Y N N Y Y 圖 36 單片機通信發(fā)送和接收程序流程圖 單片機通信程序 ( 1) 接收子程序: JSH: LCALL D_250US ; 接收子程序 SETB ET0 ;開定時中斷 T0 SETB TR0 MOV R2, 08H ;接收 1個字節(jié)的數據循環(huán)字數 MOV R3, 00H ;接收寄存器清 0 CJNE R2, 0, $ ;等待接收完 8位數據 MOV 29H, R3 ;接收到的低 8位存到 29H中 MOV R2, 08H ;接收 1個字節(jié)的數據循環(huán)字數 MOV R3, 00H ;接收寄存器清 0 CJNE R2, 0, $ ;等待接收完 8位數據 MOV 2AH, R3 ;接收到的高 8位存到 2AH中 發(fā)送 通信同步信號 開定時中斷 發(fā)送 1 位數據 發(fā)送完了嗎? 定時中斷嗎? 關定時中斷 通信線電平復位 返回 外部中斷 開定時中斷 定時中斷嗎? 接收 1 位數據 接收完了嗎? 返回 大學本科畢業(yè)設計 18 CLR ET0 ;關定時中斷 T0 CLR TR0 RET ;子程序返回 ITP0: MOV TH0, 0FCH ;定時器重裝初值 MOV TL0, 62H PUSH ACC ;保護現場 MOV A, R3 MOV C, ; 接收 1 位數據 RRC A ;數據移入 A 中 MOV R3, A DEC R2 POP ACC ;恢復現場 RETI ;中斷返回 ( 2)發(fā)送子程序: FS: CLR ;拉低 ,讓接單片機進 入中斷接入數據子程序 LCALL D_250US ;延時 250us SETB ET1 ;開定時中斷 T1 SETB TR1 MOV R2, 08H ;發(fā)送 1 個字節(jié)循環(huán)次數 CLR C ;清發(fā)送位 C MOV A, R3 ;發(fā)送的數碼低 8 位存到 A 中 RRC A ;移出 A中低位發(fā)送 MOV , C ;通過 發(fā)送 MOV R3, A CJNE R2, 1, $ ;等待發(fā)送完 1個字節(jié) MOV R2, 09H ;發(fā)送 1個字節(jié)循環(huán)次數 MOV A, R4 ;發(fā)送的數碼低 8位存到 A中 MOV R3, A CJNE R2, 0, $ ;等待發(fā)送完 1個字節(jié) SETB ;發(fā)送完所有數據,通信線復位 SETB CLR ET1 ;關定時中斷 T1 CLR TR1 RET ;子程序返回 ITP1: MOV TH1, 0FCH ;定時器重裝初值 MOV TL1, 62H PUSH ACC ;保護現場 CJNE R2, 01H, REJET ;判斷是否發(fā)送完 1 個字節(jié)數據 大學本科畢業(yè)設計 19 AJMP NOTREJET ;發(fā)送完 1 個字節(jié) REJET: MOV A, R3 ;未發(fā)送完 1個字節(jié) RRC A MOV , C ;發(fā)送 1位數據 MOV R3, A NOTREJET:DEC R2 POP ACC ;恢復現場 RETI ;中斷返回 單片機 讀寫 93C46 的 程序 為了能使可視門禁斷電后能保存相應的機號,在設計時加入了存儲器 AT93C46。在程序設計時,必須了解 AT93C46器件 相應的 讀寫 時 序 信號和操作 指令,才 能 完成讀寫操作。下面介紹 AT93C46的各種時序 。 AT93C46數據傳輸 同步時序 圖 數據 傳輸同步時序圖如圖 37所示。 圖 37 數據傳輸同步時序 圖 AT93C46讀時序圖 AT93C46的讀時序圖如圖 38所示。 在接收到一個讀指令和地址 ( 從 DI引腳在時鐘驅動下輸入 ) 之前 , AT93C46的 DO引腳是高阻態(tài)的 。 接收到讀指令和地址后 , DO引腳先輸出一個虛擬的低電平 , 然后數據 在 時鐘信號 作用下 移位輸出 ( 高位在前 )。 數據在時鐘信號 ( SK)的上升沿時輸出并經過一定的時間后穩(wěn)定 ( tPD0或 tPD1)。 圖 38 AT93C46的讀 時序圖 AT93C46寫時序圖 AT93C46的寫時序圖如圖 39所示。 在接收到寫指令地址和數據以后片選引腳 ( CS) 不片選芯片的時間要必須大于 tCSMIN。 片選引腳 ( CS) 在下降沿的時候 , 器件開動自動時鐘去擦除并把數據存放到指定存儲器 。 在器件進入自動時鐘的模式后時鐘信號引腳 ( SK) 的信大學本科畢業(yè)設計 20 號不是必須的 AT93C46的準備 /繁忙 ( ready/busy) 狀態(tài)可以選擇器件并測試數據輸出引腳( DO) 得到 。 因為器件有在寫入前自動清除的特性 , 所以沒有必要在寫入之前將存儲器該地址的內容擦除 。 圖 39 AT93C46的寫 時序圖 AT93C46擦除 /寫入允許和禁止時序圖 AT93C46擦除 /寫入允許和禁止時序圖如圖 310所示。 AT93C46在上電時是默認寫禁止的 。 任何在上電和寫禁止 ( EWDS) 指令后的寫入操作都必須先發(fā)送寫允許 ( EWEN)。 指令一旦設置了寫允許 , 它會持續(xù)有效直到斷電或發(fā)送一條寫禁止指令 。 寫禁止指令用來禁止對 AT93C46的寫入和擦除操作 , 同時也可以防止意外地對器件進行寫入和擦除 。 數據可以照常從器件中讀取 , 無論是寫允許還是寫禁止狀態(tài) 。 圖 310 AT93C46擦除 /寫入允許和禁止時序圖 AT93C46的主要操作指令 如表 31所示。 表 31 AT93C46的操作指令: 指令 開始位 操作碼 地址 數據 注釋 (2)PE X8 X16 X8 X16 READ 1 10 A6A0 A5A0 讀地址 AnA0的數據 X ERASE 1 11 A6A0 A5A0 擦除 AnA0的數據 1 WRITE 1 01 A6A0 A5A0 D7D0 D15D0 把數據寫到地址AnA0的寄存器中 1 EWEN 1 00 11XXXXX 11XXXX 寫允許 X EWDS 1 00 00XXXXX 00XXXX 寫禁止 X ERAL 1 00 10XXXXX 10XXXX 擦除全部存儲器的數據 1 WRAL 1 00 01XXXXX 01XXXX D7D0 D15D0 把數據寫到全部的存儲器中 1 大學本科畢業(yè)設計 21 根據以上的時序圖和指令表,設計讀寫 AT93C46的子程序, 具體程序 如附錄 2所示 [5]。 振鈴、撥號音、按鍵音信號產生程序 可視門禁沒有按鍵顯示,因此必須加上一個按鍵音程序,當有鍵按下時,發(fā)出一個聲音,用作提示有鍵按下。本電 路有一個 MC34118語音電路,按鍵音、撥號音、振鈴音都可以通過單片機輸出相應的方波或是兩種方波疊加 來得到。本設計用定時中斷來產生方波。 可視門禁 戶內單片機的 總程序 每設計完一個 子程序, 都放在 Wave6000中編譯,通過編譯檢查程序的語法錯誤,還可以在 Wave6000中分步調試,可以查看到每一步程序運行后的結果,從結果可以了解程序設計是
點擊復制文檔內容
研究報告相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1