微機(jī)系統(tǒng)綜合課程設(shè)計(jì)超市密碼箱的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
微機(jī)系統(tǒng)綜合課程設(shè)計(jì)超市密碼箱的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
微機(jī)系統(tǒng)綜合課程設(shè)計(jì)超市密碼箱的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
微機(jī)系統(tǒng)綜合課程設(shè)計(jì)超市密碼箱的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
微機(jī)系統(tǒng)綜合課程設(shè)計(jì)超市密碼箱的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、沈陽航空航天大學(xué)課課 程程 設(shè)設(shè) 計(jì)計(jì) 報(bào)報(bào) 告告課程設(shè)計(jì)名稱:微機(jī)系統(tǒng)綜合課程設(shè)計(jì)微機(jī)系統(tǒng)綜合課程設(shè)計(jì)課程設(shè)計(jì)題目:超市密碼箱的設(shè)計(jì)與實(shí)現(xiàn) 院(系): 計(jì)算機(jī)學(xué)院專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí): 學(xué) 號(hào): 姓 名:指導(dǎo)教師: 說明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要說明:結(jié)論(優(yōu)秀、良好、中等、及格、不及格)作為相關(guān)教環(huán)節(jié)考核必要依據(jù);格式不符合要求;數(shù)據(jù)不實(shí)求;數(shù)據(jù)不實(shí),不予通過。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。不予通過。報(bào)告和電子數(shù)據(jù)必須作為實(shí)驗(yàn)現(xiàn)象重復(fù)的關(guān)鍵依據(jù)。學(xué)術(shù)誠信聲明 本人聲明本人聲明:所呈交的報(bào)告(含電子版及數(shù)據(jù)文件

2、)是我個(gè)人在導(dǎo)師指導(dǎo)下獨(dú)立進(jìn)行設(shè)計(jì)工作及取得的研究結(jié)果。盡我所知,除了文中特別加以標(biāo)注或致謝中所羅列的內(nèi)容以外,報(bào)告中不包含其他人己經(jīng)發(fā)表或撰寫過的研究結(jié)果,也不包含其它教育機(jī)構(gòu)使用過的材料。與我一同工作的同學(xué)對(duì)本研究所做的任何貢獻(xiàn)均己在報(bào)告中做了明確的說明并表示了謝意。報(bào)告資料及實(shí)驗(yàn)數(shù)據(jù)若有不實(shí)之處,本人愿意接受本教學(xué)環(huán)節(jié)“不及格”和“重修或重做”的評(píng)分結(jié)論并承擔(dān)相關(guān)一切后果。 本人簽名: 日期: 年 月 日 目 錄1 系統(tǒng)概述系統(tǒng)概述11.1 系統(tǒng)總體設(shè)計(jì)目標(biāo)功能及要求系統(tǒng)總體設(shè)計(jì)目標(biāo)功能及要求12 系統(tǒng)系統(tǒng)總體設(shè)計(jì)總體設(shè)計(jì)121 系統(tǒng)系統(tǒng)原理簡介原理簡介122 系統(tǒng)設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)方案2

3、3 系統(tǒng)系統(tǒng)硬件電路硬件電路設(shè)計(jì)設(shè)計(jì)231 系統(tǒng)硬件電路232 單片機(jī)簡述單片機(jī)簡述333 鍵盤電路鍵盤電路34 系統(tǒng)系統(tǒng)的軟件設(shè)計(jì)的軟件設(shè)計(jì)541 軟件設(shè)計(jì)思想軟件設(shè)計(jì)思想542 程序各模塊設(shè)計(jì)程序各模塊設(shè)計(jì)543 各模塊的軟件程序設(shè)計(jì)各模塊的軟件程序設(shè)計(jì)544 密碼驗(yàn)證方案比較密碼驗(yàn)證方案比較745 實(shí)物連實(shí)物連線圖線圖85 系統(tǒng)調(diào)試系統(tǒng)調(diào)試85.1 硬件硬件問題調(diào)試問題調(diào)試95.2 軟件軟件問題調(diào)試問題調(diào)試9結(jié)結(jié) 論論10參考文獻(xiàn)參考文獻(xiàn)11附錄附錄 系統(tǒng)程序系統(tǒng)程序12 系統(tǒng)概述系統(tǒng)概述1 1 系統(tǒng)總體設(shè)計(jì)目標(biāo)系統(tǒng)總體設(shè)計(jì)目標(biāo)功能及要求功能及要求本次課設(shè)由 mcs-51 單片機(jī)構(gòu)成核心

4、控制系統(tǒng),整個(gè)系統(tǒng)由主控部分、鍵盤顯示控制部分、執(zhí)行部分三部分組成,通過密碼的核對(duì)完成自動(dòng)存包取包過程。第一部分:cpu 核心控制部分,由單片機(jī) mcs-51、復(fù)位電路、時(shí)鐘電路等構(gòu)成,是整個(gè)系統(tǒng)的核心。第二部分:鍵盤顯示控制部分。用 2 個(gè) led 顯示器和 24 個(gè)按鍵進(jìn)行管理,led數(shù)碼管用于顯示柜的號(hào)碼和當(dāng)前狀態(tài),24 個(gè)按鍵分別為 16 個(gè)數(shù)字鍵和 8 個(gè)功能鍵。通過這些鍵盤,用戶就可以完成所有的操作。第三部分:執(zhí)行機(jī)構(gòu)部分。它是通過 mcs-51 單片機(jī)的并行口控制 8 個(gè)發(fā)光二極管的狀態(tài)(亮滅)來模擬柜子的存包取包的過程。軟件部分主要采用我們自己設(shè)定的一種與柜的號(hào)碼相關(guān)聯(lián)的算法由

5、顧客輸入密碼并存儲(chǔ),而密碼的設(shè)置、核對(duì)過程就對(duì)應(yīng)存包、取包的過程。 本系統(tǒng)具有如下特色:(1)操作簡單。(2)顧客可以自行輸入 4 位密碼(3)利用軟件設(shè)定密碼而不是硬件,使得硬件更為簡潔、可靠、穩(wěn)定。2 2 系統(tǒng)總體設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)2 21 1 系統(tǒng)原理系統(tǒng)原理簡介簡介電子存包柜由電子電路和機(jī)械兩部分組成。本設(shè)計(jì)的存包柜主要實(shí)現(xiàn)電子電路方面的功能,它可以通過單片機(jī)完成密碼的設(shè)定、密碼的確認(rèn)以及用發(fā)光二極管模擬柜子的開閉狀態(tài)等功能。從硬件上看,它由部分組成,分別是:led 數(shù)碼管顯示器,用于顯示相應(yīng)的信息;mcs-51 單片機(jī)是整個(gè)電路的核心部分,其中振蕩電路為cpu 產(chǎn)生賴以工作的時(shí)序,復(fù)位

6、電路使 cpu 與系統(tǒng)中的其他部件處于一個(gè)確定的初始狀態(tài);還有鍵盤部分,鍵盤由 lab8000 實(shí)驗(yàn)箱提供,以及電源部分。2 22 2 系統(tǒng)設(shè)計(jì)方案系統(tǒng)設(shè)計(jì)方案在電子存包柜電路的設(shè)計(jì)中,控制方法是核心技術(shù)。方案一:采用數(shù)字電路控制。采用數(shù)字密碼鎖電路的好處就是設(shè)計(jì)簡單。用以74ls112 雙 jk 觸發(fā)器構(gòu)成的數(shù)字邏輯電路作為密碼鎖的核心控制,共設(shè)了 12 個(gè)用戶輸入鍵,其中只有 10 個(gè)是有效的密碼按鍵,一個(gè)確定鍵和一個(gè)清除鍵;如果用戶輸入密碼的次數(shù)超過指定次數(shù)(若用戶覺得不便,還可以修改)電路將在 10 秒后發(fā)出報(bào)警聲,電路將鎖定鍵盤,防止他人繼續(xù)非法操作。方案二:采用一種是用以 mcs-

7、51 單片機(jī)為核心的單片機(jī)控制方案。利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的 io 端口,及其控制的準(zhǔn)確性,不但能實(shí)現(xiàn)基本的密碼鎖功能,還能添加調(diào)電存儲(chǔ)甚至添加遙控控制功能。存包柜電路包含:鍵盤輸入、密碼檢測(cè)、開鎖電路、執(zhí)行電路、顯示電路。相比較及要求規(guī)定,本次題目采用方案二設(shè)計(jì)實(shí)現(xiàn)3 3 系統(tǒng)硬件電路設(shè)計(jì)系統(tǒng)硬件電路設(shè)計(jì)3 31 1 系統(tǒng)硬件電路系統(tǒng)硬件電路硬件電路以 mcs-51 單片機(jī)為核心,矩陣鍵盤作為輸入,顯示屏為 led 顯示器,發(fā)光二極管模擬存包箱柜。硬件電路的系統(tǒng)方框圖,如圖 1 所示:mcs-51矩陣鍵盤led 顯示器發(fā)光二極管pc控制電路圖1 系統(tǒng)方框圖3 32 2 單片機(jī)概述單片

8、機(jī)概述 8051 單片機(jī): 8051 單片機(jī)最早由 intel 公司推出,其后,多家公司購買了 8051的內(nèi)核,使得以 8051 為內(nèi)核的 mcu 系列單片機(jī)在世界上產(chǎn)量最大,應(yīng)用也最廣泛,有人推測(cè) 8051 可能最終形成事實(shí)上的標(biāo)準(zhǔn) mcu 芯片.3 33 3 鍵盤電路鍵盤電路鍵盤按結(jié)構(gòu)的不同可分為獨(dú)立式按鍵鍵盤和行列式鍵盤兩類,每類按譯碼方式的不同又分為編碼式和非編碼式兩種。單片機(jī)中一般使用的都是用軟件來識(shí)別和產(chǎn)生鍵代碼的非編碼鍵盤。行列式鍵盤的編碼方式有靜態(tài)和動(dòng)態(tài)兩種。靜態(tài)接口主要由一個(gè)行編碼器和一個(gè)列編碼器構(gòu)成;動(dòng)態(tài)接口可用計(jì)數(shù)器、譯碼器和數(shù)據(jù)選擇器來構(gòu)成。一般在小型儀器儀表和控制系統(tǒng)

9、中,使用較多的是行列式和獨(dú)立式的非編碼鍵盤;如果系統(tǒng)要求實(shí)現(xiàn)多鍵同時(shí)按下的處理,則用非編碼獨(dú)立方式較為合適。本系統(tǒng)主要是采用了常用的矩陣式鍵盤,工作方式采用的是外部中斷掃描,所中斷式鍵盤掃描原理是:當(dāng)有鍵按下將會(huì)觸發(fā)一個(gè)中斷源,提醒處理器進(jìn)行鍵值掃描查詢。鍵盤的中斷方式一般有定時(shí)中斷和外部中斷兩種,本系統(tǒng)采用的是外部中斷 int0。單片機(jī)先讓行線輸出低電平,當(dāng)有鍵按下時(shí)列線電平不全為高,四輸入與門輸出端產(chǎn)生下降沿,將觸發(fā)外部中斷 int0,單片機(jī)進(jìn)入中斷后先延時(shí)去抖動(dòng),再掃描查尋鍵盤,讀出鍵值,然后處理相應(yīng)的鍵值處理子程序,無鍵按下則不進(jìn)入中斷,單片機(jī)不掃描,從而節(jié)約了大量的資源。鍵盤電路設(shè)計(jì)

10、流程圖及鍵盤電路圖如下:開始軟件延時(shí)10ms返回是否有鍵閉合是否有鍵閉合確定按鍵位置閉合鍵是否釋放開輸入鍵號(hào)aynynyn圖 2 鍵盤輸入子程序流程圖 圖 3 鍵盤電路連線路4 4 系統(tǒng)的軟件設(shè)計(jì)系統(tǒng)的軟件設(shè)計(jì)4.14.1 軟件設(shè)計(jì)思想:軟件設(shè)計(jì)思想: 系統(tǒng)運(yùn)行時(shí),主程序調(diào)度 led 顯示器先進(jìn)行程序初始化,若有人按下“存包鍵”時(shí)先由隨機(jī)數(shù)模塊產(chǎn)生一個(gè)隨機(jī)數(shù)保存在單片機(jī)內(nèi)部數(shù)組中,并將產(chǎn)生的密碼顯示在 led 顯示器上,一段時(shí)間后顯示數(shù)據(jù)消失,密碼顯示的同時(shí)系統(tǒng)也將所要打開的箱子號(hào)顯示在 led 并發(fā)一個(gè)觸發(fā)信號(hào)使對(duì)應(yīng)的箱子號(hào)打開。存包的過程也就此結(jié)束。當(dāng)有取包時(shí)必然先要輸入存包時(shí)所顯示的密碼

11、,輸入密碼時(shí)運(yùn)行鍵盤掃描模塊掃描所輸入的按鍵值并按下“取包鍵”,假如輸入的密碼是正確的,系統(tǒng)將通過led 顯示所輸入的密碼是正確的并且系統(tǒng)將打開你存包時(shí)所打開的箱子。4 42 2 程序各模塊設(shè)計(jì)程序各模塊設(shè)計(jì)本系統(tǒng)由四個(gè)程序模塊和一個(gè)主程序組成,四個(gè)程序模塊分別為密碼設(shè)定模塊、存取模塊、led 顯示模塊、鍵盤掃描模塊組成。4 43 3 各模塊的軟件程序設(shè)計(jì)各模塊的軟件程序設(shè)計(jì)(1)密碼設(shè)定:下圖為隨機(jī)模塊的程序框架。開始設(shè)定密碼保存密碼返回 圖 4 隨機(jī)模塊程序框圖 (2)led 顯示模塊 開始延時(shí) 40ms功能設(shè)置顯示開關(guān)控制延時(shí) 1ms延時(shí) 1ms 清顯示延時(shí) 10ms進(jìn)入模式設(shè)置初始化結(jié)

12、束 圖 5 led 工作框圖(3)存包過程無鍵按下返回主程序并保存箱號(hào)返回主程序并保存密碼y有鍵按下開始lcd 初始化鍵盤掃描存包鍵按下?主程序設(shè)定密碼打開箱子顯示箱號(hào)顯示正常信息(4)取包過程箱子打開后提示信息過后返回主程序并刪除密碼和對(duì)應(yīng)的箱號(hào)yn四位密碼輸入有鍵按下無鍵按下主程序鍵盤掃描密碼正確?打開對(duì)應(yīng)箱子led 顯示器提示打開信息顯示正常信息圖 7 取包流程圖4 44 4 密碼驗(yàn)證方案比較密碼驗(yàn)證方案比較當(dāng)鍵盤輸入密碼時(shí),輸入的數(shù)如何與內(nèi)部產(chǎn)生的密碼進(jìn)行比較是一個(gè)需要解決的問題。因?yàn)閮?nèi)部產(chǎn)生的是一個(gè) 4 位數(shù)密碼。這也就有了兩種方案來解決這個(gè)問題。(1)先將內(nèi)部生成的 4 位數(shù)密碼轉(zhuǎn)

13、化成 4 個(gè)個(gè)位數(shù)的數(shù)字密碼,并將其保存在數(shù)組 中。將輸入的密碼保存在另一個(gè)數(shù)組中。最后再對(duì)這兩個(gè)數(shù)組的元素進(jìn)行比較,如有錯(cuò)誤返回主程序進(jìn)行錯(cuò)誤提示,若是正確的就將執(zhí)行后續(xù)的程序。 (2)將輸入的四個(gè)數(shù)進(jìn)行乘計(jì)算得到一個(gè)四位數(shù)密碼。與系統(tǒng)產(chǎn)生的四位數(shù)密碼進(jìn)行比較,如有錯(cuò)誤返回主程序進(jìn)行錯(cuò)誤提示,若正確就執(zhí)行后續(xù)的程序。4.54.5 實(shí)物連線圖實(shí)物連線圖圖 8 lab8000 連線圖注釋:key/led 連接 cs0;p1.0-p1.7 連接 l0-l7.系統(tǒng)調(diào)試系統(tǒng)調(diào)試本系統(tǒng)的調(diào)試主要分為硬件調(diào)試、軟件調(diào)試等兩大部分。經(jīng)過初步的分析設(shè)計(jì)后,在制作硬件電路的同時(shí),調(diào)試也在穿插進(jìn)行。這樣有利于問題

14、的分析和解決,不會(huì)造成問題的積累,而且不會(huì)因?yàn)橐粋€(gè)小問題而進(jìn)行整體電路的檢查,從而可以節(jié)約大量的調(diào)試時(shí)間。軟件編程中,首先完成單元功能模塊的調(diào)試,然后進(jìn)行系統(tǒng)調(diào)試,整體上與硬件調(diào)試的方法差不多。聯(lián)機(jī)調(diào)試是最重要的一部分,同時(shí)也是本設(shè)計(jì)成功的關(guān)鍵。首先應(yīng)對(duì)電路板表面進(jìn)行檢查,對(duì)焊接后的電路板的所有連接線仔細(xì)檢查。通過目測(cè)查出一些明顯的安裝及連接錯(cuò)誤并及時(shí)排除。其次用萬用表測(cè)量,主要是測(cè)量目測(cè)是懷疑通斷的情況,尤其是要測(cè)量電源與地之間是否短路。再次是加電檢查。開啟電源后,檢查芯片的電源電壓是否正確,也可用手觸摸,是否有明顯發(fā)燙,所遇芯片均未發(fā)現(xiàn)異常,可進(jìn)入下一步調(diào)試。調(diào)試中遇到的問題及解決方法調(diào)試

15、中遇到的問題及解決方法51 硬件 (1)led 顯示器無法顯示:把復(fù)位腳誤接在地端而使 led 顯示器一直不停的在復(fù)位,把接線改過來從而使顯示屏正常工作。(2)在電路的調(diào)試過程中,發(fā)現(xiàn) led 顯示器能正常發(fā)光,而在有按鍵按下時(shí),顯示屏上卻沒有顯示相應(yīng)的信息,發(fā)光二極管也不能正常工作,后通過仔細(xì)檢查電路,發(fā)現(xiàn)單片機(jī)與鍵盤連接線路有問題,隨即改正過來后,電路工作正常。52 軟件(1)定義出錯(cuò):產(chǎn)生的現(xiàn)象是有密碼產(chǎn)生但無法檢測(cè)到輸入密碼。經(jīng)過仔細(xì)檢查曾變量定義錯(cuò)誤(誤將存儲(chǔ)密碼變量 unsigned int 定義成 unsigned char ):因?yàn)?unsigned int 無符號(hào)短整型數(shù)說明

16、。簡寫為 unsigned int, 字長為 2 字節(jié)共 16 位二進(jìn)制數(shù), 數(shù)的范圍是 0 65535。而 unsigned char 字符在計(jì)算機(jī)中以其 ascii 碼方式表示, 其長度為 1 個(gè)字節(jié), 有符號(hào)字符型數(shù)取值范圍為-128127, 無符號(hào)字符型數(shù)到值范圍是 0255。因此在 turbo c 語言中,字符型數(shù)據(jù)在操作時(shí)將按整型數(shù)處理, 如果某個(gè)變量定義成 char, 則表明該變量是有符號(hào)的, 即它將轉(zhuǎn)換成有符號(hào)的整型數(shù)。使輸入的數(shù)字無法轉(zhuǎn)換為一個(gè) 4 位數(shù)。使得無法與內(nèi)部存儲(chǔ)的數(shù)進(jìn)行密碼驗(yàn)證,故無法打開箱子。 (2)led 顯示器無法顯示:初始化程序出錯(cuò):按初始化順序時(shí)延時(shí)時(shí)間

17、沒有達(dá)到要求。因?yàn)檠訒r(shí)時(shí)間還沒達(dá)到內(nèi)部初始化需求,上一步的初始化過程還沒有結(jié)束就進(jìn)行了下一步初始化過程,這樣即跳過了上一步的初始化程序,這樣必然導(dǎo)致系統(tǒng)初始化失敗。結(jié)結(jié) 論論在本系統(tǒng)中,基本模擬了超市存包的功能。用 mcs-51 單片機(jī)為核心 cpu 進(jìn)行系統(tǒng)任務(wù)調(diào)度,內(nèi)部的隨機(jī)數(shù)模塊、led 顯示器液晶模塊、箱子模擬模塊和鍵盤輸入模塊通過系統(tǒng)主程序來調(diào)度實(shí)現(xiàn)系統(tǒng)所需要的功能。通過本次設(shè)計(jì)了解了51 系列單片機(jī)的具體使用,比如寄存器、定時(shí)器、ram、rom。加深了對(duì) led 顯示器的使用,特別是在調(diào)試 led 顯示器的初始化程序時(shí),具體了解了初始化程序有哪些步驟且延時(shí)也對(duì)初始化有著相當(dāng)重要的關(guān)

18、系。也加深了對(duì)發(fā)光二極管、矩陣鍵盤等常規(guī)元件的使用。由于時(shí)間等各個(gè)因素的影響本系統(tǒng)也有著一些缺點(diǎn),比如安全性有待加強(qiáng)。 參考文獻(xiàn)參考文獻(xiàn)1 謝維成.單片機(jī)原理與應(yīng)用及c51程序設(shè)計(jì)m.北京:清華大學(xué)出版社.2006:169-1812 求是科技.單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航m.北京:人民郵電出版社.2004:117-1353 馬家辰.mcs-51單片機(jī)原理及接口技術(shù)m.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1998:112-1544 馬鴻文.基于at89c51單片機(jī)的自動(dòng)存取柜的設(shè)計(jì)與實(shí)現(xiàn)b.單片機(jī)開發(fā)與應(yīng)用,2005.95 盧敏生、盧惲.一個(gè)廉價(jià)的存包柜電腦控制裝置b.蘇州大學(xué)工學(xué)院、蘇州職業(yè)大學(xué),19

19、996 黃石紅.雙子系統(tǒng)在電子存取柜中的應(yīng)用b.微計(jì)算機(jī)信息,2003.97 常喜.微型打印機(jī)在單片機(jī)系統(tǒng)中的應(yīng)用b.吉林師范大學(xué)信息技術(shù)學(xué)院.20048 黃湖劍,梁楚樵.單片機(jī)與微型打印機(jī)的接口設(shè)計(jì)a.武漢理工大學(xué)信息工程學(xué)院.20069 梁金千,張躍.在計(jì)算機(jī)上產(chǎn)生真隨機(jī)數(shù)的探討d.計(jì)算機(jī)工程.200310 李少芳.在 c/ c + + 語言中如何自動(dòng)生成隨機(jī)密碼d.福建電腦.200311 趙雪峰.一種偽隨機(jī)數(shù)生成算法的研究與實(shí)現(xiàn)a. 電腦學(xué)習(xí).200512 劉西玲.mcs-51 系列單片機(jī)與微型打印機(jī)的接口設(shè)計(jì)d.天水師范學(xué)院學(xué)報(bào).2004附錄(系統(tǒng)程序)#include#include

20、 #define uchar unsigned char xdata unsigned char dat _at_ 0 x8004;xdata unsigned char key _at_ 0 x8001;xdata unsigned char led _at_ 0 x8002;sbit l1=p10;sbit l2=p11;sbit l3=p12;sbit l4=p13;sbit l5=p14;sbit l6=p15;sbit l7=p16;sbit l8=p17;int ff,f1,f2,f3,f4,f5,f6,f7,f8;uchar a1,a2,a3,a4,a5,a6;int count

21、;uchar success;unsigned int k=240;code unsigned char ledmap=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;code unsigned char keytable= 0 x16,0 x15,0 x14,0 xff, 0 x13,0 x12,0 x11,0 x10, 0 x0d,0 x0c,0 x0b,0 x0a, 0 x0e,0 x03,0 x06,0 x09, 0 x0f,0 x02,0 x05,0 x08, 0 x00,0 x01,0 x04,0 x07;un

22、signed char pass16;unsigned char passbuf16;code unsigned char sword16=0 x00,0 x01,0 x02,0 x03,0 xff;uchar pasword94;void delay(int a); /鍵盤void ledoff();void system();unsigned char testkey() led = 0; return (key&0 x0f);unsigned char getkey(int test,int success) int pos; int i; int k; if(test=0) while

23、(!testkey() ledoff(); i=6; pos=0 x20; do led=pos; pos=1; k=key&0 x0f; while(-i!=0)&(k=0); if(k!=0) i*=4; if(k&2) i+=1; else if(k&4) i+=2; else if(k&8) i+=3; led=0; do delay(4);while(testkey(); return(keytablei); else return(0 xff);void setpassword() unsigned char i; for(i=0;i16;i+) passi=getkey(0,0)

24、; if(passi=0 xff) break; void delay(int a) int i=0,j=0,q=0; for(;ia;i+) for(;ja;j+) for(;qa;q+) void ledoff() led=0 x02; dat=ledmapsuccess/10; delay(8); led=0 x01; dat=ledmapsuccess%10; delay(8); void system()int q,x;x=0;k=240;while(!testkey() ledsys();for(;1;)for(q=0;q16;q+) passbufq=getkey(1,0); i

25、f (passbufq=0 xff) break;q=0;while(swordq!=0 xff&q16) if(swordq!=passbufq) break; q+;if(swordq=0 xff) k=240; break; void delay2() /延時(shí)int i,j;for(i=0;i100;i+)for(j=0;j500;j+);void main(void)int ffff; int i,j; int num; success=0; num=8; ea=1; /開總中斷 ex0=1; /允許使用外中斷 it0=1; /選擇負(fù)跳變來觸發(fā)外中斷 a1=30; a2=30; p1=

26、0 x00; /從 0 開始累計(jì)中斷次數(shù) f1=f2=f3=f4=f5=f6=f7=f8=0;aa: while(1) memset(0,pass,sizeof(pass);success=num; setpassword();success=0; switch(pass0) case 1: /取 if(num!=8) success=11;setpassword(); switch(pass0) case 1: if(f1) success=1; setpassword(); ff=1; for(j=0;j4&ff;j+) if(passj!=pasword1j) ff=0; if(ff)

27、l1=0; f1=0; num+; else goto aa; break; case 2: if(f2) success=2; setpassword(); ff=1; for(j=0;j4&ff;j+) if(passj!=pasword2j) ff=0; if(ff) l2=0; f2=0; num+; else goto aa; break; case 3: if(f3) success=3; setpassword(); ff=1; for(j=0;j4&ff;j+) if(passj!=pasword3j) ff=0; if(ff) l3=0; f3=0; num+; else g

28、oto aa; break; case 4: if(f4) success=4; setpassword(); ff=1; for(j=0;j4&ff;j+) if(passj!=pasword4j) ff=0; if(ff) l4=0; f4=0; num+; else goto aa; break; case 5: if(f5) success=5; setpassword(); ff=1; for(j=0;j4&ff;j+) if(passj!=pasword5j) ff=0; if(ff) l5=0; f5=0; num+; else goto aa; break; case 6: i

29、f(f6) success=6; setpassword(); ff=1; for(j=0;j4&ff;j+) if(passj!=pasword6j) ff=0; if(ff) l6=0; f6=0; num+; else goto aa; break; case 7: if(f7) success=7; setpassword(); ff=1; for(j=0;j4&ff;j+) if(passj!=pasword7j) ff=0; if(ff) l7=0; f7=0; num+; else goto aa; break; case 8: if(f8) success=8; setpassword(); ff=1; for(j=0;j4&ff;j+) if(passj!=pasword8j) ff=0; if(ff) l8=0; f8=0; num+; else goto aa; break;else goto aa; break;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論