




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
..基于AT89S51與AT24C02密碼鎖的設計〔XX大學應用技術學院目錄前言IC總線說明第2.1節主控芯片AT89S52AT89S51是美國ATMEL公司生產的低功耗,高性能CMOS8位單片機,片內含4kbytes的可系統編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準8051指令系統及引腳。它集Flash程序存儲器既可在線編程〔ISP也可用傳統方法進行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強大,低價位AT89S51單片機可為您提供許多高性價比的應用場合,可靈活應用于各種控制領域。.主要性能參數與MCS-51產品指令系統完全兼容4k字節在系統編程〔ISPFlash閃速存儲器1000次擦寫周期4.0-5.5V的工作電壓范圍全靜態工作模式:0Hz-33MHz三級程序加密鎖128×8字節內部RAM32個可編程I/O口線2個16位定時/計數器6個中斷源全雙工串行UART通道低功耗空閑和掉電模式中斷可從空閑模喚醒系統看門狗〔WDT及雙數據指針掉電標識和快速編程特性靈活的在系統編程〔ISP字節或頁寫模式.功能特性概述AT89S51提供以下標準功能:4k字節Flash閃速存儲器,128字節內部RAM,32個I/O口線,看門狗〔WDT,兩個數據指針,兩個16位定時/計數器,一個5向量兩級中斷結構,一個全雙工串行通信口,片內振蕩器及時鐘電路。同時,AT89S51可降至0Hz的靜態邏輯操作,并支持兩種軟件可選的節電工作模式。空閑方式停止CPU的工作,但允許RAM,定時/計數器,串行通信口及中斷系統繼續工作。掉電方式保存RAM中的內容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。.引腳功能說明P0口:P0口是一組8位漏極開路型雙向I/0口,也即地址/數據總線復用口。作為輸出口用時,每位能驅動8個TTL邏輯門電路,對端口寫"l"可作為高阻抗輸入端用。在訪問外部數據存儲器或程序存儲器時,這組口線分時轉換地址〔低8位和數據總線復用,在訪問期間激活內部上拉電阻。在F1ash編程時,P0口接收指令字節,而在程序校驗時,輸出指令字節,校驗時,要求外接上拉電阻。P1口:Pl是一個帶內部上拉電阻的8位雙向I/O口,Pl的輸出緩沖級可驅動〔吸收或輸出電流4個TTL邏輯門電路。對端口寫"l",通過內部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流〔IIL。Flash編程和程序校驗期間,Pl接收低8位地址。端口引腳第二功能:P1.5MOSI〔用于ISP犏程P1.6MISO〔用于ISP犏程P1.7SCK〔用于ISP犏程P2口:P2是一個帶有內部上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅動〔吸收或輸出電流4個TTL邏輯門電路。對端口寫"1”在訪問外部程序存儲器或16位地址的外部數據存儲器時,P2口送出高8位地址數據。在訪問8位地址的外部數據存儲器時,P2口線上的內容〔也即特殊功能寄存器〔SFR區中P2寄存器的內容,在整個訪問期間不改變。Flash編程或校驗時,P2亦接收高位地址和其它控制信號。P3口:P3口是一組帶有內部上拉電阻的8位雙向I/0口。P3口輸出緩沖級可驅動〔吸收或輸出電流4個TTL邏輯門電路。對P3口寫入"l"時,它們被內部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用上拉電阻輸出電流。P3口除了作為一般的I/0口線外,更重要的用途是它的第二功能,如下表所示:P3口還接收一些用于Flash閃速存儲器編程和程序校驗的控制信號。端口引腳的第二功能P3.0RXD〔串行輸入口P3.1TXD〔串行輸出口P3.2INT0〔外中斷0P3.3INT1〔外中斷1P3.4T0〔定時/計數器0外部輸入P3.5T1〔定時/計數器1外部輸入P3.6WR〔外部數據存儲器寫選通P3.7RD〔外部數據存儲器讀選通RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將使單片機復位。WDT溢出將使該引腳輸出高電平,設置SFRAUXR的DISRT0位〔地址8EH可打開或關閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態。ALE/PROG:當訪問外部程序存儲器或數據存儲器時,ALE〔地址鎖存允許輸出脈沖用于鎖存地址的低8位字節。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當訪問外部數據存儲器時將跳過一個ALE脈沖。對F1ash存儲器編程期間,該引腳還用于輸入編程脈沖〔PROG。如有必要,可通過對特殊功能寄存器〔SFR區中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條M0VX和M0VC指令ALE才會被激活。此外,該引腳會被微弱拉高,單片機執行外部程序時,應設置ALE無效。PSEN:程序儲存允許〔PSEN輸出是外部程序存儲器的讀選通信號,當AT89S51由外部程序存儲器取指令〔或數據時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。當訪問外部數據存儲器,沒有兩次有效的PSEN信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器〔地址為0000H-FFFFH,EA端必須保持低電平〔接地。需注意的是:如果加密位LB1被編程,復位時內部會鎖存EA端狀態。如EA端為高電平〔接Vcc端,CPU則執行內部程序存儲器中的指令。F1ash存儲器編程時,該引腳加上+12V的編程電壓Vpp。XTALl:振蕩器反相放大器及內部時鐘發生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。.特殊功能寄存器這些地址并沒有全部占用,沒有占用的地址亦不可使用,讀這些地址將得到一個隨意的數值。而寫這些地址單元將不能得到預期的結果。不要軟件訪問這些未定義的單元,這些單元是留作以后產品擴展用途的,復位后這些新的位將為0。中斷寄存器:各中斷允許控制位于IE寄存器,5個中斷源的中斷優先級控制位于IP寄存器。雙時鐘指針寄存器:為更方便地訪問內部和外部數據存儲器,提供了兩個16位數據指針寄存器:DP0位于SFR〔特殊功能寄存器區塊中的地址82H、83H和DP1位于地址84H、85H,當SFR中的位DPS=0選擇DP0,而DPS=1則選擇DP1。用戶應在訪問相應的數據指針寄存器前初始化DPS位。電源空閑標志:電源空閑標志〔POF在特殊功能寄存器SFR中PCON的第4位〔PCON.4,電源打開時POF置"1",它可由軟件設置睡眠狀態并不為復位所影響。存儲器結構:MCS-51單片機內核采用程序存儲器和數據存儲器空間分開的結構,均具有64KB外部程序和數據的尋址空間。程序存儲器:如果EA引腳接地〔GND,全部程序均執行外部存儲器。在AT89S51,假如EA接至Vcc〔電源+,程序首先執行地址從0000H-0FFFH〔4KB內部程序存儲器,再執行地址為1000H-FFFFH〔60KB的外部程序存儲器。數據存儲器:AT89S51的具有128字節的內部RAM,這128字節可利用直接或間接尋址方式訪問,堆棧操作可利用間接尋址方式進行,128字節均可設置為堆棧區空間。看門狗定時器〔WDT:WDT是為了解決CPU程序運行時可能進入混亂或死循環而設置,它由一個14bit計數器和看門狗復位SFR〔WDTRST構成。外部復位時,WDT默認為關閉狀態,要打開WDT,用戶必須按順序將01EH和0E1H寫到WDTRST寄存器〔SFR地址為0A6H,當啟動了WDT,它會隨晶體振蕩器在每個機器周期計數,除硬件復位或WDT溢出復位外沒有其它方法關閉WDT,當WDT溢出,將使RST引腳輸出高電平的復位脈沖。使用看門狗〔WDT:打開WDT需按次序寫01EH和0E1H到WDTRST寄存器〔SFR的地址為0A6H,當WDT打開后,需在一定的時候01EH和0E1H到WDTRST寄存器以避免WDT計數溢出。14位WDT計數器計數達到16383〔3FFFH,WDT將溢出并使器件復位。WDT打開時,它會隨晶體振蕩器在每個機器周期計數,這意味著用戶必須在小于每個16383機器周期內復位WDT,也即寫01EH和0E1H到WDTRST寄存器,WDTRST為只寫寄存器。WDT計數器既不可讀也不可寫,當WDT溢出時,通常將使RST引腳輸出高電平的復位脈沖。復位脈沖持續時間為98×Tosc,而Tosc=1/Fosc〔晶體振蕩頻率。為使WDT工作最優化,必須在合適的程序代碼時間段周期地復位WDT防止WDT溢出。掉電和空閑狀態時的WDT:掉電時期,晶體振蕩停止,WDT也停止。掉電模式下,用戶不能再復位WDT。有兩種方法可退出掉電模式:硬件復位或通過激活外部中斷。當硬件復位退出掉電模式時,處理WDT可象通常的上電復位一樣。當由中斷退出掉電模式則有所不同,中斷低電平狀態持續到晶體振蕩穩定,當中斷電平變為高即響應中斷服務。為防止中斷誤復位,當器件復位,中斷引腳持續為低時,WDT并未開始計數,直到中斷引腳被拉高為止。這為在掉電模式下的中斷執行中斷服務程序而設置。為保證WDT在退出掉電模式時極端情況下不溢出,最好在進入掉電模式前復位WDT。在進入空閑模式前,WDT打開時,WDT是否繼續計數由SFR中的AUXR的WDIDLE位決定,在IDLE期間〔位WDIDLE=0默認狀態是繼續計數。為防止AT89S51從空閑模式中復位,用戶應周期性地設置定時器,重新進入空閑模式。當位WDIDLE被置位,在空閑模式中WDT將停止計數,直到從空閑〔IDLE模式中退出重新開始計數。中斷:AT89S51共有5個中斷向量:2個外中斷〔INT0和INT1,2個定時中斷〔Timer0和Timer1和一個串行中斷。這些中斷源各自的禁止和使能位參見特殊功能寄存器的IE。IE也包含總中斷控制位EA,EA清0,將關閉所有中斷。定時器0和定時器1的中斷標志TF0和TF1,它是定時器溢出時的S5P2時序周期被置位,該標志保留至下個時序周期。晶體振蕩器特性:AT89S51中有一個用于構成內部振蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構成自激振蕩器。外接石英晶體〔或陶瓷諧振器及電容Cl、C2接在放大器的反饋回路中構成并聯振蕩電路。對外接電容Cl、C2雖然沒有十分嚴格的要求,但電容容量的大小會輕微影響振蕩頻率的高低、振蕩器工作的穩定性、起振的難易程序及溫度穩定性。如果使用石英晶體,我們推薦電容使用30pF±10pF,而如使用陶瓷諧振器建議選擇40pF±10F。用戶也可以采用外部時鐘。這種情況下,外部時鐘脈沖接到XTAL1端,即內部時鐘發生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發器后作為內部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續時間和最大的低電平持續時間應符合產品技術條件的要求。空閑節電模式:在空閑工作模式狀態,CPU保持睡眠狀態而所有片內的外設仍保持激活狀態,這種方式由軟件產生。此時,片內RAM和所有特殊功能寄存器的內容保持不變。空閑模式可由任何允許的中斷請求或硬件復位終止。需要注意的是,當由硬件復位來終止空閑工作模式時,CPU通常是從激活空閑模式那條指令的下一條指令開始繼續執行程序的,要完成內部復位操作,硬件復位脈沖要保持兩個機器周期〔24個時鐘周期有效,在這種情況下,內部禁止CPU訪問片內RAM,而允許訪問其它端口。為了避免在復位結束時可能對端口產生意外寫入,激活空閑模式的那條指令后一條指令不應是一條對端口或外部存儲器的寫入指令。掉電模式:在掉電模式下,振蕩器停止工作,進入掉電模式的指令是最后一條被執行的指令,片內RAM和特殊功能寄存器的內容在終止掉電模式前被凍結。退出掉電模式的方法是硬件復位或由處于使能狀態的外中斷INT0和INT1激活。復位后將重新定義全部特殊功能寄存器但不改變RAM中的內容,在Vcc恢復到正常工作電平前,復位應無效,且必須保持一定時間以使振蕩器重啟動并穩定工作。Flash閃速存儲器的并行編程:AT89s51單片機內部有4k字節的可快速編程的Flash存儲陣列。編程方法可通過傳統的EPROM編程器使用高電壓〔+12V和協調的控制信號進行編程。AT89S51的代碼是逐一字節進行編程的。數據查詢:AT89S5l單片機用數據查詢方式來檢測一個寫周期是否結束,在一個寫周期中,如需讀取最后寫入的那個字節,則讀出的數據的最高位〔P0.7是原來寫入字節最高位的反碼。寫周期完成后,有效的數據就會出現在所有輸出端上,此時,可進入下一個字節的寫周期,寫周期開始后,可在任意時刻進行數據查詢。Ready/Busy:字節編程的進度可通過"RDY/BSY"輸出信號監測,編程期間,ALE變為高電平"H"后P3.0端電平被拉低,表示正在編程狀態〔忙狀態。編程完成后,P3.0變為高電平表示準備就緒狀態。程序校驗:如果加密位LB1、LB2沒有進行編程,則代碼數據可通過地址和數據線讀回原編寫的數據,各加密位也可通過直接回讀進行校驗。讀片內簽名字節:AT89S51單片機內有3個簽名字節,地址為000H、100H和200H。用于聲明該器件的廠商和型號等信息,讀簽名字節的過程和正常校驗相仿,只需將P3.6和P3.7保持低電平。芯片擦除:在并行編程模式,利用控制信號的正確組合并保持ALE/PROG引腳200ns-500ns的低電平脈沖寬度即可完成擦除操作。在串行編程模式,芯片擦除操作是利用擦除指令進行。在這種方式,擦除周期是自身定時的,大約為500ms。擦除期間,用串行方式讀任何地址數據,返回值均為00H。Flash閃速存儲器的串行編程:將RST接至Vcc,程序代碼存儲陣列可通過串行ISP接口進行編程,串行接口包含SCK線、MOSI〔輸入和MISO〔輸出線。將RST拉高后,在其它操作前必須發出編程使能指令,編程前需將芯片擦除。芯片擦除則將存儲代碼陣列全寫為FFH。外部系統時鐘信號需接至XTAL1端或在XTALl和XTAL2接上晶體振蕩器。最高的串行時鐘〔SCK不超過l/16晶體時鐘,當晶體為33MHz時,最大SCK頻率為2MHz。數據校驗:數據校驗也可在串行模式下進行,在這個模式,在一個寫周期中,通過輸出引腳MISO串行回讀一個字節數據的最高位將為最后寫入字節的反碼。第2.2節AT24C02AT24C02支持I2C總線數據傳送協議,I2C總線協議規定:任何將數據傳送到總線的器件作為發送器,任何從總線接收數據的器件為接收器。數據傳送是由產生串行時鐘和所有起始停止信號的主器件控制的,AT24C02作為從器件。雖然主器件和從器件都可以作為發送器或接收器,但由主器件控制傳送數據發送或接收的模式。.性能與400KHzI2C總線兼容1.8到6.0伏工作電壓范圍低功耗CMOS技術寫保護功能當WP為高電平時進入寫保護狀態頁寫緩沖器自定時擦寫周期1,000,000編程/擦除周期可保存數據100年8腳DIPSOIC或TSSOP封裝溫度范圍商業級工業級和汽車級.引腳功能描述VCC+1.8V6.0V工作電壓VSS地SCL串行時鐘:串行時鐘輸入管腳用于產生器件所有數據發送或接收的時鐘,這是一個輸入管腳。SDA串行數據/地址:雙向串行數據/地址管腳用于器件所有數據的發送或接收,SDA一個開漏輸出管腳,可與其它開漏輸出或集電極開路輸出進行線或wire-OR。A0A1A2器件地址輸入端:這些輸入腳用于多個器件級聯時設置器件地址,當這些腳懸空時默認值為0,24WC01當使用24WC01或24WC02時最大可級聯8個器件,如果只有一個24WC02被總線尋址這三個地址輸入腳A0A1A2可懸空或連接到Vss,如果只有一個24WC01被總線尋址這三個地址輸入腳A0A1A2必須連接到Vss。當使用24WC04時最多可連接4個器件該器件僅使用A1A2地址管腳A0管腳未用可以連接到Vss或懸空,如果只有一個24WC04被總線尋址,A1和A2地址管腳可懸空或連接到Vss。當使用24WC08時最多可連接2個器件且僅使用地址管腳A2A0,A1管腳未用可以連接到Vss或懸空,如果只有一個24WC08被總線尋址A2管腳可懸空或連接到Vss。當使用24WC16時最多只可連接1個器件所有地址管腳A0A1A2都未用管腳可以連接到Vss或懸空。WP寫保護:如果WP管腳連接到Vcc,所有的內容都被寫保護只能讀。當WP管腳連接到Vss或懸空,允許器件進行正常的讀/寫操作。第2.3節LCD1602現在的字符型液品模塊已經是單片機應用設計中最常用的信息顯示器件了。1602型LCD顯示模塊具有體積小,功耗低,顯示內容豐富等特點。1602型LCD可以顯示2行16個字符,有8位數據總線D0—D7和Rs,R/W,EN三個控制端口,工作電壓為5V,并且具有字符對比度調節和背光功能。 .接口信號說明1602型LCD的接口信號說明如表2-1所示:表2-11602型LCD的接口信號說明編號符號引腳說明編號符號引腳說明1VSS電源地9D2DataI/O2VDD電源正極10D3DataI/O3VO液晶顯示偏壓信號11D4DataI/O4RS數據/命令選擇端〔H/L12D5DataI/O5R/W讀寫選擇端〔H/L13D6DataI/O6E使能信號14D7DataI/O7D0DataI/O15BLA背光源正極8D1DataI/O16BLK背光源負極1602型LCD的主要技術參數如表2-2所示:表2-21602型LCD的主要技術參數顯示容量芯片上作電壓工作電流模塊最佳工作電壓字符尺寸16X2個字符4.5~5.5V2.0mA<5.0V>5.0V2.95X4.35mm基本操作程序讀狀態:輸入:RS=L,RW=L,E=H輸出:DO-D7=狀態字讀數據:輸入:RS=H,RW=H,E=H輸出:無寫指令:輸入:RS=L,RW=L,D0-D7=指令碼,E=高脈沖輸出:D0-D7=數據寫數據:輸入:RS=H,RW=L,D0-D7=數據,E=高脈沖輸出:無第2.4節晶振振蕩器晶體振蕩器,簡稱晶振,其作用在于產生原始的時鐘頻率,這個頻率經過頻率發生器的放大或縮小后就成了電腦中各種不同的總線頻率。以聲卡為例,要實現對模擬信號44.1kHz或48kHz的采樣,頻率發生器就必須提供一個44.1kHz或48kHz的時鐘頻率。如果需要對這兩種音頻同時支持的話,聲卡就需要有兩顆晶振。但是現在的娛樂級聲卡為了降低成本,通常都采用SCR將輸出的采樣頻率固定在48kHz,但是SRC會對音質帶來損害,而且現在的娛樂級聲卡都沒有很好地解決這個問題。現在應用最廣泛的是石英晶體振蕩器。石英晶體振蕩器是一種高精度和高穩定度的振蕩器,石英晶體振蕩器也稱石英晶體諧振器,它用來穩定頻率和選擇頻率,是一種可以取代LC諧振回路的晶體諧振元件。石英晶體振蕩器廣泛地應用在電視機、影碟機、錄像機、無線通訊設備、電子鐘表、單片機、數字儀器儀表等電子設備中。為數據處理設備產生時鐘信號和為特定系統提供基準信號。在單片機中為其提供時鐘頻率。石英晶體振蕩器是利用石英晶體<二氧化硅的結晶體>的壓電效應制成的一種諧振器件,它的基本構成大致是:從一塊石英晶體上按一定方位角切下薄片<簡稱為晶片,它可以是正方形、矩形或圓形等>,在它的兩個對應面上涂敷上銀層用作電極使用,在每個電極上各焊一根引線接到管腳上,再加上封裝外殼就構成了石英晶體諧振器,簡稱為石英晶體或晶體、晶振。其產品一般用金屬外殼封裝,也有用玻璃殼、陶瓷或塑料封裝的。只要在晶體振子板極上施加交變電壓,就會使晶片產生機械變形振動,此現象即所謂逆壓電效應。當外加電壓頻率等于晶體諧振器的固有頻率時,就會發生壓電諧振,從而導致機械變形的振幅突然增大。本設計中采用12MHz做系統的外部晶振。電容取值為30pF。第3章系統硬件構成第3.1節設計原理本設計采用AT89S52為主控芯片,通過IIC總線協議與AT24C02進行通信。電路的輔助模塊有復位電路、矩陣按鍵電路、繼電器電路、報警電路。在進行keilc編程的時候,首先在程序中設置初始密碼。在進行開鎖的時候,用戶需要進行根據提示進行使用按鍵輸入密碼,在輸入密碼的同時主控芯片單片機會根據程序的設定和輸入的密碼進行比較,如果輸入每個密碼都正確的情況下,則液晶會提示用戶進行相應的操作,如進行修改密碼。報警與開鎖電路實際是在在密碼已經進行比對以后,主控芯片通過判斷的結果給出相應的操作,即相應的I/O端口會出現高低電平的變化,從而實現開鎖與報警的功能。系統框圖如圖3-1所示圖3-1系統框圖第3.2節電路總圖構成在確定了選用什么型號的單片機后,就要確定在外圍電路,其外圍電路包括電源輸入部分、存儲部分、鍵盤輸入部分、復位部分、晶振部分、顯示部分、報警部分、開鎖部分組成,根據實際情況鍵盤輸入部分選擇4*4矩陣鍵盤,顯示部分選擇字符型液晶顯示LCDl602。電路總圖如圖3-2所示:圖3-2電路總原理圖.報警部分當密碼輸入兩次的數值與所設定的參數值不同時,單片機AT89C51便通過P2.7口控制三極管來驅動揚聲器報警,當輸出低電平時三極管截止,當輸出高電平時三極管導通揚聲器報警。如圖3-3所示圖3-3報警電路原理圖.AT24C02存儲部分掉電存儲單元的作用是在電源斷開的時候,存儲當前設定的單價信息。AT24C02是ATMEL公司開發的可擦除存儲芯片,AT24C02是一個2K位串行CMOSE2PROM,內部含有256個8位字節,AT24C02有一個16字節頁寫緩沖器。該器件通過IIC總線接口進行操作,有一個專門的寫保護功能。采用兩線串行的總線和單片機通訊,電壓最低可以到2.5V,額定電流為1mA,靜態電流10Ua<5.5V>,芯片內的資料可以在斷電的情況下保存40年以上,而且采用8腳的DIP封裝,使用方便。如圖3-4所示圖3-42AT24C02原理圖電路.顯示部分為了提高密碼鎖的密碼顯示效果能力。本設計的顯示部分由液晶顯示器LCDl602取代普通的數碼管來完成。只有按下鍵盤上的開啟按鍵后,顯示器才處于開啟狀態。同理只有按下關閉按鍵后顯示器才處于關閉狀態。否則顯示器將一直處于初始狀態,當需要對密碼鎖進行開鎖時,按下鍵盤上的開鎖按鍵后利用鍵盤上的數字鍵0-9輸入密碼,每按下一個數字鍵后在顯示器上顯示一個"*",輸入多少位就顯示多少個"*"。當密碼輸入完成時,按下確認鍵,如果輸入的密碼正確的話,LCD子顯示"RIGHT",單片機其中P2.0引腳會輸出低電平,使三極管T2導通,電磁鐵吸合,電子密碼鎖被打開,如果密碼不正確,LCD顯示屏會顯示"ERROR",P2.0輸出的是高電平,電子密碼鎖不能被打開。通過LCD顯示屏,可以清楚的判斷出密碼鎖所處的狀態。其顯示部分引腳接口如圖3-5所示:圖3-5液晶顯示電路和上拉電阻驅動.復位電路復位電路〔圖3-12是單片機復位電路具有上電自動復位和手動復位的雙重功能。單片機的RST引腳是復位信號的輸入端,復位信號是高電平的時候才有效,其有效時間應持續24個震蕩脈沖周期〔即2個機器周期以上;通常為了保證應用系統能夠準確地復位,復位電路應使引腳RST腳保持10ms以上的高電平狀態。只要RST保持高電平,單片機就會自動循環復位。當RST引腳從高電平狀態轉為低電平狀態時,單片機退出復位狀態,從程序存儲器的0000H地址開始執行用戶程序。電容C3和電阻R5組成上電復位電路。上電瞬間RST引腳獲得高電平,隨著電容C11的充電,RST引腳的高電平逐漸下降。只要高電平保持足夠的時間,單片機就能完成復位。手動復位如圖3-6所示圖3-6復位電路.晶振部分AT89S52引腳XTAL1和XTAL2與晶體振蕩器及電容C2、C3按圖4-6所示方式連接。晶振、電容C2/C3及片內與非門<作為反饋、放大元件>構成了電容三點式振蕩器,振蕩信號頻率與晶振頻率及電容C2、C3的容量有關,但主要由晶振頻率決定,范圍在0~33MHz之間,電容C2、C3取值范圍在20~40pF之間。根據實際情況,本設計中采用12MHz做系統的外部晶振。電容取值為30pF。電路如圖3-7圖3-7晶振電路.開鎖電路開鎖電路的功能是當輸入正確的密碼后密碼鎖將被鎖定,既開鎖。當單片機P2.6引腳發出信號經三極管放大后,觸動電磁閥即會把鎖打開。一旦輸入密碼,單片機便會與初始密碼進行比對,如果密碼輸入兩次都與原始密碼不相符即會報警。電路如圖3-8所示圖3-8開鎖電路.鍵盤輸入模塊鍵盤是單片機十分重要的輸入設備,是實現人機對話的紐帶。鍵盤是由一組規則排列的按鍵組成,一個按鍵實際上就是一個開關元件,即鍵盤是一組規則排列的開關。根據按鍵與單片機的連接方式不同,按鍵主要分為獨立式按鍵和矩陣式按鍵,有了這些按鍵,對單片機的控制就方便多了。本設計按鍵數量較多,所以采用矩陣式按鍵以節省I/O口線。將16個按鍵分為4排4列排列好,如圖3-9矩陣鍵盤硬件結構。當有一個鍵按下時,通過某一邊引腳賦低電平,掃描全部引腳看是否與最初的賦值一樣,不一樣則根據相應的算法〔通過改變后的值與初始值相或,根據結果賦值確定是哪個鍵按下。鍵盤為4×4形式,按鍵包括阿拉伯數字0~9,以及鎖定、更改和改密三個應用按鍵。當用戶需要輸入密碼或修改密碼時,按下相應按鍵即會與單片機產生信號,并會執行相應的程序。電路如圖3-9所示圖3-9矩陣鍵盤電路第4章仿真設計第4.1節Protues仿真軟件概述Protues是目前使用比較廣泛的單片機類的仿真系統的軟件之一,它可以實現的功能比較多,可以實現程序與原理圖的連調,也可以單獨作為繪制原理圖的工具使用,與Protel有著過之不及的功能,于此同時還可以進行PCB版圖的生成,在方法中與Protel類似。此款軟件及繪制原理圖、PCB版圖和仿真于一身。Protues此款軟件的使用比較簡單。在運行環境搭載好的前提下,打開ISIS直接進入到主界面,在左邊欄框中有一個快捷鍵P<從庫中選取>,點擊后出現一個對話框然后輸入想要查找的元器件即可。之后在單擊確定按鍵所選器件就會顯示在界面左上角的小框中此時點擊鼠標左鍵就會放到圖層中,然后直接把鼠標放到接頭處就會顯示一個畫筆的標志此時按住鼠標左鍵就可進行連線了。如圖4-1所示為繪圖界面。圖4-1繪圖界面第4.2節Protues與Keil的連調在進行連調之前必須確保程序是完整的,原理圖也是沒有錯誤的。還要在正確的運行平臺下進行操作。檢查沒有錯誤后,打開原理圖,點擊單片機就會出現一個對話框如圖5-2所示,然后把生成的.hex文件添加到里面即可實現。在這里比較重要的就是.hex文件的生成過程。首先把已編寫好的程序加載到Keil軟件下進行編譯如果沒有遇到任何錯誤后,選擇相應的選項就可以生成.hex文件了。之后再按照生成的的路徑去尋找這個文件。找到之后加載到之前點開的對話框上即可。在此后點擊運行按鍵就會進行仿真了,按照設計的功能去調試就可以了。加載hex如圖4-2所示圖4-2加載.hex文件第4.3節Protues與Keil的連調的仿真結果系統仿真運行環境下的結果如圖4-3所示圖4-3系統仿真圖開鎖仿真圖如5-4所示圖4-3開鎖仿真圖第5章系統軟件設計本系統軟件設計由主程序、初始化程序、LCD顯示程序、鍵盤掃描程序、鍵功能程序、密碼設置程序、EEPROM讀寫程序和延時程序等組成。第5.1節主程序流程圖圖5-1所示為主程序流程圖,開始接上電源,程序進行初始化設置,然后在鍵盤上輸入密碼,此系統進行鍵盤掃描,然后啟動程序,進行保護,再次在鍵盤上輸入密碼,系統進行掃描,如和之前一樣,則執行程序,如不是,則執行另一種程序,最后結束。圖5-1主程序流程圖第5.2節按鍵功能流程圖圖5-2為按鍵功能流程圖,在按鍵當中,有與輸入、開鎖、清除、設置、確認的程序相對應的按鍵,并按順序與輸入的數相比較,當輸入正確時,進入密碼程序,錯誤時進行清除,輸入兩次正確的,可進行重新設置,最后確認程序。圖5-2按鍵功能流程第5.3節密碼設置流程圖如圖5-3為密碼設置流程圖,開始按下設置鍵,輸入舊密碼,如果錯誤,累計三次錯誤,進行報警程序。如輸入正確,可以改密碼,確認后再次輸入更改后密碼,如兩次輸入一樣,則更改成功。圖5-3密碼設置流程圖第5.4節開鎖流程圖圖5-4為開鎖流程圖,開始時按開鎖鍵,輸入密碼,如果輸入正確,則開鎖成功。如果輸入錯誤累計三次,則執行報警程序。圖5-4開鎖流程圖結論此次畢業設計我之所以選擇基于AT89S52與AT24C02的密碼鎖的設計,是因為我對于單片機與芯片之間的數據傳輸還存在著一定的問題。此次通過本次畢業設計,我查閱了大量的資料,具體了解AT89S52芯片、存儲器芯片的讀寫操作、編程程序的簡化與規范。在進行總體的設計以后,我使用了keilc軟件編寫了程序并且進行了protues軟件的仿真。在仿真成功了以后。我才開始進行開始制作硬件電路。硬件電路包括,復位電路、晶振電路、矩陣按鍵電路、LCD1602液晶顯示電路、報警指示電路、開鎖電路和AT24C02存儲器電路!在進行硬件電路制作的時候,我花了大量的時間,因為既要設計的美觀又要考慮實際的電路布線規則,所以還是感覺制作起來極其困難。電路制作好了以后,我使用下載器把程序下載進去以后,發現并沒有我想象的那么的成功,然后我只能逐一的調試各個模塊,最后發現還是存在許多的問題的,如業績顯示模塊在使用主控單片機的P0模塊是,還是要需要使用上拉電阻的。在進行矩陣電路的制作時,電路很容易發生短路,因此必須使用萬用表逐個的測量使用短路的現象!從策劃開始,我開始查找和收集大量的資料,進行程序編程的時候,我又要把各個軟件仔細的熟悉了一下,再到仿真成功,硬件調試成功。在這個復雜的過程中我真的學到了很多。我學會以了系統的看待了一個問題,也必須細心的對待每一個問題,因為一個整體無論在哪一個小的方面出了問題,都會造成整個系統的出錯。參考文獻劉昌華,易逵.《8051單片機的C語言應用程序設計與實踐》[M].國防工業出版社.2007.5魏立峰,王寶興.單片機原理與應用技術[M].北京:北京大學出版社,2010:34-65.王為青,邱文勛.《51單片機應用開發案例精選》[M].人民郵電出版社.2007.1譚浩強.C程序設計<第三版>[M].北京:高等教育出版社,2005:113.陳雪麗.單片機原理及接口技術[M].北京:化學工業出版社,2005.王少偉,巫丹.89C51單片機USB接口的設計與實現.科技創新導報,2009<28>.李明喜.新型電子密碼鎖的設計[J].機電產品開發與創新,2004,〔03;董繼成.一種新型安全的單片機密碼鎖[J].電子技術,2004,〔03;楊茂濤.一種電子密碼鎖的實現[J].XX電腦,2004,〔08;瞿貴榮.實用電子密碼鎖[J].家庭電子,2000,〔07;趙亮,跟我學51單片機系列教程第〔十一—I2C總線[J],《電子制作》20XX第11期.劉靜,王計元.24C系列串行EEPROM與單片機的接口設計及應用[J],《上海電力學院學報》20XX第4期.致謝時光飛逝,一轉眼大學四年的時光就過去了,我所學的專業是電子信息工程與技術,我很喜歡這門專業,因此我的專業課成績也不是很差。在本次畢業設計中,我的論文指導老師真的幫了我很多的忙,指導了我很多。在此次論文的選題到最后論文定稿,老師給了我很多的建議。還有就是我在做硬件的時候,我的同學給了我很多的建議,我的同學專業學的很好,尤其在做硬件方面,我在幾個比較難以解決的問題都是她幫我解決的。在我做論文的時候給了我很多的鼓勵與幫助。最后還要感謝我的父母,這么含辛茹苦的給了我這么個學習的機會。總之,感謝你們一直伴隨著我成長。真的到了離別的時候了,真的非常不舍得我美麗的母校,我敬愛的老師,但是百舸爭流,勇者不必勇敢向前。不管前面遇到什么苦難,我相信大學四年,我已經學會了如何去思考我所遇到的問題,學會如何去解決我所遇到的問題。最后,感謝在大學期間認識我和我認識的所有朋友,因為你們的陪伴,我的大學生活才豐富多彩!謝謝!附錄附錄1:實物照片圖1實物圖2輸入密碼圖3密碼正確提示圖4修改密碼附錄2:部分源程序#include<reg52.h>//包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義#include"keyboard.h"#include"delay.h"#defineKeyPortP1unsignedcharKeyScan<void>//鍵盤掃描函數,使用行列反轉掃描法{unsignedcharcord_h,cord_l;//行列值中間變量KeyPort=0x0f;//行線輸出全為0cord_h=KeyPort&0x0f;//讀入列線值if<cord_h!=0x0f>//先檢測有無按鍵按下{DelayMs<10>;//去抖if<<KeyPort&0x0f>!=0x0f>{cord_h=KeyPort&0x0f;//讀入列線值KeyPort=cord_h|0xf0;//輸出當前列線值cord_l=KeyPort&0xf0;//讀入行線值while<<KeyPort&0xf0>!=0xf0>;//等待松開并輸出return<cord_h+cord_l>;//鍵盤最后組合碼值}}return<0xff>;//返回該值}unsignedcharKeyPro<void>//按鍵值處理函數,返回掃鍵值{switch<KeyScan<>>{case0x7e:return0;break;//0按下相應的鍵顯示相對應的碼值case0x7d:return1;break;//1case0x7b:return2;break;//2c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 激光跟蹤儀與D掃描技術考核試卷
- 疊拼別墅裝飾施工方案
- 比較分析2025年證券從業資格證考試試題及答案
- 2025年【河北省安全員A證】模擬考試題及答案
- 石油開采業的能源轉型與碳排放削減考核試卷
- 反不正當競爭考核試卷
- 2024年項目管理專業人士考試重要知識點試題及答案
- 屋面鋼模板施工方案
- 2025年關于證券從業資格證的深度探索試題及答案
- 珠寶首飾行業綠色發展策略考核試卷
- 隧道高空作業施工方案
- 雨季三防知識培訓
- 危險性較大的分部分項工程專項施工方案嚴重缺陷清單(試行)
- 2025年上半年第二次商務部國際貿易經濟合作研究院招聘7人重點基礎提升(共500題)附帶答案詳解
- 2025年陜西省土地工程建設集團有限責任公司招聘筆試參考題庫附帶答案詳解
- 第7課《不甘屈辱 奮勇抗爭》第1課時 虎門銷煙 課件 五年級道德與法治下冊 統編版
- DB13-T5742-2023醇基燃料使用安全規范
- 《慢性阻塞性肺疾病的健康宣教》課件
- 江蘇省蘇北四市(徐州、宿遷、淮安、連云港) 2025屆高三第一次調研考試物理試題(含答案)
- 2025年廣投資本管理有限公司招聘筆試參考題庫含答案解析
- 灌漿作業安全操作規程(3篇)
評論
0/150
提交評論