哈工大數(shù)字日歷時(shí)鐘課程設(shè)計(jì)優(yōu)秀報(bào)告_第1頁(yè)
哈工大數(shù)字日歷時(shí)鐘課程設(shè)計(jì)優(yōu)秀報(bào)告_第2頁(yè)
哈工大數(shù)字日歷時(shí)鐘課程設(shè)計(jì)優(yōu)秀報(bào)告_第3頁(yè)
哈工大數(shù)字日歷時(shí)鐘課程設(shè)計(jì)優(yōu)秀報(bào)告_第4頁(yè)
哈工大數(shù)字日歷時(shí)鐘課程設(shè)計(jì)優(yōu)秀報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Harbin Institute of Technology課程設(shè)計(jì)說(shuō)明書(shū)(論文)課程名稱: 課程設(shè)計(jì)1 設(shè)計(jì)題目: 數(shù)字日歷鐘表的設(shè)計(jì) 院 系: 電信學(xué)院通信工程 班 級(jí): 1105103 設(shè) 計(jì) 者: 學(xué) 號(hào): 11105103 指導(dǎo)教師: 任廣輝 設(shè)計(jì)時(shí)間: 2014.3.25-2014.4.24 哈爾濱工業(yè)大學(xué)哈爾濱工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書(shū) 姓 名: 院 (系):電信學(xué)院通信工程 專(zhuān) 業(yè):通信工程 班 號(hào):1105103 任務(wù)起至日期: 2014 年 3月 25 日至 2014 年3 月24 日 課程設(shè)計(jì)題目: 數(shù)字日歷鐘的設(shè)計(jì) 已知技術(shù)參數(shù)和設(shè)計(jì)要求:1 數(shù)碼管顯示:秒、分、時(shí)(可同時(shí)

2、顯示,也可輪換顯示)2 能夠設(shè)置時(shí)間,“設(shè)置按鍵”數(shù)量不限,以簡(jiǎn)單合理易用為好。3 誤差:1秒天(報(bào)告中要論述分析是否滿足要求)擴(kuò)展(優(yōu)秀必作)1 設(shè)置校準(zhǔn)鍵:當(dāng)數(shù)字鐘顯示在“整點(diǎn)±30秒”范圍時(shí),按動(dòng)“校準(zhǔn)鍵”,數(shù)字鐘即刻被調(diào)整到整點(diǎn),消除了±30秒的誤差。2 加上“星期”顯示(可以預(yù)置),并可以對(duì)其進(jìn)行設(shè)置。 其他要求:1 按動(dòng)員老師的要求、課程設(shè)計(jì)報(bào)告規(guī)范進(jìn)行設(shè)計(jì)2 不允許使用時(shí)數(shù)字鐘表、日歷專(zhuān)用IC電路。3 可以使用通用器件:模擬、數(shù)字、單片機(jī)、EPLD、模塊電路等。4 設(shè)計(jì)方法不限。 工作量:1. 查找資料2. 設(shè)計(jì)論證方案3. 具體各個(gè)電路選擇、元器件選擇和數(shù)值

3、計(jì)算4. 具體說(shuō)明各部分電路圖的工作原理5. 繪制電路原理圖6. 繪制印刷電路圖7. 元器件列表8. 編寫(xiě)調(diào)試操作9. 打印論文 工作計(jì)劃安排:1. 查閱資料: 2. 方案論證3. 設(shè)計(jì)、分析、計(jì)算、模擬調(diào)試、仿真、設(shè)計(jì)原理4. 撰寫(xiě)報(bào)告:課程設(shè)計(jì)要求、方案論證、原理論述(原理框圖、原理圖)、分析、計(jì)算、仿真,PCB圖的設(shè)計(jì),誤差分析、總結(jié),參考文獻(xiàn)等5. 上交課程設(shè)計(jì)論文2014-4-25 同組設(shè)計(jì)者及分工:A:主要負(fù)責(zé)查找資料、電路圖繪制、模擬調(diào)試、仿真、報(bào)告撰寫(xiě)。B:主要負(fù)責(zé)查找資料、設(shè)計(jì)、分析、參數(shù)計(jì)算、以及程序編寫(xiě)。 指導(dǎo)教師簽字_ 年 月 日 教研室主任意見(jiàn): 教研室主任簽字_ 年

4、 月 日*注:此任務(wù)書(shū)由課程設(shè)計(jì)指導(dǎo)教師填寫(xiě)數(shù)字日歷鐘表的設(shè)計(jì)摘要:單片機(jī)自20世紀(jì)70年代問(wèn)世以來(lái),以其極高的性能價(jià)格比,受到人們的重視和關(guān)注,應(yīng)用很廣、發(fā)展很快。單片機(jī)體積小、重量輕、抗干擾能力強(qiáng)、環(huán)境要求不高、價(jià)格低廉、可靠性高、靈活性好、開(kāi)發(fā)較為容易。由于具有上述優(yōu)點(diǎn),在我國(guó),單片機(jī)已廣泛地應(yīng)用在工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀器儀表、家用電器、電力電子、機(jī)電一體化設(shè)備等各個(gè)方面,而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。這次課程設(shè)計(jì)通過(guò)對(duì)它的學(xué)習(xí)、應(yīng)用,以AT89S51芯片為核心,輔以必要的電路,設(shè)計(jì)了一個(gè)簡(jiǎn)易的電子時(shí)鐘,它由4.5V直流電源供電,通過(guò)數(shù)碼管能夠準(zhǔn)確顯示時(shí)間

5、,調(diào)整時(shí)間,從而到達(dá)學(xué)習(xí)、設(shè)計(jì)、開(kāi)發(fā)軟、硬件的能力。關(guān)鍵字:數(shù)字電子鐘、單片機(jī)、數(shù)碼管Abstract: Single-chip microcomputer was paid attention by people from 1970s because of its high quality with low price. It has been developed and used well. It has various advantages, such as small volume, low weight, outstanding immunity from interference,

6、 cheap price, high reliability and flexibility. Until now, single chip has been applied in industry automation control, automatic detection, intelligent instrument, household appliances, and other electrical and electronic devices. MCS-51 single chip is one of the most typical single chips. In this

7、course design, MCS-51 single chip is used as the core component to assemble a simple digital clock. This clock, powered by 4.5V DC supply, can display and adjust time trough nixie tube. From designing, we can efficiently improve the ability of developing software and hardware. Keywords: Digital cloc

8、k, Single chip, Nixie tube一、課程設(shè)計(jì)目標(biāo)1. 數(shù)碼管顯示:秒、分、時(shí)2. 能夠設(shè)置時(shí)間,“設(shè)置按鍵”數(shù)量不限,以簡(jiǎn)單合理易用為好。3. 誤差:1秒天4. 設(shè)置校準(zhǔn)鍵:當(dāng)數(shù)字鐘顯示在“整點(diǎn)±30秒”范圍時(shí),按動(dòng)“校準(zhǔn)鍵”,數(shù)字鐘即刻被調(diào)整到整點(diǎn),消除了±30秒的誤差。5 加上“星期”顯示,并可以對(duì)其進(jìn)行設(shè)置二、方案論證與比較2.1數(shù)字時(shí)鐘方案數(shù)字時(shí)鐘是本設(shè)計(jì)的最主要的部分。根據(jù)需要,可利用兩種方案實(shí)現(xiàn)。方案一:本方案采用Dallas公司的專(zhuān)用時(shí)鐘芯片DS12887A。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時(shí)鐘鬧鐘功

9、能,因此,可直接對(duì)其以用于顯示或設(shè)置,使得軟件編程相對(duì)簡(jiǎn)單。為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉電時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,以備隨時(shí)提供正確的時(shí)間。方案二:本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將十字節(jié)清

10、零。該方案具有硬件電路簡(jiǎn)單的特點(diǎn)。但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作。基于硬件電路的考慮,本設(shè)計(jì)采用方案二完成數(shù)字時(shí)鐘的功能。2.2 數(shù)碼管顯示方案方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個(gè)8 位輸出口控制。靜態(tài)顯示時(shí)較小的電流能獲得較高的亮度,且字符不閃爍。但當(dāng)所顯示的位數(shù)較多時(shí),靜態(tài)顯示所需的I/O口太多,造成了資源的浪費(fèi)。方案二:動(dòng)態(tài)顯示。所謂動(dòng)態(tài)顯示就是一位一位的輪流點(diǎn)亮各個(gè)位,對(duì)于顯示器的每一位來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一

11、次。利用人的視覺(jué)暫留功能可以看到整個(gè)顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點(diǎn)亮?xí)r間與間隔時(shí)間的比例有關(guān)。調(diào)整參數(shù)可以實(shí)現(xiàn)較高穩(wěn)定度的顯示。動(dòng)態(tài)顯示節(jié)省了I/O口,降低了能耗。從節(jié)省I/O口和降低能耗出發(fā),本設(shè)計(jì)采用方案二。三、系統(tǒng)總體設(shè)計(jì)計(jì)時(shí)方案利用AT89S51單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。該方案節(jié)省硬件成本,且能使讀者在定時(shí)/計(jì)數(shù)器的使用、中斷及程序設(shè)計(jì)方面得到鍛煉與提高,對(duì)單片機(jī)的指令系統(tǒng)能有更深入的了解,從而對(duì)學(xué)好單片機(jī)技術(shù)這門(mén)課程起到一定的作用??刂品桨窤T89S51的P0口和P2口外接由八個(gè)LED數(shù)碼

12、管(LED8LED1)構(gòu)成的顯示器,用P0口作LED的段碼輸出口,P2口作八個(gè)LED數(shù)碼管的位控輸出線,P1口外接四個(gè)按鍵A、B、C構(gòu)成鍵盤(pán)電路。AT89S51 是一種低功耗,高性能的CMOS 8位微型計(jì)算機(jī)。它帶有8K Flash 可編程和擦除的只讀存儲(chǔ)器(EPROM),該器件采用ATMEL的高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)上標(biāo)準(zhǔn)的80C51和80C52的指令系統(tǒng)及引腳兼容,片內(nèi)Flash 集成在一個(gè)芯片上,可用與解決復(fù)雜的問(wèn)題,且成本較低。簡(jiǎn)易電子鐘的功能不復(fù)雜,采用其現(xiàn)有的I/O便可完成,所以本設(shè)計(jì)中采用此的設(shè)計(jì)方案??傮w設(shè)計(jì)分析利用單片機(jī)(AT89S51)制作簡(jiǎn)易電子時(shí)鐘,由六個(gè)L

13、ED數(shù)碼管分別顯示小時(shí)十位、小時(shí)個(gè)位、分鐘十位、分鐘個(gè)位、秒鐘十位、秒鐘個(gè)位。結(jié)合本設(shè)計(jì)實(shí)驗(yàn)來(lái)說(shuō),要求顯示的時(shí)間為時(shí),分,秒,并且都用兩位數(shù)碼管來(lái)實(shí)現(xiàn)顯示。因此,具體設(shè)計(jì)程序時(shí),應(yīng)盡可能多用一些子程序與數(shù)據(jù)暫寄存器單元。本程序設(shè)計(jì)中,在主程序之外,可以設(shè)置時(shí)間值處理子程序,時(shí)間值顯示前的處理子程序,按鍵情況掃描子程序,1S定時(shí)中斷子程序以及5ms延時(shí)消除按鍵抖動(dòng)子程序等多個(gè)小型的子程序。另外,可以設(shè)置一些數(shù)據(jù)單元作為數(shù)據(jù)寄存器。用28H,2AH,2BH和2CH地址單元分別作為顯示位數(shù)的掃描指針值寄存器,時(shí)寄存器,分寄存器和秒寄存器,再用20H地址單元作為顯示寄存器 圖1總體系統(tǒng)框圖四、具體模塊

14、分析AT89S51芯片 選用的AT89S51與同系列的AT89C51在功能上有明顯的提高,最突出是的可以實(shí)現(xiàn)在線的編程。用于實(shí)現(xiàn)系統(tǒng)的總的控制。其主要功能列舉如下:1、為一般控制應(yīng)用的 8 位單片機(jī)2、晶片內(nèi)部具有時(shí)鐘振蕩器(傳統(tǒng)最高工作頻率可至 33MHz)3、內(nèi)部程式存儲(chǔ)器(ROM)為 4KB4、內(nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)為 128B5、外部程序存儲(chǔ)器可擴(kuò)充至 64KB6、外部數(shù)據(jù)存儲(chǔ)器可擴(kuò)充至 64KB7、32 條雙向輸入輸出線,且每條均可以單獨(dú)做 I/O 的控制8、5 個(gè)中斷向量源9、2 組獨(dú)立的 16 位定時(shí)器10、1 個(gè)全雙工串行通信端口11、8751 及 8752 單芯片具有數(shù)據(jù)保

15、密的功能12、單芯片提供位邏輯運(yùn)算指令圖2 AT89S51芯片74LS47芯片說(shuō)明74LS47是BCD-7段數(shù)碼管譯碼器/驅(qū)動(dòng)器, 74LS47的功能用于將BCD碼轉(zhuǎn)化成數(shù)碼塊中的數(shù)字,通過(guò)它解碼, 可以直接把數(shù)字轉(zhuǎn)換為數(shù)碼管的顯示數(shù)字, 從而簡(jiǎn)化了程序。圖3 74LS47芯片74LS47譯碼器原理:譯碼為編碼的逆過(guò)程。它將編碼時(shí)賦予代碼的含義“翻譯”過(guò)來(lái)。實(shí)現(xiàn)譯碼的邏輯電路成為譯碼器。譯碼器輸出與輸入代碼有唯一的對(duì)應(yīng)關(guān)系。74LS47是輸出低電平有效的七段字形譯碼器,它在這里與數(shù)碼管配合使用。74LS138芯片工作原理:當(dāng)一個(gè)選通端(G1)為高電平,另兩個(gè)選通端(/(G2A)和/(G2B))

16、為低電平時(shí),可將地址端(A、B、C)的二進(jìn)制編碼在一個(gè)對(duì)應(yīng)的輸出端以低電平譯出。作用:利用 G1、/(G2A)和/(G2B)可級(jí)聯(lián)擴(kuò)展成 24 線譯碼器;若外接一個(gè)反相器還可級(jí)聯(lián)擴(kuò)展成 32 線譯碼器。 若將選通端中的一個(gè)作為數(shù)據(jù)輸入端時(shí),74LS138還可作數(shù)據(jù)分配器。圖4 74LS138芯片無(wú)論從邏輯圖還是功能表我們都可以看到74LS138的八個(gè)輸出引腳,任何時(shí)刻要么全為高電平1芯片處于不工作狀態(tài),要么只有一個(gè)為低電平0,其余7個(gè)輸出引腳全為高電平1。如果出現(xiàn)兩個(gè)輸出引腳同時(shí)為0的情況,說(shuō)明該芯片已經(jīng)損壞。71LS138有三個(gè)附加的控制端、和。當(dāng)、時(shí),輸出為高電平(S1),譯碼器處于工作狀

17、態(tài)。否則,譯碼器被禁止,所有的輸出端被封鎖在高電平,如表3.3.5所示。這三個(gè)控制端也叫做“片選”輸入端,利用片選的作用可以將多篇連接起來(lái)以擴(kuò)展譯碼器的功能。3線-8線譯碼器74LS138的功能表晶振電路下圖所示為時(shí)鐘電路原理圖,在AT89S51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內(nèi)部,XTAL1和XTAL2之間跨接晶體振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。圖5 晶振電路復(fù)位電路單片機(jī)復(fù)位的條件是:必須使RST/VPD 或RST引(9)加上持續(xù)兩個(gè)機(jī)器

18、周期(即24個(gè)振蕩周期)的高電平。例如,若時(shí)鐘頻率為12 MHz,每機(jī)器周期為1s,則只需2s以上時(shí)間的高電平,在RST引腳出現(xiàn)高電平后的第二個(gè)機(jī)器周期執(zhí)行復(fù)位。單片機(jī)常見(jiàn)的復(fù)位如圖所示。電路為上電復(fù)位電路,它是利用電容充電來(lái)實(shí)現(xiàn)的。在接電瞬間,RESET端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐漸下降。只要保證RESET為高電平的時(shí)間大于兩個(gè)機(jī)器周期,便能正常復(fù)位。圖6 單片機(jī)復(fù)位電路數(shù)碼顯示模塊數(shù)碼管是一種把多個(gè)LED顯示段集成在一起的顯示設(shè)備。有兩種類(lèi)型,一種是共陽(yáng)型,一種是共陰型。共陽(yáng)型就是把多個(gè)LED顯示段的陽(yáng)極接在一起,又稱為公共端。共陰型就是把多個(gè)LED顯示段的

19、陰極接在一起,即為公共商。陽(yáng)極即為二極管的正極,又稱為正極,陰極即為二極管的負(fù)極,又稱為負(fù)極。通常的數(shù)碼管又分為8段,即8個(gè)LED顯示段,這是為工程應(yīng)用方便如設(shè)計(jì)的,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點(diǎn)位段。數(shù)碼管顯示方法可分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平一直有效。動(dòng)態(tài)顯示的原理是,各個(gè)數(shù)碼管的相同段連接在一起,共同占用8 位段引管線;每位數(shù)碼管的陽(yáng)極連在一起組成公共端。本系統(tǒng)采用動(dòng)態(tài)顯示方式,用P0口來(lái)控制LED數(shù)碼管的段控線,而用P2口來(lái)控制其位控線。動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任

20、何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺(jué)殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人以同時(shí)顯示的感覺(jué)。圖6 六位數(shù)碼管按鍵模塊時(shí)間計(jì)數(shù)電路由秒個(gè)位和秒十位計(jì)數(shù)器、分個(gè)位和分十位計(jì)數(shù)器、時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器及星期計(jì)數(shù)器電路構(gòu)成,其中秒個(gè)位和秒十位計(jì)數(shù)器、分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器,時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器為24進(jìn)制計(jì)數(shù)器。圖7 按鍵模塊電路五、系統(tǒng)電路原理圖與印制電路圖系統(tǒng)電路圖圖8 全部電路原理圖圖9 印刷電路圖六、控制系統(tǒng)的軟件設(shè)計(jì)基本的程序流程應(yīng)該是:在主程序中檢測(cè)各個(gè)時(shí)間按鈕是否有動(dòng)作若有,就儲(chǔ)存并修改相關(guān)的的時(shí)間寄存器的值,若沒(méi)有,就繼續(xù)檢測(cè)。在計(jì)時(shí)子程序中將各時(shí)間

21、寄存器的值逐個(gè)加1,每加一次就要檢查是否已超過(guò)顯示的上限值,這樣在后面就便于處理,在掃描顯示子程序中,將掃描位數(shù)指針與20H相加,從而得到相應(yīng)的顯示數(shù)據(jù);然后按照顯示的位數(shù)加顯示數(shù)就的格式,將數(shù)據(jù)從P1口輸出到數(shù)碼管上去顯示,當(dāng)然還有定時(shí)中斷子程序,在這里,它實(shí)現(xiàn)計(jì)時(shí)1S的時(shí)間延時(shí)。七、系統(tǒng)仿真與實(shí)驗(yàn)測(cè)試系統(tǒng)仿真運(yùn)用proteus軟件進(jìn)行仿真現(xiàn)在proteus軟件中建立一個(gè)新的文件,再根據(jù)自己的要求選擇所需的器件,把器件進(jìn)行適當(dāng)?shù)呐盼缓筮M(jìn)行連接,連接后運(yùn)行軟件進(jìn)行仿真。圖10 Proteus軟件應(yīng)用實(shí)驗(yàn)測(cè)試電子時(shí)鐘主要的設(shè)計(jì)要求是能夠?qū)崿F(xiàn)時(shí)鐘的一般功能,以及包括時(shí)間的調(diào)整功能,這個(gè)基于單片機(jī)的

22、電子時(shí)鐘基本上實(shí)現(xiàn)了上述功能,能夠通過(guò)時(shí)間調(diào)整電路對(duì)時(shí)間進(jìn)行調(diào)整以及復(fù)位。下述為12:00:00的仿真圖: 圖11 12:00:00時(shí)刻的仿真效果圖誤差分析本次設(shè)計(jì)的單片機(jī)電子鐘系統(tǒng)中,其誤差主要來(lái)源包括晶體頻率誤差,定時(shí)器溢出誤差,延遲誤差。晶體頻率產(chǎn)生震蕩,容易產(chǎn)生走時(shí)誤差;定時(shí)器溢出的時(shí)間誤差,本應(yīng)這一秒溢出,但卻在下一秒溢出,造成走時(shí)誤差;延遲時(shí)間過(guò)長(zhǎng)或過(guò)短,都會(huì)造成與基準(zhǔn)時(shí)間產(chǎn)生偏差,造成走時(shí)誤差。使用Keil軟件進(jìn)行誤差分析,使用Debug進(jìn)行調(diào)試,在計(jì)時(shí)整秒處設(shè)置斷點(diǎn),計(jì)時(shí)1s 的平均時(shí)間誤差T=178us,可以通過(guò)調(diào)整計(jì)數(shù)初值來(lái)減小誤差。這樣,可以將1s的誤差調(diào)整為為9us,可

23、得一天的誤差為9×60×60×240.7776s1s,滿足預(yù)期設(shè)計(jì)要求。八、系統(tǒng)仿真與實(shí)驗(yàn)測(cè)試元件名稱規(guī)格型號(hào)單位數(shù)量瓷片電容104只2電解電容10UF/16V只1電阻10k只4電阻4.7k只13芯片AT89S51片1芯片74LS47片1芯片74LS138片17段數(shù)碼管6位/共陰只1按鍵無(wú)自鎖只4無(wú)源晶振12M只1芯片座DIP40只1電池盒5V個(gè)2電路板9.55*5.664CM21附錄:源程序代碼ORG 00H;主程序起始地址JMP START;主程序STARTORG 0BH;定時(shí)器T0中斷起始地址JMP TIM0;定時(shí)器T0中斷子程序TIM0START: MOV

24、 SP;#70H;設(shè)置堆棧指針MOV 28H,#00;設(shè)置顯示位數(shù)掃描指針初值為0MOV 2AH,#12H;設(shè)置時(shí)鐘顯示寄存器初值為12HMOV 2BH,#00;設(shè)置分鐘顯示寄存器初值為00HMOV 2CH,#00;設(shè)置秒鐘顯示寄存器初值為00HMOV TMOD,#01H;設(shè)置定時(shí)器T0工作在方式1MOV TH0,#0F0H;定時(shí)4ms的初值,即0F060HMOV TL0,#60H;初值的低位MOV IE,#82H;定時(shí)器T0中斷允許MOV R4,#250;保證后面實(shí)現(xiàn)中斷250次,即1s的延時(shí)SETB TR0;啟動(dòng)定時(shí)器T0LOOP: JB P0.0,N2;若秒沒(méi)有按鍵,就轉(zhuǎn)去下一步檢查分C

25、ALL DELAY;延時(shí)5ms消除抖動(dòng)MOV A,2CH;將秒寄存器的值載入累加器A ADD A,#01H;A的內(nèi)容加1DA A;十進(jìn)制調(diào)整MOV 2CH,A;A 的值存入秒寄存器CJNE A,#60H,N1;看是否已經(jīng)是60秒,若不是就繼續(xù)檢查MOV 2CH,#00;已經(jīng)是60秒,就清空秒寄存器的值N1: JNB P0.0,$;秒按鍵還沒(méi)有放開(kāi)就循環(huán)等待CALL DELAY;延時(shí)5ms,消除抖動(dòng)N2: JB P0.1,N4;若分沒(méi)有按鍵,就轉(zhuǎn)去下一步檢查時(shí)鐘CALL DELAY;延時(shí)5ms,消除抖動(dòng)MOV A,2BH;將分寄存器的值載入累加器AADD A,#01H;A的內(nèi)容加1DA A;十進(jìn)

26、制調(diào)整MOV 2BH,A;A的值存入分寄存器CJNE A,#60H,N3;看是否已經(jīng)是60分MOV 2BH,#00;已經(jīng)是60分,就清空秒寄存器的值N3: JNB P0.1,$;分按鍵還沒(méi)有放開(kāi)就循環(huán)等待CALL DELAY;延時(shí)5ms,消除抖動(dòng)N4: JB P0.2,LOOP;若時(shí)沒(méi)有按鍵,就轉(zhuǎn)回去繼續(xù)檢查看是否秒有按鍵CALL DELAY;延時(shí)5ms,消除抖動(dòng)MOV A,2AH;將時(shí)寄存器的值載入累加器AADD A,#01H;A的內(nèi)容加1DA A;十進(jìn)制調(diào)整MOV 2AH,A;A的值存入時(shí)寄存器CJNE A,#24H,N5;看是否已經(jīng)是24時(shí),若不是就繼續(xù)檢查MOV 2AH,#00;已經(jīng)是

27、24時(shí),就清空寄存器的值N5: JNB P0.2,$;時(shí)鐘按鍵還沒(méi)有放開(kāi)就循環(huán)等待CALL DELAY;延時(shí)5ms,消除抖動(dòng)JMP LOOP;返回重新檢查看是否有按鍵;*定時(shí)器T0中斷子程序*TIM0: MOV TH0,#0F0H;定時(shí)初值重設(shè)MOV TL0,#60HPUSH ACC;將累加器A的值暫存于堆棧PUSH PSW;將PSW的值暫存于堆棧DJNZ R4,X2;計(jì)時(shí)中斷不滿1s就退出繼續(xù)中斷MOV R4,#250;計(jì)時(shí)1sCALL CLOCK;調(diào)用計(jì)時(shí)子程序CLOCKCALL DISP;調(diào)用顯示子程序DISPX2: CALL SCAN;調(diào)用掃描子程序SCADPOP PSW;到堆棧取回PSW的值POP ACC;到堆棧取回累加器ACC的值RETI;返回主程序;;*掃描子程序*SCAN: MOV R0,#28HINC R0;顯示位數(shù)掃描值加1CJNE R0,#6,X3;掃描位數(shù)不為6就準(zhǔn)備控制輸出MOV R0,#0;掃描位數(shù)為6,就另其值為0X3:MOV A,R0;掃描位數(shù)載入AADD A,#20H;A加上20H(顯示寄存器地址)=各時(shí)間顯示區(qū)地址MOV R1,A;各時(shí)間顯示區(qū)地址存入AMOV A,R0;掃描位數(shù)存入ASWAP A;將A的高低4位交換(其高4位為掃描 ;的位數(shù),低4位

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論