簡(jiǎn)易時(shí)鐘課程設(shè)計(jì)報(bào)告_第1頁(yè)
簡(jiǎn)易時(shí)鐘課程設(shè)計(jì)報(bào)告_第2頁(yè)
簡(jiǎn)易時(shí)鐘課程設(shè)計(jì)報(bào)告_第3頁(yè)
簡(jiǎn)易時(shí)鐘課程設(shè)計(jì)報(bào)告_第4頁(yè)
簡(jiǎn)易時(shí)鐘課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

PAGEPAGE20目錄一、系統(tǒng)總體方案選擇與說明 1二、設(shè)計(jì)框圖與工作原理 22.1設(shè)計(jì)框圖 22.2工作原理 3三、各單元硬件設(shè)計(jì)說明及計(jì)算方法 4四、軟件設(shè)計(jì)與說明 54.1程序設(shè)計(jì)流程圖 54.2程序設(shè)計(jì)步驟 74.2.1延時(shí)程序 74.2.2主程序的設(shè)計(jì) 74.2.3中斷服務(wù)程序的設(shè)計(jì) 84.2.4顯示控制子程序的設(shè)計(jì) 84.2.5按鍵控制程序的設(shè)計(jì) 8五、調(diào)試結(jié)果及說明 85.1軟件調(diào)試 85.2硬件調(diào)試 9六、各元件的使用說明 106.1AT89C51芯片 106.2數(shù)碼管 116.3按鍵 11七、總結(jié) 11八、參考文獻(xiàn) 12九、附錄 13附錄A 13附錄B 14系統(tǒng)總體方案選擇與說明單片機(jī)系統(tǒng)作為一種典型的嵌入式系統(tǒng),其系統(tǒng)設(shè)計(jì)包括硬件電路設(shè)計(jì)和軟件編程設(shè)計(jì)兩個(gè)方面,其調(diào)試過程一般分為軟件調(diào)試、硬件測(cè)試、系統(tǒng)調(diào)試3個(gè)過程。如果采用單片機(jī)系統(tǒng)的虛擬仿真軟件——Proteus,則不用制作具體的電路板也能夠完成以上工作?;趩纹瑱C(jī)設(shè)計(jì)的數(shù)字鐘精確度較高,因?yàn)樵诔绦虻膱?zhí)行過程中,任何指令都不影響定時(shí)器的正常計(jì)數(shù),即便程序很長(zhǎng)也不會(huì)影響中斷的時(shí)間。從而,使數(shù)字鐘的精度僅僅取決于單片機(jī)的產(chǎn)生機(jī)器周期電路和定時(shí)器硬件電路的精確度。另外,程序較為簡(jiǎn)潔,具有可靠性和較好的可讀性。針對(duì)要實(shí)現(xiàn)的功能,擬采用AT89C51單片機(jī)進(jìn)行設(shè)計(jì),AT89C51單片機(jī)是一款低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB在線可編程(ISP)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51在程序方面,采用分塊設(shè)計(jì)的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項(xiàng)功能。程序可分為顯示程序、調(diào)時(shí)顯示運(yùn)用、時(shí)鐘和跑表切換程序這種方法,關(guān)鍵在于各模塊的兼容和配合,若各模塊不匹配會(huì)出現(xiàn)意想不到的錯(cuò)誤。首先,在編程之前必須了解硬件結(jié)構(gòu)尤其是各引腳的用法,以及內(nèi)部寄存器、存儲(chǔ)單元的用法,否則,編程無從下手,電路也無法設(shè)計(jì)。這是前期準(zhǔn)備工作。本設(shè)計(jì)中我們采用的硬件是自己焊的單片機(jī)開發(fā)板,首先要先確認(rèn)該板能夠完成下載功能在開始編程;第二部分是硬件部分:依據(jù)想要的功能分塊設(shè)計(jì)設(shè)計(jì),比如輸入需要開關(guān)電路,輸出需要顯示驅(qū)動(dòng)電路和段選電路等。第三部分是軟件部分:先學(xué)習(xí)理解匯編語言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè)計(jì)。第四部分是軟件畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中進(jìn)行仿真,仿真無法完成時(shí)檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。第六部分是硬件實(shí)現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計(jì)的完全一樣一般能實(shí)現(xiàn)想要的功能。在下載到硬件中時(shí)確認(rèn)程序的關(guān)鍵管腳與硬件電路一致。設(shè)計(jì)框圖與工作原理1、設(shè)計(jì)框圖(如圖一):熟悉硬件了解各引腳功能熟悉硬件了解各引腳功能分塊設(shè)計(jì)各部分電路將分塊的電路組合認(rèn)真學(xué)習(xí)單片機(jī)匯編語言完成整體電路圖確定編程結(jié)構(gòu)和思路綜合各程序完成整體程序編輯各個(gè)程序模塊用Proteus畫出電路圖調(diào)試程序,進(jìn)行修改對(duì)仿真中出現(xiàn)的問題進(jìn)行改正畫出仿真圖進(jìn)行仿真焊接單片機(jī)開發(fā)板仿真成功軟硬件結(jié)合,完成任務(wù)書要求驗(yàn)證硬件電路成功對(duì)設(shè)計(jì)進(jìn)行總結(jié)和分析圖一工作原理:在整個(gè)系統(tǒng)中首先要做的是將要實(shí)現(xiàn)功能的軟件程序編寫好,在程序編寫好以后對(duì)其進(jìn)行仿真調(diào)試,直到仿真結(jié)果和所需結(jié)果一致;其次要做的就是焊接出硬件即單片機(jī)開發(fā)板,在焊接好的開發(fā)板中對(duì)開發(fā)板進(jìn)行檢測(cè)看其是否能工作;在開發(fā)板能工作后,將軟件程序下載到硬件開發(fā)板的芯片中,進(jìn)行調(diào)試直到硬件中所示的結(jié)果和自己設(shè)計(jì)所需的結(jié)果一致。各單元硬件設(shè)計(jì)說明及計(jì)算方法這部分介紹各模塊電路的硬件設(shè)計(jì)方法和成果,主要分為:輸入部分、輸出部分、復(fù)位。對(duì)于輸入部分有時(shí)鐘和跑表功能切換鍵,有對(duì)時(shí)鐘的時(shí)、分、秒進(jìn)行調(diào)整的按鍵;而輸出部分則是電路的顯示部分,將AT89C51的輸出與數(shù)碼管連接起來就構(gòu)成了該硬件電路的顯示部分。對(duì)于硬件個(gè)元件的來源,我們先把單片機(jī)開發(fā)板焊接好,在焊接的過程中初步的了解一下開發(fā)板的內(nèi)部結(jié)構(gòu)以及各元件之間的關(guān)系,以便于在后續(xù)的下載連線工作中能夠正確的、快速的連接好線,以便下載,焊接好開發(fā)板后,接下來就是測(cè)試開發(fā)的好壞,好的話就完成了硬件的設(shè)計(jì),壞的話就將其原因查出重新焊接直到開發(fā)板能夠下載程序,為后續(xù)的下載做好準(zhǔn)備。下面分別來介紹一下各個(gè)部分。輸入部分:在電子鐘的輸入部分,設(shè)置相應(yīng)的置數(shù)功能,通過外部設(shè)備的輸入,如按鍵,實(shí)現(xiàn)時(shí)間的修改。在選用輸入端口時(shí),將P1引腳與按鍵相連進(jìn)行輸入。設(shè)計(jì)的輸入部分如圖二:圖二輸出部分:在電子鐘的輸出部分,與數(shù)碼管相連顯示出時(shí)、分、秒,在顯示中其數(shù)字的輸出在P0口,數(shù)碼管有共陽(yáng)和共陰之分,根據(jù)自己的軟件程序的編寫來選擇不同的數(shù)碼管和數(shù)碼管的個(gè)數(shù),以及正確的連接數(shù)碼管的驅(qū)動(dòng)電路。設(shè)計(jì)的輸出部分如圖三:圖三硬件的計(jì)算是簡(jiǎn)單的計(jì)算,其要計(jì)算需要多少個(gè)數(shù)碼管來顯示,以及多少個(gè)開關(guān)來控制該電路,本硬件電路需要五個(gè)按鍵來控制對(duì)于時(shí)、分、秒的調(diào)整以及時(shí)鐘和跑表的切換功能和復(fù)位鍵,對(duì)于數(shù)碼管則只需要六個(gè)來分別顯示時(shí)時(shí):分分:秒秒或分分:秒秒:毫秒毫秒。軟件設(shè)計(jì)與說明程序設(shè)計(jì)流程圖(如圖四):圖四結(jié)合電路,程序的總體思路分析:1、點(diǎn)復(fù)位鍵(即單片機(jī)的系統(tǒng)復(fù)位鍵)后,進(jìn)行時(shí)鐘時(shí)間顯示,從0時(shí)0分0秒開始。2、按下SECOND鍵時(shí)進(jìn)行校時(shí),當(dāng)SECOND鍵按下1次對(duì)秒位進(jìn)行調(diào)時(shí),此時(shí)按下1次對(duì)秒位加1;3、當(dāng)MINUTE鍵按下1次時(shí)對(duì)分位進(jìn)行調(diào)整,此時(shí)按下1次對(duì)分位加1;4、當(dāng)HOUR鍵按下1次時(shí)對(duì)時(shí)進(jìn)行調(diào)整,此時(shí)按下1次久對(duì)時(shí)位加1;5、當(dāng)xuanze鍵按下時(shí),系統(tǒng)將切換到跑表功能,數(shù)碼管顯示分分:秒秒:毫秒毫秒。在程序設(shè)計(jì)時(shí),盡量改進(jìn)算法,算法的改進(jìn)可以使相對(duì)誤差減小,或者可以使占用空間減小。另外,分塊的設(shè)計(jì)思想要貫穿始終,整個(gè)程序較為繁雜,某些程序段會(huì)反復(fù)用到,因此采取的方法是寫出多個(gè)程序段,通過跳轉(zhuǎn)指令進(jìn)行調(diào)用。程序設(shè)計(jì)步驟:在程序設(shè)計(jì)過程中,我遇到了很多困難,這部分也是讓我學(xué)到很多東西的地方。首先,我學(xué)習(xí)了定時(shí)器的相關(guān)知識(shí),計(jì)數(shù)器的使用是很重要的組成部分,在這個(gè)設(shè)計(jì)中選擇計(jì)數(shù)器T0。T0的工作方式有:方式1:16位計(jì)數(shù)器,常用方式2:自動(dòng)重裝初值的8位定時(shí)/計(jì)數(shù)器方式3:T0相當(dāng)于兩個(gè)獨(dú)立的8位定時(shí)/計(jì)數(shù)器此程序采用方式1,方式1的定時(shí)時(shí)間t為t=(216-M)*12/fosc。其中M為定時(shí)器初值,fosc為12MHz,若M為0則t=65536*12/2*106=65.536ms。因此可取10ms為計(jì)時(shí)單位,初值M應(yīng)為(216-M)*2*10-6=10*10-3。M=55536=1101100011110000B=0D8F0H。即定時(shí)器初值為TH0=0D8H,TL0=0F0H。定時(shí)器中斷100次為一秒,這部分在中斷程序中用到。其次,我參看了文獻(xiàn)中的設(shè)計(jì)思路,做到胸有成竹后再進(jìn)行具體的程序書寫工作。認(rèn)真學(xué)習(xí)了教科書中關(guān)于匯編語言編程的問題,熟悉了匯編語言的編程方法和語法習(xí)慣。第三步就是進(jìn)行具體的程序編寫工作。1、延時(shí)程序在動(dòng)態(tài)掃描時(shí),必然用到延遲程序,這里使用延遲1ms的程序,用它來消除抖動(dòng),在判斷按鍵是否按下是也用到延時(shí)程序,來消除抖動(dòng),因此這個(gè)延時(shí)程序是來優(yōu)化該程序的。2、主程序的設(shè)計(jì)主程序的主要功能是進(jìn)行定時(shí)器T0設(shè)置T0為方式1設(shè)中斷次數(shù)為100清計(jì)時(shí)單元開中斷設(shè)置T0為方式1設(shè)中斷次數(shù)為100清計(jì)時(shí)單元開中斷啟動(dòng)T0調(diào)用顯示子程序主程序中是用來控制全局的,當(dāng)有中斷時(shí)則轉(zhuǎn)向中斷服務(wù)程序,中斷服務(wù)程序執(zhí)行完后又回到主程序中,等待下一次的中斷來臨,這樣就形成了一個(gè)循環(huán),知道系統(tǒng)暫停和復(fù)位。3、中斷服務(wù)程序的設(shè)計(jì)中斷服務(wù)程序中,總體思路是:由于初值是D8F0H,所以裝滿定時(shí)器需要10ms的時(shí)間,從而100次中斷為一秒,一秒之后,判斷是否到60秒,若不到則秒加一,然后返回,若到,則秒賦值為0,分加一,依次類推。4、顯示控制子程序的設(shè)計(jì)在顯示子程序中所要顯示的是當(dāng)為時(shí)鐘時(shí)顯示時(shí)、分、秒,當(dāng)為跑表時(shí)顯示分、秒、毫秒,所以在顯示模塊中需要一條轉(zhuǎn)至語句,通過按鍵來分別選擇所需顯示的方向。圖五5、按鍵控制程序的設(shè)計(jì)在按鍵控制程序中,首先要判斷按鍵是否按下,若按下則執(zhí)行按鍵按下所要執(zhí)行的語句,若沒按下則繼續(xù)判斷按鍵是否按下,對(duì)于按鍵還得需要消抖程序,使得按鍵更準(zhǔn)確。調(diào)試結(jié)果及說明軟件調(diào)試:程序編寫完成后需要對(duì)程序進(jìn)行編譯和調(diào)試,在編譯過程中剛開始很大可能都有錯(cuò)誤,因?yàn)檫@么多的程序很有可能自己的粗心而導(dǎo)致語句有錯(cuò)誤,經(jīng)過反復(fù)的編譯和調(diào)試,程序才真正的正確,在程序調(diào)試完成后,需生成后綴名為.HEX文件,該文件是用來仿真加載到AT89C51芯片上的,在仿真過程中也遇到了很多的問題,比如說仿真結(jié)果和所需的不一致,這就得改程序,還有仿真時(shí)數(shù)碼管沒有顯示,這又可能是仿真電路有問題,總之在軟件調(diào)試過程中問題是很多的,我們得一一的解決。仿真結(jié)果如圖六所示:圖六結(jié)果說明:圖中所示從左至右數(shù)碼管顯示的是時(shí)、分、秒,圖中左下角有四個(gè)按鍵,分別用來調(diào)整時(shí)、分、秒和時(shí)鐘和跑表的選擇。74LS245是數(shù)碼管顯示的驅(qū)動(dòng)芯片。硬件調(diào)試:對(duì)硬件調(diào)試,首先是對(duì)已經(jīng)焊接好的單片機(jī)開發(fā)板進(jìn)行測(cè)試,使其能正常工作,在測(cè)試中首先檢測(cè)知道上電后LED燈不亮,原因是開關(guān)接反了,其次是下不進(jìn)程序,原因是LED燈接反了,經(jīng)過反復(fù)的檢測(cè)和改進(jìn),終于使得開發(fā)板能夠正常工作;其次是將自己所編寫好的程序下載到單片機(jī)板上,按照程序來正確的連接端口的連線,在我們自己焊接的開發(fā)板中只有四個(gè)數(shù)碼管,個(gè)數(shù)不夠,所以還得借上一個(gè)顯示模塊來補(bǔ)足這數(shù)碼管的個(gè)數(shù),將程序下載后進(jìn)行調(diào)試,如果結(jié)果不對(duì)那么就根據(jù)程序和硬件的連線來修改錯(cuò)誤,直到結(jié)果正確。硬件調(diào)試結(jié)果如圖七所示:圖七結(jié)果說明:圖中所示從左至右數(shù)碼管顯示的是時(shí)、分、秒,圖中左下角有四個(gè)按鍵,分別用來調(diào)整時(shí)、分、秒和時(shí)鐘和跑表的選擇。各元件的使用說明1、AT89C51芯片該單片機(jī)功能強(qiáng)大,不僅能滿足設(shè)計(jì)的需要,也可以在設(shè)計(jì)要求的基礎(chǔ)上進(jìn)行一些擴(kuò)展。在使用時(shí)VCC接電源電壓,GND接地。P0,P1,P2,P3可作為輸入或輸出端口,RST是復(fù)位輸入,接復(fù)位電路。XTAL1和XTAL2接振蕩電路。這些可以在硬件設(shè)計(jì)部分體現(xiàn)出來。在本設(shè)計(jì)中我們將AT89C51芯片的P1都作為按鍵的輸入,P0口作為段顯示的輸出,而在仿真是P3口作為片選的輸出,下載到硬件是把P3口作為片選的輸出,其引腳圖如圖八所示:圖八2、數(shù)碼管該數(shù)碼管是七段數(shù)碼管,其中用A、B、C、D、E、F、G的顯示來顯示數(shù)字和字符,比如要顯示0的話,如果該數(shù)碼管是共陰極的,則ABCDEFG分別為0111111,若是共陽(yáng)的話則為1000000,其圖如圖九所示:圖九3、按鍵本設(shè)計(jì)中用了兩種按鍵,其實(shí)脈沖式的按鈕按下后立即抬起,另一種是開關(guān)是的,有閉合和斷開兩個(gè)狀態(tài);用開關(guān)式的來作為時(shí)鐘和跑表的切換功能,用按鈕來對(duì)時(shí)、分、秒的調(diào)整,其圖如圖十所示:圖十總結(jié)通過這次對(duì)簡(jiǎn)易時(shí)鐘的設(shè)計(jì),讓我了解了電路設(shè)計(jì)的基本步驟,也讓我了解了關(guān)于時(shí)鐘的原理與設(shè)計(jì)理念,要設(shè)計(jì)一個(gè)電路先進(jìn)行軟件模擬仿真再進(jìn)行實(shí)際的電路制作。但是最后的成品卻不一定與仿真時(shí)完全一樣,因?yàn)?,再?shí)際接線中有著各種各樣的條件制約著。而且,在仿真中無法成功的電路接法,在實(shí)際中因?yàn)樾酒旧淼奶匦远軌虺晒ΑK?,在設(shè)計(jì)時(shí)應(yīng)考慮兩者的差異,從中找出最適合的設(shè)計(jì)方法。通過這次學(xué)習(xí),讓我對(duì)各種電路都有了大概的了解,所以說,坐而言不如立而行,對(duì)于這些電路還是應(yīng)該自己動(dòng)手實(shí)際。特別是在焊接單片機(jī)開發(fā)板的時(shí)候,結(jié)果自己親自的焊接對(duì)該開發(fā)板的內(nèi)部結(jié)果以及怎樣連接和各個(gè)模塊的功能有了了解,通過對(duì)單片機(jī)的檢測(cè)也學(xué)到了對(duì)器件和電路的檢測(cè)方法,學(xué)到了設(shè)計(jì)的思維方法,這對(duì)我是有很到好處的,起初對(duì)于這板子一點(diǎn)都不怎么的了解,但經(jīng)過自己的焊接以后對(duì)于其作用和功能有了很大的了解,如果不焊接直接買塊單片機(jī)的話就可能對(duì)其內(nèi)部連接和功能了解的就沒這么的深刻。通過時(shí)鐘的設(shè)計(jì)和制作,加深了對(duì)單片機(jī)的理解,能夠更熟練地應(yīng)用單片機(jī)實(shí)現(xiàn)預(yù)期的功能,對(duì)今后的工作有很大的幫助。時(shí)鐘各項(xiàng)功能的實(shí)現(xiàn),為以后的更深一步的學(xué)習(xí)單片機(jī)打下了理論基礎(chǔ),獲得了實(shí)現(xiàn)方法。整個(gè)的課程設(shè)計(jì)過程中是非常的辛苦,比如在焊接板子的時(shí)候?yàn)榱丝於玫暮附雍冒遄?,我是從早一直焊接到晚上,一天沒吃飯沒喝過水,有比如在做程序設(shè)計(jì)的時(shí)候,有時(shí)一個(gè)功能沒實(shí)現(xiàn)自己反復(fù)的在思索如何來實(shí)現(xiàn),有時(shí)弄到凌晨幾點(diǎn)才睡。雖然在此過程中我吃了不少的苦,但是我學(xué)到了很多的東西,找到了自信。在今后的其他工作中,也可以把這次設(shè)計(jì)中的收獲運(yùn)用進(jìn)去,這是我此次課程設(shè)計(jì)得到的最大財(cái)富。課程設(shè)計(jì)是大學(xué)生活中重要階段的工作,是真正考驗(yàn)我們能力的一項(xiàng)教學(xué)內(nèi)容,在這個(gè)過程中我認(rèn)真思考,不斷嘗試,收獲了很多在平時(shí)的課堂上收獲不到的東西。課程設(shè)計(jì)即將結(jié)束,我會(huì)吸取課程設(shè)計(jì)中的經(jīng)驗(yàn)和教訓(xùn),在今后的工作中少走彎路。在此設(shè)計(jì)中老師給了我很大的幫助,在我不能解決的問題中給了我思考的方向使得我能夠?qū)栴}解決,在此感謝指導(dǎo)老師的幫助。參考文獻(xiàn)1、李建忠編單片機(jī)原理及應(yīng)用西安電子科技大學(xué)出版社2、高峰編單片微型計(jì)算機(jī)原理與接口技術(shù)電子工業(yè)出版社3、鄒逢興編單片機(jī)應(yīng)用新技術(shù)教程高等教育出版社4、朱宇光編16位微型計(jì)算機(jī)原理接口及其應(yīng)用電子工業(yè)出版社5、吳秀清編微型計(jì)算機(jī)原理與接口技術(shù)中國(guó)科學(xué)技術(shù)出版社6、鄧亞平編微型計(jì)算機(jī)接口技術(shù)清華大學(xué)出版社7、王迎旭編單片機(jī)原理及及應(yīng)用機(jī)械工業(yè)出版社8、張毅剛編單片機(jī)原理及應(yīng)用高等教育出版社附錄附錄A:系統(tǒng)原理圖(如圖十一):圖十一附錄B:程序清單:S_SET BIT P1.0 ;數(shù)字鐘秒控制位M_SET BIT P1.1 ;分鐘控制位H_SET BIT P1.2 ;小時(shí)控制位X_SET BIT P1.3 ;時(shí)鐘跑表控制位Z_SETBITP1.4 MSECOND EQU 30HSECOND EQU 31HMINUTE EQU 32HHOUR EQU 33HTCNT EQU 35H ORG 00H SJMP START ORG 0BH LJMP INT_T0START: MOV DPTR,#TABLE MOV HOUR,#0 ;初始化 MOV MINUTE,#0 MOV SECOND,#0 MOV MSECOND,#0 MOV TCNT,#0 MOV TMOD,#01H MOV TH0,#0D8H ;定時(shí)10毫秒 MOV TL0,#0F0H MOV IE,#82H SETB TR0;****************************************************;判斷是否有控制鍵按下,是哪一個(gè)鍵按下A1: LCALL DISPLAY JNB S_SET,S1 JNB M_SET,S2 JNB H_SET,S3 LJMP A1S1: LCALL DELAY ;去抖動(dòng) JB S_SET,A1 INC SECOND ;秒值加1 MOV A,SECOND CJNE A,#60,J0 ;判斷是否加到60秒 MOV SECOND,#0 LJMP K1 S2: LCALL DELAY JB M_SET,A1 K1: INC MINUTE ;分鐘值加1 MOV A,MINUTE CJNE A,#60,J1 ;判斷是否加到60分 MOV MINUTE,#0 LJMP K2 S3: LCALL DELAY JB H_SET,A1 K2: INC HOUR ;小時(shí)值加1 MOV A,HOUR CJNE A,#24,J2 ;判斷是否加到24小時(shí) MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 LJMP A1;****************************************************;等待按鍵抬起J0: JB S_SET,A1 LCALL DISPLAY SJMP J0J1: JB M_SET,A1 LCALL DISPLAY SJMP J1J2: JB H_SET,A1 LCALL DISPLAY SJMP J2;***********************************************;定時(shí)器中斷服務(wù)程序,對(duì)毫秒.秒.分鐘和小時(shí)的計(jì)數(shù)INT_T0:MOV TH0,#0D8H MOV TL0,#0F0H INC TCNT MOV A,TCNT INC MSECOND ;計(jì)時(shí)毫秒 CJNEA,#100,RETUNE INC SECOND ;計(jì)時(shí)1秒 MOVTCNT,#0 MOV MSECOND,#0 MOV A,SECOND CJNE A,#60,RETUNE INC MINUTE MOV SECOND,#0 MOV A,MINUTE CJNE A,#60,RETUNE INC HOUR MOV MINUTE,#0 MOV A,HOUR CJNE A,#24,RETUNE MOV HOUR,#0 MOV MINUTE,#0 MOV SECOND,#0 MOV TCNT,#0RETUNE: RETI;******************************************;顯示控制子程序DISPLAY:JNBX_SET,PBSZ: MOV A,SECOND ;顯示秒 MOV B,#10 DIV AB CLR P3.6 MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P3.6 MOV A,B CLR P3.7 MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P3.7MOV A,MINUTE ;顯示分鐘 MOV B,#10 DIV AB CLR P3.4 MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P3.4 MOV A,B CLR P3.5 MOVC A,@A+DPTR MOV P0,A LCALL DELAY SETB P3.5 MOV A,HOUR ;顯示小時(shí) MOV B,#1

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論