[畢業設計精品]基于C51單片機的電子密碼鎖課程設計_第1頁
[畢業設計精品]基于C51單片機的電子密碼鎖課程設計_第2頁
[畢業設計精品]基于C51單片機的電子密碼鎖課程設計_第3頁
[畢業設計精品]基于C51單片機的電子密碼鎖課程設計_第4頁
[畢業設計精品]基于C51單片機的電子密碼鎖課程設計_第5頁
已閱讀5頁,還剩24頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、10/11學年第二學期單片機控制系統設計與調試 課程設計任務書指導教師: 班級: 地點:機房、單片機實驗室課程設計題目:密碼鎖的設計一、 課程設計目的1.靈活運用單片機的基礎知識,依據課程設計內容,能夠完成從硬件電路圖設計,到pcb制版,再到軟件編程及系統調試實現系統功能,完成課程設計,加深對單片機基礎知識的理解,并靈活運用,將各門知識綜合應用。2.能夠上網查詢器件資料,培養對新知識新技術的獨立的學習能力和應用能力。3.獨立完成一個小的系統設計,從硬件設計到軟件設計,增強分析問題、解決問題的能力,為日后的畢業設計及科研工作奠定良好的基礎。二、 課程設計內容(包括技術指標)1. 主要設計內容:使

2、用數碼管顯示器來顯示密碼輸入的相關信息,通過10位數字按鍵(09)設置4位數字(09)密碼,2位功能按鍵a(輸入校驗密碼并驗證密碼)和b (設置新密碼),利用繼電器模擬電子門鎖作出是否開門以及報警等反應。2. 具體設計內容:上電時內定初始密碼為“0000”,紅色發光二極管點亮,綠色發光二極管熄滅,數碼管顯示器顯示“初始狀態”,“初始狀態”由設計者自行設計,但不可省略。功能按鍵a:實現設置新密碼功能,存儲新密碼并顯示,一旦設定新密碼,則初始密碼失效。功能按鍵b:實現輸入校驗密碼并驗證密碼功能,顯示校驗密碼并進行密碼比較。l 密碼輸入正確則繼電器啟動,并使紅色發光二極管熄滅,綠色發光二極管點亮,數

3、碼管顯示器提示“密碼正確”,“密碼正確”狀態的顯示內容由設計者自行設計,但不可省略,持續25s后繼電器關閉,綠色發光二極管熄滅,紅色發光二極管點亮;l 密碼輸入錯誤則持續紅色發光二極管點亮,綠色發光二極管熄滅狀態,蜂鳴器報警,數碼管顯示器提示“密碼錯誤”,“密碼錯誤”狀態的顯示內容由設計者自行設計,但不可省略,持續25s后蜂鳴器停止報警;l 校驗密碼連續輸入錯誤3次,則持續紅色發光二極管點亮,綠色發光二極管熄滅狀態,蜂鳴器報警,數碼管顯示器提示“密碼連續錯誤3次”,“密碼連續錯誤3次”狀態的顯示內容由設計者自行設計,但不可省略,持續25s后蜂鳴器停止報警,新密碼失效,恢復初始密碼使用。3. 設

4、計內容說明:設計必須實現“主要設計內容”的所有功能,但對于“具體設計內容”可做適當調整,密碼輸入錯誤3次環節可自行設計。此外,為了加強密碼鎖的嚴密性,可采取下述方案對“設置新密碼功能”環節進行加強,依據設計思路可作適當調整,此部分內容為附加內容。功能按鍵a:實現輸入校驗密碼并驗證密碼功能,顯示校驗密碼并進行密碼比較。l 密碼輸入正確:n 則繼電器啟動,并使紅色發光二極管熄滅,綠色發光二極管點亮,數碼管顯示器提示“密碼正確”,“密碼正確”狀態的顯示內容由設計者自行設計,但不可省略,若不設置新密碼,則持續58s后繼電器關閉,綠色發光二極管熄滅,紅色發光二極管點亮;n 若功能按鍵b按下:實現設置新密

5、碼功能,存儲新密碼并顯示,一旦設定新密碼,則初始密碼失效。但此功能必須以舊密碼輸入正確為前提。l 密碼輸入錯誤:n 校驗密碼連續輸入錯誤小于3次,則持續紅色發光二極管點亮,綠色發光二極管熄滅狀態,蜂鳴器報警,數碼管顯示器提示“密碼錯誤”,“密碼錯誤”狀態的顯示內容由設計者自行設計,但不可省略,持續25s后蜂鳴器停止報警;n 校驗密碼連續輸入錯誤3次,則持續紅色發光二極管點亮,綠色發光二極管熄滅狀態,蜂鳴器報警,數碼管顯示器提示“密碼連續錯誤3次”,“密碼連續錯誤3次”狀態的顯示內容由設計者自行設計,但不可省略,持續25s后蜂鳴器停止報警,新密碼失效,恢復初始密碼使用。三、 時間安排1. 布置任

6、務、查資料 1天2. 硬件電路圖設計及pcb制版 3天3. 硬件電路圖及pcb制版驗收 1天4軟件編程設計 3天5系統調試 3天6調試驗收 1天7完成設計報告 3天四、 基本要求1. 畫出硬件電路圖,完成pcb制版;2. 畫出軟件流程圖,編寫程序(c51語言/匯編語言);3. 完成系統調試;4. 提交設計報告,用a4打印。 目 錄1 課程設計題目12 課程設計目的及意義13 系統方案設計及確定23.1 系統方案的提出23.2 方案比較及確定34 系統硬件設計44.1 stc89c52最小系統設計44.1.1時鐘電路設計44.1.2復位電路設計54.2 鍵盤、顯示電路硬件設計64.2.1鍵盤電路

7、硬件設計64.2.2顯示電路硬件設計64.3 繼電器驅動電路及報警電路設計84.3.1 固態繼電器簡介84.3.2 固態繼電器驅動電路設計94.3.3 報警提示電路105 系統軟件設計105.1 主程序模塊125.2 密碼比較判斷模塊125.3 鍵盤掃描模塊125.4 修改密碼模塊135.5 數碼管液晶顯示模塊146 系統調試157 總結16參考文獻17附錄一18附錄二241 課程設計題目:密碼鎖利用單片機stc89c52設計一個密碼鎖,能夠使用數碼管顯示器來顯示密碼輸入的相關信息,通過10位數字按鍵(09)設置4位數字(09)密碼,2位功能按鍵a(輸入校驗密碼并驗證密碼)和b (設置新密碼)

8、,利用繼電器模擬電子門鎖作出是否開門以及報警等反應。2 課程設計目的及意義在單片機向著大容量、多功能、高性能、高速度、低電壓、低功耗及外圍電路內裝化的方向發展的時代,選擇一種性價比最優的芯片顯得尤為重要。在本次課程設計中,程序編寫可選匯編和c語言。而匯編效率高,對硬件的可操控性更強,體積小,但不易維護,可移植性很差;c語言效率比較低,硬件可操控性比較差,目標代碼體積大,但容易維護,可移植性很好。該系統用c語言編寫程序,與匯編語言相比具有更好的移植性和可讀性,便于修改和增減功能,故本次課程設計我選擇了c語言。通過對此次設計的理解和掌握,使我受益很多:1、熟悉掌握單片機的結構及工作原理,鍛煉獨立設

9、計、制作和調試單片機應用系統的軟硬件開發的過程和方法。2、通過mcs-51單片機應用系統的設計與編程應用,將理論知識和實際應用結合起來,加深對電子電路、電子元器件、印刷電路板等方面的知識,提高在軟件編程、排錯調試、焊接技術、相關設備的使用技能。掌握單片機的接口及外圍設備的特性,使用和控制方法。為以后設計和實現單片機應用系統打下良好的基礎。3、通過密碼鎖的設計將所學知識融會貫通,鍛煉獨立設計、制作和調試單片機應用系統的能力,領會單片機應用系統的軟件、硬件調試方法和習題研制開發過程,為進一步的動手實踐活動打下一定的基礎。4、這次課程設計時我翻閱了很多資料例如張毅剛主編的單片機原理及應用、高峰編的單

10、片微型計算機原理與接口技術等書籍,還從網上找了stc89c52、74ls244以及74ls06的資料。讓我在學習開發單片機應用系統時對芯片功能的學習有了更新的理解,這不僅需要電子技術方面要有數字電路和模擬電路等方面的理論基礎,還需要英語基礎。3 系統方案設計及確定3.1 系統方案的提出本次課程設計的密碼鎖電路主要由四個模塊組成:鍵盤輸入模塊、數據處理模塊、顯示控制模塊,繼電器驅動模塊和蜂鳴器報警模塊。方案一:以單片機為電子密碼鎖系統核心,使用4*4矩陣鍵盤作為數據輸入方式,驅動4位數碼管顯示器提示程序運行過程和開鎖的步驟,利用繼電器及蜂鳴器模擬電子門鎖作出是否開門以及報警等反應。圖1為單片機控

11、制密碼鎖的系統原理框圖。圖1 單片機控制密碼鎖的系統原理框圖方案二:以74ls112雙jk觸發器構成的數字邏輯電路控制方案,如圖2。 輸入按扭開關組輸入鎖存電路密碼存儲電路開鎖控制電路機械動作構件5秒定時電路20秒定時電路聲光指示電路圖2 數字邏輯控制方案電子密碼鎖原理框圖3.2 方案比較及確定 由于利用單片機靈活的編程設計和強大的i/o端口,及其控制的準確性,不但能實現基本的密碼鎖功能,還可以增添掉電存儲、聲光提示等功能,故選用方案一。cpu的選擇stc89c52系列單片機,高速、低功耗、新增在系統在應用可編程(isp,iap)功能,使不具有e2prom的單片機具有了e2prom的功能,可以

12、在線對現場歷史數據的存儲功能,適用于一些需經常改變數據的應用產品(如計費器、門禁系統等)及需遠距離改變設備參數的產品(遙控設備等)。采用stc89c52單片機設計的電子密碼鎖,利用內部e2prom資源,不需要外接程序存儲器就能完成修改密碼等多種功能,并且保密性高、成本低、簡單易行,符合住宅、部門辦公安全要求。isp在線編程功能,這個功能的優勢在于改寫單片機存儲器內的程序不需要把芯片從工作環境中剝離,是一個強大易用的功能。具有雙工uart串行通道。內部集成看門狗計時器,不再需要像at89c51那樣外接看門狗計時器單元電路鍵盤電路采用矩陣式鍵盤,顯示電路采用四位數碼管動態顯示方式,動態顯示相對于靜

13、態顯示有占用i/o口資源少的特點,恰好適合于本系統。方案中沒有采用鍵盤、顯示接口芯片8279實現鍵盤、顯示接口。由于本次課程設計所使用的鍵盤數量、顯示的方式及單片機的i/o口線使用情況等,采用前一種方式就足以能完成課程設計的要求,不必要多用一個芯片。根據本次課程設計的實際情況,兼顧經濟性、使用性、簡單易行、操作簡單等多方面因素,本次課程設計采用方案一來完成。4 系統硬件設計本次課程設計的密碼鎖電路主要由四個模塊組成:鍵盤輸入模塊、數據處理模塊、顯示控制模塊,繼電器驅動模塊和蜂鳴器報警模塊。通過單片機送給開鎖執行機構,電路驅動繼電器吸合,從而達到開鎖的目的。如圖3所示,為密碼鎖開鎖電路原理圖。當

14、用戶輸入的密碼正確時,單片機便輸出開門信號,送到繼電器驅動電路,然后驅動繼電器常開觸點閉合,達到開門的目的。本次設計中,繼電器選用固態繼電器,信息通過數碼管顯示,并利用蜂鳴器和發光二極管聲光指示。其中,綠發光二極管亮,表示開鎖;否則,紅發光二極管亮,表示密碼輸入錯誤并開啟報警電路。開鎖驅動電路stc89c52單片機密碼正確鎖定開鎖是否圖3 密碼鎖開鎖電路原理圖4.1 stc89c52最小系統設計 單片機最小系統包括cpu、時鐘電路和復位電路等三部分。下面則分別介紹這三部分的選取。4.1.1時鐘電路設計時鐘電路用于產生單片機工作時所必需的時鐘控制信號,常用的時鐘電路有內部時鐘方式和外部時鐘方式。

15、內部時鐘方式電路外接兩個電容和一個晶振,根據振蕩頻率要求的不同選用不同阻值的電容和晶振。時鐘電路中的晶振震蕩頻率范圍通常是1.2mhz12mhz,at89s51常選擇6mhz或12mhz的石英晶體,為消除誤差,得到準確的波特率,本設計選擇震蕩頻率為11.0592mhz的石英晶,時鐘電路如圖4所示。 圖4時鐘電路4.1.2復位電路設計復位是單片機的初始化操作,只需在單片機的復位引腳加上大于2個機器周期的高電平就可使單片機復位,當程序運行出錯或操作進入死循環狀態可通過復位重新啟動程序。mcs-51的復位是由外部的復位電路來實現的,stc89c52也不例外,復位電路通常采用上電自動復位和按鈕復位兩種

16、方式,為方便復位操作,本文采用按鍵電平復位,電路如圖5所示。其中c取10uf,r2取10k,復位電路如圖5所示。 圖5復位電路4.2 鍵盤、顯示電路硬件設計4.2.1鍵盤電路硬件設計鍵盤是系統中的手動控制部分,所以鍵盤的設計就顯得尤為的重要。每一條水平(行線)與垂直線(列線)的交叉處不相通,而是通過一個按鍵來連通,利用這種行列式矩陣結構只需要m條行線和n條列線,即可組成具有mn個按鍵的鍵盤。由于本設計中要求使用16個按鍵輸入,為減少鍵盤與單片機接口時所占用的i/o線的數目,故使用矩陣鍵盤。本設計中,矩陣鍵盤列線和單片機p2.0-p2.3相連,行線與單片機p2.4-p2.7相連。鍵盤掃描采用行掃

17、描法,即依次置行線中的每一行為低電平,其余均為高電平,掃描列線電平狀態,為低電平即表示該鍵按下。鍵盤電路硬件連接圖如圖6所示。 圖6 矩陣按鍵4.2.2顯示電路硬件設計顯示是系統的輸出部分,用于觀察當前的輸入狀態。顯示電路采用三極管對位碼進行驅動。led數碼管有共陽和共陰兩種,把這些led發光二極管的正極接到一塊(一般是拼成一個8字加一個小數點)而作為一個引腳,就叫共陽的,相反的,就叫共陰的,那么應用時這個腳就分別的接vcc和gnd。再把多個這樣的8字裝在一起就成了多位的數碼管了 。 圖7 共陽、共陰數碼管顯示方式有靜態顯示和動態顯示兩種顯示方式。靜態顯示時,數據是分開送到每一位led上的;而

18、動態顯示則是數據是送到每一個led上,再根據位選線來確定是哪一位led被顯示。靜態顯示亮度很高,但口線占用較多;動態顯示占用口線數目較少,適合用在顯示位數較多的場合,但顯示位數的增多,將占用大量的cpu時間。本次設計選用動態顯示。顯示電路硬件連接圖如圖8、圖9所示。 330555555 圖8 數碼管驅動電路 圖9 四位數碼管4.3 繼電器驅動電路及報警電路設計4.3.1固態繼電器簡介固態繼電器(solid state relay,縮寫ssr),是由微電子電路,分立電子器件,電力電子功率器件組成的無觸點開關。用隔離器件實現了控制端與負載端的隔離。固態繼電器的輸入端用微小的控制信號,達到直接驅動大

19、電流負載。固態繼電器有三部分組成:輸入電路,隔離(耦合)和輸出電路。按輸入電壓的不同類別,輸入電路可分為直流輸入電路,交流輸入電路和交直流輸入電路三種。有些輸入控制電路還具有與ttl/cmos兼容,正負邏輯控制和反相等功能。固態繼電器的輸入與輸出電路的隔離和耦合方式有光電耦合和變壓器耦合兩種。固態繼電器的輸出電路也可分為直流輸出電路,交流輸出電路和交直流輸出電路等形式。交流輸出時,通常使用兩個可控硅或一個雙向可控硅,直流輸出時可使用雙極性器件或功率場效應管。1、固態繼電器的優點(1)高壽命,高可靠:固態繼電器沒有機械零部件,有固體器件完成觸點功能,由于沒有運動的零部件,因此能在高沖擊,振動的環

20、境下工作,由于組成固態繼電器的元器件的固有特性,決定了固態繼電器的壽命長,可靠性高。 (2) 靈敏度高,控制功率小,電磁兼容性好:固態繼電器的輸入電壓范圍較寬,驅動功率低,可與大多數邏輯集成電路兼容不需加緩沖器或驅動器。(3) 快速轉換:固態繼電器因為采用固體器件,所以切換速度可從幾毫秒至幾微妙。(4) 電磁干擾小:固態繼電器沒有輸入“線圈”,沒有觸點燃弧和回跳,因而減少了電磁干擾。大多數交流輸出固態繼電器是一個零電壓開關,在零電壓處導通,零電流處關斷,減少了電流波形的突然中斷,從而減少了開關瞬態效應。 2、固態繼電器的缺點(1)導通后的管壓降大,可控硅或雙相控硅的正向降壓可達12v,大功率晶

21、體管的飽和壓降也在12v之間,一般功率場效應管的導通電阻也較機械觸點的接觸電阻大。 (2) 半導體器件關斷后仍可有數微安至數毫安的漏電流,因此不能實現理想的電隔離。(3) 由于管壓降大,導通后的功耗和發熱量也大,大功率固態繼電器的體積遠遠大于同容量的電磁繼電器,成本也較高。(4) 電子元器件的溫度特性和電子線路的抗干擾能力較差,耐輻射能力也較差,如不采取有效措施,則工作可靠性低。(5) 固態繼電器對過載有較大的敏感性,必須用快速熔斷器或rc阻尼電路對其進行過載保護。固態繼電器的負載與環境溫度明顯有關,溫度升高,負載能力將迅速下降。(6) 主要不足是存在通態壓降(需相應散熱措施),有斷態漏電流,

22、交直流不能通用,觸點組數少,另外過電流、過電壓及電壓上升率、電流上升率等指標差。4.3.2 固態繼電器驅動電路設計當用戶輸入的密碼正確時,單片機便輸出開門信號,送到繼電器驅動電路,然后驅動繼電器常開觸點閉合,綠發光二極管亮,表示開鎖;否則,紅發光二極管亮,表示密碼輸入錯誤。硬件電路如圖10所示 圖10 固態繼電器驅動電路4.3.3 報警提示電路報警提示電路采用小蜂鳴器提示。蜂鳴器能夠根據脈沖信號,以及信號的頻率發出各種不同的聲音,這樣可以根據系統要求在密碼出入正確和密碼輸入錯誤時發出不同的聲音提示,已達到報警的要求。蜂鳴器電路,如圖11所示。 圖11 報警電路5 系統軟件設計在系統設計中,除了

23、硬件設計之外,軟件設計也是很重要的,它是系統工作的指揮者,因此系統軟件設計時要遵循結構合理、操作性能好、具有一定的保護措施、兼容性好的設計原則來開發設計。密碼鎖系統軟件設計主要包括主程序模塊、密碼比較判斷模塊、鍵盤掃描模塊、修改密碼模塊、數碼管顯示模塊等及按鍵檢測模塊。系統程序流程如圖12所示。開始系統初始化顯示主界面按鍵檢測 否讀入鍵值是a鍵是否按下 否 是判斷密碼對否 否是報警,紅燈亮開鎖,綠燈亮b鍵是否按下 否 是設置新密碼a鍵是否按下 否新密碼設置完成是圖12 系統程序流程圖5.1 主程序模塊主程序主要用于定義全局變量,給全局變量賦初值,啟動定時器,為整個程序提供數據;檢測按鍵;調用顯

24、示等功能。5.2 密碼比較判斷模塊該模塊的功能是將鍵盤輸入的密碼利用if語句與設定的密碼進行逐個比較,若密碼完全正確則開鎖;若不正確,則開啟報警電路,可重新輸入密碼。其密碼輸入和比較判決流程圖如圖13所示。輸入密碼核對鍵盤鎖定,開啟報警電路開鎖燈亮,可密碼修改ny復位圖13 密碼輸入和比較判決流程圖5.3 鍵盤掃描模塊鍵盤使用矩陣式鍵盤,由行和列組成,cpu對所有鍵盤進行監視,從而實現逐列掃描鍵盤確定被按鍵的具體位置、判斷鍵盤上有無鍵按下、消除去抖動、判斷閉合的鍵是否釋放等功能。如圖14所示,為鍵盤掃描流程圖。否否是是是否開始延時去抖動計算輸入鍵值讀入鍵值有按鍵輸入入?有鍵按下?有鍵按下?返回

25、nnyy圖14 鍵盤掃描流程圖5.4 修改密碼模塊在密碼輸入正確情況下,可以按下“重置密碼”對密碼進行重新設置,每設定一位就將密碼存儲起來,當設置4位密碼完畢后,系統將自動跳到程序開始,調用新設置的密碼。圖15為修改密碼流程圖。圖15 修改密碼流程圖5.5 數碼管液晶顯示模塊此模塊包括數碼管初始化、動態掃描等。在顯示之前,我們編好了段選表09,通過查表來顯示,由于本次設計采用動態顯示,所以先送段選給每一位,然后給相應的數碼管送位選,延時1ms,再給下一位送段選,送位選,延時1ms,以此類推,讓4位數碼管顯示不同的數字,利用人的視覺暫留,使我們看到4位數碼管的動態顯示效果。顯示子程序流程圖如圖1

26、5所示。 圖15 顯示子程序流程圖6 系統調試在本次軟件調試中,我們使用的是stc_isp_v481c51單片機下載工具和keil uvision2軟件,keil uvision2是美國keil software公司出品的51系列兼容單片機c語言軟件開發系統,使用接近于傳統c語言的語法來開發,與匯編相比,c語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用,而且大大的提高了工作效率和項目開發周期,他還能嵌入匯編,您可以在關鍵的位置嵌入,使程序達到接近于匯編的工作效率。keil c51軟件提供豐富的庫函數和功能強大的集成開發調試工具,全windows界面,使您能在很短的時間內就能

27、學會使用keil c51來開發您的單片機應用程序 。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到keil c51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。在開發大型軟件時更能體現高級語言的優勢。7 總 結經過三周的緊張設計,終于順利完成了設計任務。本次課程設計主要是針對密碼鎖系統做了詳細介紹,以stc89c52為核心,并通過調試運行可以實現數碼管顯示器顯示密碼輸入的相關信息,通過10位數字按鍵(09)設置4位數字(09)密碼,實現2位功能按鍵a(輸入校驗密碼并驗證密碼)和b (設置新密碼),利用繼電器模擬電子門鎖作出是否開門以及報警等反應。通過課程設計讓

28、我對單片機系統有了較詳細的了解,而且觸及到與其相關的很多新知識,而且隨著電子技術的發展簡易數字電壓表也會越來越完善,作為大學生的我們應該跟上時代的步伐,時刻關注形勢變化,不斷充實更新自己的知識。在設計中既應用到了基礎知識,也用到了專業知識,它是對三年來所學知識的綜合考察。最重要的是我通過親自設計,親自繪制原理圖,印制電路板以及系統調試培養了我的耐心和細心,這對我以后的工作和學習有很大的幫助。參考文獻1、張志良.單片機學習指導及習題解答. 機械工業出版社,2008.2、張偉.單片機原理及應用. 機械工業出版社,2009.3、孫俊逸 盛秋林. 張錚編著.單片機原理及應用.清華大學出版社.4、張毅剛

29、主編. 單片機原理及應用. 北京: 高等教育出版社,2010.5.5、黃仁欣.單片機原理及應用技術. 北京: 清華大學出版社, 2005.附錄一:程序清單#include #define dataport p0 /定義數據端口數碼管顯示#define keyport p2/按鍵掃描sbit dig1=p31;sbit dig2=p32; sbit dig3=p33;sbit dig4=p34;bit key_flag;bit flag;bit clr_flag;sbit p23=p23;/繼電器控制端sbit p30=p30;/蜂鳴器控制端unsigned char codedofly_dua

30、nma=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e;/ 顯示段碼值0funsigned char tempdata4; /存儲顯示值的全局變量unsigned char time_flag;unsigned char delay_count1;unsigned char delay_count2;unsigned char change_flag;unsigned char c_flag;void delay(unsigned int z);void display(void)

31、;/數碼管顯示函數unsigned char keyscan(void);/鍵盤掃描void init_timer0(void);/定時器初始化void init_timer1(void);void main (void)unsigned char key,i,j,count; unsigned char num; unsigned char temp4;unsigned char password4=0,0,0,0;init_timer0();init_timer1();i=0;num=0;time_flag=0;count=0;clr_flag=0;change_flag=0;key=0;

32、c_flag=0;delay_count1=0;delay_count2=0;for(j=0;j4;j+) tempdataj=0xff; tempdata0=0xbf; / tempdata1=0xbf; /tempdata2=0xbf; / tempdata3=0xbf;/while (1) /主循環 key_flag=0; key=keyscan(); if(delay_count1!=0)p23=1; while(key_flag) if(clr_flag=1)clr_flag=0;for(j=0;j4;j+) tempdataj=0xbf; switch(key) case 0x11

33、:num=0;break; case 0x21:num=1;break; case 0x41:num=2;break; case 0x81:num=3;break; case 0x12:num=4;break; case 0x22:num=5;break; case 0x42:num=6;break; case 0x82:num=7;break; case 0x14:num=8;break; case 0x24:num=9;break; case 0x44:num=10;break; case 0x84:num=11;break; default:break; key_flag=0;if(ch

34、ange_flag=1&num=11&i=0)c_flag=1;if(change_flag=1&c_flag=1) if( i0)passwordi-1=num;tempdatai-1=dofly_duanmanum;if(i=5&num=10) for(j=0;j4;j+) tempdataj=0xbf; i+;if(i=6)change_flag=0;c_flag=0;i=0;clr_flag=1;else if(i4) tempi=num;tempdatai=0x89;/把按鍵值輸入到顯示數組中 if(i=4&num=10)flag=1;/先把比較位置1for(j=0;j4;j+) flag=flag&(tempj=passwordj);for(j=0;j0;x-)for(y=100;y0;y-); void display(void)dataport=0xff; /清空數據,防止有交替重影dig1=0;dig2=1;dig3=1;dig4=1;dataport=tempdata0; /取顯示數據,段碼0delay(2);dataport=0xff; /清空數據,防止有交替重影dig1=1;dig2=0;dig3=1;dig4=1;dataport=tempdata1; /取顯示數據,段碼1

溫馨提示

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

評論

0/150

提交評論