新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于單片機的簡易紅外遙控密碼鎖設計與實現

        基于單片機的簡易紅外遙控密碼鎖設計與實現

        作者: 時間:2012-12-10 來源:網絡 收藏

        2 系統軟件

        軟件部分的匯編語言,采用模塊化思想,以主程序為核心設置了多個功能模塊子程序。主程序主要起到一個導向和決策功能,決定什么時候系統該做什么,系統的各種功能主要是通過調用具體的子程序來

        2.1 發射模塊程序的設計

        發射模塊的編碼與調制工作是由軟件編程的。當按鍵K按下時,密碼信號依次送往數據緩沖器SBUF,然后利用“0”電平調制、“1”電平不調制的方法,將二進制信號調制成頻率為38.5 kHz的間斷脈沖串信號,通過P3.O口輸出,驅動發光二極管,最后以波長940 nm的光發出紅外信號。紅外發射模塊程序流程圖如圖6所示。

        38.5 kHz已調波的實現是依據匯編語言具有嚴格的指令周期來實現的,低電平與高電平均持續13個機器周期,這里采用的時鐘晶振是12 MHz,所以產生的調制波的精確頻率為38.46 kHz。

        2.2 本機接收處理模塊程序的設計

        本機處理部分可以實現密碼設置和修改、本機按鍵*、按鍵提示、密碼錯誤報警、超次提示、*和按鍵之間超過3 s自動復位等所有的功能。本機處理的主程序流程圖如圖7所示。

        2.2.1 密碼設置子程序的設計

        系統只有內部上電復位的時候才能設置或者修改密碼。當系統復位時,即進入了等待用戶按鍵設置新密碼狀態,用戶輸入的8位密碼依次保存在RAM存儲單元的41H~48H單元。當8位密碼設置完成后,蜂鳴器鳴響1 s提示密碼已成功設置。當按鍵*時,輸入的密碼依次和RAM存儲器中41H~48H單元的數相比較,只要有1位不相同,門鎖不但不能打開,而且還發出報警信號。

        2.2.2 按鍵間隔超時的判斷及復位

        前文提到了當按鍵間隔超過3 s有自動復位的功能,設置密碼和按鍵*時分別采用定時器T0和T1來實現。兩定時器均設為50 ms定時中斷,連續產生60次中斷的時間是3 s。當確實有鍵按下并彈起時,打開相應定時器中斷并允許其計數。假如在下一按鍵按下時,發生定時中斷還不到60次,則定時器停止計數并重設計數初值及定時中斷次數;如果在下一按鍵按下之前,定時器已發生60次中斷,表示3 s已到,則系統自動進行軟件復位。設置密碼時按鍵間隔超時的復位程序代碼如下:

        以上程序當執行完RETI指令后,PC指針指向0000H,程序從地址0000H處開始執行,即實現了軟件復位。

        當鍵盤*時,如果按鍵間隔超過3 s,這時的程序“復位”并不是從地址0000H處執行,而是回到“密碼設置結束提示音”后的那一條指令處開始執行,利用單步執行指令的方法得到了此條指令的地址:0FC00H。

        3 結語

        該設計的亮點在于沒有擴展任何E2PROM的情況下,實現了任意修改密碼的功能,且采用軟件復位的方法取消無效按鍵。通過對本系統設置密碼、鍵盤*、紅外*等各方面的情況進


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 新蔡县| 扎鲁特旗| 宁强县| 普安县| 剑川县| 永春县| 渝中区| 皋兰县| 云南省| 类乌齐县| 伊吾县| 长顺县| 郧西县| 翁牛特旗| 称多县| 应城市| 东乡| 徐闻县| 资溪县| 宕昌县| 永定县| 连南| 如东县| 洪雅县| 大港区| 阳新县| 隆昌县| 河西区| 陵川县| 新泰市| 内黄县| 高要市| 广元市| 和静县| 格尔木市| 阿荣旗| 台南县| 改则县| 桐梓县| 宝丰县| 武清区|