版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
課題名稱微機原理與接口技術姓名學號院、系、部制造科學與工程學院專業(yè)指導教師2014年月日PAGE1一、設計任務及要求:設計任務:1、利用MCS-51內(nèi)部定時器定時,編程實現(xiàn)年、月、日、時、分、秒的顯示,顯示格式為:年月日:10-06-18時分秒:09-12-也可自行設定顯示格式,兩部分可按鍵切換顯示;2、能按鍵調(diào)整日期、時間的數(shù)值;3、可設定時間報警,報警的時間至少有2個,報警時應有報警指示。4、要求至少調(diào)試出任務的前兩項。要求:首先進行預設計,根據(jù)設計的任務要求,先確定設計的硬件電路方案,然后進行硬件電路的初步設計,在計算機上畫出硬件電路圖,在老師的指導下進行修正硬件電路圖,并對所涉及的參數(shù)進行計算。在確定硬件的基礎上,要進行軟件的總體設計,包括軟件主流程的設計以及各子程序的設計,同時,要寫出詳細的操作說明,如時間的調(diào)整方法,顯示窗口的時間切換等,以配合軟件的設計。然后進入硬件的調(diào)試及編程工作,設計組內(nèi)的同學可根據(jù)任務分工,有調(diào)試硬件各功能模塊的,如鍵盤子程序、顯示子程序等,有進行整體程序的編制的,各模塊的編制過程中要注意資源的銜接。最后進入聯(lián)機調(diào)試,聯(lián)機調(diào)試的原則也要采用分步走的原則,各個功能模塊要逐步套入,通過一個再增加一項功能,從而達到設計的總體要求,不要上來編制個最大的程序,最后無法查找錯誤。最后寫出設計報告。指導教師簽名:2014年月日三、成績指導教師簽名:年月日電路提示信息,當輸入密碼時,只顯示“-”,當密碼位輸入完畢按下確認鍵時,對輸入的密碼與設定的密碼進行比較,若密碼正確,則開鎖,此處用LED發(fā)光二極管亮一秒鐘做為提示。當密碼不正確時,禁止按鍵輸入3秒,同時啟動蜂鳴器發(fā)出“嘀、嘀”報警聲。2.2.3單片機的選擇方案論證方案一:采用可編程邏輯期間CPLD 作為控制器。CPLD可以實現(xiàn)各種復雜的邏輯功能、規(guī)模大、密度高、體積小、穩(wěn)定性高、IO資源豐富、易于進行功能擴展。采用并行的輸入輸出方式,提高了系統(tǒng)的處理速度,適合作為大規(guī)??刂葡到y(tǒng)的控制核心。但本系統(tǒng)不需要復雜的邏輯功能,對數(shù)據(jù)的處理速度的要求也不是非常高,且從使用及經(jīng)濟的角度考慮我們放棄了此方案方案二:采用Atmel公司的AT89S52單片機作為控制器。AT89S52是一個低功耗,高性能的51內(nèi)核的CMOS8位單片機,片內(nèi)含8k空間的可反復擦些1000次的Flash只讀存儲器,具有256bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個IO口,2個16位可編程定時計數(shù)器。綜合考慮,選擇方案二,采用Atmel公司的AT89S52單片機作為控制器。2.2.4鍵盤選擇方案論證方案一:采用獨立式鍵盤。由于各鍵相互獨立,每個按鍵各接一根輸入線,通過檢測輸入線的電平狀態(tài)可以很容易的判斷哪個按鍵被按下。此種鍵盤適用于按鍵較少或操作速度較高的場合。但本題發(fā)揮部分要求12個功能鍵,按鍵數(shù)目較多,這就需要較多的輸入口線,而且電路結構復雜。故此方案不可取。方案二:采用行列式鍵盤。它由行線和列線組成,按鍵位于行列的交叉點上,行線信號和列線信號分別通過兩個接口和CPU相連,通過行列掃描法判定按鍵的位置,此方案適用于按鍵較多的場合。通過對電子密碼鎖題目的分析,采用4*3行列式鍵盤。2.2.5顯示模塊的選擇方案論證方案一:采用帶字庫LCD模塊顯示。能顯示復雜的信息,具有質(zhì)量輕,體積小,功耗低,指令功能強,接口簡單,可靠性強等優(yōu)點,顯示內(nèi)容豐富,圖形美觀,易于人機交流。但是價格昂貴。方案二:采用LED數(shù)碼管顯示。數(shù)碼管能顯示數(shù)字和符號,但是占用IO口資源較多,對于簡單的電路可以選用此方案。電子密碼鎖,電路簡單,選用方案二,顯示所需信息。2.2.6模塊的選擇方案論證當輸入密碼時,若密碼正確,則開鎖,此處用LED發(fā)光二極管亮一秒鐘做為提示。當密碼不正確時,禁止按鍵輸入3秒,同時發(fā)出“嘀、嘀”報警聲,為實現(xiàn)此功能我們選用LED發(fā)光二極管和蜂鳴器混合使用。3硬件電路設計3.1電子密碼鎖控制電路圖圖2電子密碼鎖控制線路圖3.2行列式式鍵盤的設計鍵盤電路如圖3所示。設計數(shù)字鍵0~9的鍵號依次為0~9,取消鍵的鍵號為10,確認鍵的鍵號為11,鍵號可按鍵值=行首鍵號(0、4、8、12)+列鍵號(0、1、2、3)公式計算。圖3鍵盤電路3.3數(shù)碼管顯示電路的設計數(shù)碼管驅(qū)動采用8個共陰極數(shù)碼管顯示,由于單片機的驅(qū)動能力有限,采用74LC245作為數(shù)碼管的驅(qū)動,在7段碼輸出線上串聯(lián)100歐姆電阻起限流作用。其電路如圖3所示。圖4數(shù)碼管顯示電路3.4蜂鳴器驅(qū)動電路的設計蜂鳴器的驅(qū)動采用NPN三極管2484來驅(qū)動,低電平有效。其電路如圖5所示。圖5蜂鳴器電路圖3.5主要元器件選擇主要元器件選用型號和數(shù)量如表1所示:表1主要元器件清單序號材料名稱規(guī)格型號數(shù)量元件代號1單片機AT89C511U12晶振12MHz1X13電容22PF2C1、C24鍵盤4*3125數(shù)碼管MPX816蜂鳴器17發(fā)光二極管1D18驅(qū)動74LS451U29三級管24841Q110排阻10k1RP14程序流程圖時間程序流程圖5C語言程序設計程序清單:設置變量緩沖區(qū) SEC EQU 30H MIN EQU 31H HOUR EQU 32H DAY EQU 33H MON EQU 34H YEAR EQU 35H;************************************************************************* ORG0000H LJMPMAIN ORG000BH LJMPINT_T0 ORG0030HMAIN: LCALLCHUSHI MOVTMOD,#01H MOVTH0,#4CH MOVTL0,#00H MOVIE,#82H SETBTR0 ;開啟定時器T0 MOV50h,#00H ;啟用定時器T0的初始值 MOV 37H,#0 ;顯示日期和時間的標志 MOV38H,#0 ;12進制和24進制的標志 MOV39H,#23 ;默認時間為24進制 CLR F0 ;日歷定時0和1的標志LOOP: MOV A,37H JZ SHIJIAN MOV R1,#33H LJMPBEGIN1SHIJIAN:MOVR1,#30H ;初始化顯示BEGIN1: MOVA,38H JZJZ24 MOV39H,#11 LJMPBEGIN2JZ24: MOV39H,#23BEGIN2: LCALL DISPLAY LCALL KEY ;掃描鍵盤 CJNEA,#05H,DINGS;判斷鍵值是否為5號鍵 LCALLDY1MS;若是,則實現(xiàn)調(diào)整LCALLTIAOT LCALLTIAOT LCALLDISPLAY LJMPDOWNDINGS: CJNEA,#06H,QIEH;判斷鍵值是否為6號鍵,定時 LCALLDY1MS;若是,則實現(xiàn)調(diào)整 CPLF0 JNBF0,DI0 ;F0=0,定時器0 LCALLDISHI1 ;F0=1,定時器1 LCALLDISPLAY LJMPDOWNDI0: LCALLDISHI0 LCALLDISPLAY LJMP DOWNQIEH: CJNEA,#07H,BIANH;判斷鍵值是否為7號鍵,切換 LCALLDY1MS;若是,則切換顯示,年月日與時分秒切換 LCALLDISPLAY MOV A,37H CPL A MOV 37H,A LJMPDOWNBIANH: CJNEA,#08H,DOWN ;判斷是否為八號鍵,變換進制 LCALLDY1MS LCALLDISPLAY MOVA,38H CPL A MOV38H,ADOWN: LJMPloop;調(diào)整子程序**********************************************************************TIAOT: pushacc CLR PSW.1 ;初始化標志位TOP1: LCALL KEY ;掃描鍵盤 CJNEA,#08H,PANFAN ;判斷鍵值是否為8號鍵,不是8鍵,則繼續(xù)判斷 CPLPSW.1 ;取反標志位 JBPSW.1,TC;標志位為1,調(diào)整時間change0 LCALLCHG1 ;標志位為0,調(diào)整日期change1 LCALLDISPLAY LJMPTOP1TC: CLRTR0 LCALLCHG0 LCALLDISPLAYPANFAN: CJNEA,#5,TOP1 popacc RET;調(diào)整時間子程序******************************************************************CHG0: MOVR1,#30H LCALLDISPLAY LCALLKEYS: CJNEA,#01H,M;判斷鍵值,是否為1號鍵 MOVR0,#SEC;鍵值為01,即1號鍵調(diào)整秒 MOVA,@R0;進制 CJNEA,#59,L0;判斷秒是否為59 MOVSEC,#00;若是,秒清零 LCALLDISPLAY LJMPCHG0L0: INCA MOV@R0,A LCALLDISPLAY LJMPCHG0M: CJNEA,#02H,H;判斷鍵值,是否為02H MOVR0,#MIN;若是,即2號鍵,則調(diào)整分鐘 MOVA,@R0 CJNEA,#59,L2;判斷分是否為59 MOVMIN,#00;若是,分鐘清零 LCALLDISPLAY LJMPCHG0L2: INCA MOV@R0,A LCALLDISPLAY LJMPCHG0H: CJNEA,#03H,K;判斷鍵值,是否為03H MOVR0,#HOUR;鍵值為03,即3號鍵調(diào)整小時 MOVA,@R0 CJNEA,39H,L4;判斷小時是否為23 MOVHOUR,#00 LCALLDISPLAY LJMPCHG0L4: INCA MOV@R0,A LCALLDISPLAY LJMPCHG0K: CJNEA,#04H,CHG0 SETBTR0 RET;調(diào)整日期**********************************************************************CHG1: MOVR1,#33H LCALLDISPLAY LCALLKEYR: CJNEA,#01H,Y;判斷鍵值,是否為1H MOVR0,#DAY;鍵值為01,調(diào)整日期 MOVA,@R0;進制 CJNEA,#31,B0;判斷30 MOVDAY,#00 LCALLDISPLAY LJMPCHG1B0: INCA MOV@R0,A LCALLDISPLAY LJMPCHG1Y: CJNEA,#02H,N;判斷鍵值,是否為2 MOVR0,#MON MOVA,@R0 CJNEA,#12,B1;判斷月是否12 MOVMON,#00 LCALLDISPLAY LJMPCHG1B1: INCA MOV@R0,A LCALLDISPLAY LJMPCHG1N: CJNEA,#03H,K1;判斷鍵值,是否為FB MOVR0,#YEAR;鍵值為3,調(diào)整年 MOVA,@R0 CJNEA,#99,B2 MOVYEAR,#0 LCALLDISPLAY LJMPCHG1B2: INCA MOV@R0,A LCALLDISPLAY LJMPCHG1K1: CJNEA,#04H,CHG1 RET;第一次定時子程序*****************************************************************DISHI0: MOV40H,SEC;保存原值 MOV41H,MIN MOV42H,HOUR LCALLCHG0;調(diào)用調(diào)整子程序 MOV43H,SEC MOV44H,MIN MOV45H,HOUR LCALLDI RET;第二次定時子程序*****************************************************************DISHI1: MOV40H,SEC MOV41H,MIN MOV42H,HOUR LCALLCHG0 MOV46H,SEC MOV47H,MIN MOV48H,HOUR LCALLDI RETDI: MOVSEC,40H;恢復原值 MOVMIN,41H MOVHOUR,42H LCALLDISPLAY RET;定時器T0子程序*******************************************************************INT_T0: INC50h movr5,50h CJNER5,#20,DUAN11;判斷是否到一秒 LJMPDUAN12DUAN11: LJMPNEXT0DUAN12: MOV50h,#0;若是,則重新初始化循環(huán)次數(shù) MOVA,SEC CJNEA,#59,DUAN21;判斷秒是否為59 LJMPDUAN22DUAN21: LJMPN0DUAN22: MOVSEC,#00;若是則秒清零 lcalldisplay MOVA,MIN CJNEA,#59,DUAN31;判斷分鐘是否為59 LJMPDUAN32DUAN31: LJMPN1 DUAN32: MOVMIN,#00;若是,則分鐘清零 lcalldisplay MOVA,HOUR CJNEA,39H,DUAN41;判斷小時是否23 LJMPDUAN42DUAN41: LJMPN2DUAN42: MOVHOUR,#00;若是,小時清零 lcalldisplay MOVA,DAY PUSHACC MOVA,MON CJNEA,#1,YUE3 POPACC LJMPRR2YUE3: CJNEA,#3,YUE5 ;1,3,5,7,8,10,12月31天 POPACC LJMPRR2YUE5: CJNEA,#5,YUE7 POPACC LJMPRR2YUE7: CJNEA,#7,YUE8 POPACC LJMPRR2YUE8: CJNEA,#8,YUE10 POPACC LJMPRR2YUE10: CJNEA,#10,YUE12 POPACC LJMPRR2YUE12: CJNEA,#12,YUE4 POPACC LJMPRR2YUE4: CJNEA,#4,YUE6 ;4,6,9,11月30天 POPACC LJMPRR1YUE6: CJNEA,#6,YUE9 POPACC LJMPRR1YUE9: CJNEA,#9,YUE11 POPACC LJMPRR1YUE11: CJNEA,#11,YUE2 POPACC LJMPRR1YUE2: MOVA,YEAR ;2月:是閏年29天,是平年28天 MOVB,#4 DIVAB MOVA,B JZRYUEPYUE: POPACC LJMPRR00RYUE: POPACC LJMPRR01RR00: CJNEA,#28,N3 MOVDAY,#1 LCALLDISPLAY LJMPRR3RR01: CJNEA,#29,N3 MOVDAY,#1 LCALLDISPLAY LJMPRR3RR1: CJNEA,#30,N3 MOVDAY,#1 LCALLDISPLAY LJMPRR3RR2: CJNEA,#31,N3 MOVDAY,#1 LCALLDISPLAY LJMPRR3RR3: MOVA,MON CJNEA,#12,N4 ;判斷月份是否為11 MOVMON,#1;若是,則月份清零 lcalldisplay MOVA,YEAR;年份加一 CJNEA,#99,N5 MOVYEAR,#0 lcalldisplay LJMPNEXT0N0: INCA;否則,秒加一 MOVSEC,A lcalldisplay LCALLDFG LJMPNEXT0N1: INCA;分鐘加一 MOVMIN,A lcalldisplay LCALLDFG LJMPNEXT0N2: INCA;小時加一 MOVHOUR,A lcalldisplay LCALLDFG LJMPNEXT0N3: INCA ;日期加一 MOVDAY,A lcalldisplay LJMPNEXT0N4: INCA;月份加一 MOVMON,A lcalldisplay LJMPNEXT0N5: INCA MOVYEAR,A LCALLDISPLAYNEXT0: MOVTH0,#4CH MOVTL0,#00H RETI;判斷是否到定時時間子程序*******************************************************DFG:MOVA,SEC;判斷是否到第一個定時時間CJNEA,43H,DOWN1MOVA,MINCJNEA,44H,DOWN1MOVA,HOURCJNEA,45H,DOWN1CLRP3.6;若到第一個定時時間,則亮燈DOWN1:MOVA,SEC;判斷是否到第二個定時時間CJNEA,46H,DOWN2MOVA,MINCJNEA,47H,DOWN2MOVA,HOURCJNEA,48H,DOWN2CLRP3.6;若到第二個定時時間,則亮燈DOWN2:LCALLKEYLCALLDY1MS;掃描鍵盤CJNEA,#04H,DO;若鍵值為4號鍵,則滅燈 setbp3.6DO:LCALLDISPLAYRET ;延時1ms**********************************************************************DY1MS: MOVR5,#0FAHLOOP7: NOP NOP DJNZR5,LOOP7 RET;初始化CHUSHI******************************************************************CHUSHI: MOVSEC,#0 MOVMIN,#0 MOVHOUR,#0 MOVDAY,#26 MOVMON,#1 MOVYEAR,#11 RET;子程序KSI:判定有無閉合鍵的*************************************************KSI: MOV A,#00H MOV P1,A ;P2口送00H LCALLDY1MS MOV A,P3 CPLA ANL A,#03H ;屏蔽高6位 RET ;鍵盤掃描**********************************************************************key: LCALL KSI ;檢查是否有鍵閉合 JNZ LK1 LJMP END1LK1: LCALLDY1MS LCALL KSI ;再檢查是否有鍵閉合 JNZ LK2 ;有鍵閉合轉(zhuǎn)移到LK2 LJMP END1 ;無鍵閉合,延時12ms后轉(zhuǎn)KEY1LK2:MOVA,#0FEH MOVP1,A MOVR3,A MOVR4,#00HLK4: MOVA,P3 JB ACC.0,LONE ;ACC.3=1,第一列無鍵閉合,轉(zhuǎn)LONE MOV A,#01H lJMP LKPLONE: JB ACC.1,NEXT ;ACC.2=1,第二列無鍵閉合,轉(zhuǎn)LTWO MOV A,#05H lJMP LKPLKP: ADD A,R4 ;計算鍵碼 PUSH ACC ;保護鍵碼LK3: lCALL DY1MS ;延時1ms lCALL KSI ;檢查是否繼續(xù)閉合,若閉合再延時 JNZ LK3 POP ACC ;若鍵起,則鍵碼送A RETNEXT: INCR4 MOVA,R3 JNBACC.3,END1 RLA MOVR3,A MOVP1,A lJMP LK4 ;進行下一列掃描END1: RET;顯示子程序********************************************************************DISPLAY: pushacc MOVR3,#03H MOVR2,#0FEH DISLOOP: MOVA,R2 MOVP2,A MOVA,@R1 MOVB,#10 DIVAB MOV36h,A MOVA,B MOVDPTR,#KEYBOARD MOVCA,@A+DPTR MOVP0,A ;顯示低位 LCALLDY1MS MOVA,R2 RLA MOVR2,A MOVP2,A MOVA,36h MOVDPTR,#KEYBOARD MOVCA,@A+DPTR MOVP0,A ;顯示高位 LCALLDY1MS MOVA,R2 RLA JNBACC.0,EXIT MOVR2,A MOVP2,A MOVA,#10 MOVDPTR,#KEYBOARD MOVCA,@A+DPTR MOVP0,A LCALLDY1MS MOVA,R2 RLA MOVR2,A INCR1 DJNZR3,DISLOOP EXIT: popacc RET;斷碼值***********************************************************************KEYBOARD: DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0BFH END}6電子密碼鎖控制器仿真在完成了電子密碼鎖硬件設計和軟件設計以后,便進入系統(tǒng)的調(diào)試階段。系統(tǒng)的調(diào)試步驟和方法基本上是相同的,但具體細節(jié)和所采用的開發(fā)系統(tǒng)以及用戶系統(tǒng)選用的單片機型號有關,如可選用Keil軟件進行軟件調(diào)試,用Proteus軟件完成硬件調(diào)試。6.1Keil調(diào)試6.2Proteus調(diào)試7結束語通過這次課程設計,使我得到了一次用專業(yè)知識和專業(yè)技能去分析問題、解決問題全面系統(tǒng)的鍛煉。使我在單片機的基本原理、單片機應用系統(tǒng)開發(fā)過程,以及用c語言設計程序的思路技巧等方面都能向前邁了一大步,為日后成為合格的應用型人才打下良好的基礎。8參考文獻1.期刊類【格式】[序號]作者.篇名[J].刊名,出版年份,卷號(期號):起止頁碼.【舉例】[1]王海粟.淺議會計信息披露模式[J].財政研究,2004,21(1):56-58.[2]夏魯惠.高等學校畢業(yè)論文教學情況調(diào)研報告[J].高等理科教育,2004(1):46-52.[3]Heider,E.R.&D.C.Oliver.Thestructureofcolorspaceinnamingandmemoryoft
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共工程合同管理標準
- 2024年辦公展覽投資協(xié)議書模板范本
- 化工區(qū)域代理合同協(xié)議書范文
- 實驗室水質(zhì)檢測
- 人教版英語八年級下冊 Unit 5 同步練習
- 制藥企業(yè)安全生產(chǎn)培訓
- 國有企業(yè)信訪維穩(wěn)工作應急預案實施細則
- 機場安檢監(jiān)控系統(tǒng)維護方案
- 自然災害影響評估與恢復方案
- 科學活動復活毛毛蟲
- 行政事業(yè)單位會計監(jiān)督
- 2023-2024學年譯林版八年級上學期英語12月月考模擬試卷(含答案解析)
- 【川教版】《生命 生態(tài) 安全》五上第8課《防患于未“燃”》課件
- 永久避難硐室避險安全知識課件
- 女性的情緒及壓力管理
- 腰椎骨折查房護理課件
- 中國手機租賃行業(yè)市場發(fā)展前景研究報告-智研咨詢發(fā)布
- 預防接種工作規(guī)范(2023年版)解讀課件
- 老年慢性支氣管炎的健康宣教
- 大國工匠技能報國課件
- 制冷與空調(diào)設備運行操作作業(yè)
評論
0/150
提交評論