單片機技術(shù)課程設(shè)計說明書數(shù)字電子鐘_第1頁
單片機技術(shù)課程設(shè)計說明書數(shù)字電子鐘_第2頁
單片機技術(shù)課程設(shè)計說明書數(shù)字電子鐘_第3頁
單片機技術(shù)課程設(shè)計說明書數(shù)字電子鐘_第4頁
單片機技術(shù)課程設(shè)計說明書數(shù)字電子鐘_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 單片機技術(shù)課程設(shè)計說明書 數(shù)字電子鐘 系 、 部: 電氣與信息工程系 學生姓名: 指導教師: 職稱 專 業(yè): 自動化 班 級: 自本0801班 完成時間: 2010.12.30 摘 要 鐘表作為一個定時工具被廣泛地應用于生產(chǎn)生活的各個方面,而電子表具有價格便宜、質(zhì)量輕、定時誤差小等優(yōu)點。本次設(shè)計的數(shù)字電子鐘采用了at89s52芯片進行匯編,由8位8段數(shù)碼管進行動態(tài)刷新顯示,有四個獨立按鍵。可以進行秒、分、時的調(diào)整,且操作簡單,計時誤差小,顯示亮度高,具有良好的實用價值。關(guān)鍵詞 數(shù)字電子鐘;單片機;匯編語言abstractscm digital electric clock is based

2、on single chip design of eight digit clock. it has programming flexible and can perform electric clock function expansion, this electric clock with the 24-hour manufacturing mode display time, using assembly language make its with adjustable reset and when, add a function. key words digital clock;sc

3、m;assembly language目 錄1 設(shè)計課題任務(wù)、功能要求說明及總體方案介紹1 1.1 設(shè)計課題任務(wù)1 1.2 功能要求說明1 1.3 設(shè)計課題總體方案介紹及工作原理說明12 設(shè)計課題硬件系統(tǒng)的設(shè)計22.1 硬件總體設(shè)計 22.2 設(shè)計課題硬件系統(tǒng)各模塊功能簡要介紹22.3 設(shè)計課題電路原理圖、pcb圖、元器件布局圖 32.4 設(shè)計課題元器件清單33 設(shè)計課題軟件系統(tǒng)的設(shè)計43.1 設(shè)計課題使用單片機資源的情況43.2 數(shù)字電子鐘軟件系統(tǒng)主要模塊功能簡要介紹43.3 數(shù)字電子鐘軟件系統(tǒng)程序流程框圖53.4 設(shè)計課題軟件系統(tǒng)程序清單74 設(shè)計結(jié)論、仿真結(jié)果、誤差分析 164.1 設(shè)計

4、課題的設(shè)計結(jié)論及使用說明164.2 設(shè)計課題的仿真結(jié)果174.3 設(shè)計課題的誤差分析174.4 設(shè)計重點、難點,體會及不足之處18參考文獻19致謝20附錄21附錄一數(shù)字電子鐘原理圖 21附錄二數(shù)字電子鐘pcb圖 22附錄三數(shù)字電子鐘元件布局圖24附錄四 數(shù)字電子鐘元件清單 25241 設(shè)計課題任務(wù)、功能要求說明及總體方案介紹1.1 設(shè)計課題任務(wù) 通過理論設(shè)計和實物制作解決相應的實際問題,鞏固和運用在單片機技術(shù)中所學的理論知識和實驗技能,掌握單片機應用系統(tǒng)的一般設(shè)計方法,提高設(shè)計能力和實踐動手能力,為以后從事電子電路設(shè)計、研發(fā)電子產(chǎn)品打下良好的基礎(chǔ)。1.2 功能要求說明設(shè)計一個具有特定功能的電子

5、鐘。該電子鐘上電或按鍵復位后能自動顯示系統(tǒng)提示符“p.”, 進入時鐘準備狀態(tài);第一次按電子鐘啟動/調(diào)整鍵,電子鐘從0時0分0秒開始運行,進入時鐘運行狀態(tài);再次按電子鐘啟動/調(diào)整鍵,則電子鐘進入時鐘調(diào)整狀態(tài),此時可利用各調(diào)整鍵調(diào)整時間,調(diào)整結(jié)束后可按啟動/調(diào)整鍵再次進入時鐘運行狀態(tài)。1.3 設(shè)計課題總體方案介紹及工作原理說明方案一:采用時鐘芯片ds1302,該芯片可以進行時分秒的計數(shù),ds1302通過串行方式與單片機進行數(shù)據(jù)傳送,向單片機提供包括秒、分、時、日、月、年等在內(nèi)的實時時間信息,并可對月末日期、閏年天數(shù)自動進行調(diào)整,但是需在單片機外部擴展,電路較復雜,成本較高。方案二:采用單片機內(nèi)部定

6、時器,用軟件對其進行秒、分、時的計數(shù),單片機無法產(chǎn)生1s的定時時間,但是可以用硬件定時和軟件計數(shù)相結(jié)合的方法實現(xiàn),采用中斷方式,即通過中斷服務(wù)程序進行計數(shù)器溢出次數(shù)的累計,把定時器/計數(shù)器設(shè)定為62.5ms,計數(shù)溢出16次就可以得到1s,計60次為1分,60分計60次則為1小時,然后通過數(shù)碼管動態(tài)刷新顯示出來,再設(shè)四個按鍵進行時間的調(diào)整,一個鍵用作啟動/調(diào)整鍵,其余三個分別用于時、分、秒的調(diào)整。方案二不需要外部擴展芯片,電路較簡單,成本較低,這里選用方案二。2 數(shù)字電子鐘硬件系統(tǒng)的設(shè)計2.1 硬件總體設(shè)計 硬件系統(tǒng)總體設(shè)計如圖2.1所示。圖2.1 硬件系統(tǒng)總體設(shè)計2.2 數(shù)字電子鐘硬件系統(tǒng)主要

7、模塊功能簡要介紹(1) 功能芯片:本次設(shè)計采用atmel公司生產(chǎn)的at89s52芯片,低功耗、高性能cmos8位微控制器,具有 8k 在系統(tǒng)可編程flash 存儲器。256字節(jié)ram, 32 位i/o 口線,與工業(yè)80c51 產(chǎn)品指令和引腳完全兼容。價格較低,能滿足本次設(shè)計的要求。(2) 電源和復位模塊:at89s52需5v電壓,所以可以采用usb接口的5v電源對其供電,復位電路可采用上電復位、按鍵電平復位、按鍵脈沖復位3種,本次采用按鍵電平復位。如電路原理圖中的電源和復位模塊。(3) 顯示模塊:該模塊由8位8段共陽極數(shù)碼管組成,由8個pnp型三極管分別驅(qū)動其發(fā)光,從左至右位控分別接于單片機的

8、p2.7-p2.0中上,段控a-dp接于單片機的p0.0-p0.7口上,使用動態(tài)顯示從右向左循環(huán)點亮每一位數(shù)碼管。如電路原理圖中的數(shù)碼管電路。(4) 鍵盤模塊:鍵盤由8個獨立式按鍵組成,s0-s7鍵分別接在單片機的p1.0-p1.7口,并由上拉電阻上拉使其成為電位為高。如電路原理圖中的獨立鍵盤模塊。(5) 時鐘模塊:為了保證同步工作方式的思想,單片機必須有時鐘信號,以使其系統(tǒng)在時鐘信號的控制下按時序協(xié)調(diào)工作。如電路原理圖中的晶振電路。2.3 數(shù)字電子鐘電路原理圖、pcb圖、元器件布局圖數(shù)字電子鐘電路原理圖見附錄一。數(shù)字電子鐘pcb圖見附錄二。數(shù)字電子鐘元件布局圖見附錄三。2.4 數(shù)字電子鐘元器

9、件清單 數(shù)字電子鐘元器件清單見附錄四。3 數(shù)字電子鐘軟件系統(tǒng)的設(shè)計3.1 數(shù)字電子鐘使用單片機資源的情況(1) 時鐘的時分秒在片內(nèi)ram存儲地址如表3.1所示。表 3.1 時鐘存儲地址名稱時分秒十位78h7bh7eh個位79h7ch7fh(2) 在at89s52的p0口和p2口外接八個數(shù)碼管,用p0口作數(shù)碼管的段控碼輸出口(p0.0-p0.7對應于數(shù)碼管的a-dp),p2.7-p2.0作數(shù)碼管的位控碼輸出(p2.7-p2.0對應于led7-led0),20h.0-20h.3作為p1.0-p1.3的位標志存儲地址。(3) 定時器0以中斷方式工作,工作方式1。3.2 數(shù)字電子鐘軟件系統(tǒng)主要模塊功能

10、簡要介紹(1) 主程序:主程序的主要功能是進行定時器/計數(shù)器,顯示緩沖區(qū)的初始化,顯示,以及判斷是否有功能鍵按下,判斷按下的鍵并調(diào)相應的鍵功能程序。(2) 鍵功能程序:鍵功能程序的主要功能是執(zhí)行對應的功能,menu鍵為啟動/調(diào)整鍵,第一次按下則由待機狀態(tài)進入運行狀態(tài)啟動時鐘,從00-00-00開始顯示,然后按下為奇數(shù)則暫停,進入調(diào)時狀態(tài),按下sec鍵則秒加1,按下min鍵則分加1,按下hour鍵則時加1;若按下為偶數(shù)則進入時鐘運行狀態(tài)。(3) 中斷服務(wù)程序:中斷服務(wù)程序的主要功能是進行計時操作,程序開始先判斷計數(shù)溢出是否滿了16次,若不滿16次則表明沒有達到最小計時單位秒,則中斷返回;若滿16

11、次表明已達到最小計時單位秒,則程序斷續(xù)向下執(zhí)行,進行分和時的計時。(4) 顯示子程序:顯示程序的主要功能是將顯示緩沖區(qū)的段控碼正確的顯示在數(shù)碼管上,采用動態(tài)顯示,從右向左循環(huán)點亮每一位數(shù)碼管。(5) 鍵掃子程序:鍵掃子程序的主要功能是判斷是否有鍵按下,是哪個鍵按下,并將鍵值保存在20h中。3.3 數(shù)字電子鐘軟件系統(tǒng)程序流程框圖(1) 主程序流程框圖如圖3.1所示。(2) 計時1秒子程序流程框圖如圖3.2所示。(3) 鍵掃子程序流程框圖如圖3.3所示。(4) 顯示子程序流程框圖如圖3.4所示。(5) 鍵監(jiān)控子程序流程框圖如圖3.5所示。 圖3.1 主程序流程框圖 圖3.2 計時1秒子程序流程框圖

12、 圖3.3 鍵掃子程序流程框圖 圖3.4 顯示子程序流程框圖圖3.5 鍵監(jiān)控子程序流程框圖3.4 數(shù)字電子鐘軟件系統(tǒng)程序清單;*:;項目名稱:數(shù)字式電子鐘;設(shè)計者:李松海;設(shè)計日期:2010年12月28日;*;堆棧棧底80h;*;led數(shù)碼管顯示器設(shè)定;p0.7-p0.0段控線,接led的顯示段dp,g,f,e,d,c,b,a;p2.0-p2.7位控線,從左至右(led7,led6,led5,led4,led3,led2,led1,led0);顯示緩沖區(qū)設(shè)定從左至右依次為78h,79h,7ah,7bh,7ch,7dh,7eh,7fh ;*;獨立式鍵盤設(shè)定;8個按鍵s2至s9分別依次接在p1.0

13、至p1.7口線;*;20h字節(jié)單元:十六進制,s2鍵鍵值01h,s3鍵鍵值02h,s4鍵鍵值04h,s5鍵鍵值08h,s6鍵鍵值10h,s7鍵鍵值20h,s8鍵鍵值40h,s9鍵鍵值80h;*;定時器/計數(shù)器資源:;t/c0:工作模式;功能;定時時間;查詢或中斷;*;中斷系統(tǒng)資源;t/c0;*;鍵功能程序;keya (s2鍵鍵功能程序);keyb (s3鍵鍵功能程序);keyc (s4鍵鍵功能程序);keyd (s5鍵鍵功能程序);*;中斷服務(wù)程序;*;常數(shù)表格;disbh(系統(tǒng)提示符p.字型代碼序號表);disbi(00-00-00字符的代碼序號);tab(共陽數(shù)碼管字型代碼表);*; ;子

14、程序;dl(2毫秒延時子程序);disp(數(shù)碼管顯示子程序);key(鍵掃描子程序);keychuli(p1口數(shù)據(jù)處理子程序);加1子程序;*;偽指令定義 sec equ 30hminequ 31hhourequ 32hsecgeequ 7fhsecshiequ 7ehmingeequ 7chminshiequ 7bhhourge equ 79hhourshiequ 78h;*;系統(tǒng)起始程序區(qū) org 0000hstart: ljmp mainorg 000bhljmp tc0;*;系統(tǒng)監(jiān)控程序區(qū)org0030hmain:movsp,#80h ;初始化數(shù)據(jù)movpsw,#00hmovtmod,

15、#01h ;定時器0工作方式1movth0,#0d8h ;10msmovtl0,#0f0hsetbeasetbet0mov r0, #20h ;ram區(qū)首地址 mov r7, #5fh ;ram區(qū)單元個數(shù) 95個chushi:mov r0, #00h inc r0 ;將ram全部清零,初始化 djnz r7, chushi tsf: mov dptr, #disbh ;系統(tǒng)初始化 “p.”字符代碼表首地址 mov r5, #08h mov r0, #78hdisptsf:clr a movc a, a+dptr mov r0, a inc r0 inc dptr djnz r5, dispts

16、fd:lcall disp ;調(diào)顯示子程序顯示提示符“p.”lcallkeyjb20h.0,keyaljmpd;*;鍵功能程序區(qū);s2鍵功能程序keya:movsec, #0 ;寄存器初始化,秒寄存器movmin, #0 ;分寄存器movhour, #0 ;時寄存器mov dptr, #disbi ;“00-00-00”字符代碼表首地址 mov r5, #08h mov r0, #78hdisptsg:clr a movc a, a+dptr mov r0, a inc r0 inc dptr djnz r5, disptsgkeyas:setb tr0 ;開定時器di:lcall displ

17、call keyjb 20h.0,cp ljmp dicp:clr tr0 ;s2鍵按下,進入調(diào)整狀態(tài)dd:lcall displcall keyjb 20h.0,keyasjb 20h.1,keybjb 20h.2,keycjb 20h.3,keydljmp dd;s3鍵功能程序keyb:lcallhour_ ;調(diào)時lc:lcalldisplcallkeyjb20h.0,keyasjb20h.1,keybjb20h.2,keycjb20h.3,keydljmplc;s4鍵功能程序keyc:lcallmin_ ;調(diào)分diis:lcall disp lcallkeyjb20h.0,keyasjb

18、20h.1,keybjb20h.2,keycjb 20h.3,keydljmpdiis;s5鍵功能程序keyd:lcallsec_ ;調(diào)秒diss:lcalldisplcallkeyjb20h.0,keyasjb20h.1,keybjb20h.2,keycjb20h.3,keydljmpdiss;中斷服務(wù)程序tc0:pushaccpush bpushpswsetbrs1clrrs0movth0,#0d8hmovtl0,#0f0hinc33hmova,33hcjne a,#100,remov33h,#0incsecmova,secmovb,#10divabmovsecshi,amovsecge,

19、 bmova,seccjnea,#60,reincminmovsec,#00hmovsecge,#0movsecshi,#0mova,minmovb,#10divabmovminshi, amovminge,bmova,mincjnea,#60,reinchourmovmin,#00hmovminge,#0movminshi,#0mova,hourmovb,#10divabmovhourshi,amovhourge, bmova,hourcjne a,#24,removhour,#0movhourge,#0movhourshi,#0re:poppswpopbpopaccreti;延時1毫秒子程

20、序 dl: push psw setb rs1 setb rs0 mov r7, #02hdl1:movr6, #0ffhdl2:djnzr6, dl2djnzr7, dl1 pop pswret;顯示子程序;入口:77h,78h,79h,7ah,7bh,7ch,7dh,7eh,7fh,disp: pushdphpushdplpushaccpushpsw clr rs1 ;改變當前寄存器組為組1 setb rs0 mov r1, #78h ;顯示緩沖存儲單元首地址 mov r2, #0feh ;從右至左顯示,共陽極 disp1:mova, r1movdptr, #tabmovc a, a+dp

21、trmov p0, a ;送段控 mov p2, r2 ;送位控lcall dl ;延時2毫秒 為什么這里要延時mov a, r2jnb acc.7, disp2 ;為0轉(zhuǎn)移;rl ainc r1mov r2, aljmp disp1disp2:pop psw ;恢復當前寄存器組的組號pop accpop dplpop dphret;鍵掃描子程序key:lcall keychuli ;調(diào)p1口數(shù)據(jù)處理子程序 jz exit ;沒有鍵按下,轉(zhuǎn)返回lcall disp ;調(diào)顯示子程序去抖動lcall disp lcall keychuli ;調(diào)p1口數(shù)據(jù)處理子程序 jz exit ;沒有鍵按下,轉(zhuǎn)

22、返回mov b,20h ;保存取反后的鍵值keysf:lcall keychuli ;調(diào)p1口數(shù)據(jù)處理子程序jz key1 ;鍵釋放,轉(zhuǎn)恢復鍵值lcall disp ;調(diào)顯示子程序延時 ljmp keysf ;等待釋放key1:mov 20h, b ;鍵值送20h保存exit:ret ;子程序返回;p1口數(shù)據(jù)處理子程序keychuli:push psw ;保護現(xiàn)場clr rs1 ;改變當前寄存器組為組1setb rs0mov p1,#0ffh ;先向p1口寫1mov a, p1 ;讀p1口數(shù)據(jù)cpl a ;p1口數(shù)據(jù)取反mov20h, a ;保存取反后的鍵值clrrs1 ;恢復當前寄存器組為組

23、0clr rs0poppsw ;恢復現(xiàn)場ret ;子程序返回;加1子程序sec_:incsecmov a,secmov b,#10div abmov secshi,amov secge,bmov a, seccjne a, #60,eximov sec, #0mov secge,#0mov secshi,#0ljmp eximin_:inc minmov a,minmov b,#10div abmov minshi,amov minge,bmov a,mincjne a,#60,eximov min, #0mov minge,#0mov minshi,#0ljmp exihour_:inc h

24、ourmov a,hourmov b,#10div abmov hourshi, amov hourge, bmov a,hourcjne a,#24,eximov hour, #0mov hourge, #0mov hourshi, #0exi:ret;常數(shù)表格區(qū)-;系統(tǒng)初始化后提示符“p.”字符代碼表disbh: db 11h,10h,10h,10h,10h,10h,10h,10h ;“p.”字符序號disbi: db 00h,00h,12h,00h,00h,12h,00h,00h;顯示字符段選碼表(共陽極代碼) tab: db 0c0h, 0f9h,0a4h,0b0h,99h,92h,8

25、2h,0f8h,80h ;0-8 db 90h,88h,83h,0c6h,0a1h,86h,8eh,0ffh,0ch,0bfh;9,a,b,c,d,e,f,滅,p. end4 設(shè)計結(jié)論、仿真結(jié)果、誤差分析4.1 數(shù)字電子鐘的設(shè)計結(jié)論及使用說明該電子鐘上電或按鍵復位后能自動顯示系統(tǒng)提示符“p.”, 進入時鐘準備狀態(tài);第一次按電子鐘啟動/調(diào)整鍵,電子鐘從0時0分0秒開始運行,進入時鐘運行狀態(tài);再次按電子鐘啟動/調(diào)整鍵,則電子鐘進入時鐘調(diào)整狀態(tài),此時可利用各調(diào)整鍵調(diào)整時間,調(diào)整結(jié)束后可按啟動/調(diào)整鍵再次進入時鐘運行狀態(tài)。s2鍵為啟動/調(diào)整鍵,s3鍵為時調(diào)節(jié),s4鍵為分調(diào)節(jié),s5鍵為秒調(diào)節(jié)。操作步驟如

26、下:(1) 將+5v電源接到電子鐘電源插口上,接通電源開關(guān)。(2) 把電子鐘電路板上的isp程序下載線連接到計算機usb接口,在計算機上通過avr_fighter軟件把電子鐘程序下載到單片機內(nèi)。(3) 電子鐘程序下載到單片機以后,電子鐘進入命令狀態(tài),顯示“p.”。(4) 按下s2鍵,電子鐘從0開始運行,此時led7、led6、led4、led3、led1、led0分別顯示時、分、秒。(5) 再次按下s2鍵,電子鐘進入調(diào)時狀態(tài),此時通過s3鍵、s4鍵、s5鍵分別調(diào)整電子鐘的時、分、秒。按一下對應的值加一。調(diào)整到想要的時間后,再次按下s2鍵,電子鐘將以用戶調(diào)整時間為起點進入運行狀態(tài)。4.2 數(shù)字電

27、子鐘的仿真結(jié)果本次設(shè)計的數(shù)字電子鐘有三種狀態(tài):待機顯示“p.”狀態(tài),時鐘運行狀態(tài),時鐘調(diào)整狀態(tài)。它們分別如圖4.1、圖4.2、圖4.3所示。圖4.1 待機顯示“p.”狀態(tài)仿真結(jié)果圖4.2時鐘運行狀態(tài)仿真結(jié)果圖4.3 時鐘調(diào)整狀態(tài)仿真結(jié)果4.3 數(shù)字電子鐘的誤差分析雖說采用軟件方式來產(chǎn)生1s的基本時間,然而定時器/計數(shù)器本身不能產(chǎn)生標準的1s定時,產(chǎn)生一個標準時間之后進行循環(huán)計數(shù)得到1s,但cpu執(zhí)行代碼需要1-2s的時間,因此產(chǎn)生的1s,1分,1小時,都會略大于標準的時間。此外,單片機也易受外界環(huán)境的影響,比如溫度、濕度等干擾。故應該讓單片機工作在適宜的環(huán)境下,同時采用實時時鐘芯片,這樣能將誤

28、差降低到最小。4.4 設(shè)計重點、難點,體會及不足之處重點:單片課程設(shè)計考察的是一個人理論與實踐相結(jié)合的能力,要求設(shè)計者具有一定的理論知識及動手操作能力。比如用proteus軟件進行單片機系統(tǒng)電路的仿真設(shè)計、protel軟件的使用、pcb板的硬件制作,keil軟件編寫和調(diào)試匯編程序。難點:硬件電路的故障檢測和修復,原理電路圖的仿真設(shè)計,匯編程序的編寫和調(diào)試。體會:現(xiàn)在來回想單片機的課程設(shè)計,有許多感觸,從最開始接觸單片機和匯編語言,到現(xiàn)在能獨立完成一個課程設(shè)計,我必須得感謝王老師的諄諄教導和辛勤付出,是老師給了我動力。在本學期初期做pcb板時因布局的不科學導致最后的制作使用出現(xiàn)了許多麻煩,還有焊接的經(jīng)驗不足導致了虛焊;在匯編編程時,書本上的很多知識又學的很不扎實,程序基本語句理解不夠透徹,導致編

溫馨提示

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

評論

0/150

提交評論