新建基于單片機的多功能電子秒表提交版_第1頁
新建基于單片機的多功能電子秒表提交版_第2頁
新建基于單片機的多功能電子秒表提交版_第3頁
新建基于單片機的多功能電子秒表提交版_第4頁
新建基于單片機的多功能電子秒表提交版_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘要本設(shè)計不僅是一個簡單的電子秒表,還能夠顯示電子時鐘和年、月、日,還能夠提供整點報時等功能,本設(shè)計的秒表能顯示從毫秒級、秒級和分級三個段,分別用六個數(shù)碼管顯示,秒表能夠精確計時,方便應(yīng)用各個領(lǐng)域,另外硬件部分設(shè)置了開始、暫停、清零、復(fù)位以及電子時鐘和電子秒表的切換按鍵,可以對秒表和時鐘進(jìn)行實時控制。本設(shè)計的數(shù)字電子秒表和時鐘是采用AT89C52為控制核心器件利用74LS245作為數(shù)碼管的驅(qū)動芯片,再利用定時/計數(shù)器定時和計數(shù)原理,結(jié)合顯示電路、數(shù)碼管以及中斷原理(實時與分時操作)來實現(xiàn)電子秒表的制作。將軟件、硬件有機的結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)六位數(shù)碼管顯示,能顯示分、秒、毫秒,計時精度為0

2、.01秒。其中軟件采用C語言編寫程序,包括顯示程序、電子秒表定時中斷程序、電子時鐘定時中斷程序、外部中斷程序、按鍵程序、延時程序和主程序。并在keil中調(diào)試運行,利用proteus軟件仿真調(diào)試,簡單且易于觀察,在仿真中可以觀察到實際的工作狀態(tài)。關(guān)鍵字:單片機;AT89C52;74LS245;電子秒表,電子時鐘,程序;仿真。引言近年來,隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷的走向深入,同時帶動著傳統(tǒng)控制檢測日新月異更新,在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往是作為控制核心來使用,僅是單片機方面的知識是不夠的,還要根據(jù)具體的硬件結(jié)構(gòu),以及針對具體的應(yīng)用對象的軟件結(jié)合,加以完善。單片機

3、自二十世紀(jì)以來,以極好的性價比受到人們的重視和關(guān)注,所以發(fā)展很快,應(yīng)用廣泛。單片機的主要特點是體積小、集成度高、抗干擾能力強。對環(huán)境的要求較低,價格低廉、可靠性高、靈活性強、開發(fā)較容易等特點,所以廣泛的應(yīng)用到各個領(lǐng)域。幾乎到了無孔不入的地步,在我國單片機廣泛的應(yīng)用于工業(yè)自動化控制、自動檢測、智能儀表、航空航天和軍事技術(shù)領(lǐng)域等各方面我們可以開發(fā)利用單片機系統(tǒng)獲得更高的經(jīng)濟效益,更重要的意義是單片機應(yīng)用改變了傳統(tǒng)的設(shè)計思想和方法。以軟及取代硬件并能提高系統(tǒng)的性能控制技術(shù)稱為為控制技術(shù),能夠?qū)崿F(xiàn)分機各分布式控制的特點,本電子秒表/時鐘就利用了單片機這樣的特點電子秒表廣泛的應(yīng)用在人們?nèi)粘I钪校氡碛?/p>

4、時器也廣泛應(yīng)用于電器制造、國防以及科研單位等相關(guān)領(lǐng)域。它還廣泛的應(yīng)用于各種繼電器、電磁開關(guān)、延時器、定時器等時間測量。目錄摘要 1引言 1第1章 總體設(shè)計分析1.1電子秒表/時鐘課程設(shè)計的基本思路 31.2 設(shè)計的任務(wù)要求 31.3 設(shè)計的基本內(nèi)容 3第2章 系統(tǒng)硬件電路的設(shè)計2.1 系統(tǒng)的總體方案 42.2 單片機主控制器設(shè)計 42.3 復(fù)位電路設(shè)計 72.4 晶振電路設(shè)計 72.5 顯示電路設(shè)計 82.6 提示與報時電路設(shè)計 82.7 按鍵電路設(shè)計 92.8電源電路設(shè)計 92.9系統(tǒng)總電路圖 10第3章 元器件清單3.1電源的元器件清單 113.2系統(tǒng)電路的元器件清單 11第4章 軟件設(shè)計

5、4.1程序設(shè)計思想 124.2系統(tǒng)軟件設(shè)計流程圖 134.3 定時器T0中斷服務(wù)子函數(shù) 144.4 定時器T1中斷服務(wù)子函數(shù) 144.5 外部中斷INT0服務(wù)子函數(shù) 154.6 外部中斷INT1服務(wù)子函數(shù) 164.7數(shù)碼管顯示子函數(shù) 164.8主函數(shù) 17第5章 調(diào)試與心得5.1 硬件與軟件調(diào)試 185.2 心得 18第6章 總結(jié) 19參考文獻(xiàn)20附錄一電路圖附錄21附錄二系統(tǒng)程序附錄22第一章 總體設(shè)計分析1.1電子秒表/時鐘課程設(shè)計的基本思路本設(shè)計是一個以單片機為控制核心的電子秒表/時鐘,利用定時中斷和外中斷來控制秒表的計時與顯示,還有與外部的晶振電路、復(fù)位電路、數(shù)碼管驅(qū)動電路、和按鍵電路

6、結(jié)合,在與軟件配合就能實現(xiàn)電子秒表/時鐘的顯示,其結(jié)構(gòu)原理框圖如下所示:電源電路蜂鳴器提示數(shù)碼管顯示獨立鍵盤STC89C52單片機控制器發(fā)光二極管指示晶振電路復(fù)位電路1.2設(shè)計任務(wù)要求1.2.1基本任務(wù)要求(1)、以MCS-51系列單片機為核心,采用常用電子器件設(shè)計,一個電源開關(guān),2個按鍵,六位數(shù)碼管顯示,打開電源開關(guān)后顯示8,每秒循環(huán)右移一位,(2)、按A鍵開始計時,實時顯示所經(jīng)歷的時間,按B鍵停止計時并顯示從開始到當(dāng)前時刻的時間,要求精度達(dá)到0.01秒,量程為0.01秒到60分鐘。(3)、要求按鍵輸入采用中斷方式,按鍵A接INT0,按鍵B接INT1。1.2.2 發(fā)揮任務(wù)要求(1)、多增加三

7、個按鍵分別為C鍵、D鍵、E鍵,用六位數(shù)碼管顯示電子時鐘和年、月、日。(2)、C鍵為復(fù)位鍵,回到當(dāng)初顯示8的位置,但時鐘依然在走,只是不顯示;D鍵切換到顯示電子時鐘;E鍵切換到顯示年月日。(3)、有整點報時,采用蜂鳴器代替,秒表計時時一分鐘報一次。電子時鐘為一個小時一次。1.3設(shè)計的基本內(nèi)容(1)、根據(jù)任務(wù)要求選擇方案、設(shè)計電路、確定元器件型號和參數(shù)(2)、硬件設(shè)計:要求設(shè)計出完整的電路原理圖,包括電源模塊、單片機最小系統(tǒng)電路、按鍵電路、報時電路、顯示電路。(3)、軟件設(shè)計:包括編程思路,主程序和各子程序模塊的流程圖及編寫方法,并用匯編語言或C語言編寫出完整的源程序。(4)、按圖焊接電路,檢查無

8、誤后通電調(diào)試,調(diào)試電路的功能是否符合要求。 (5)、調(diào)試與仿真:對設(shè)計的硬件和程序進(jìn)行仿真調(diào)試,并給出仿真結(jié)果。制作實物進(jìn)行調(diào)試。第二章系統(tǒng)硬件電路設(shè)計2.1系統(tǒng)總體方案本設(shè)計硬件電路和系統(tǒng)程序的設(shè)計,其硬件電路主要有主控制器,晶振電路、復(fù)位電路、數(shù)碼管驅(qū)動電路、按鍵電路、提示電路、啟動和停止電路等。主控制器采用單片AT89C52,顯示電路采用共陰極的數(shù)碼管顯示相應(yīng)的時間。本設(shè)計的數(shù)字電子秒表和時鐘是采用AT89C52為控制核心器件利用74LS245作為數(shù)碼管的驅(qū)動芯片,再利用定時/計數(shù)器定時和計數(shù)原理,結(jié)合顯示電路、數(shù)碼管以及中斷原理(實時與分時操作)來實現(xiàn)電子秒表的制作。將軟件、硬件有機的

9、結(jié)合起來,使得系統(tǒng)能夠?qū)崿F(xiàn)六位數(shù)碼管顯示,能顯示分、秒、毫秒,計時精度為0.01秒。系統(tǒng)方案圖如下:電源電路蜂鳴器提示數(shù)碼管顯示獨立鍵盤STC89C52單片機控制器發(fā)光二極管指示晶振電路復(fù)位電路單片機的管腳分配是這樣的,P0輸出數(shù)碼管的數(shù)據(jù)段碼,P2.0P2.5為數(shù)碼管的片選輸出,P1.1、P1.0、P1.6、P1.7接發(fā)光二極管提示,P1.5接蜂鳴器來報時提示,P1.2、P1.3、P1.4接按鍵,分別用來啟動、停止秒表和電子秒表和電子時鐘的切換。P3.2、P3.3、P3.4、P3.5用于定時中斷和外部中斷來實現(xiàn)分時操作和實時操作。.其中軟件采用C語言編寫程序,包括顯示程序、電子秒表中斷程序、

10、電子時鐘定時中斷程序、外部中斷程序、按鍵程序、延時程序和主程序。采用六位數(shù)碼管顯示秒表、時鐘以及年月日,兩個外部中斷是秒表的啟動、停止按鍵。定時器T0中斷定時是電子秒表的計時,定時器T1中斷是電子時鐘和年月日的計時。定時器T0是以10ms為中斷單位,定時器T1是以25ms為中斷單位,錯開兩個中斷避免打架。秒表顯示的量程是0.0秒60分鐘,超過60分鐘就會清零,從新開始并報警,時鐘顯示是0秒24小時,超過24小時也會清零但不報警。2.2單片機主控制器電路的設(shè)計單片機AT89C52作為整個系統(tǒng)的控制核心,給其他單元電路分配任務(wù),完成秒表和時鐘的計時,控制數(shù)碼管顯示,發(fā)光二極管提示,蜂鳴器報時等,其

11、原理圖如下所示:2.2.1AT89S52的介紹AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲器。使用Atmel 公司高密度非易失性存儲器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方AT89S52具有以下標(biāo)準(zhǔn)功能: 8k字節(jié)Flash,256字節(jié)RAM,32 位I/O 線,看門狗定時器,2 個數(shù)據(jù)指針,三個16 位定時器/計數(shù)器,一個6向量2級中斷結(jié)構(gòu),

12、全雙工串行口,片內(nèi)晶振及時鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。R8 位微控制器8K 字節(jié)在系統(tǒng)可編程。2.2.2功能管腳描述VCC : 電源GND: 地P0 口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程和數(shù)據(jù)存儲器時,P0口也被作為低8位地址在這種模式下,P0具有內(nèi)部上拉電阻。在

13、flash編程時,P0口也用接收指令字節(jié);在程序校驗時,輸出指令字節(jié)。程序校驗時,需要外部上拉電阻。P1 口:P1 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0P1.分別作定時器/計數(shù)器2的外部計數(shù)輸入(P1.0/T2)和時器/計數(shù)器的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗時P1口接收低8位地址字節(jié)。引腳號 第二功能P1.0 T2(定時器/計數(shù)器T2的外部計

14、數(shù)輸入),時鐘輸出;P1.1 T2EX(定時器/計數(shù)器T2的捕捉/重載觸發(fā)信號和方向控制)P1.5 MOSI(在系統(tǒng)編程用);P1.6 MISO(在系統(tǒng)編程用);P1.7 SCK(在系統(tǒng)編程用)P2 口:P2 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問外部程序存儲器或用16位地址讀取外部數(shù)據(jù)存儲器(例如執(zhí)行MOVX DPTR)時,P2 口送出高八位地址。在這種應(yīng)用中,P2 口很強的內(nèi)部上拉發(fā)送1

15、。在使用8位地址(如MOVX RI)訪問外部據(jù)存儲器時,P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗時,P2口也接收高8位地址字節(jié)和一些控制信號。P3 口:P3 口是一個具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動4 個TTL 邏輯電平。對P3 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗時,P3口也接收一些控制信號。引腳號 第二功能P3.0 RXD(串行輸入);P3.1 TXD(串行輸出);

16、P3.2 INT0(外部中斷0);P3.3 INT0(外部中斷0);P3.4 T0(定時器0外部輸入);P3.5 T1(定時器1外部輸入);P3.6 WR(外部數(shù)據(jù)存儲器寫選通);P3.7 RD(外部數(shù)據(jù)存儲器寫選通) RST: 復(fù)位輸入。晶振工作時,RST腳持續(xù)2 個機器周期高電平將使單片機復(fù)位。看門狗計時完成后,RST 腳輸出96 個晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(ALE)是訪問外部程序存儲器時,鎖存低8 位地址的輸出脈沖。在flash編程時,此引腳(PROG)

17、也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用作為外部定時器或時鐘使用。然而,特別強調(diào),在每次訪問外部數(shù)據(jù)存儲器時,ALE脈沖將會跳過。如果需要,通過將地址為8EH的SFR的第0位置 “1”,ALE操作將無效。這一位置 “1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時有效。否則,ALE 將被微弱拉高。這個ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對微控制器處于外部執(zhí)行模式下無效。 PSEN:外部程序存儲器選通信號(PSEN)是外部程序存儲器選通信號。當(dāng)AT89S52從外部程序存儲器執(zhí)行外部代碼時,PSEN在每個機器周期被激活兩次,而在訪問外部數(shù)

18、據(jù)存儲器時,PSEN將不被激活。EA/VPP:訪問外部程序存儲器控制信號。為使能從0000H 到FFFFH的外部程序存儲器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時鐘發(fā)生電路的輸入端XTAL2:振蕩器反相放大器的輸出端。2.2.3內(nèi)部電路框圖2.3復(fù)位電路的設(shè)計復(fù)位是單片機的初始化操作,單片機在啟動運行時,都要先復(fù)位,它的作用是使CPU和系統(tǒng)其他部件都處于一個確定的初始狀態(tài)。當(dāng)復(fù)位引腳保持兩個機器周期以上的高電平就進(jìn)入復(fù)位狀態(tài)。其原理圖如下所示:2.4 晶體振蕩電路的設(shè)計振蕩電路也就

19、是時鐘電路,主要給單片機提供準(zhǔn)確的時序讓單片機正常的工作。其原理圖如下所示:2.5 顯示電路的選擇與設(shè)計顯示電路采用共陰數(shù)碼管顯示,采用74LS245驅(qū)動使數(shù)碼管更加穩(wěn)定的工作,數(shù)碼管顯示清晰直觀,而lcd液晶沒那么清晰且價格貴,寫軟件還要看時序。所以選擇了數(shù)碼管顯示,用單片機得P0輸出數(shù)碼管的數(shù)據(jù)斷碼,用74LS138作數(shù)碼管的片選,然后38譯碼器的的三個地址端接單片機得P2即可,其原理圖如下所示:74ls245是雙向總線發(fā)送器/接收器,CE端是三態(tài)允許端,低電平有效。AB、BA是數(shù)據(jù)的傳送方向,高電平時是數(shù)據(jù)由A向B傳輸,低電平時數(shù)據(jù)由B向A傳輸,74ls138是個三輸入8輸出的譯碼器,A

20、0、A1、A2為地址端,選擇相應(yīng)的輸出端為低電平,例如:當(dāng)譯碼器的地址端為0 0 0時,輸出端Y0=0;當(dāng)譯碼器的的地址端是0 0 1時,其輸出端Y1=0;以此類推。2.6 提示電路與報時電路的設(shè)計提示電路由發(fā)光二極管提示,用蜂鳴器來報時,電子秒表/時鐘、年月日顯示時,或者秒表的啟動與停止時,對應(yīng)的發(fā)光二極管點亮,當(dāng)秒表計時到一分時或時鐘到整點時,蜂鳴器分別叫一秒或一分鐘,表示報時。其電路原理圖如下所示:三級管主要起一個電子開關(guān)的作用,使蜂鳴器接通和斷開,發(fā)光二極管用了1k的電阻限流,防止電流過大燒壞二極管。2.7 按鍵電路的設(shè)計按鍵電路采用的是有源按鍵,接了10K的上拉電阻,這樣能使電路更加

21、穩(wěn)定、抗干擾能力強,避免了電路板發(fā)生碰撞時導(dǎo)致誤操作,一共六個按鍵,其原理圖如下所示:K2鍵是秒表的停止鍵接單片機的外部中斷INT0,K2是秒表的啟動鍵接單片機的外部中斷INT1,K3、K4、K5分別是切換到電子時鐘的顯示、年月日的顯示還有復(fù)位到顯示8,每秒左移動以為,即最開始階段。2.8電源電路的設(shè)計電源是自制的線性穩(wěn)壓電源,使工作的電路更加穩(wěn)定可靠,防止其他信號的干擾,給各模塊電路提供穩(wěn)定的電壓。其電路原理圖如下所示:雙12V的交流電經(jīng)四個二極管整流、電容濾波后經(jīng)兩個三端穩(wěn)壓管穩(wěn)壓在通過電容濾波得到5V后給系統(tǒng)等相關(guān)電路供電,F(xiàn)U1、FU2兩個保險管主要是起保護(hù)作用,1000uF電容是保持

22、電量的作用,0.33uF是濾波作用,7805與7905主要是穩(wěn)壓,D5、D6是保護(hù)穩(wěn)壓管7805和7905.C12、C14、C16分別是高頻、中頻和低頻濾波,后面的發(fā)光二極管是用來提示電源正常與否的。2.9系統(tǒng)的總體電路圖系統(tǒng)總體電路圖包括單片機的最小系統(tǒng),顯示電路,數(shù)碼管驅(qū)動電路,發(fā)光二極管提示電路,按鍵電路、電源電路等,其系統(tǒng)的總電路圖如下所示:總電路圖比較直觀的觀察電路的各個部分,可以方便調(diào)試,第三章 元器件清單3.1 電源部分元器件清單元器件名稱元器件型號數(shù)量元器件名稱元器件型號數(shù)量變壓器I220VQ12V1穩(wěn)壓管LM78051整流二極管IN40078穩(wěn)壓管LM79051電容1000u

23、F/25V3散熱片2電容47uF2電阻1K2元片電容1042發(fā)光二級管2元片電容1032自鎖開關(guān)2元片電容0.33uF2排針2電線單股若干3.2系統(tǒng)電路元器件清單元器件名稱元器件型號數(shù)量元器件名稱元器件型號數(shù)量單片機AT89S521數(shù)碼管Tof34612驅(qū)動芯片74LS2451譯碼器74LS1381晶振12MHz1蜂鳴器1自鎖開關(guān)1獨立按鍵6排阻10K*81電阻10K5電阻1K1電容30pF2電容22uF1跳線若干杜邦頭若干螺柱4螺帽4第四章軟件設(shè)計4.1 程序設(shè)計思路軟件設(shè)計語言既可以用匯編也可以用,匯編語言計算復(fù)雜出錯難修改。C語言是高級語言,通俗易懂,簡潔、緊湊、使用靈活方便容易修改,因

24、此本設(shè)計采用C語言設(shè)計,設(shè)計思路是這樣的,用定時器中斷定時計數(shù)使顯示加一,利用外部中斷控制秒表的啟、停。通過讀取相應(yīng)I/O的值進(jìn)行秒表/時鐘/年月日的顯示切換.軟件的設(shè)計步驟是這樣的,畫好程序的流程圖,先對外部中斷和定時中斷初始化為一個子函數(shù),定時器T0中斷服務(wù)函為一個子函數(shù),定時器T1中斷服務(wù)函數(shù)為一個子函數(shù),外部中斷0服務(wù)函數(shù)為一個子函數(shù),外部中斷1服務(wù)函數(shù)為一個子函數(shù),電子秒表顯示函數(shù)為一個子函數(shù),電子時鐘顯示函數(shù)為一個子函數(shù),年月日顯示函數(shù)為一個子函數(shù),還有一個主函數(shù),各模塊函數(shù)互不干擾,易分布到每個同學(xué)寫,直觀且通用性強,易于調(diào)試。每個模塊的子函數(shù)寫好后,進(jìn)行模塊函數(shù)調(diào)試,各模塊子函

25、數(shù)調(diào)試成功后,在拼在一起,減輕了調(diào)試負(fù)擔(dān),能大大的加快課程設(shè)計的進(jìn)度。當(dāng)然分工要明確,其軟件設(shè)計的主函數(shù)流程圖如下所示:KEY4=0開始程序初始化顯示什么KEY5=0KEY7=0KEY6=0電子時鐘電子秒表年月日顯示顯示8左移KEY7為0嗎?結(jié)束YN4.2 系統(tǒng)軟件設(shè)計的總流程圖系統(tǒng)軟件設(shè)計的總流程圖如下所示:程序初始化開始進(jìn)入定時器T1中斷服務(wù)函數(shù)是啟動定時器T1,TR=1,判斷定時器是否溢出斷時鐘顯示計數(shù)加一進(jìn)入第一任務(wù),數(shù)碼管顯示8,每秒向右移一位判斷顯示秒表、時鐘和年月日KEY4=0時鐘顯示年月日顯示KEY5=0不符KEY6=0秒表顯示KEY2=0KEY3=0進(jìn)入外部中斷1服務(wù)函數(shù)并啟

26、動定時器0,秒表啟動定時器溢出,進(jìn)入T0中斷服務(wù),計數(shù)加一進(jìn)入外部中斷0服務(wù)函數(shù)保持當(dāng)前時間,秒表停止判斷KEY7是否等于0相應(yīng)秒表、時鐘和年月日顯示結(jié)束NYKEY7=04.3 定時器T0中斷服務(wù)子函數(shù)定時器T0中斷服務(wù)函數(shù)的作用是使電子秒表計數(shù)加一,其函數(shù)如下:void timer0()interrupt 1 /電子秒表加計數(shù),12MHz晶振,10ms中斷一次TH0=0xd8;TL0=0xf0;msec_unmber+;if(msec_unmber > 99)msec_unmber = 0;sec_unmber+;beep=1;if(sec_unmber > 59)sec_unm

27、ber = 0;min_unmber+;beep=0;if(min_unmber>59)min_unmber = 0;4.4定時器T1中斷服務(wù)子函數(shù)定時器T0中斷服務(wù)函數(shù)的作用是使電子時鐘計數(shù)加一,其函數(shù)如下:void timer1()interrupt 3/年、月、日及電子時鐘加計數(shù)TH1=0xd8;TL1=0xf0;msec_count+;if(msec_count > 780)msec_count = 0;sec_count+;if(sec_count > 59)sec_count = 0;min_count+;if(min_count>59)min_count

28、= 0;hour_count+;if(hour_count>23)hour_count=0;day_count+;if(day_count>29)day_count=0;mouth_count+;if(mouth_count>23)mouth_count=0;year_count+;if(year_count>99)year_count=0;4.5 外部中斷0服務(wù)子函數(shù)void int0_stop() interrupt 0unsigned char led_stale;TR0=0;stop_flag=0;led1=1;delay(2);led2=0;beep=0;wh

29、ile(clok_rst)for(led_stale=0;led_stale<5;led_stale+)display(); 4.6 外部中斷1服務(wù)子函數(shù)void int1_start() interrupt 2unsigned char led_for;TR0=1;stop_flag=1;led1=0;delay(2);beep=1;while(stop_flag)for(led_for=0;led_for<400;led_for+)display();/if(min_unmber%2=1)/beep = 0;/delay(5);/beep =1;/ 4.7 數(shù)碼管顯示函數(shù)voi

30、d display()/電子秒表數(shù)碼管顯示P0=display_countmsec_unmber%10;P2 = display_bit0;delay(1);P0 = display_countmsec_unmber/10;P2 = display_bit1;delay(1);P0 = display_countsec_unmber%10+0x80;P2 = display_bit2;delay(1);P0 = display_countsec_unmber/10;P2 = display_bit3;delay(1);P0 = display_countmin_unmber%10+0x80;P

31、2 = display_bit4;delay(1);P0 = display_countmin_unmber/10;P2 = display_bit5;delay(1);4.8 主函數(shù)void main()unsigned char kout;unsigned char led_bit;int_init();timr0_init();beep = 0;clok_test=0;while(1)led2=1;for(kout=0;kout<400;kout+)P0=display_count8;for(led_bit=0 ;led_bit<6; led_bit+)P2 = displa

32、y_bitled_bit;delay(100);if(clok_hour_time=0)beep=1;delay(20);while(clok_year_time&&clok_rst)for(kout=0;kout<5;kout+)diaplay_two(); if(clok_year_time=0)beep=1;delay(20);while(clok_hour_time&&clok_rst)for(kout=0;kout<5;kout+)display_one(); 第五章調(diào)試與心得5.1 硬件與軟件調(diào)試硬件電路調(diào)試,先用proteus仿真之后,

33、在去買好元器件清單,焊接電路。焊接要特別小心,要仔細(xì)的對照電路圖,既不能使電路短路也不能是電路開路,保持電路的暢通,并在相應(yīng)的位置裝上發(fā)光二級管提示電路通電,可以減輕硬件電路的調(diào)試?yán)щy,還有芯片的焊接要根據(jù)芯片資料了解管腳的功能去焊接,不然很容易燒壞芯片,如過芯片的工作不正常先觀察芯片管腳有無接觸,或者芯片的使能是不是根據(jù)相應(yīng)的要求接的,在用萬用表去測試電源管腳是否通電,通電后在去測相應(yīng)的管腳是否輸出相應(yīng)的電平,如果沒有就是芯片有問題,如果相應(yīng)位置的二極管沒有點亮,先觀察二級管有沒接反,如果沒接反就用萬用表去測看是否有電壓,如果沒有電壓說明沒通電,如果有電壓說明二極管壞了,當(dāng)然也要根據(jù)軟件結(jié)合

34、,測試數(shù)碼管給以程序,8段數(shù)碼管一段一段的觀察,看是否管腳接錯,如果斷碼接錯了等顯示數(shù)據(jù)就會錯亂。系統(tǒng)軟件程序調(diào)試,程序調(diào)試先在KEIL軟件里寫好各模塊程序,在一個個子程序調(diào)試,結(jié)合proteus仿真成功后,再將所有的程序拼在一起調(diào)試,軟件調(diào)試注意的主要是定時中的的初始化,算好中斷時間,還有按鍵程序,看是否讀取得到相應(yīng)的電平,其他的就沒沒什么了吧。5.2 心得通過本次課程設(shè)計不僅是我的硬件設(shè)計和軟件設(shè)計有了很大的提高,還使我學(xué)到了更多相關(guān)專業(yè)的知識,如模擬電子技術(shù)、數(shù)字電子技術(shù)、單片機原理與應(yīng)用技術(shù)等。增強了我的動手能力與實踐能力,也增強了我軟件調(diào)試能力和硬件調(diào)試能力,加強了與同學(xué)的交流能力,

35、交流學(xué)習(xí)交流生活,也增強了我與同學(xué)們得合作能力,使我們配合的更加默契,這次課程設(shè)計是我們受益不少,這不僅是一次課程設(shè)計,為我們的知識多蓋了一層金子,更是給我們交流學(xué)習(xí)生活,同學(xué)們相互配合的一次機會,為我們的生活增添了不少色彩。因此很感激學(xué)校給我們課程設(shè)計的機會,希望有更多這樣的機會。讓我們的知識閱歷更加的豐富,在社會上有更多的機會。第六章總結(jié)通過本次課程設(shè)計不僅是我的硬件設(shè)計和軟件設(shè)計有了很大的提高,還使我學(xué)到了更多相關(guān)專業(yè)的知識,如模擬電子技術(shù)、數(shù)字電子技術(shù)、單片機原理與應(yīng)用技術(shù)等。增強了我的動手能力與實踐能力,也增強了我軟件調(diào)試能力和硬件調(diào)試能力,加強了與同學(xué)的交流能力,交流學(xué)習(xí)交流生活,

36、也增強了我與同學(xué)們得合作能力,對各個元器件有了更好的感性的認(rèn)識,熟悉了個元器件的模型,有利于走入社會參考文獻(xiàn)(1)單片機原理及應(yīng)用(第二版) 電子工業(yè)出版社 張迎新等編著 (2)單片機原理與實例應(yīng)用 清華大學(xué)出版社 萬隆、張娟、陳文剛等編著(3)單片機原理及接口技術(shù)(第三版) 北京航空航天大學(xué)出版社 李朝清等編著(4)c語言程序設(shè)計(第三版) 清華大學(xué)出版社 譚浩強編著(5)模擬電子技術(shù)基礎(chǔ)(第四版) 高等教育出版社 周良權(quán) 李世馨等編著(6)數(shù)字電子技術(shù) 哈爾濱工程大學(xué)出版社 付子義等編著 附錄一:系統(tǒng)的原理圖附錄二:系統(tǒng)程序附錄/*秒表及電子時鐘-* P0口接數(shù)碼管的數(shù)據(jù)位,p2口接數(shù)碼管

37、的片選位,P1口接獨立按鍵和發(fā)光二 極管,P1.1和P1.0分別接綠色和紅色的發(fā)光二極管,分別表示秒表開始與停止 P1.2P1.4分別接年、月、日顯示按鈕,蜂鳴器提示按鈕,電子秒表顯示按鈕, 外部中斷兩個按鈕分別表示秒表開始與停止。*制作人:練紅海*QQ:1132835005*/#include<reg52.h>/#define shumaguan_data P0;/#define shumaguan_bit P2;sbit led1=P10;sbit led2=P11;sbit clok_year_time=P12;sbit clok_hour_time=P13;sbit clo

38、k_rst=P14;sbit beep=P15;sbit clok_test=P17;unsigned char display_count10 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char display_bit8 = 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;unsigned char min_unmber=0,sec_unmber=0,msec_unmber=0;unsigned char stop_flag;unsigned char hour_count=0,m

39、in_count=0,sec_count=0;unsigned int msec_count=0;unsigned char year_count=11;mouth_count=10;day_count=24;/unsigned char hour_number=0;void delay(unsigned int count)unsigned int k;while(count-)for(k=0; k < 300; k+);void int_init()EA = 1;EX0=1;EX1=1;IT0=1;IT1=1;PT0=1;PX0=1;void timr0_init()TMOD = 0

40、X01;TH0=0xd8;TL0=0xf0;TH1=0xd8;TL1=0xf0;TF1=0;TF0=0;ET0=1;ET1=1;EA = 1;TR1=1;void timer0()interrupt 1 /電子秒表加計數(shù),12MHz晶振,10ms中斷一次TH0=0xd8;TL0=0xf0;msec_unmber+;if(msec_unmber > 99)msec_unmber = 0;sec_unmber+;beep=1;if(sec_unmber > 59)sec_unmber = 0;min_unmber+;beep=0;if(min_unmber>59)min_unmb

41、er = 0;void timer1()interrupt 3/年、月、日及電子時鐘加計數(shù)TH1=0xd8;TL1=0xf0;msec_count+;if(msec_count > 780)msec_count = 0;sec_count+;if(sec_count > 59)sec_count = 0;min_count+;if(min_count>59)min_count = 0;hour_count+;if(hour_count>23)hour_count=0;day_count+;if(day_count>29)day_count=0;mouth_coun

42、t+;if(mouth_count>23)mouth_count=0;year_count+;if(year_count>99)year_count=0;void display()/電子秒表數(shù)碼管顯示P0=display_countmsec_unmber%10;P2 = display_bit0;delay(1);P0 = display_countmsec_unmber/10;P2 = display_bit1;delay(1);P0 = display_countsec_unmber%10+0x80;P2 = display_bit2;delay(1);P0 = displa

43、y_countsec_unmber/10;P2 = display_bit3;delay(1);P0 = display_countmin_unmber%10+0x80;P2 = display_bit4;delay(1);P0 = display_countmin_unmber/10;P2 = display_bit5;delay(1);void display_one()/年月日顯示P0=display_countday_count%10;P2 = display_bit0;delay(1);P0 = display_countday_count/10;P2 = display_bit1;delay(1);P0 = 0x40;P2 = display_bit2;delay(1);P0 = display_countmouth_count%10;P2 = display_bit3;delay(1);P0 = display_countmouth_count/10;P2 = di

溫馨提示

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

評論

0/150

提交評論