日歷時(shí)鐘的設(shè)計(jì)_第1頁(yè)
日歷時(shí)鐘的設(shè)計(jì)_第2頁(yè)
日歷時(shí)鐘的設(shè)計(jì)_第3頁(yè)
日歷時(shí)鐘的設(shè)計(jì)_第4頁(yè)
日歷時(shí)鐘的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)課程設(shè)計(jì)報(bào)告書(shū)課題名稱(chēng)日歷時(shí)鐘的設(shè)計(jì)姓 名學(xué) 號(hào)院、系、部物理與電子科學(xué)系專(zhuān) 業(yè)應(yīng)用電子技術(shù)指導(dǎo)教師 2013年11月20日12一、設(shè)計(jì)任務(wù)及要求:設(shè)計(jì)任務(wù):1、利用MCS-51內(nèi)部定時(shí)器定時(shí)T0/T1,編程實(shí)現(xiàn)時(shí)、分、秒的顯示,顯示格式為: 時(shí)分秒: 09 12 35 (24小時(shí)制)2、能按鍵調(diào)整時(shí)間的數(shù)值(按鍵數(shù)量自定)。要 求: 首先進(jìn)行預(yù)設(shè)計(jì),根據(jù)設(shè)計(jì)的任務(wù)要求,先確定設(shè)計(jì)的硬件電路方案,然后進(jìn)行硬件電路的初步設(shè)計(jì),在計(jì)算機(jī)上畫(huà)出硬件電路圖,在老師的指導(dǎo)下進(jìn)行修正硬件電路圖,并對(duì)所涉及的參數(shù)進(jìn)行計(jì)算。在確定硬件的基礎(chǔ)上,要進(jìn)行軟件的總體設(shè)計(jì),包括軟件主流程的設(shè)計(jì)以及各子程序的設(shè)計(jì)

2、,同時(shí),要寫(xiě)出詳細(xì)的操作說(shuō)明,如時(shí)間的調(diào)整方法,顯示窗口的時(shí)間切換等,以配合軟件的設(shè)計(jì)。然后進(jìn)入硬件的調(diào)試及編程工作,設(shè)計(jì)組內(nèi)的同學(xué)可根據(jù)任務(wù)分工,有調(diào)試硬件各功能模塊的,如鍵盤(pán)子程序、顯示子程序等,有進(jìn)行整體程序的編制的,各模塊的編制過(guò)程中要注意資源的銜接。最后進(jìn)入聯(lián)機(jī)調(diào)試,聯(lián)機(jī)調(diào)試的原則也要采用分步走的原則,各個(gè)功能模塊要逐步套入,通過(guò)一個(gè)再增加一項(xiàng)功能,從而達(dá)到設(shè)計(jì)的總體要求,不要上來(lái)編制個(gè)最大的程序,最后無(wú)法查找錯(cuò)誤,最后寫(xiě)出設(shè)計(jì)報(bào)告。指導(dǎo)教師簽名: 年 月 日 二、指導(dǎo)教師評(píng)語(yǔ):指導(dǎo)教師簽名: 年 月 日 三、成績(jī) 指導(dǎo)教師簽名: 年 月 日 目錄緒言3二、方案比較與論證32.1 系

3、統(tǒng)整體流程圖32.2單片機(jī)芯片的選擇方案和論證:42.3時(shí)鐘方案選擇52.4顯示模塊的選擇52.5鍵盤(pán)模塊的選擇52.6具體設(shè)計(jì)分析5三、硬件電路設(shè)計(jì)63.1整個(gè)電路原理圖63.2數(shù)碼顯示模塊設(shè)計(jì)73.3按鍵模塊73.4復(fù)位電路8四.程序流程圖8五、系統(tǒng)仿真95.1Proteus軟件應(yīng)用95.2實(shí)驗(yàn)測(cè)試10六 主要元器件選擇11七、參考文獻(xiàn)11八.結(jié)束語(yǔ)11附錄2 部分源程序12緒言數(shù)字電子鐘具有走時(shí)準(zhǔn)確,一鐘多用等特點(diǎn),在生活中已經(jīng)得到廣泛的應(yīng)用。雖然現(xiàn)在市場(chǎng)上已有現(xiàn)成的電子鐘集成電路芯片,價(jià)格便宜、使用也方便,但是人們對(duì)電子產(chǎn)品的應(yīng)用要求越來(lái)越高,數(shù)字鐘不但可以顯示當(dāng)前的時(shí)間,而且可以顯示

4、期、農(nóng)歷 、以及星期等,給人們的生活帶來(lái)了方便。另外數(shù)字鐘還具備秒表和鬧鐘的功能,且鬧鐘鈴聲可自選,使一款電子鐘具備了多媒體的色彩。單片機(jī)具有體積小、功能強(qiáng)可靠性高、價(jià)格低廉等一系列優(yōu)點(diǎn),不僅已成為工業(yè)測(cè)控領(lǐng)域普遍采用的智能化控制工具,而且已滲入到人們工作和和生活的各個(gè)角落,有力地推動(dòng)了各行業(yè)的技術(shù)改造和產(chǎn)品的更新?lián)Q代,應(yīng)用前景廣闊。時(shí)鐘電路在計(jì)算機(jī)系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎(chǔ)。在一個(gè)單片機(jī)應(yīng)用系統(tǒng)中,時(shí)鐘有兩方面的含義:一是指為保障系統(tǒng)正常工作的基準(zhǔn)振蕩定時(shí)信號(hào),主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機(jī)系統(tǒng)工作的快慢;二是指系統(tǒng)的標(biāo)準(zhǔn)定時(shí)時(shí)鐘,即定時(shí)時(shí)間,它

5、通常有兩種實(shí)現(xiàn)方法:一是用軟件實(shí)現(xiàn),即用單片機(jī)內(nèi)部的可編程定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn),但誤差很大,主要用在對(duì)時(shí)間精度要求不高的場(chǎng)合;二是用專(zhuān)門(mén)的時(shí)鐘芯片實(shí)現(xiàn),在對(duì)時(shí)間精度要求很高的情況下,通常采用這種方法,典型的時(shí)鐘芯片有:DS1302,DS12887,X1203等都可以滿(mǎn)足高精度的要求。二、方案比較與論證2.1 系統(tǒng)整體流程圖LED數(shù)碼管動(dòng)態(tài)掃描顯示模塊AT89S52主控制模 塊鍵盤(pán)模塊 DS1302時(shí)鐘模塊開(kāi)始 初始化子程序 While(1)串口有數(shù)據(jù) 否 是調(diào)用子程序,獲取串口數(shù)據(jù)調(diào)用子程序,設(shè)置日歷時(shí)鐘芯片調(diào)用子程序,獲取芯片的時(shí)間信息調(diào)用顯示字程序2.2單片機(jī)芯片的選擇方案和論證:方案一:純

6、硬件電路系統(tǒng),各功能采用分離的硬件電路模塊實(shí)現(xiàn)。用時(shí)序邏輯電路實(shí)現(xiàn)時(shí)鐘功能,用555定時(shí)器實(shí)現(xiàn)鬧鐘的設(shè)定。但這種實(shí)現(xiàn)方法可靠性差、控制精度低,靈活性小、線(xiàn)路復(fù)雜、安裝調(diào)試不方便,而且不方便實(shí)現(xiàn)對(duì)系統(tǒng)的擴(kuò)展。   方案二:用可編程邏輯器件(PLD)實(shí)現(xiàn)。這種方案與前一種相比,可靠性增加,同時(shí)可以很好的完成時(shí)鐘的功能。同時(shí)這種方案只能選用數(shù)碼管顯示,顯示的效果不夠理想,無(wú)法很好的完成擴(kuò)展功能的要求,系統(tǒng)的靈活性不夠。方案三:采用AT89S52單片機(jī)作為系統(tǒng)的控制核心。時(shí)鐘功能采用單片集成的時(shí)鐘芯片DS1307來(lái)實(shí)現(xiàn),可以使用液晶顯示時(shí)間、日歷及鬧鈴,有著智能化的人機(jī)界

7、面。由于使用了單片機(jī),整個(gè)系統(tǒng)可編程,系統(tǒng)的靈活性大大增加了。另外,本方案可以方便的實(shí)現(xiàn)其他功能的擴(kuò)展。   經(jīng)過(guò)以上的比較論證,選用方案三來(lái)完成項(xiàng)目設(shè)計(jì)的要求。2.3時(shí)鐘方案選擇 方案一:基本門(mén)電路搭建。用基本門(mén)電路來(lái)實(shí)現(xiàn)時(shí)鐘發(fā)生器,電路結(jié)構(gòu)復(fù)雜,故障系數(shù)大,不易調(diào)試。 方案二:專(zhuān)用時(shí)鐘芯片。目前市場(chǎng)上已有很多實(shí)時(shí)時(shí)鐘芯片。如DS12887、DS1302、DS1307、PCF8563、X1227等,芯片內(nèi)都集成了時(shí)鐘/日歷功能,給時(shí)鐘系統(tǒng)設(shè)計(jì)帶來(lái)很多方便。根據(jù)設(shè)計(jì)要求,在本設(shè)計(jì)中我采用了DS1302時(shí)鐘芯片。   

8、;2.4顯示模塊的選擇  方案一:使用多個(gè)數(shù)碼管顯示。LED數(shù)碼管是利用二極管發(fā)光顯示數(shù)字和字母,具有亮度大、接口設(shè)計(jì)比較容易,價(jià)格相對(duì)較便宜等優(yōu)點(diǎn)。但是由于它工作電流較大、不能顯示漢字,顯示的信息量有限,若在此題目中應(yīng)用就會(huì)受到很大的限制。   方案二:采用液晶顯示。液晶特別是具有漢字顯示功能的液晶顯示器,來(lái)實(shí)現(xiàn)顯示功能,不僅可以實(shí)現(xiàn)基本的顯示信息,而且可以顯示豐富的符號(hào)指示信息以及文字指示信息,信息量豐富且直觀易懂。而且液晶顯示有功耗低,體積小,重量輕,壽命長(zhǎng),不產(chǎn)生電磁輻射污染等優(yōu)點(diǎn)。系統(tǒng)采用方案二,設(shè)計(jì)選用LCD1602液晶顯示模塊。&

9、#160;2.5鍵盤(pán)模塊的選擇 方案一:采用獨(dú)立式按鍵電路。每個(gè)鍵單獨(dú)占有一根I/O接口線(xiàn),每個(gè)I/O口的工作狀態(tài)互不影響,此類(lèi)鍵盤(pán)采用端口直接掃描方式。但是當(dāng)按鍵較多時(shí)占用單片機(jī)的I/O數(shù)目較多。方案二:采用陣列式鍵盤(pán)。此類(lèi)鍵盤(pán)是采用行列掃描方式,當(dāng)按鍵較多時(shí)可以降低占用單片機(jī)的I/O口數(shù)目。根據(jù)設(shè)計(jì)要求我采用了方案二。2.6具體設(shè)計(jì)分析利用單片機(jī)(AT89S51)制作簡(jiǎn)易電子時(shí)鐘,由六個(gè)LED數(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)盡可能多用一些

10、子程序與數(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地址單元作為顯示寄存器 三、硬件電路設(shè)計(jì)3.1整個(gè)電路原理圖 3.2數(shù)碼顯示模塊設(shè)計(jì)共陰數(shù)碼管數(shù)碼管的引腳圖數(shù)碼管是一種把多個(gè)LED顯示段集成在一起的顯示設(shè)備。有兩種類(lèi)型,一種是共陽(yáng)型,一種是共陰型。共陽(yáng)型就是把多個(gè)LED顯示段的陽(yáng)極接在一起,又

11、稱(chēng)為公共端。共陰型就是把多個(gè)LED顯示段的陰極接在一起,即為公共商。陽(yáng)極即為二極管的正極,又稱(chēng)為正極,陰極即為二極管的負(fù)極,又稱(chēng)為負(fù)極。通常的數(shù)碼管又分為8段,即8個(gè)LED顯示段,這是為工程應(yīng)用方便如設(shè)計(jì)的,分別為A、B、C、D、E、F、G、DP,其中DP 是小數(shù)點(diǎn)位段。而多位數(shù)碼管,除某一位的公共端會(huì)連接在一起,不同位的數(shù)碼管的相同端也會(huì)連接在一起。即,所有的A段都會(huì)連在一起,其它的段也是如此,這是實(shí)際最常用的用法。數(shù)碼管顯示方法可分為靜態(tài)顯示和動(dòng)態(tài)顯示兩種。靜態(tài)顯示就是數(shù)碼管的8段輸入及其公共端電平一直有效。動(dòng)態(tài)顯示的原理是,各個(gè)數(shù)碼管的相同段連接在一起,共同占用8 位段引管線(xiàn);每位數(shù)碼管

12、的陽(yáng)極連在一起組成公共端。利用人眼的視覺(jué)暫留性,依次給出各個(gè)數(shù)碼管公共端加有效信號(hào),在此同時(shí)給出該數(shù)碼管加有效的數(shù)據(jù)信號(hào),當(dāng)全段掃描速度大于視覺(jué)暫留速度時(shí),顯示就會(huì)清晰顯示出來(lái)。系統(tǒng)采用動(dòng)態(tài)顯示方式,用P0口來(lái)控制LED數(shù)碼管的段控線(xiàn),而用P2口來(lái)控制其位控線(xiàn)。動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺(jué)殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人以同時(shí)顯示的感覺(jué)。3.3按鍵模塊時(shí)間計(jì)數(shù)電路由秒個(gè)位和秒十位計(jì)數(shù)器、分個(gè)位和分十位計(jì)數(shù)器、時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器及星期計(jì)數(shù)器電路構(gòu)成,其中秒個(gè)位和秒十位計(jì)數(shù)器、分

13、個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器,時(shí)個(gè)位和時(shí)十位計(jì)數(shù)器為24進(jìn)制計(jì)數(shù)器。下圖為按鍵模塊電路原理圖。3.4復(fù)位電路單片機(jī)復(fù)位的條件是:必須使RST/VPD 或RST引(9)加上持續(xù)兩個(gè)機(jī)器周期(即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ù)位。該電路除具有上電復(fù)位功能

14、外,若要復(fù)位,只需按圖中的RESET鍵,此時(shí)電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個(gè)復(fù)位高電平。分寄存器值加1分按鍵了?開(kāi)始四.程序流程圖秒寄存器=60定時(shí)器T0初始化設(shè)置顯示初值為12:00:00 N使分寄存器清0設(shè)置定時(shí)4m初值分按鍵松開(kāi)?設(shè)置中斷允許 N設(shè)中斷250次時(shí)按鍵了?啟動(dòng)T0中斷秒按鍵了?時(shí)寄存器值加1 秒寄存器值加1時(shí)寄存器值20 N秒寄存器值加1使寄存器清0 Y N 使秒寄存器清0秒按松開(kāi)了?秒按鍵松開(kāi)了?N Y N 五、系統(tǒng)仿真運(yùn)用proteus軟件進(jìn)行仿真現(xiàn)在proteus軟件中建立一個(gè)新的文件,再根據(jù)自己的要求選擇所需的器件,把器件進(jìn)行適當(dāng)?shù)呐盼缓筮M(jìn)行連

15、接,連接后運(yùn)行軟件進(jìn)行仿真。5.1Proteus軟件應(yīng)用1原理圖編輯窗口(The Editing Window):顧名思義,它是用來(lái)繪制原理圖的。藍(lán)色方框內(nèi)為可編輯區(qū),元件要放到它里面。注意,這個(gè)窗口是沒(méi)有滾動(dòng)條的,你可用預(yù)覽窗口來(lái)改變?cè)韴D的可視范圍。2預(yù)覽窗口(The Overview Window):它可顯示兩個(gè)內(nèi)容,一個(gè)是:當(dāng)你在元件列表中選擇一個(gè)元件時(shí),它會(huì)顯示該元件的預(yù)覽圖;另一個(gè)是,當(dāng)你的鼠標(biāo)焦點(diǎn)落在原理圖編輯窗口時(shí)(即放置元件到原理圖編輯窗口后或在原理圖編輯窗口中點(diǎn)擊鼠標(biāo)后),它會(huì)顯示整張?jiān)韴D的縮略圖,并會(huì)顯示一個(gè)綠色的方框,綠色的方框里面的內(nèi)容就是當(dāng)前原理圖窗口中顯示的內(nèi)容

16、,因此,你可用鼠標(biāo)在它上面點(diǎn)擊來(lái)改變綠色的方框的位置,從而改變?cè)韴D的可視范圍。3模型選擇工具欄(Mode Selector Toolbar): 主要模型(Main Modes): 1* 選擇元件(components)(默認(rèn)選擇的) 2* 放置連接3* 放置標(biāo)簽(用總線(xiàn)時(shí)會(huì)用到) 4* 放置文本5* 用于繪制總線(xiàn)6* 用于放置子電路7* 用于即時(shí)編輯元件參數(shù)(先單擊該圖標(biāo)再單擊要修改的元件) 配件(Gadgets): 1* 終端接口(terminals):有VCC、地、輸出、輸入等接口2* 器件引腳:用于繪制各種引腳3* 仿真圖表(graph):用于各種分析,如Noise Analysis

17、4* 錄音機(jī)5* 信號(hào)發(fā)生器(generators) 6* 電壓探針:使用仿真圖表時(shí)要用到7* 電流探針:使用仿真圖表時(shí)要用到8* 虛擬儀表:有示波器等2D圖形(2D Graphics): 1* 畫(huà)各種直線(xiàn) 2* 畫(huà)各種方框 3* 畫(huà)各種圓 4* 畫(huà)各種圓弧 5* 畫(huà)各種多邊形 6* 畫(huà)各種文本 7* 畫(huà)符號(hào) 8* 畫(huà)原點(diǎn)等4元件列表(The Object Selector): 用于挑選元件(components)、端接口(terminals)、信號(hào)發(fā)生器(generators)、仿真圖表(graph)等。舉例,當(dāng)你選擇“元件(components)”,單擊“P”按鈕會(huì)打開(kāi)挑選元件對(duì)話(huà)框,選擇

18、了一個(gè)元件后(單擊了“OK”后),該元件會(huì)在元件列表中顯示,以后要用到該元件時(shí),只需在元件列表中選擇即可。5方向工具欄(Orientation Toolbar): 旋轉(zhuǎn):旋轉(zhuǎn)角度只能是90的整數(shù)倍。翻轉(zhuǎn):完成水平翻轉(zhuǎn)和垂直翻轉(zhuǎn)。使用方法:先右鍵單擊元件,再點(diǎn)擊(左擊)相應(yīng)的旋轉(zhuǎn)圖。6仿真工具欄仿真控制按鈕 1* 運(yùn)行2* 單步運(yùn)行3* 暫停4* 停止按照自己設(shè)計(jì)的電路圖就可以畫(huà)出想要的電路圖!2.在軟件中模擬和實(shí)際的效果為什么有如此大的差別?答:軟件中模擬受到電腦CPU工作頻率的影響,所以效果不是很明顯,但是一些基本的現(xiàn)象還是可以看出來(lái)的。只要我們知道原理和圖是正確的,那么就沒(méi)有必要考慮太多的

19、未知因素。在實(shí)際面包板中一定會(huì)看到正確的現(xiàn)象。3.面包板連線(xiàn)注意事項(xiàng)!答:面包板連線(xiàn)時(shí)一定要弄清楚它的原理,不然就會(huì)一點(diǎn)頭緒都找不到。連接芯片是要弄清楚各個(gè)引腳對(duì)應(yīng)的端口號(hào),該接地的地方一定要接地,該接高電平的地方一定要接高電平。5.2實(shí)驗(yàn)測(cè)試 主要的設(shè)計(jì)要求是能夠?qū)崿F(xiàn)時(shí)鐘的一般功能,以及包括時(shí)間的調(diào)整功能,這個(gè)基于單片機(jī)的電子時(shí)鐘基本上實(shí)現(xiàn)了上述功能,能夠通過(guò)時(shí)間調(diào)整電路對(duì)時(shí)間進(jìn)行調(diào)整以及復(fù)位。下述為12:00:00的仿真圖: 圖8 12:00:00時(shí)刻的仿真效果圖六 主要元器件選擇表6-1 主要元器件清單序號(hào)材料名稱(chēng)規(guī)格型號(hào)數(shù)量元件代號(hào)1單片機(jī)AT89S511U12電阻1k17R1-R16

20、3電容10PF4C1、C2、C3、Y14數(shù)碼管MPX81DS15集成電路274LS47、74LS138七、參考文獻(xiàn)【1】 張迎新.單片機(jī)初級(jí)教程【M】.北京:北京航空航天大學(xué)出版社,2006.【2】 馮志強(qiáng).Altium Designer8.0中文版電路設(shè)計(jì)【M】.北京:清華大學(xué)出版社,2009.【3】 楊素行.模擬電子技術(shù)基礎(chǔ)簡(jiǎn)明教程(第三版)【M】.北京:高等教育出版社,2006.【4】 余孟嘗.數(shù)字電子技術(shù)基礎(chǔ)簡(jiǎn)明教程(第三版)【M】.北京:高等教育出版社,2006.【5】 程鵬.自動(dòng)控制原理(第二版)【M】.北京:高等教育出版社,2006.【6】 王化祥,張淑英.傳感器原理及應(yīng)用(第三

21、版)【M】.天津:天津大學(xué)出版社,2007.【7】 邱關(guān)源,羅先覺(jué).電路(第五版)【M】.北京:高等教育出版社,2006.【8】 王明泉.信號(hào)與系統(tǒng)【M】.北京:科學(xué)出版社,2006.八.結(jié)束語(yǔ) 設(shè)計(jì),我懂得了學(xué)習(xí)的重要性,了解到理論知識(shí)與實(shí)踐相結(jié)合的重要意義,學(xué)會(huì)了堅(jiān)持、耐心和努力,這將為自己今后的學(xué)習(xí)和工作做出了最好的榜樣。另外,要非常感謝我的指導(dǎo)老師,是她指引我克服一個(gè)由一個(gè)的困難,讓我學(xué)會(huì)對(duì)困難無(wú)所畏懼,以及對(duì)問(wèn)題的一些很重要的思考方法。附錄2 部分源程序ORG 00H;主程序起始地址JMP START;主程序STARTORG 0BH;定時(shí)器T0中斷起始地址JMP TIM0;定時(shí)器T0

22、中斷子程序TIM0START: MOV 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,N

23、2;若秒沒(méi)有按鍵,就轉(zhuǎn)去下一步檢查分CALL 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

24、,#01H;A的內(nèi)容加1DA A;十進(jìn)制調(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í),若不是就

25、繼續(xù)檢查MOV 2AH,#00;已經(jīng)是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í)中斷不滿(mǎn)1s就退出繼續(xù)中斷MOV R4,#250;計(jì)時(shí)1sCALL CLOCK;調(diào)用計(jì)時(shí)子程序CLOCKCALL DISP;調(diào)用顯示子程序DISPX2: CALL SCAN;調(diào)用掃描子程

26、序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位為顯示數(shù)據(jù)值)ORL A,R1;將掃描值與顯示數(shù)據(jù)組合MOV P1,A;顯示輸出RET;*計(jì)時(shí)子程序*CLOCK:

溫馨提示

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

評(píng)論

0/150

提交評(píng)論