電子鐘單片機(jī)課程設(shè)計(jì)(含硬件、軟件、代碼等)[優(yōu)秀]_第1頁
電子鐘單片機(jī)課程設(shè)計(jì)(含硬件、軟件、代碼等)[優(yōu)秀]_第2頁
電子鐘單片機(jī)課程設(shè)計(jì)(含硬件、軟件、代碼等)[優(yōu)秀]_第3頁
電子鐘單片機(jī)課程設(shè)計(jì)(含硬件、軟件、代碼等)[優(yōu)秀]_第4頁
電子鐘單片機(jī)課程設(shè)計(jì)(含硬件、軟件、代碼等)[優(yōu)秀]_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 畢業(yè)設(shè)計(jì)任務(wù)書一 題目 電子鐘二 基本要求 利用單片機(jī)內(nèi)部的定時(shí)器設(shè)計(jì)一個(gè)電子時(shí)鐘,在LED 上顯示時(shí)、分、秒 畢業(yè)設(shè)計(jì)報(bào)告寫作要求 一、封面 二、內(nèi)容提要 三、目錄 四、正文 1、概述所作題目的意義、本人所做的工作及系統(tǒng)的主要功能2、硬件電路設(shè)計(jì)及描述;3、軟件設(shè)計(jì)流程及描述; 4、源程序代碼.五 設(shè)計(jì)體會(huì) 六、參考文獻(xiàn) 單片微型計(jì)算機(jī)應(yīng)用技術(shù)徐仁貴 機(jī)械工業(yè)出版社單片機(jī)控制技術(shù)及應(yīng)用韓全立 電子工業(yè)出版社http:/www.kj-pub.co米/自動(dòng)打鈴器械摘要文章介紹了一種以8051單片機(jī)為核心片帶有數(shù)碼LED顯示時(shí).分.秒和以指示燈做標(biāo)志的按鍵校時(shí)自動(dòng)打鈴器.關(guān)鍵詞單片機(jī)存儲(chǔ)器 數(shù)碼

2、管 按鍵 電鈴一、緒論用單片機(jī)控制的自動(dòng)打鈴器,充分發(fā)揮單片機(jī)體積小,價(jià)格便宜,功耗低可靠性好等特點(diǎn).可用于學(xué)校作息,方便了廣大師生.同時(shí)也可作為電子手表的設(shè)計(jì)方案,兩者在原理及實(shí)現(xiàn)的功能上是一樣的效果,也可作為各種時(shí)鐘控制電路的報(bào)警裝置使用,具有用途范圍廣,原理簡(jiǎn)單便于操作和維護(hù)的優(yōu)點(diǎn)總體上單片機(jī)設(shè)計(jì)方案在現(xiàn)實(shí)中應(yīng)用非常廣泛 而且在現(xiàn)實(shí)生活中也比較容易實(shí)現(xiàn)設(shè)計(jì)的實(shí)施二、總體設(shè)計(jì)方案.設(shè)計(jì)思路利用單片機(jī)及定時(shí)器設(shè)計(jì)的一個(gè)時(shí)鐘,在每次秒加1的計(jì)時(shí)過程中,都與規(guī)定的時(shí)間作比較,如果相等就進(jìn)行開關(guān)電鈴,不等則返回.同時(shí)時(shí)時(shí)的時(shí)間顯示功能為我們提供了方便 2 總體電路方框圖三、設(shè)計(jì)原理分析1.校時(shí)模式

3、按下K1(模式選擇鍵),將模式選擇為校時(shí)模式(模式指示燈黃燈亮),K2,K3,K4分別為時(shí)鐘加1鍵,分鐘加1鍵,秒鐘加1鍵,K5無用.2.定時(shí)模式按下K1(模式選擇鍵),將模式選擇為定時(shí)模式(模式指示燈綠燈亮),K2為定時(shí)器組選擇(本裝置有24組定時(shí)器)鍵,K3,K4分別為定時(shí)器時(shí)鐘加1鍵和定時(shí)器分鐘加1鍵,K5為定時(shí)器狀態(tài)選擇鍵,每按K5一次,此組的定時(shí)器狀態(tài)改變一次,并將此組數(shù)據(jù)存入片內(nèi)數(shù)據(jù)存儲(chǔ)器中按下K1(模式選擇鍵),將模式選擇為工作模式(模式指示燈紅燈亮),K2,K3,K4,K5無用.此模式為正常工作模式3 自動(dòng)打零器電路圖四、程序部分1.程序分為五部分1.初始化程序,2.鍵值處理程

4、序,3.中斷程序,4.顯示程序,5顯示驅(qū)動(dòng)程序2.部分寄存器及按鍵說明28H:掃描指針寄存器20H-25H:顯示緩存寄存器R6:時(shí)鐘寄存器R5:分鐘寄存器R4:秒鐘寄存器K1:模式選擇鍵K2:時(shí)加1(定時(shí)器組加1)鍵K3:分加1(定時(shí)器時(shí)加1)鍵K4:秒加1(定時(shí)器分加1)鍵K5:定時(shí)器狀態(tài)改變既存儲(chǔ)鍵3.程序流程圖4 總體軟件流程圖的解釋總體流程圖的定時(shí)器首先設(shè)定一個(gè)時(shí)間,執(zhí)行程序時(shí)及進(jìn)入計(jì)時(shí)程序.通過加一比較程序與設(shè)定的計(jì)時(shí)程序進(jìn)行比較,如果不到計(jì)時(shí)時(shí)間執(zhí)行中斷返回指令.在此時(shí)如果校時(shí)鍵啟動(dòng)時(shí)可進(jìn)行校時(shí)作用.而LED顯示器也通過8051控制程序?qū)崟r(shí)傳來的數(shù)據(jù)進(jìn)行顯示工作.LED也是動(dòng)態(tài)的顯

5、示方式.5 校時(shí)程序流程圖首先進(jìn)入校時(shí)顯示模式,此時(shí)K1如果有按下,校時(shí)程序即可執(zhí)行.此時(shí)如果K2手工操作下被按下則計(jì)時(shí)加一,達(dá)到與想要的結(jié)果一致即可停止K2的操作,如果計(jì)時(shí)結(jié)果在現(xiàn)在時(shí)間之前則可一直按下直到到達(dá)24小時(shí)一個(gè)循環(huán)時(shí)候,然后再次按下達(dá)到想要的計(jì)時(shí)結(jié)果.而24時(shí)也是校時(shí)循環(huán)終點(diǎn).此時(shí)指示燈也有所變化.可以作為執(zhí)行程序效果的參考.而校分流程圖也對(duì)整體軟件流程產(chǎn)生影響,最終達(dá)到時(shí)間的精確.小時(shí)和分鐘的實(shí)時(shí)顯示是定時(shí)的基礎(chǔ).6 校分及顯示流程圖解釋首先進(jìn)入校分模式時(shí)看K1是否按下,如果按鍵則K3是否有按鍵,如果有則分鐘加一,如此便起到修改分鐘的作用,如果分鐘修改到達(dá)60分鐘則分鐘全部清零

6、,分鐘計(jì)時(shí)重新開始.如果K1鍵沒有按下,則小時(shí)和分鐘數(shù)據(jù)進(jìn)入顯示緩存器,然后進(jìn)入顯示器顯示,此時(shí)看K1鍵是否還在斷開狀態(tài),如果沒有按下則時(shí)間還是顯示而不做變化如果K1鍵按下則此時(shí)進(jìn)入定時(shí)器進(jìn)入工作狀態(tài),因此K1鍵是程序運(yùn)行的關(guān)鍵所在,在K1鍵進(jìn)入工作狀態(tài)的同時(shí)修改小時(shí)和分鐘及定時(shí)器的工作程序才能進(jìn)行7 程序清單1.初始化程序:READ EQU 0 ;讀RA米WRITE EQU 2 ;寫入RA米EWEN EQU 4 ;RA米寫入使能EWDS EQU 6 ;RA米寫入禁止ADR46 EQU 21H ;RA米地址顯示顯示啟動(dòng)定時(shí)器進(jìn)入工作狀態(tài)時(shí)分值送顯示緩存區(qū)K1 有按鍵嗎?清分單元顯示分值加1置校

7、分標(biāo)志K3 有按鍵嗎?K1 有按鍵嗎?是60 分嗎?THIGH EQU 0F8HTLOW EQU 5FHTI米ENEQU 30 ;打鈴持續(xù)時(shí)間(30秒)CS BIT P3.7 ;RA米CSCLK BIT P3.6 ;RA米CLKDI BIT P3.5 ;RA米DIDO BIT P3.4 ;RA米DOORG 0000H ;主程序起始地址AJ米P START ;跳至主程序ORG 000BH ;TI米ER0中斷起始地址AJ米P TI米0 ;跳至TI米ER0中斷子程序START:米OV SP,號(hào)60H ;設(shè)置堆棧在60H米OV 28H,號(hào)00 ;顯示寄存器初值為00米OV R6,號(hào)12H ; 時(shí)寄存器

8、值為12H米OV R5,號(hào)00H ;“分”寄存器值為00H米OV R4,號(hào)00H ;“秒”寄存器值為00H2.鍵值處理程序:LOOP: SETB P0.5 ;工作模式CLR P0.6CLR P0.7JB P0.0,N1 ;K1(模式選擇鍵)按了?不是則跳至N1ACALL DELAY ;消除抖動(dòng)JNB P0.0,$ ;K1(模式選擇鍵)放開了?ACALL DELAY ;消除抖動(dòng)AJ米P SET ;轉(zhuǎn)到定時(shí)模式SETN1: 米OV 2FH,R6 ;將時(shí)鐘數(shù)據(jù)載入2FH中米OV 2EH,R5 ;將分鐘數(shù)據(jù)載入2EH中米OV RA米,號(hào)00 ;把93C46地址置0SETB RS0 ;將工作寄存器組選擇

9、1區(qū)LOOP1: 米OV A,號(hào)READ ;讀RA米ACALL RA米米OV A,R3 ;取出定時(shí)器的狀態(tài)ANL A,號(hào)01HCJNE A,號(hào)01H,N2 ;定時(shí)器為關(guān)閉,則跳轉(zhuǎn)至N2米OV A,R4 ;取出定時(shí)器分鐘數(shù)據(jù)CJNE A,2FH,N2 ;定時(shí)器分鐘數(shù)據(jù)與時(shí)鐘分鐘不同則轉(zhuǎn)至N2米OV A,R5 ;取出定時(shí)器時(shí)鐘數(shù)據(jù)CJNE A,2EH,N2 ;定時(shí)器時(shí)鐘數(shù)據(jù)與時(shí)鐘時(shí)鐘不同則轉(zhuǎn)至N2米OV T米OD,號(hào)01H;米OV TH0,號(hào)THIGH;米OV TL0,號(hào)TLOWH;SETB TR0SETB P2.1 ;定時(shí)器時(shí)間到,打鈴米OV R7,號(hào)9678H;中斷查詢7500次讓時(shí)間達(dá)到30

10、秒SJ米P $TISE:DJNE R7CPL P2.1 終止打鈴米OV A,RA米 ;將RA米地址載入A中N2: CJNE A,號(hào)1EH,N3 ;到定時(shí)器數(shù)據(jù)表表尾?沒到轉(zhuǎn)至N3米OV ADR46,號(hào)00 ;到表尾,置RA米地址為表頭AJ米P LOOP1 ;轉(zhuǎn)至LOOP1N3: INC RA米 ;RA米地址加2INC RA米AJ米P LOOP1 ;轉(zhuǎn)至LOOP1SET: CLR P0.5 ;校時(shí)模式SETB p0.6 高電平CLR P0.7 低電平LOOPS: JB P0.0,N11 ;K1(模式選擇鍵)按了?不是則跳至N11ACALL DELAY ;消除抖動(dòng)JNBP0.0,$ ;K1(模式選

11、擇鍵)放開了?ACALL DELAY ;消除抖動(dòng)AJ米P SETTI米E ;轉(zhuǎn)至SETTI米EN11: JB P0.1,N13 ;K2(時(shí)鐘加1鍵)按了?不是則跳至N13ACALL DELAY ;消除抖動(dòng)米OV A,R6 ;將時(shí)寄存器的值載入AADD A,號(hào)01H ;A內(nèi)容加1DA A ;做十進(jìn)制調(diào)整米OV R6,A ;將A的值存入時(shí)寄存器CJNE A,號(hào)24H,N12 ;是否超過24時(shí)?不是則跳至N12米OV R6,號(hào)00H ;是則清除時(shí)寄存器的值為00N12: JNB P0.1,$ ;K2(時(shí)鐘加1鍵)放開了?ACALL DELAY ;消除抖動(dòng)N13: JB P0.2,N15 ;K3(分鐘

12、加1鍵)按了?不是則跳至N15ACALL DELAY ;消除抖動(dòng)米OV A,R5 ;將分寄存器的值載入AADD A,號(hào)01 ;A內(nèi)容加1DA A ;做十進(jìn)制調(diào)整米OV R5,A ;將A的值存入分寄存器CJNE A,號(hào)60H,N14 ;是否超過60分?不是則跳至N14米OV R5,號(hào)00H ;是則清除分寄存器的值為00N14: JNB P0.2,$ ;K3(分鐘加1鍵)放開了?ACALL DELAY ;消除抖動(dòng)N15: JB P0.3,N17 ;K4(秒鐘加1鍵)按了?不是則跳至N17ACALL DELAY ;消除抖動(dòng)米OV A,R4 ;將秒寄存器的值載入AADD A,號(hào)01 ;A內(nèi)容加1DA

13、A ;做十進(jìn)制調(diào)整米OV R4,A ;將A的值存入秒寄存器CJNE A,號(hào)60H,N16 ;是否超過60秒?不是則跳至N16米OV R4,號(hào)00 ;是則清除分寄存器的值為00N16: JNB P0.3,$ ;K4(秒鐘加1鍵)放開了?ACALL DELAY ;消除抖動(dòng)N17: AJ米P LOOPS ;轉(zhuǎn)至LOOPSSETTI米E:CLR P0.5 ;定時(shí)模式CLR P0.6SETB P0.7米OV RA米,號(hào)00H米OV A,號(hào)READ ;將數(shù)據(jù)存儲(chǔ)器的地址為RA米中的數(shù)據(jù)ACALL TO RA米LOOPB:ACALL DISP ;調(diào)用DISPJB P0.0,N21 ;K1(模式選擇鍵)按了?

14、不是則跳至N21ACALL DELAY ;消除抖動(dòng)JNB P0.0,$ ;K1(模式選擇鍵)放開了?ACALL DELAY ;消除抖動(dòng)AJ米P LOOP ;轉(zhuǎn)至LOOPN21: JB P0.1,N22 ;K2(定時(shí)器組加1鍵)按了?不是則跳至N22ACALL DELAY ;消除抖動(dòng)米OV A,RA米 ;將地址載入ACLR C ;清除進(jìn)位位RRC A ;A右移1位ADD A,號(hào)01H ;地址加1米OV R6,A ;將A存入R6CLR C ;清除進(jìn)位位RLC A ;A左移1位米OV RA米,A ;將A中地址存入RA米米OV A,號(hào)READ ;讀RA米地址為ADR46中的數(shù)據(jù)ACALL TORA米J

15、NB P0.1,$ ;K2(定時(shí)器組加1鍵)放開了?ACALLDELAY ;消除抖動(dòng)N22: JB P0.2,N24 ;K3(定時(shí)器分鐘加1鍵)按了?不是則跳至N24ACALLDELAY ;消除抖動(dòng)米OV A,R4 ;將定時(shí)器分寄存器的值載入AADD A,號(hào)01 ;A內(nèi)容加1DA A ;做十進(jìn)制調(diào)整米OV R4,A ;將A的值存入定時(shí)器分寄存器CJNE A,號(hào)60H,N23 ;是否超過60分?不是則跳至N16米OV R4,號(hào)00H ;是則清除分寄存器的值為00N23: JNB P0.2,$ ;K3(定時(shí)器分鐘加1鍵)放開了?ACALL DELAY ;消除抖動(dòng)N24: JB P0.3,N26 ;

16、K4(定時(shí)器時(shí)鐘加1鍵)按了?不是則跳至N26ACALL DELAY ;消除抖動(dòng)米OV A,R5 ;將定時(shí)器時(shí)寄存器的值載入AADD A,號(hào)01H ;A內(nèi)容加1DA A ;做十進(jìn)制調(diào)整米OV R5,A ;將A的值存入定時(shí)器時(shí)寄存器CJNE A,號(hào)24H,N25 ;是否超過24時(shí)?不是則跳至N25米OV R5,號(hào)00 ;是則清除分寄存器的值為00N25:JNB P0.3,$ ;K4(定時(shí)器時(shí)鐘加1鍵)放開了?ACALL DELAY ;消除抖動(dòng)N26:JB P0.4,N27 ;K5(改變定時(shí)器狀態(tài)存儲(chǔ)鍵)按了?不是則跳至N27ACALL DELAY ;消除抖動(dòng)INC R3 ;改變R3最低位的值(表

17、示定時(shí)器的狀態(tài),1表示開,0表示關(guān))米OV A,號(hào)WRITE ;將A的值寫入RA米地址為ADR46中ACALL TORA米JNB P0.4,$ ;K5(改變定時(shí)器狀態(tài)存儲(chǔ)鍵)放開了?ACALL DELAY ;消除抖動(dòng)N27:AJ米P LOOPB ;轉(zhuǎn)至LOOPB3.中斷程序:TI米0:米OV TH0,號(hào)THIGH ;重設(shè)計(jì)時(shí)4000微秒米OV TL0,號(hào)TLOWPUSH ACC ;將A的值存入堆棧PUSH PSW ;將PSW的值存入堆棧CLR RS0 ;設(shè)置工作寄存器為0區(qū)DJNZ R2,X2 ;計(jì)時(shí)1秒米OV R2,號(hào)250ACALL CLOCK ;調(diào)用計(jì)時(shí)子程序CLOCKACALL DIS

18、P ;調(diào)用顯示子程序X2:ACALL SCAN ;調(diào)用掃描子程序POP PSWPOP ACCRETI4.顯示器驅(qū)動(dòng)程序:SCAN:米OV R0,號(hào)28H ;(28H)為掃描指針I(yè)NC R0 ;掃描指針加1CJNE R0,號(hào)6,X3 ;掃描完6個(gè)顯示器?不是跳至X3米OV R0,號(hào)00 ;是則掃描指針為0X3:米OV A,R0 ;掃描指針載入AADD A,號(hào)20 ;A加常數(shù)20H(顯示寄存器地址)=各時(shí)間顯示區(qū)地址;存入R1=各時(shí)間顯示地址米OV R1,A ;掃描指針存入A米OV A,R0 ;將A高低4位交換(P1高4位為掃描值,SWAP A ;低4位為顯示數(shù)據(jù)值)ORL A,R1 ;掃描值+顯

19、示值米OV R1,A ;輸出至P1RET計(jì)時(shí)程序:CLOCK:米OV A,R4 ;R4為秒寄存器ADD A,號(hào)01 ;加1DA A ;做十進(jìn)制調(diào)整米OV R4,A ;存入秒寄存器CJNE A,號(hào)TI米EN,X4 ;是否超過打零連續(xù)時(shí)間?不是則跳至X4CLR P2.0 ;關(guān)鈴X4:CJNE A,號(hào)60H,X5 ;是否超過60秒?不是則跳至X5米OV R4,號(hào)00 ;是則清除為0米OV A,R5 ;R5為分寄存器ADD A,號(hào)01 ;加1DA A ;做十進(jìn)制調(diào)整米OV R5,A ;存入分寄存器CJNE A,號(hào)60H,X5 ;是否超過60分?不是則跳至X5米OV R5,號(hào)00 ;是則清除為0米OV

20、A,R6 ;R6為時(shí)寄存器ADD A,號(hào)01 ;加1DA A ;做十進(jìn)制調(diào)整米OV R6,A ;存入時(shí)寄存器CJNEA,號(hào)60H,X5 ;是否超過24時(shí)?不是則跳至X5米OV R6,號(hào)00 ;是則清除為0X5:RET5.顯示程序:DISP:米OVR1,號(hào)20 ;(20H)為顯示寄存器,R1=20H米OV A,R6 ;將時(shí)寄存器的內(nèi)容存入A米OV B,號(hào)01H ;設(shè)B累加器的值為10HDIV AB ;A/B,商(十位數(shù))存入A,余數(shù)(個(gè)位數(shù))存入B米OV R1,B ;將B的內(nèi)容存入(20H)INC R1 ;R1=21H米OV R1,A ;將A的內(nèi)容存入(21H)INC R1 ;R1=22H米OV A,R5 ;將分寄存器的內(nèi)容存入A米OV B,號(hào)01H ;設(shè)B累加器的值為10HDIV AB ;A/B,商(十位數(shù))存入A,余數(shù)(個(gè)位數(shù))存入B米OV R1,B ;將B的內(nèi)容存入(22H)INC R1 ;R1=23H米OV R1,A ;將A的內(nèi)容存入(23H)INC R1 ;R1=24H米OV A,R4 ;將秒寄存器的內(nèi)容存入A米OV B,號(hào)01H ;設(shè)B累加器的值為10HDIV AB ;A/B,商(十位數(shù))存入A,余數(shù)(個(gè)位數(shù))存入B米OV R1,B ;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論