電子鐘、密碼鎖設計_第1頁
電子鐘、密碼鎖設計_第2頁
電子鐘、密碼鎖設計_第3頁
電子鐘、密碼鎖設計_第4頁
電子鐘、密碼鎖設計_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機課程設計報告設計題目 :電子鐘、密碼鎖學生姓名 :專 業(yè) :班 級 :學 號 :同組人 :指導老師 :摘 要數(shù)字電子時鐘在當代繁忙的工作與生活中,時間與我們每一個人都有非常密切的關系,每個人都受到時間的影響。為了更好的利用我們自己的時間,我們必須對時間有一個度量,因此產(chǎn)生了鐘表。鐘表的發(fā)展是非常迅速的,從剛開始的機械式鐘表到現(xiàn)在普遍用到的數(shù)字式鐘表. 即使現(xiàn)在鐘表千奇百怪,但是它們都只是完成一種功能計時功能,只是工作原理不同而已.本次課程設計之一-電子時鐘設計,基于D8255AC芯片和LED數(shù)碼管為核心,輔以必要的電路,并以匯編為程序設計為基礎,構成一個簡單的單片機數(shù)字電子時鐘。由5.0

2、V直流電源供電,通過數(shù)碼管能夠準確顯示時間,時、分、秒,并且可以通過鍵盤進行校時。本報告主要介紹了數(shù)字電子時鐘的軟、硬件部分及在設計調試過程中遇到的問題及解決方案。關鍵字:D8255AC芯片 數(shù)字電子時鐘 校時簡易電子計算器隨著社會的發(fā)展,計算器的用途越來越廣泛,不斷可以進行簡單的加、減、乘、除,還可以用來做所有簡單的計算,一些復雜的科學計算,單位換算,以及提供各種物理常數(shù)。本次課程設計之二的選做實驗,作者選擇的就是簡易電子計算器的設計。主要利用鍵輸入數(shù)據(jù)和運算符號,用LED顯示運算過程和結果,實現(xiàn)簡單的加、減運算。關鍵字:電子計算器 LED 加、減運算目錄前言第一章 數(shù)字電子時鐘§

3、1.1.設計要求§1.2設計思路.§1.3設計框圖§1.4硬件設計原理圖及說明§1.5軟件設計1.5.1.設計流程圖1.5.2. 調試過程與說明§1.6小結第二章 簡易計算器§2.1.設計要求§2.2.設計思路.§2.3.設計框圖§2.4. 硬件設計原理圖及說明§2.5.軟件設計2.5.1.設計流程圖2.5.2.程序模塊設計2.5.3調試過程與說明§2.6.小結第三章 總結與體會參考文獻附錄一 數(shù)字電子時鐘程序清單附錄二 簡易計算器程序清單前言課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),

4、提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學生實際工作能力的具體訓練和考察過程.隨著科學技術發(fā)展的日新日異,單片機已經(jīng)成為當今計算機應用中空前活躍的領域, 在生活中可以說得是無處不在。因此作為二十一世紀的大學來說掌握單片機的開發(fā)技術是十分重要的。單片機是智能儀器、計算機外部設備、生產(chǎn)過程控制的控制核心。單片機已經(jīng)是一項十分成熟的技術,因其具有小型化、廉價、簡單可靠和穩(wěn)定性好等優(yōu)點,在工業(yè)測控、電子儀器、汽車電子系統(tǒng)、日用家電、電子通信、辦公自動化設備和尖端武器(如雷達、火炮的控制系統(tǒng))等方面都有廣泛的應用。在本次設計中使用的是STC89C52單片機,它是一種新型的價格便宜而性能優(yōu)良

5、的單片機系統(tǒng),結構簡單,布局合理,適用于多種程序功能調試和模擬。本次設計用單片機開發(fā)系統(tǒng)來模擬密碼鎖的各種功能,在開發(fā)系統(tǒng)中輸入編譯好的程序,使用其鍵盤作為數(shù)字輸入鍵和各功能鍵.通過這次課程設計,進一步掌握了如何利用接口電路進行硬件系統(tǒng)的設計,如何進行軟件的設計,同時增強了學習興趣及動手能力。在報告中,詳細地記述了整個設計過程的各個環(huán)節(jié),其中的不足歡迎師生們指出或給予更好的建議。第一章 數(shù)字電子時鐘§1.1設計任務1.1.1設計要求用單片機開發(fā)系統(tǒng),設計一個電子時鐘,從左到右依次以時分秒的順序顯示時間。并且可以在程序代碼中修改時間初始值。提高要求:1、可以加入閃爍顯示,每過一秒使時和

6、分,分和秒間的兩點閃爍一次。2、應用鍵盤掃描程序,能隨時在鍵盤上修改時鐘的初始值。1.1.1 設計思路本課題的數(shù)字電子時鐘設計采用單片機定時器產(chǎn)生100MS的時,并開定時中斷。設計出一個1S的定時程序。每進入一個定時中斷,在其中斷服務程序中計算分鐘,時鐘、鈔鐘。預先資源定義:時分秒的存放空間§1.2設計框圖及簡要說明主程序數(shù)碼動態(tài)掃描模塊當前時間計時模塊當前時間調整模塊數(shù)值轉換模塊計時單元由單片機內(nèi)部的定時器來實現(xiàn);時間顯示采用LED數(shù)碼管動態(tài)掃描方式;LED數(shù)碼管的段碼輸入,由并行口P1低四位輸入。§1.3硬件設計原理圖及說明一、 原理圖圖 1.3.1數(shù)字電子時鐘設計原理

7、圖二、應用原理該原理圖以8255為接口芯片。8255是intel公司生產(chǎn)的可編程輸入輸出接口芯片,它是具有3個8位的并行I/O端口,具有三種工作方式,被廣泛地使用于單片機的并行I/O端口。 工作方式0:基本輸入輸出方式 工作方式1:選通輸入輸出方式 工作方式2:雙向傳送方式8255的讀/寫控制邏輯電路接受CPU發(fā)來的控制口號RD、WR、RESET和地址信號A1A0。然后根據(jù)命令端口,控制信號的要求,將端口的數(shù)據(jù)讀出選信CPU或者將CPU送來的數(shù)據(jù)寫入端口,各端口的工作狀態(tài)。如表1所示。表1-1§1.4軟件設計1.4.1程序設計流程圖(主程序、中斷服務子程序及修改時間)一、主程序框圖開

8、 始設計初始化初始化顯示(調顯)調鍵盤掃描子程序有鍵按下否修改初值按鍵錯誤開始計時定時中斷開定時中斷顯示錯誤修改鍵否? 返 回 調鍵掃 調修改子程序圖1.4.1 數(shù)字電子時鐘主程序流程圖二、中斷服務子程序框圖中斷入口中斷保護秒+1調顯示程序秒>59秒清零送顯緩分+1分清零送顯緩時+1時清零送顯緩時>23時的數(shù)量存進顯緩秒的數(shù)量存進顯緩分的數(shù)量存進顯緩分>59 中斷返回圖1.4.2 數(shù)字電子時鐘中斷服務子程序流程圖三、修改時間子程序開 始設計初始化初始化顯示(調顯)調鍵盤掃描子程序有鍵按下否修改初值按鍵錯誤開始計時定時中斷開定時中斷顯示錯誤修改鍵否? 返 回 調鍵掃 調修改子程

9、序圖1.4.3 數(shù)字電子時鐘修改時間子程序流程圖1.4.2調試過程與說明在調試數(shù)字電子時鐘程序時出現(xiàn)了數(shù)碼管所顯示時間重疊模糊的情況。通過對程序代碼和對數(shù)碼管顯示原理的分析,得出了出現(xiàn)上述情況的原因是由于8個數(shù)碼管顯示的數(shù)碼變化速度很快,受人眼視覺暫留的影響,人眼無法分辨前后兩次所顯示的數(shù)碼。為解決這個問題所采取的措施是,在每顯示一個數(shù)碼管的內(nèi)容后加一個延遲程序來減緩所顯示數(shù)碼的變換速度。改進后再調試程序時8個數(shù)碼管所顯示的時間十分清晰。§ 1.5小結在本次課程設計中遇到的最大的困難是如何利用軟、硬件配合的方式產(chǎn)生中斷,對中斷向量表的裝載還比較模糊,對中斷的初始化、具體設置、中斷返回

10、還不是很清楚,程序設計一度陷入停滯狀態(tài),最后在指導老師和同學們的幫助下,作者這個小組一起共同完成了該實驗,實現(xiàn)了數(shù)字電子時鐘的基本功能。第二章 簡易電子計算器§ 2.1 設計要求設計一個可以進行簡易加減運算的計算器,要求:1、 鍵輸入數(shù)和運算符號;2、 LED顯示運算過程和結果(十進制數(shù));3、 有清零和復位功能; 提高要求能顯示位輸入和位輸出。§ 2.2 設計思路顯示設備采用八片七段共陰極LED顯示器,共設置16 個鍵,其中數(shù)字鍵09 共十個,接下來依次是加號鍵、減號鍵、等于號鍵、清除鍵。利用C52的定時器中斷以給定的時間間隔掃描鍵盤,檢測出鍵盤輸入的信號,然后送至單片機

11、進行處理,完成簡單的加減的計算器功能,然后將結果送至LED的顯示器,顯示輸出結果§2.3設計框圖及簡要說明§2.4硬件設計原理圖及說明由于本次課程設計以軟件設計部分為主,簡易電子計算器是繼數(shù)字電子時鐘的訓練和鞏固。所以在應用硬件方面的原理和設計和數(shù)字電子時鐘相同。詳細工作原理請見第一章1.3節(jié)硬件設計原理圖及說明§2.5.軟件設計2.5.1程序設計流程圖開 始初始化提示輸入一個數(shù)調鍵盤子程序保存該數(shù)據(jù)提示輸入另一個數(shù)鍵盤子程序保存該數(shù)據(jù)提示輸入運算符加法子程序減法子程序判斷運算符類型圖2.5.1 簡易電子計算器程序流程圖2.5.2程序模塊設計1、主程序的設計主程序

12、主要是用來進行初始化的,調用自檢程序,清空各個標志位,清空緩存區(qū),給定定時器0工作方式。在等待定時器0中斷時主程序在以下程序段內(nèi)循環(huán): LP1: MOV PCON,#01HSJMP LP12、中斷模塊的程序設計進入定時器0的中斷程序后,首先重新付初值,然后調用讀鍵程序,如果有鍵按下,則判斷按鍵是否與上次按鍵相同,如果相同則判斷按鍵相應位是否為一,如果不為一,說明這不是持續(xù)按鍵導致的按鍵相應,并且進行相應的程序。如果不是則退出中斷程序。3、顯示模塊的程序設計由于使用的是靜態(tài)顯示,故先要對SCON進行相關設置,讓串口工作在方式0下,使用指令MOV SCON,#00H就可以了。首先從高位開始進行滅零

13、顯示,并將最后一個滅零的位,標志為負號位,然后判斷負數(shù)標志位是否為一,是則將標志為負號位的送出顯示負號(筆形碼0FEH),否則直接送出顯示2.5.3 調試過程與說明在上機實踐中,作者發(fā)現(xiàn)運算結果與實際結果不相符合,經(jīng)過單步運行發(fā)現(xiàn),原來是調用BCD碼轉二進制碼子程序錯誤,于是作者調用成了二進制轉BCD碼子程序,原因是因為兩個子程序的標號很接近,一不小心就會調用錯誤,說明了作為軟件編程人員是不能粗心大意的,一個程序的質量的高低與你細心與否有著一定的聯(lián)系。在編程時,充分使用了結構化的思想,這樣程序檢查起來也比較方便,調試時也給了我很大方便,只要一個模塊一個模塊進行調適就可以了,充分體現(xiàn)了結構化編程

14、的優(yōu)勢。一開始,設計只支持正整數(shù)的運算,并沒有加入負數(shù)運算,因為時間問題,只是大概想了思路,并沒實現(xiàn)。最后在班上同學的幫助下。終于實現(xiàn)了計算器的基本功能。§2.6 小結由于簡易電子計算器是繼數(shù)字電子時鐘的練習和鞏固,大多數(shù)模塊都已經(jīng)熟悉。雖然在編程的過程中遇到了一些問題,但在同組人的共同努力下。完成了本次課程設計的基本要求第三章 總結與體會經(jīng)過這次單片機專業(yè)課程設計,訓練了作者的動手能力和理論實踐相結合的能力,從中還體會到了團隊的合作精神,因為一個人的能力畢竟有限,惟有善于合作的團隊才能發(fā)揮出最大的能量。在這次課程設計中,作者真正體會到了合作的重要性,作者這個班級在這次程序設計中總在

15、一起,從要實現(xiàn)的功能到流程圖的繪制,從程序的編寫到程序的檢查,從程序的調試到實驗報告的寫作,其間每一個過程都凝聚了我們班級的力量。在遇到棘手的問題時,大家總是一起討論,一起把問題解決;在作者遇到不很明白的程序時,是同學們耐心地幫助講解;在面對有錯的程序不知所措時,也是同學們幫助作者一步步地調試,耐心的指導,直至程序能正常運行??偟膩碚f,這次單片機課程設計對我們來說是很有意義的,以往在老師講課時不是很明白的問題在這次課程設計中通過大家一起學習,一起動手,很多問題都迎刃而解。而且加強了作者班級同學之間的凝聚力參考文獻1 于海生微型計算機控制技術M 清華大學出版社1999-62 孫涵芳MCS-51系

16、列單片機原理及應用M 北京航空航天大學出版社1996-43 黃正謹綜合電子設計與實踐M 東南大學出版社2002-34 楊欣等電子設計從零開始M 清華大學出版社2005-10附錄一:數(shù)字電子時鐘程序清單DEDA EQU 33H ;50MS記數(shù)常數(shù),滿200次為1S(T0)NUM EQU 34H ;0.3S記數(shù)常數(shù),滿6次為0.3S(T1)SEC EQU 30H ;秒數(shù)據(jù)存儲區(qū)MIN EQU 31H ;分數(shù)據(jù)存儲區(qū)HOU EQU 32H ;時數(shù)據(jù)存儲區(qū)SEC0 EQU 40H ;秒顯緩區(qū)低位SEC1 EQU 41H ;秒顯緩區(qū)高位MIN0 EQU 42H ;分顯緩區(qū)低位MIN1 EQU 43H ;

17、分顯緩區(qū)高位HOU0 EQU 44H ;時顯緩區(qū)低位HOU1 EQU 45H ;時顯緩區(qū)高位SSEC0 EQU 60H ;秒顯緩區(qū)低位字型碼SSEC1 EQU 61H ;秒顯緩區(qū)高位字型碼SMIN0 EQU 62H ;分顯緩區(qū)低位字型碼SMIN1 EQU 63H ;分顯緩區(qū)高位字型碼SHOU0 EQU 64H ;時顯緩區(qū)低位字型碼SHOU1 EQU 65H ;時顯緩區(qū)高位字型碼GW BIT 06H ;個位標志SW BIT 07H ;十位標志HAL EQU 47HFUNCKEY EQU 0E7HHOUKEY EQU 0C7HMINKEY EQU 077HSECKEY EQU 87HKEY EQU

18、 52H;-ORG 0000HLJMP MAINORG 000BHLJMP INTT0 ;T0中斷程序ORG 001BH ;定時器T1中斷程序入口LJMP INTT1 ;跳至INTT1執(zhí)行;- ;主程序;- MAIN: MOV SEC,#0MOV HOU,#23MOV MIN,#59MOV DEDA,#00HMOV NUM,#06H ; 0.3秒定時用初值MOV SP,#0F0HMOV TMOD,#11H ;定時器0為方式1MOV TH0,#50H ;賦初值MOV TL0,#0C3HMOV TL1,#50H ;裝定時器T1定時初值MOV TH1,#0C3HSETB TR0 ;啟動T0MOV I

19、E,#82HLCALL ROLLMOV SEC, #0MOV HOU, #23MOV MIN, #59S: LCALL DISPLCALL KEY_SCAN ;鍵掃LCALL DISPSJMP S;- ;顯示程序;- DISP:MOV A, SECMOV B,#10 ;S轉換送顯緩區(qū)DIV ABMOV SEC0,BMOV SEC1,AMOV A, MINMOV B,#10 ;MIN轉換送顯緩區(qū)DIV ABMOV MIN0,BMOV MIN1,AMOV A, HOUMOV B,#10 ;H轉換送顯緩區(qū) DIV ABMOV HOU0,BMOV HOU1,AMOV R5 ,#6MOV R0,#40H

20、MOV R1 ,#60HLOOP:MOV A,R0MOV DPTR ,#TAB;MOVC A,A+DPTRMOV R1,AINC R0INC R1DJNZ R5, LOOPJBC SW ,LOPP0MOV 59H,#00H; ""MOV 58H,#00H; ""SJMP DISP0LOPP0:MOV 59H,#09H; "-"MOV 58H,#09H; "-"DISP0:MOV A,#80H;寫8255顯示狀態(tài)字MOV DPTR,#0A003HMOVX DPTR,AMOV A,#0FEHMOV DPTR,#0A00

21、1H;輸出片選信號MOVX DPTR,AMOV A,SHOU1 ;HOURHMOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0FDHMOV DPTR,#0A001H;輸出片選信號MOVX DPTR,AMOV A,SHOU0 ;HOURLMOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0FBHMOV DPTR,#0A001H;輸出片選信號 MOVX DPTR,AMOV A,58H ;"-"MOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0F7HM

22、OV DPTR,#0A001H;輸出片選信號 MOVX DPTR,AMOV A,SMIN1 ;MINATEH MOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0EFHMOV DPTR,#0A001H;輸出片選信號 MOVX DPTR,AMOV A,SMIN0 ;MINSTEL MOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#0DFHMOV DPTR,#0A001H;輸出片選信號 MOVX DPTR,AMOV A,59H ;"-"MOV DPTR,#0A000HMOVX DPTR,ALCA

23、LL DE10MSMOV A,#0BFHMOV DPTR,#0A001H;輸出片選信號 MOVX DPTR,AMOV A,SSEC1 ;SECONDH MOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSMOV A,#7FHMOV DPTR,#0A001H;輸出片選信號 MOVX DPTR,AMOV A,SSEC0 ;SECONDL MOV DPTR,#0A000HMOVX DPTR,ALCALL DE10MSRETDELAY:PUSH 02HDELAY1:PUSH 02HDELAY2:PUSH 02HDELAY3:DJNZ R2,DELAY3POP 02HDJNZ

24、R2,DELAY2POP 02HDJNZ R2 ,DELAY1POP 02HDJNZ R2,DELAYRETDE10MS: ;延時子程序DL1: MOV R7,#14H ;DL2: MOV R6,#17HDL3:DJNZ R6,DL3DJNZ R7,DL2RETTAB: ;共陰0-9字行碼DB 3FH ;0DB 06H ;1DB 5BH ;2DB 4FH ;3DB 66H ;4DB 6DH ;5DB 7DH ;6DB 07H ;7DB 7FH ;8DB 6FH ;9DB 00H ;熄滅符SEG:;- ;鍵盤掃描程序;- KEY_SCAN:MOV DPTR,#0A003H;設置狀態(tài)字MOV A,

25、#89HMOVX DPTR,ALP51:MOV DPTR,#0A001H;設置端口BMOV A,#00HMOVX DPTR,AMOV DPTR,#0A002H MOVX A,DPTR ANL A,#0FHCJNE A,#0FH,XD AJMP OVERXD: MOV R7,#80DEL1: MOV R6,#123 DEL2: DJNZ R6,DEL2 DJNZ R7,DEL1 MOVX A,DPTR ANL A,#0FHCJNE A,#0FH,JKEY AJMP LP51MOV R3,#4MOV A,#0FEHJKEY: MOV DPTR,#0A001H MOVX DPTR,A MOV R5,

26、AMOV DPTR,#0A002H MOVX A,DPTR ANL A,#0FH MOV R4,ACJNE A,#0FH,XD1 AJMP LP52 ;XUNHUAN XD1: MOV R7,#80 DEL11: MOV R6,#123 DEL22: DJNZ R6,DEL22 DJNZ R7,DEL11 MOVX A,DPTR ANL A,#0FHXRL A,R4JNZ LP52MOVX A,DPTR ANL A,#0FHXRL A,#0FHJNZ OVERMOV A,R5ANL A,#0FHSWAP AADD A,R4MOV KEY,AAJMP JUSTLP52: DJNZ R3,LP53

27、SJMP OVERLP53: MOV A,R5 ;片選信號移位RL AAJMP JKEYOVER:RETOVER1:CALL JUSTRET;- ;調整子程序;- JUST:MOV A,KEYCJNE A,HOUKEY ,J1INC HOUMOV A,HOUCJNE A,#24,JU1MOV HOU,#0JU1:LCALL DISPRETJ1:MOV A,KEYCJNE A,MINKEY ,J2INC MINMOV A,MINCJNE A,#60,JU2MOV MIN,#00HJU2:LCALL DISPRETJ2:MOV A,KEYCJNE A,SECKEY ,J3INC SECMOV A,

28、SECCJNE A,#60,JU3MOV SEC,#00HJU3:LCALL DISPJ3:RETDEY:DEL34: MOV R0,#10 ;延時0.65SDEL33: MOV R7,#0FH ;判斷按鍵是否抬起,不抬起放棄此鍵 MOV R6,#0FHDJNZ R6,$DJNZ R7,DEL33DJNZ R0,DEL34RET;- ;中斷程序;- P_INT:PUSH ACC ;MOV TL0 ,#58HMOV TH0 ,#9EHINC HALINC DEDAMOV A,HALCJNE A,#10,PPSETB SWMOV HAL,#0PP:MOV A , DEDACJNE A , #20 ,TT ;1S?MOV DEDA , #0 ;記數(shù)值清零INC SEC ;秒加1MOV A ,SECCJNE A ,#60,TT ;1MIN?INC MINMOV SEC , #0MOV A, MINCJNE A, #60, TT ;1H?INC HOUMOV MIN ,#0MOV A ,HOUCJNE A ,#24,TT ;24H?MOV SEC ,#0MOV MIN ,#0MOV HOU ,#0TT:POP ACCRETI;-; 閃動調時 程 序 ;-;T1中斷服務程序,用作時間調整時調整單元閃爍指示INTT1:PUSH ACC ;中斷現(xiàn)場保護PUSH PSW

溫馨提示

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

評論

0/150

提交評論