




已閱讀5頁,還剩20頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
單片機(jī)原理與應(yīng)用技術(shù)課程設(shè)計(jì)報(bào)告(論文) 基于單片機(jī)控制的電子密碼鎖專業(yè)班級:_ _ _姓名:_ _ _ 時(shí) 間: _指導(dǎo)教師:_目錄摘要2關(guān)鍵詞:21 引言22 總體設(shè)計(jì)方案2 2.1 設(shè)計(jì)思路方案確立2 2.2 設(shè)計(jì)方框圖33 設(shè)計(jì)原理分析3 3.1 AT89S51性能簡介3 3.2 存儲(chǔ)芯片AT24C024 3.3 8位雙向數(shù)據(jù)總線收/發(fā)器(緩沖器)74LS2455 3.4 電路總體構(gòu)成6 3.5 復(fù)位部位6 3.6 晶振部分7 3.7 主模塊流程圖8 3.8 鍵盤模塊流程圖9 3.9 密碼修改流程圖10 3.10 密碼判斷流程圖11結(jié)束語12參考文獻(xiàn)12附錄:總程序13基于單片機(jī)控制的電子密碼鎖摘要:本系統(tǒng)由單片機(jī)系統(tǒng)、矩陣鍵盤、數(shù)碼管顯示、密碼存儲(chǔ)、復(fù)位電路、晶振電路、開鎖部分和報(bào)警系統(tǒng)組成。系統(tǒng)能完成開鎖、超時(shí)報(bào)警、修改用戶密碼基本的密碼鎖的功能。矩陣鍵盤主要判斷鍵盤上有無鍵按下、去抖動(dòng)影響、逐列掃描鍵盤以確定被按鍵的位置號(hào)即行列號(hào)、形成鍵值并將鍵值存入指定的數(shù)據(jù)緩沖區(qū)中、判斷閉合的鍵是否釋放等功能。密碼修改部分要求密碼要輸入兩次,程序?qū)纱屋斎氲拿艽a比較一致時(shí),即用此密碼代替原先的密碼,如果兩次輸入的密碼不一致,則重復(fù)操作。這樣就避免了修改密碼的隨機(jī)性。自動(dòng)報(bào)警部分是三次輸入的密碼不一致就會(huì)發(fā)生報(bào)警信息,這樣能有效的避免一些不法分子的行為,保護(hù)自身的利益。 關(guān)鍵詞:電子密碼、單片機(jī)、矩陣鍵盤、數(shù)碼管、24C021 引言電子密碼鎖是一種通過密碼輸入來控制電路或是芯片工作,從而控制機(jī)械開關(guān)的閉合,完成開鎖、閉鎖任務(wù)的電子產(chǎn)品。它的種類很多,有簡易的電路產(chǎn)品,也有基于芯片的性價(jià)比較高的產(chǎn)品。現(xiàn)在應(yīng)用較廣的電子密碼鎖是以芯片為核心,通過編程來實(shí)現(xiàn)的。其性能和安全性已大大超過了機(jī)械鎖。其特點(diǎn)如下:1) 保密性好,編碼量多,遠(yuǎn)遠(yuǎn)大于彈子鎖。隨機(jī)開鎖成功率幾乎為零。2) 密碼可變,用戶可以隨時(shí)更改密碼,防止密碼被盜,同時(shí)也可以避免因人員的更替而使鎖的密級下降。3) 誤碼輸入保護(hù),當(dāng)輸入密碼多次錯(cuò)誤時(shí),報(bào)警系統(tǒng)自動(dòng)啟動(dòng)。4) 無活動(dòng)零件,不會(huì)磨損,壽命長。5) 使用靈活性好,不像機(jī)械鎖必須佩帶鑰匙才能開鎖。6) 電子密碼鎖操作簡單易行,一學(xué)即會(huì)。本設(shè)計(jì)采用單片機(jī)為主控芯片,結(jié)合外圍電路,組成電子密碼鎖,用戶想要打開鎖,必先通過提供的鍵盤輸入正確的密碼才能將鎖打開,密碼輸入錯(cuò)誤有提示,為了提高安全性,當(dāng)密碼輸入錯(cuò)誤三次將報(bào)警。密碼可以由用戶自己修改設(shè)定,鎖打開后才能修改密碼。修改密碼之前必須再次輸入密碼,在輸入新密碼時(shí)候需要二次確認(rèn),以防止誤操作。2 總體設(shè)計(jì)方案2.1 設(shè)計(jì)思路方案確立采用以單片機(jī)為核心的控制方案由于單片機(jī)種類繁多,各種型號(hào)都有其一定的應(yīng)用環(huán)境,因此在選用時(shí)要多加比較,合理選擇,以期獲得最佳的性價(jià)比。一般來說在選取單片機(jī)時(shí)從下面幾個(gè)方面考慮:性能、存儲(chǔ)器、運(yùn)行速度、I/O口、定時(shí)/計(jì)數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些的還有一些最基本的比如:中斷源的數(shù)量和優(yōu)先級、工作溫度范圍、有沒有低電壓檢測功能、單片機(jī)內(nèi)有無時(shí)鐘振蕩器、有無上電復(fù)位功能等。在開發(fā)過程中單片機(jī)還受到:開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等等因素?;谝陨弦蛩乇驹O(shè)計(jì)選用單片機(jī)AT89S51作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲(chǔ),外接LCD1602顯示器用于顯示作用。當(dāng)用戶需要開鎖時(shí),先按鍵盤開鎖鍵之后按鍵盤的數(shù)字鍵09輸入密碼。密碼輸完后按下確認(rèn)鍵,如果密碼輸入正確則開鎖,不正確顯示密碼錯(cuò)誤重新輸入密碼,當(dāng)三次密碼錯(cuò)誤則發(fā)出報(bào)警;當(dāng)用戶需要修改密碼時(shí),先按下鍵盤設(shè)置鍵后輸入原來的密碼,只有當(dāng)輸入的原密碼正確后才能設(shè)置新密碼。新密碼輸入無誤后按確認(rèn)鍵使新密碼將得到存儲(chǔ),密碼修改成功。2.2 設(shè)計(jì)方框圖 AT89S51 單片機(jī)顯示電路矩陣鍵盤控制密碼存儲(chǔ)電路復(fù)位電路報(bào)警電路開鎖電路晶振電路圖2.2 總體設(shè)計(jì)框圖3 設(shè)計(jì)原理分析主控芯片AT89S51AT89S51是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。3.1 AT89S51性能簡介AT89S51具有如下特點(diǎn):40個(gè)引腳,4k Bytes Flash片內(nèi)程序存儲(chǔ)器,128 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。圖3-1 AT89S51 芯片引腳圖其主要功能特性: 兼容MCS-51指令系統(tǒng) 4k可反復(fù)擦寫(1000次)ISP Flash ROM 32個(gè)雙向I/O口 4.5-5.5V工作電壓 2個(gè)16位可編程定時(shí)/計(jì)數(shù)器 時(shí)鐘頻率0-33MHz 全雙工UART串行中斷口線 128x8 bit內(nèi)部RAM 2個(gè)外部中斷源 低功耗空閑和省電模式 中斷喚醒省電模式 3級加密位 看門狗(WDT)電路 軟件設(shè)置空閑和省電功能 3.2 存儲(chǔ)芯片AT24C02AT24C02是美國Atmel公司的低功耗CMOS型E2PROM,內(nèi)含2568位存儲(chǔ)空間,具有工作電壓寬(2.55.5 V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10 ms)、抗干擾能力強(qiáng)、數(shù)據(jù)不易丟失、體積小等特點(diǎn)。而且他是采用了I2C總線式進(jìn)行數(shù)據(jù)讀寫的串行器件,占用很少的資源和IO線,并且支持在線編程,進(jìn)行數(shù)據(jù)實(shí)時(shí)的存取十分方便。AT24C02中帶有的片內(nèi)地址寄存器。每寫入或讀出一個(gè)數(shù)據(jù)字節(jié)后,該地址寄存器自動(dòng)加1,以實(shí)現(xiàn)對下一個(gè)存儲(chǔ)單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時(shí)間,一次操作可寫入多達(dá)8個(gè)字節(jié)的數(shù)據(jù)。I2C總線是一種用于IC器件之間連接的二線制總線。他通過SDA(串行數(shù)據(jù)線)及SCL(串行時(shí)鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識(shí)別每個(gè)器件。 AT24C02正是運(yùn)用了I2C規(guī)程,使用主從機(jī)雙向通信,主機(jī)(通常為單片機(jī))和從機(jī)(AT24C02)均可工作于接收器和發(fā)送器狀態(tài)。主機(jī)產(chǎn)生串行時(shí)鐘信號(hào)(送方向,并產(chǎn)生開始和停止的條件。無論是主機(jī)還是從機(jī),接收到一個(gè)字節(jié)后必須發(fā)出通過SCL引腳)并發(fā)出控制字,控制總線的傳一個(gè)確認(rèn)信號(hào)ACK。AT24C02的控制字由8位二進(jìn)制數(shù)構(gòu)成,在開始信號(hào)發(fā)出以后,主機(jī)便會(huì)發(fā)出控制字,以選擇從機(jī)并控制總線傳送的方向。 SOIC PDIP圖3-2 AT24C02的兩種引腳圖圖3-3 AT24C02的電路接線圖圖中AT24C02的1、2、3腳是三條地址線,用于確定芯片的硬件地址。在AT89C51試驗(yàn)開發(fā)板上它們都接地,第8腳和第4腳分別為正、負(fù)電源。第5腳SDA為串行數(shù)據(jù)輸入/輸出,數(shù)據(jù)通過這條雙向I2C總線串行傳送,在AT89C51試驗(yàn)開發(fā)板上和單片機(jī)的P3.5連接。第6腳SCL為串行時(shí)鐘輸入線,在AT89C51試驗(yàn)開發(fā)板上和單片機(jī)的P3.6連接。SDA和SCL都需要和正電源間各接一個(gè)5.1K的電阻上拉。第7腳需要接地。24C02中帶有片內(nèi)地址寄存器。每寫入或讀出一個(gè)數(shù)據(jù)字節(jié)后,該地址寄存器自動(dòng)加1,以實(shí)現(xiàn)對下一個(gè)存儲(chǔ)單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時(shí)間,一次操作可寫入多達(dá)8個(gè)字節(jié)的數(shù)據(jù)。3.3 8位雙向數(shù)據(jù)總線收/發(fā)器(緩沖器)74LS24574LS245是我們常用的芯片,用來驅(qū)動(dòng)led或者其他的設(shè)備,它是8路同相三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。當(dāng)80951單片機(jī)的P0口總線負(fù)載達(dá)到或超過P0最大負(fù)載能力時(shí),必須接入74LS245等總線驅(qū)動(dòng)器。當(dāng)片選端/CE低電平有效時(shí),DIR=“0”,信號(hào)由 B 向 A 傳輸;(接收)DIR=“1”,信號(hào)由 A 向 B 傳輸;(發(fā)送)當(dāng)CE為高電平時(shí),A、B均為高阻態(tài)。由于P2口始終輸出地址的高8位,接口時(shí)74LS245的三態(tài)控制端1G和2G接地,P2口與驅(qū)動(dòng)器輸入線對應(yīng)相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。8051的/RD和/PSEN相與后接DIR,使得RD且PSEN有效時(shí),74LS245輸入(P0.1D1),其它時(shí)間處于輸出(P0.1D1)。圖3-4 74LS245的引腳圖圖3.4 電路總體構(gòu)成在確定了選用什么型號(hào)的單片機(jī)后,就要確定在外圍電路,其外圍電路包括電源輸入部分、鍵盤輸入部分、密碼存儲(chǔ)部分、復(fù)位部分、晶振部分、顯示部分、報(bào)警部分、開鎖部分組成,根據(jù)實(shí)際情況鍵盤輸入部分選擇4*4矩陣鍵盤,顯示部分選擇LED,密碼存儲(chǔ)部分選用AT24C02芯片來完成。其原理圖如圖4-2所示:圖4-2 電路原理圖3.5 復(fù)位部位單片機(jī)復(fù)位是使CPU和系統(tǒng)中的其他功能部件都處在一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作,例如復(fù)位后PC0000H,使單片機(jī)從第個(gè)單元取指令。無論是在單片機(jī)剛開始接上電源時(shí),還是斷電后或者發(fā)生故障后都要復(fù)位。在復(fù)位期間(即RST為高電平期間),P0口為高組態(tài),P1P3口輸出高電平;外部程序存儲(chǔ)器讀選通信號(hào)PSEN無效。地址鎖存信號(hào)ALE也為高電平。根據(jù)實(shí)際情況選擇如圖4-6所示的復(fù)位電路。該電路在最簡單的復(fù)位電路下增加了手動(dòng)復(fù)位按鍵,在接通電源瞬間,電容C1上的電壓很小,復(fù)位下拉電阻RST上的電壓接近電源電壓,即RST為高電平,在電容充電的過程中RST端電壓逐漸下降,當(dāng)RST端的電壓小于某一數(shù)值后,CPU脫離復(fù)位狀態(tài),由于電容C1足夠大,可以保證RST高電平有效時(shí)間大于24個(gè)振蕩周期,CPU能夠可靠復(fù)位。增加手動(dòng)復(fù)位按鍵是為了避免死機(jī)時(shí)無法可靠復(fù)位。當(dāng)復(fù)位按鍵按下后電容C1通過R5放電。當(dāng)電容C1放電結(jié)束后,RST端的電位由R5與R6分壓比決定。由于R53?報(bào)警程序返回NYN圖3.4 密碼判斷流程圖結(jié)束語在大學(xué)學(xué)習(xí)的這段期間內(nèi),知識(shí)是通過一門門獨(dú)立的課程傳授給我們的。而實(shí)際問題能夠順利的得到解決,不但需要多方面的知識(shí),而且還需要對這些知識(shí)綜合地加以運(yùn)用。所以此次畢業(yè)設(shè)計(jì)既是學(xué)習(xí)的過程,也是實(shí)踐的過程,不僅對所學(xué)的知識(shí)加以了鞏固和延伸。也讓我學(xué)會(huì)慎密、全面的考慮問題,抓住主要矛盾加以解決的思維方法和圍繞問題多方設(shè)法以求得解決的頑強(qiáng)意志。大學(xué)生活使我從一個(gè)懵懂無知的少年變成了可以勇敢面對人生的強(qiáng)者,無論是在思想上還是在專業(yè)課的學(xué)習(xí)上,電子電氣系的老師和同學(xué)們給予了我極大的幫助,在這里我要對老師們無私的關(guān)懷和幫助表示衷心的感謝!對幫助過我的同學(xué)們表示真摯的感謝! 參考文獻(xiàn)1 石文軒,宋薇.基于單片機(jī)MCS一51的智能密碼鎖設(shè)計(jì)M.武漢工程職業(yè)技術(shù)學(xué)院學(xué)報(bào),2004,(01);2 祖龍起,劉仁杰.一種新型可編程密碼鎖J.大連輕工業(yè)學(xué)院學(xué)報(bào),2002,(01);3 葉啟明.單片機(jī)制作的新型安全密碼鎖J.家庭電子,2005,(10);4 郭海英.基于單片機(jī)的電子安全密碼鎖的設(shè)計(jì)M.現(xiàn)代電子技術(shù),2005,(13);5 李明喜.新型電子密碼鎖的設(shè)計(jì)J.機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2004,(03);6 董繼成.一種新型安全的單片機(jī)密碼鎖J.電子技術(shù),2004,(03);7 祖龍起,劉仁杰,孫乃凌.一種新穎的電子密碼鎖J.電子世界,2001,(10);8 李明喜.新型電子密碼鎖的設(shè)計(jì)J.機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2004,(03);9 楊茂濤.一種電子密碼鎖的實(shí)現(xiàn)J.福建電腦,2004,(08);10 瞿貴榮.實(shí)用電子密碼鎖J.家庭電子,2000,(07);11 ATmega.ATmega8L-8AC,2006,(01);12 Wireless World,1998,vol、84,No、1509,p69;13 王千.實(shí)用電子電路大全M,電子工業(yè)出版社,2001,p101;14 何立民.單片機(jī)應(yīng)用技術(shù)選編M,北京:北京航空大學(xué)出版社,1998;15 李華.MCS-51系列單片機(jī)使用接口技術(shù)M,北京航空航天大學(xué)出版社,1993;16 彭為.單片機(jī)典型系統(tǒng)設(shè)計(jì)實(shí)例精講M,北京:電子工業(yè)出版社,2006;17 潘永雄.新編單片機(jī)原理與應(yīng)用M,西安:西安電子科技大學(xué)出版社,2003;18 童詩白,華成英,模擬電子技術(shù)基礎(chǔ)M,北京:高等教育出版社,2000;19 閻石主.數(shù)字電子技術(shù)基礎(chǔ)M,北京:高等教育出版社,1998;20 樊昌信,曹麗娜.通信原理M,北京:國防工業(yè)出版社,2007;21 李瀚蓀.電路分析基礎(chǔ)M,北京:高等教育出版社1991;附錄:總程序KEY_CNTEQU53H ;輸入密碼個(gè)數(shù)KEY_ALL EQU54H ;輸入密碼總次數(shù)CUOWU EQU55H ;輸入密碼錯(cuò)誤次數(shù)JIANEQU56HSLA DATA 50H ;器件地址字SUBA DATA 51H ;器件子地址NUMBYTE DATA 52H ;讀/寫字節(jié)數(shù)SDA BIT P3.7SCL BIT P3.6 ;I2C總線定義MTD EQU 30H ;發(fā)送數(shù)據(jù)緩存區(qū)首地址(30H-3FH)MRD EQU 40H ;接收數(shù)據(jù)緩存區(qū)首地址(40H-4FH);* ORG00HAJMPSTART1ORG0060HSTART1:MOV30H,#02HMOV31H,#03HMOV32H,#04HMOV33H,#05HMOV34H,#06HMOV35H,#07HACALLXOFF;*A0:MOVCUOWU,#00HA2:MOVKEY_CNT,#00HA1:LCALLJIANZHIJZA1;*;判斷鍵值功能;以下為按鍵處理程序,對不同的按鍵作出響應(yīng);*CJNEA,#0BH,J1;是否為清除鍵MOVR1,KEY_CNTCJNER1,#00H,J2LCALLMUSICAJMPA0J2:LCALLJIANF;清除一位密碼DECKEY_CNTLCALLXIANSHIAJMPA1J1:CJNEA,#0AH,J3;判斷是否是未定義的鍵LCALLMUSICMOVP2,#0C0HAJMPA0J3:CJNEA,#0DH,J4LCALLMUSICMOVP2,#0C0HAJMPA0J4:CJNEA,#0EH,J5;判斷是否為返回鍵LCALLMUSICAJMPLJ5:CJNEA,#0CH,J6;判斷是否要改密碼MOVP2,#0C0HLJMPGAIMIJ6:CJNEA,#0FH,J7;判斷是否為確認(rèn)鍵MOVR1,KEY_CNTCJNER1,#06H,J8;判斷輸入密碼位數(shù)是否正確MOVA,30H;比較密碼CJNEA,#2,J9MOVA,31HCJNEA,#3,J9MOVA,32HCJNEA,#4,J9MOVA,33HCJNEA,#5,J9MOVA,34HCJNEA,#6,J9MOVA,35HCJNEA,#7,J9CLRP3.0;密碼正確,LED燈亮LCALLX888INCKEY_ALLLCALLDELAY;燈亮一會(huì)LCALLDELAY;燈亮一會(huì)LCALLDELAY;燈亮一會(huì)SETBP3.0L:LCALLXOFFLJMPA0J9:LCALLMUSIC;密碼輸錯(cuò)INCCUOWUMOVA,CUOWUCJNEA,#03H,TLCALLMUSIC1LJMPSUODING;連續(xù)三次錯(cuò)誤鎖定J8:LCALLMUSIC;密碼位數(shù)錯(cuò)誤LJMPA0J7:INCKEY_CNT;按下數(shù)字鍵,輸入密碼MOVA,KEY_CNTCJNEA,#07H,K1;輸入密碼INCCUOWUMOVA,CUOWUCJNEA,#03H,T;連續(xù)三次錯(cuò)誤鎖定LCALLMUSIC1LJMPSUODINGK1:LCALLJIAFLCALLXIANSHILJMPA1T:ACALLXOFFLJMPA2S:LJMPA0;*;顯示子程序;* XOFF:MOVR7,#0FFHMOVP0,#0C0HMOVP2,#06HACALLDELAY5MSMOVP2,#08EHMOVP0,#01HACALLDELAY5MSRET X888:MOVP2,#080HMOVP0,#00HACALLDLY_SRETX666:MOVP2,#082HMOVP0,#00HACALLDLY_SRET;顯示總共輸入密碼個(gè)數(shù)XIANSHI:MOVDPTR,#TABLEMOVA,KEY_CNTMOVCA,A+DPTRMOVP2,AMOVP0,#06HRETTABLE:DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H DB 080H,090H,088H,083H,0C6H,0A1H,086H,08EH;顯示總共輸密碼正確次數(shù);*;鍵盤掃描程序,計(jì)算鍵值存入JIAN;*JIANZHI:NOPL1:MOVR3,#0F7H;鍵盤行掃描的初值(掃描第一行,也就是P2.3口的一行)MOVR1,#00H;TABLE2的取碼指針L2:MOVA,R3MOVP1,AMOVA,P1MOVR4,ASETBC;C=1MOVR5,#04H;列掃描數(shù)L3:RLCAJNCKEYIN;C=0表示有按鍵(列掃描)(第一次掃描到的是P2.7口的一列,結(jié)合P2.3口第一行。就是二進(jìn)制0000全不亮)INCR1DJNZR5,L3;4個(gè)掃描完畢MOVA,R3;掃描下一個(gè)SETBC;使右移時(shí),移入1RRCAMOVR3,AJCL2;4個(gè)行掃描完畢否JMPL1KEYIN:MOVR7,#10;消除抖動(dòng)10毫秒(晶振為1MHZ)D2:MOVR6,#248DJNZR6,$DJNZR7,D2D3:MOVA,P1;讀入的鍵盤值是否與R4相等XRLA,R4JZD3;按鍵松開否MOVA,R1MOVDPTR,#TABLE2MOVCA,A+DPTR;取鍵值MOVJIAN,ARETTABLE2:DB0CH,0DH,0EH,0FH,08H,09H,0AH,0BHDB04H,05H,06H,07H,00H,01H,02H,03H;*;蜂鳴器輸出聲響子程序;* MUSIC:MOVR5,#060H;控制音長MIC:CPLP3.1ACALLDELAY5MS;控制音調(diào)DJNZR5,MICRETMUSIC1:ACALLMUSICLCALLMUSICLCALLMUSICLCALLMUSICLCALLMUSICLCALLMUSICRET;*;延時(shí)子程序;*DELAY5MS: MOVR7,#3HDELAY0:MOVR6,#40HDELAY1:DJNZR6,DELAY1 DJNZR7,DELAY0 RETDLY_S:MOVR7,#02HDL:MOVR6,#0FFHDL1:DJNZR6,DL1DJNZR7,DLRETDELAY: ;誤差 0us MOV R7,#0A7HDL11: MOV R6,#0ABHDL0: MOV R5,#10H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL11 NOP RET;*;密碼清除和輸入;*;清除密碼JIANF:MOVA,34HMOV35H,AMOVA,33HMOV34H,AMOVA,32HMOV33H,AMOVA,31HMOV32H,AMOVA,30HMOV31H,AMOV30H,#00HRET;輸入密碼JIAF:MOVA,31HMOV30H,AMOVA,32HMOV31H,AMOVA,33HMOV32H,AMOVA,34HMOV33H,AMOVA,35HMOV34H,AMOV35H,JIANRET;*;鎖定,輸入管理員指令才有效;*SUODING:MOVKEY_CNT,#00HLCALLX666SUODIN:LCALLMUSICG:LCALLJIANZHIJZGCJNEA,#0CH,Q3LJMPSUODINGQ3:CJNEA,#0AH,Q1;判斷按鍵LJMPSUODINGQ1:CJNEA,#0EH,Q2LJMPSUODINGQ2:CJNEA,#0DH,Q4LJMPSUODINGQ4:CJNEA,#0BH,Q5;是否是清除鍵INCKEY_CNTMOVR1,KEY_CNTCJNER1,#00H,Q6LJMPSUODINGQ6:ACALLJIANFDECKEY_CNTACALLXIANSHILJMPSUODINQ5:CJNEA,#0FH,Q7;是否是確認(rèn)鍵MOVR1,KEY_CNTCJNER1,#06H,SUODINGMOVA,30H;比較密碼CJNEA,#06H,SUODINGMOVA,31HCJNEA,#05H,SUODINGMOVA,32HCJNEA,#04H,SUODINGMOVA,33HCJNEA,#03H,SUODINGMOVA,34HCJNEA,#02H,SUODINGMOVA,35HCJNEA,#01H,SUODINGLJMPSTART1Q7:INCKEY_CNT;按下數(shù)字鍵,輸入密碼MOVA,KEY_CNTCJNEA,#07H,K2;輸入密碼LJMPSUODINGK2:LCALLJIAFACALLXIANSHILJMPSUODIN;*;改密碼程序;*GAIMI:;*;名稱:IWRNBYTE;描述:向器件指定子地址寫N個(gè)數(shù)據(jù);入口參數(shù):器件地址字SLA,子地址SUBA,發(fā)送數(shù)據(jù)緩沖區(qū)MTD,發(fā)送字節(jié)數(shù)NUMBYTE;*IWRNBYTE: MOV R3,NUMBYTE LCALL START ;啟動(dòng)總線 MOV A,SLA LCALL WRBYTE ;發(fā)送器件地址字 LCALL CACK JNB ACK,RETWRN ;無應(yīng)答則退出 MOV A,SUBA ;指定子地址 LCALL WRBYTE LCALL CACK MOV R1,#MTDWRDA: MOV A,R1 LCALL WRBYTE ;開始寫入數(shù)據(jù) LCALL CACK JNB ACK,IWRNBYTE INC R1 DJNZ R3,WRDA ;判斷是否寫完RETWRN: LCALL STOP RET;*;名稱:IRDNBYTE;描述:從器件指定子地址讀取N個(gè)數(shù)據(jù);入口參數(shù):器件地址字SLA,子地址SUBA,接收數(shù)據(jù)緩存區(qū)MRD,接收字節(jié)數(shù)NUMBYTE;*IRDNBYTE: MOV R3,NUMBYTE LCALL START MOV A,SLA LCALL WRBYTE ;發(fā)送器件地址字 LCALL CACK JNB ACK,RETRDN MOV A,SUBA ;指定子地址 LCALL WRBYTE LCALL CACK LCALL START ;重新啟動(dòng)總線 MOV A,SLA INC A ;準(zhǔn)備進(jìn)行讀操作 LCALL WRBYTE LCALL CACK JNB ACK,IRDNBYTE MOV R1,#MRDRON1: LCALL RDBYTE ;讀操作開始 MOV R1,A DJNZ R3,SACK LCALL MNACK ;最后一字節(jié)發(fā)非應(yīng)答位RETRDN: LCALL STOP RETSACK: LCALL MACK INC R1 SJMP RON1 ;*;名稱:STRRT;描述:啟動(dòng)I2C總線子程序發(fā)送I2C總線起始條件;*START: SETB SDA ;發(fā)送起始條件數(shù)據(jù)信號(hào) NOP ;起始條件建立時(shí)間大于4.7us SETB SCL ;發(fā)送起始條件的時(shí)鐘信號(hào) NOP NOP NOP NOP NOP ;起始條件鎖定時(shí)間大于4.7us CLR SDA ;發(fā)送起始信號(hào) NOP NOP NOP NOP ;起始條件鎖定時(shí)間大于4.7us CLR SCL ;鉗住I2C總線,準(zhǔn)備發(fā)送或接收數(shù)據(jù) NOP RET;*;名稱:STOP;描述:停止I2C總線子程序發(fā)送I2C總線停止條件;*STOP: CLR SDA ;發(fā)送停止條件的數(shù)據(jù)信號(hào) NOP NOP SETB SCL ;發(fā)送停止條件的時(shí)鐘信號(hào) NOP NOP NOP NOP NOP ;起始條件建立時(shí)間大于4.7us SETB SDA ;發(fā)送I2C總線停止信號(hào) NOP NOP NOP NOP NOP ;延遲時(shí)間大于4.7us RET;*
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 村民就業(yè)問題的現(xiàn)狀與挑戰(zhàn)分析
- 廣東省湛江雷州市2024年化學(xué)九上期末復(fù)習(xí)檢測模擬試題含解析
- 江蘇省無錫市錫山區(qū)錫東片2025屆化學(xué)九上期末質(zhì)量檢測模擬試題含解析
- 河北滄州泊頭市蘇屯初級中學(xué)2024年七上數(shù)學(xué)期末教學(xué)質(zhì)量檢測模擬試題含解析
- 江蘇省常州市溧陽市2025屆八上數(shù)學(xué)期末達(dá)標(biāo)測試試題含解析
- 智能物流產(chǎn)業(yè)發(fā)展及技術(shù)創(chuàng)新研究報(bào)告
- 2025至2030靜脈留置針行業(yè)項(xiàng)目調(diào)研及市場前景預(yù)測評估報(bào)告
- 寫字樓消防通道保潔要求
- 2025至2030數(shù)字金融行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 2025至2030中國自動(dòng)滴咖啡機(jī)行業(yè)市場占有率及投資前景評估規(guī)劃報(bào)告
- 實(shí)驗(yàn)室培育鉆石行業(yè)技術(shù)發(fā)展趨勢報(bào)告
- 2025年領(lǐng)英大制造行業(yè)人才全球化報(bào)告-馬來西亞篇
- 專題:閱讀理解 30篇 中考英語高分提升之新題速遞第二輯【含答案+解析】
- 企業(yè)面試題目和答案大全
- 抖音房產(chǎn)直播課件
- 2025至2030中國近視眼治療儀市場競爭力剖析及企業(yè)經(jīng)營形勢分析報(bào)告
- 2025年高考化學(xué)試卷(廣東卷)(空白卷)
- 2025年北京市高考英語試卷真題(含答案解析)
- 日本所有番號(hào)分類
- 國際壓力性損傷-潰瘍預(yù)防和治療臨床指南(2025年版)解讀課件
- 患者跌倒墜床風(fēng)險(xiǎn)評估流程防范措施
評論
0/150
提交評論