




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要本設(shè)計(jì)不僅是一個(gè)簡(jiǎn)單的電子秒表,還能夠顯示電子時(shí)鐘和年、月、日,還能夠提供整點(diǎn)報(bào)時(shí)等功能,本設(shè)計(jì)的秒表能顯示從毫秒級(jí)、秒級(jí)和分級(jí)三個(gè)段,分別用六個(gè)數(shù)碼管顯示,秒表能夠精確計(jì)時(shí),方便應(yīng)用各個(gè)領(lǐng)域,另外硬件部分設(shè)置了開(kāi)始、暫停、清零、復(fù)位以及電子時(shí)鐘和電子秒表的切換按鍵,可以對(duì)秒表和時(shí)鐘進(jìn)行實(shí)時(shí)控制。本設(shè)計(jì)的數(shù)字電子秒表和時(shí)鐘是采用AT89C52為控制核心器件利用74LS245作為數(shù)碼管的驅(qū)動(dòng)芯片,再利用定時(shí)/計(jì)數(shù)器定時(shí)和計(jì)數(shù)原理,結(jié)合顯示電路、數(shù)碼管以及中斷原理(實(shí)時(shí)與分時(shí)操作)來(lái)實(shí)現(xiàn)電子秒表的制作。將軟件、硬件有機(jī)的結(jié)合起來(lái),使得系統(tǒng)能夠?qū)崿F(xiàn)六位數(shù)碼管顯示,能顯示分、秒、毫秒,計(jì)時(shí)精度為0
2、.01秒。其中軟件采用C語(yǔ)言編寫(xiě)程序,包括顯示程序、電子秒表定時(shí)中斷程序、電子時(shí)鐘定時(shí)中斷程序、外部中斷程序、按鍵程序、延時(shí)程序和主程序。并在keil中調(diào)試運(yùn)行,利用proteus軟件仿真調(diào)試,簡(jiǎn)單且易于觀察,在仿真中可以觀察到實(shí)際的工作狀態(tài)。關(guān)鍵字:?jiǎn)纹瑱C(jī);AT89C52;74LS245;電子秒表,電子時(shí)鐘,程序;仿真。引言近年來(lái),隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷的走向深入,同時(shí)帶動(dòng)著傳統(tǒng)控制檢測(cè)日新月異更新,在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為控制核心來(lái)使用,僅是單片機(jī)方面的知識(shí)是不夠的,還要根據(jù)具體的硬件結(jié)構(gòu),以及針對(duì)具體的應(yīng)用對(duì)象的軟件結(jié)合,加以完善。單片機(jī)
3、自二十世紀(jì)以來(lái),以極好的性?xún)r(jià)比受到人們的重視和關(guān)注,所以發(fā)展很快,應(yīng)用廣泛。單片機(jī)的主要特點(diǎn)是體積小、集成度高、抗干擾能力強(qiáng)。對(duì)環(huán)境的要求較低,價(jià)格低廉、可靠性高、靈活性強(qiáng)、開(kāi)發(fā)較容易等特點(diǎn),所以廣泛的應(yīng)用到各個(gè)領(lǐng)域。幾乎到了無(wú)孔不入的地步,在我國(guó)單片機(jī)廣泛的應(yīng)用于工業(yè)自動(dòng)化控制、自動(dòng)檢測(cè)、智能儀表、航空航天和軍事技術(shù)領(lǐng)域等各方面我們可以開(kāi)發(fā)利用單片機(jī)系統(tǒng)獲得更高的經(jīng)濟(jì)效益,更重要的意義是單片機(jī)應(yīng)用改變了傳統(tǒng)的設(shè)計(jì)思想和方法。以軟及取代硬件并能提高系統(tǒng)的性能控制技術(shù)稱(chēng)為為控制技術(shù),能夠?qū)崿F(xiàn)分機(jī)各分布式控制的特點(diǎn),本電子秒表/時(shí)鐘就利用了單片機(jī)這樣的特點(diǎn)電子秒表廣泛的應(yīng)用在人們?nèi)粘I钪?,秒表?jì)
4、時(shí)器也廣泛應(yīng)用于電器制造、國(guó)防以及科研單位等相關(guān)領(lǐng)域。它還廣泛的應(yīng)用于各種繼電器、電磁開(kāi)關(guān)、延時(shí)器、定時(shí)器等時(shí)間測(cè)量。目錄摘要 1引言 1第1章 總體設(shè)計(jì)分析1.1電子秒表/時(shí)鐘課程設(shè)計(jì)的基本思路 31.2 設(shè)計(jì)的任務(wù)要求 31.3 設(shè)計(jì)的基本內(nèi)容 3第2章 系統(tǒng)硬件電路的設(shè)計(jì)2.1 系統(tǒng)的總體方案 42.2 單片機(jī)主控制器設(shè)計(jì) 42.3 復(fù)位電路設(shè)計(jì) 72.4 晶振電路設(shè)計(jì) 72.5 顯示電路設(shè)計(jì) 82.6 提示與報(bào)時(shí)電路設(shè)計(jì) 82.7 按鍵電路設(shè)計(jì) 92.8電源電路設(shè)計(jì) 92.9系統(tǒng)總電路圖 10第3章 元器件清單3.1電源的元器件清單 113.2系統(tǒng)電路的元器件清單 11第4章 軟件設(shè)計(jì)
5、4.1程序設(shè)計(jì)思想 124.2系統(tǒng)軟件設(shè)計(jì)流程圖 134.3 定時(shí)器T0中斷服務(wù)子函數(shù) 144.4 定時(shí)器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è)計(jì)分析1.1電子秒表/時(shí)鐘課程設(shè)計(jì)的基本思路本設(shè)計(jì)是一個(gè)以單片機(jī)為控制核心的電子秒表/時(shí)鐘,利用定時(shí)中斷和外中斷來(lái)控制秒表的計(jì)時(shí)與顯示,還有與外部的晶振電路、復(fù)位電路、數(shù)碼管驅(qū)動(dòng)電路、和按鍵電路
6、結(jié)合,在與軟件配合就能實(shí)現(xiàn)電子秒表/時(shí)鐘的顯示,其結(jié)構(gòu)原理框圖如下所示:電源電路蜂鳴器提示數(shù)碼管顯示獨(dú)立鍵盤(pán)STC89C52單片機(jī)控制器發(fā)光二極管指示晶振電路復(fù)位電路1.2設(shè)計(jì)任務(wù)要求1.2.1基本任務(wù)要求(1)、以MCS-51系列單片機(jī)為核心,采用常用電子器件設(shè)計(jì),一個(gè)電源開(kāi)關(guān),2個(gè)按鍵,六位數(shù)碼管顯示,打開(kāi)電源開(kāi)關(guān)后顯示8,每秒循環(huán)右移一位,(2)、按A鍵開(kāi)始計(jì)時(shí),實(shí)時(shí)顯示所經(jīng)歷的時(shí)間,按B鍵停止計(jì)時(shí)并顯示從開(kāi)始到當(dāng)前時(shí)刻的時(shí)間,要求精度達(dá)到0.01秒,量程為0.01秒到60分鐘。(3)、要求按鍵輸入采用中斷方式,按鍵A接INT0,按鍵B接INT1。1.2.2 發(fā)揮任務(wù)要求(1)、多增加三
7、個(gè)按鍵分別為C鍵、D鍵、E鍵,用六位數(shù)碼管顯示電子時(shí)鐘和年、月、日。(2)、C鍵為復(fù)位鍵,回到當(dāng)初顯示8的位置,但時(shí)鐘依然在走,只是不顯示;D鍵切換到顯示電子時(shí)鐘;E鍵切換到顯示年月日。(3)、有整點(diǎn)報(bào)時(shí),采用蜂鳴器代替,秒表計(jì)時(shí)時(shí)一分鐘報(bào)一次。電子時(shí)鐘為一個(gè)小時(shí)一次。1.3設(shè)計(jì)的基本內(nèi)容(1)、根據(jù)任務(wù)要求選擇方案、設(shè)計(jì)電路、確定元器件型號(hào)和參數(shù)(2)、硬件設(shè)計(jì):要求設(shè)計(jì)出完整的電路原理圖,包括電源模塊、單片機(jī)最小系統(tǒng)電路、按鍵電路、報(bào)時(shí)電路、顯示電路。(3)、軟件設(shè)計(jì):包括編程思路,主程序和各子程序模塊的流程圖及編寫(xiě)方法,并用匯編語(yǔ)言或C語(yǔ)言編寫(xiě)出完整的源程序。(4)、按圖焊接電路,檢查無(wú)
8、誤后通電調(diào)試,調(diào)試電路的功能是否符合要求。 (5)、調(diào)試與仿真:對(duì)設(shè)計(jì)的硬件和程序進(jìn)行仿真調(diào)試,并給出仿真結(jié)果。制作實(shí)物進(jìn)行調(diào)試。第二章系統(tǒng)硬件電路設(shè)計(jì)2.1系統(tǒng)總體方案本設(shè)計(jì)硬件電路和系統(tǒng)程序的設(shè)計(jì),其硬件電路主要有主控制器,晶振電路、復(fù)位電路、數(shù)碼管驅(qū)動(dòng)電路、按鍵電路、提示電路、啟動(dòng)和停止電路等。主控制器采用單片AT89C52,顯示電路采用共陰極的數(shù)碼管顯示相應(yīng)的時(shí)間。本設(shè)計(jì)的數(shù)字電子秒表和時(shí)鐘是采用AT89C52為控制核心器件利用74LS245作為數(shù)碼管的驅(qū)動(dòng)芯片,再利用定時(shí)/計(jì)數(shù)器定時(shí)和計(jì)數(shù)原理,結(jié)合顯示電路、數(shù)碼管以及中斷原理(實(shí)時(shí)與分時(shí)操作)來(lái)實(shí)現(xiàn)電子秒表的制作。將軟件、硬件有機(jī)的
9、結(jié)合起來(lái),使得系統(tǒng)能夠?qū)崿F(xiàn)六位數(shù)碼管顯示,能顯示分、秒、毫秒,計(jì)時(shí)精度為0.01秒。系統(tǒng)方案圖如下:電源電路蜂鳴器提示數(shù)碼管顯示獨(dú)立鍵盤(pán)STC89C52單片機(jī)控制器發(fā)光二極管指示晶振電路復(fù)位電路單片機(jī)的管腳分配是這樣的,P0輸出數(shù)碼管的數(shù)據(jù)段碼,P2.0P2.5為數(shù)碼管的片選輸出,P1.1、P1.0、P1.6、P1.7接發(fā)光二極管提示,P1.5接蜂鳴器來(lái)報(bào)時(shí)提示,P1.2、P1.3、P1.4接按鍵,分別用來(lái)啟動(dòng)、停止秒表和電子秒表和電子時(shí)鐘的切換。P3.2、P3.3、P3.4、P3.5用于定時(shí)中斷和外部中斷來(lái)實(shí)現(xiàn)分時(shí)操作和實(shí)時(shí)操作。.其中軟件采用C語(yǔ)言編寫(xiě)程序,包括顯示程序、電子秒表中斷程序、
10、電子時(shí)鐘定時(shí)中斷程序、外部中斷程序、按鍵程序、延時(shí)程序和主程序。采用六位數(shù)碼管顯示秒表、時(shí)鐘以及年月日,兩個(gè)外部中斷是秒表的啟動(dòng)、停止按鍵。定時(shí)器T0中斷定時(shí)是電子秒表的計(jì)時(shí),定時(shí)器T1中斷是電子時(shí)鐘和年月日的計(jì)時(shí)。定時(shí)器T0是以10ms為中斷單位,定時(shí)器T1是以25ms為中斷單位,錯(cuò)開(kāi)兩個(gè)中斷避免打架。秒表顯示的量程是0.0秒60分鐘,超過(guò)60分鐘就會(huì)清零,從新開(kāi)始并報(bào)警,時(shí)鐘顯示是0秒24小時(shí),超過(guò)24小時(shí)也會(huì)清零但不報(bào)警。2.2單片機(jī)主控制器電路的設(shè)計(jì)單片機(jī)AT89C52作為整個(gè)系統(tǒng)的控制核心,給其他單元電路分配任務(wù),完成秒表和時(shí)鐘的計(jì)時(shí),控制數(shù)碼管顯示,發(fā)光二極管提示,蜂鳴器報(bào)時(shí)等,其
11、原理圖如下所示:2.2.1AT89S52的介紹AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(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 線,看門(mén)狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),
12、全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。R8 位微控制器8K 字節(jié)在系統(tǒng)可編程。2.2.2功能管腳描述VCC : 電源GND: 地P0 口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址在這種模式下,P0具有內(nèi)部上拉電阻。在
13、flash編程時(shí),P0口也用接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1 口:P1 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P1 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P1.0P1.分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P1.0/T2)和時(shí)器/計(jì)數(shù)器的觸發(fā)輸入(P1.1/T2EX),具體如下表所示。在flash編程和校驗(yàn)時(shí)P1口接收低8位地址字節(jié)。引腳號(hào) 第二功能P1.0 T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)
14、數(shù)輸入),時(shí)鐘輸出;P1.1 T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P1.5 MOSI(在系統(tǒng)編程用);P1.6 MISO(在系統(tǒng)編程用);P1.7 SCK(在系統(tǒng)編程用)P2 口:P2 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,P2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P2 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX DPTR)時(shí),P2 口送出高八位地址。在這種應(yīng)用中,P2 口很強(qiáng)的內(nèi)部上拉發(fā)送1
15、。在使用8位地址(如MOVX RI)訪問(wèn)外部據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3 口:P3 口是一個(gè)具有內(nèi)部上拉電阻的8 位雙向I/O 口,p2 輸出緩沖器能驅(qū)動(dòng)4 個(gè)TTL 邏輯電平。對(duì)P3 端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在flash編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。引腳號(hào) 第二功能P3.0 RXD(串行輸入);P3.1 TXD(串行輸出);
16、P3.2 INT0(外部中斷0);P3.3 INT0(外部中斷0);P3.4 T0(定時(shí)器0外部輸入);P3.5 T1(定時(shí)器1外部輸入);P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通);P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) RST: 復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T(mén)狗計(jì)時(shí)完成后,RST 腳輸出96 個(gè)晶振周期的高電平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/PROG:地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(PROG)
17、也用作編程輸入脈沖。在一般情況下,ALE 以晶振六分之一的固定頻率輸出脈沖,可用作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置 “1”,ALE操作將無(wú)效。這一位置 “1”,ALE 僅在執(zhí)行MOVX 或MOVC指令時(shí)有效。否則,ALE 將被微弱拉高。這個(gè)ALE 使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。 PSEN:外部程序存儲(chǔ)器選通信號(hào)(PSEN)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),PSEN在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)
18、據(jù)存儲(chǔ)器時(shí),PSEN將不被激活。EA/VPP:訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H 到FFFFH的外部程序存儲(chǔ)器讀取指令,EA必須接GND。為了執(zhí)行內(nèi)部程序指令,EA應(yīng)該接VCC。在flash編程期間,EA也接收12伏VPP電壓。XTAL1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端XTAL2:振蕩器反相放大器的輸出端。2.2.3內(nèi)部電路框圖2.3復(fù)位電路的設(shè)計(jì)復(fù)位是單片機(jī)的初始化操作,單片機(jī)在啟動(dòng)運(yùn)行時(shí),都要先復(fù)位,它的作用是使CPU和系統(tǒng)其他部件都處于一個(gè)確定的初始狀態(tài)。當(dāng)復(fù)位引腳保持兩個(gè)機(jī)器周期以上的高電平就進(jìn)入復(fù)位狀態(tài)。其原理圖如下所示:2.4 晶體振蕩電路的設(shè)計(jì)振蕩電路也就
19、是時(shí)鐘電路,主要給單片機(jī)提供準(zhǔn)確的時(shí)序讓單片機(jī)正常的工作。其原理圖如下所示:2.5 顯示電路的選擇與設(shè)計(jì)顯示電路采用共陰數(shù)碼管顯示,采用74LS245驅(qū)動(dòng)使數(shù)碼管更加穩(wěn)定的工作,數(shù)碼管顯示清晰直觀,而lcd液晶沒(méi)那么清晰且價(jià)格貴,寫(xiě)軟件還要看時(shí)序。所以選擇了數(shù)碼管顯示,用單片機(jī)得P0輸出數(shù)碼管的數(shù)據(jù)斷碼,用74LS138作數(shù)碼管的片選,然后38譯碼器的的三個(gè)地址端接單片機(jī)得P2即可,其原理圖如下所示:74ls245是雙向總線發(fā)送器/接收器,CE端是三態(tài)允許端,低電平有效。AB、BA是數(shù)據(jù)的傳送方向,高電平時(shí)是數(shù)據(jù)由A向B傳輸,低電平時(shí)數(shù)據(jù)由B向A傳輸,74ls138是個(gè)三輸入8輸出的譯碼器,A
20、0、A1、A2為地址端,選擇相應(yīng)的輸出端為低電平,例如:當(dāng)譯碼器的地址端為0 0 0時(shí),輸出端Y0=0;當(dāng)譯碼器的的地址端是0 0 1時(shí),其輸出端Y1=0;以此類(lèi)推。2.6 提示電路與報(bào)時(shí)電路的設(shè)計(jì)提示電路由發(fā)光二極管提示,用蜂鳴器來(lái)報(bào)時(shí),電子秒表/時(shí)鐘、年月日顯示時(shí),或者秒表的啟動(dòng)與停止時(shí),對(duì)應(yīng)的發(fā)光二極管點(diǎn)亮,當(dāng)秒表計(jì)時(shí)到一分時(shí)或時(shí)鐘到整點(diǎn)時(shí),蜂鳴器分別叫一秒或一分鐘,表示報(bào)時(shí)。其電路原理圖如下所示:三級(jí)管主要起一個(gè)電子開(kāi)關(guān)的作用,使蜂鳴器接通和斷開(kāi),發(fā)光二極管用了1k的電阻限流,防止電流過(guò)大燒壞二極管。2.7 按鍵電路的設(shè)計(jì)按鍵電路采用的是有源按鍵,接了10K的上拉電阻,這樣能使電路更加
21、穩(wěn)定、抗干擾能力強(qiáng),避免了電路板發(fā)生碰撞時(shí)導(dǎo)致誤操作,一共六個(gè)按鍵,其原理圖如下所示:K2鍵是秒表的停止鍵接單片機(jī)的外部中斷INT0,K2是秒表的啟動(dòng)鍵接單片機(jī)的外部中斷INT1,K3、K4、K5分別是切換到電子時(shí)鐘的顯示、年月日的顯示還有復(fù)位到顯示8,每秒左移動(dòng)以為,即最開(kāi)始階段。2.8電源電路的設(shè)計(jì)電源是自制的線性穩(wěn)壓電源,使工作的電路更加穩(wěn)定可靠,防止其他信號(hào)的干擾,給各模塊電路提供穩(wěn)定的電壓。其電路原理圖如下所示:雙12V的交流電經(jīng)四個(gè)二極管整流、電容濾波后經(jīng)兩個(gè)三端穩(wěn)壓管穩(wěn)壓在通過(guò)電容濾波得到5V后給系統(tǒng)等相關(guān)電路供電,F(xiàn)U1、FU2兩個(gè)保險(xiǎn)管主要是起保護(hù)作用,1000uF電容是保持
22、電量的作用,0.33uF是濾波作用,7805與7905主要是穩(wěn)壓,D5、D6是保護(hù)穩(wěn)壓管7805和7905.C12、C14、C16分別是高頻、中頻和低頻濾波,后面的發(fā)光二極管是用來(lái)提示電源正常與否的。2.9系統(tǒng)的總體電路圖系統(tǒng)總體電路圖包括單片機(jī)的最小系統(tǒng),顯示電路,數(shù)碼管驅(qū)動(dòng)電路,發(fā)光二極管提示電路,按鍵電路、電源電路等,其系統(tǒng)的總電路圖如下所示:總電路圖比較直觀的觀察電路的各個(gè)部分,可以方便調(diào)試,第三章 元器件清單3.1 電源部分元器件清單元器件名稱(chēng)元器件型號(hào)數(shù)量元器件名稱(chēng)元器件型號(hào)數(shù)量變壓器I220VQ12V1穩(wěn)壓管LM78051整流二極管IN40078穩(wěn)壓管LM79051電容1000u
23、F/25V3散熱片2電容47uF2電阻1K2元片電容1042發(fā)光二級(jí)管2元片電容1032自鎖開(kāi)關(guān)2元片電容0.33uF2排針2電線單股若干3.2系統(tǒng)電路元器件清單元器件名稱(chēng)元器件型號(hào)數(shù)量元器件名稱(chēng)元器件型號(hào)數(shù)量單片機(jī)AT89S521數(shù)碼管Tof34612驅(qū)動(dòng)芯片74LS2451譯碼器74LS1381晶振12MHz1蜂鳴器1自鎖開(kāi)關(guān)1獨(dú)立按鍵6排阻10K*81電阻10K5電阻1K1電容30pF2電容22uF1跳線若干杜邦頭若干螺柱4螺帽4第四章軟件設(shè)計(jì)4.1 程序設(shè)計(jì)思路軟件設(shè)計(jì)語(yǔ)言既可以用匯編也可以用,匯編語(yǔ)言計(jì)算復(fù)雜出錯(cuò)難修改。C語(yǔ)言是高級(jí)語(yǔ)言,通俗易懂,簡(jiǎn)潔、緊湊、使用靈活方便容易修改,因
24、此本設(shè)計(jì)采用C語(yǔ)言設(shè)計(jì),設(shè)計(jì)思路是這樣的,用定時(shí)器中斷定時(shí)計(jì)數(shù)使顯示加一,利用外部中斷控制秒表的啟、停。通過(guò)讀取相應(yīng)I/O的值進(jìn)行秒表/時(shí)鐘/年月日的顯示切換.軟件的設(shè)計(jì)步驟是這樣的,畫(huà)好程序的流程圖,先對(duì)外部中斷和定時(shí)中斷初始化為一個(gè)子函數(shù),定時(shí)器T0中斷服務(wù)函為一個(gè)子函數(shù),定時(shí)器T1中斷服務(wù)函數(shù)為一個(gè)子函數(shù),外部中斷0服務(wù)函數(shù)為一個(gè)子函數(shù),外部中斷1服務(wù)函數(shù)為一個(gè)子函數(shù),電子秒表顯示函數(shù)為一個(gè)子函數(shù),電子時(shí)鐘顯示函數(shù)為一個(gè)子函數(shù),年月日顯示函數(shù)為一個(gè)子函數(shù),還有一個(gè)主函數(shù),各模塊函數(shù)互不干擾,易分布到每個(gè)同學(xué)寫(xiě),直觀且通用性強(qiáng),易于調(diào)試。每個(gè)模塊的子函數(shù)寫(xiě)好后,進(jìn)行模塊函數(shù)調(diào)試,各模塊子函
25、數(shù)調(diào)試成功后,在拼在一起,減輕了調(diào)試負(fù)擔(dān),能大大的加快課程設(shè)計(jì)的進(jìn)度。當(dāng)然分工要明確,其軟件設(shè)計(jì)的主函數(shù)流程圖如下所示:KEY4=0開(kāi)始程序初始化顯示什么KEY5=0KEY7=0KEY6=0電子時(shí)鐘電子秒表年月日顯示顯示8左移KEY7為0嗎?結(jié)束YN4.2 系統(tǒng)軟件設(shè)計(jì)的總流程圖系統(tǒng)軟件設(shè)計(jì)的總流程圖如下所示:程序初始化開(kāi)始進(jìn)入定時(shí)器T1中斷服務(wù)函數(shù)是啟動(dòng)定時(shí)器T1,TR=1,判斷定時(shí)器是否溢出斷時(shí)鐘顯示計(jì)數(shù)加一進(jìn)入第一任務(wù),數(shù)碼管顯示8,每秒向右移一位判斷顯示秒表、時(shí)鐘和年月日KEY4=0時(shí)鐘顯示年月日顯示KEY5=0不符KEY6=0秒表顯示KEY2=0KEY3=0進(jìn)入外部中斷1服務(wù)函數(shù)并啟
26、動(dòng)定時(shí)器0,秒表啟動(dòng)定時(shí)器溢出,進(jìn)入T0中斷服務(wù),計(jì)數(shù)加一進(jìn)入外部中斷0服務(wù)函數(shù)保持當(dāng)前時(shí)間,秒表停止判斷KEY7是否等于0相應(yīng)秒表、時(shí)鐘和年月日顯示結(jié)束NYKEY7=04.3 定時(shí)器T0中斷服務(wù)子函數(shù)定時(shí)器T0中斷服務(wù)函數(shù)的作用是使電子秒表計(jì)數(shù)加一,其函數(shù)如下:void timer0()interrupt 1 /電子秒表加計(jì)數(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定時(shí)器T1中斷服務(wù)子函數(shù)定時(shí)器T0中斷服務(wù)函數(shù)的作用是使電子時(shí)鐘計(jì)數(shù)加一,其函數(shù)如下:void timer1()interrupt 3/年、月、日及電子時(shí)鐘加計(jì)數(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、在去買(mǎi)好元器件清單,焊接電路。焊接要特別小心,要仔細(xì)的對(duì)照電路圖,既不能使電路短路也不能是電路開(kāi)路,保持電路的暢通,并在相應(yīng)的位置裝上發(fā)光二級(jí)管提示電路通電,可以減輕硬件電路的調(diào)試?yán)щy,還有芯片的焊接要根據(jù)芯片資料了解管腳的功能去焊接,不然很容易燒壞芯片,如過(guò)芯片的工作不正常先觀察芯片管腳有無(wú)接觸,或者芯片的使能是不是根據(jù)相應(yīng)的要求接的,在用萬(wàn)用表去測(cè)試電源管腳是否通電,通電后在去測(cè)相應(yīng)的管腳是否輸出相應(yīng)的電平,如果沒(méi)有就是芯片有問(wèn)題,如果相應(yīng)位置的二極管沒(méi)有點(diǎn)亮,先觀察二級(jí)管有沒(méi)接反,如果沒(méi)接反就用萬(wàn)用表去測(cè)看是否有電壓,如果沒(méi)有電壓說(shuō)明沒(méi)通電,如果有電壓說(shuō)明二極管壞了,當(dāng)然也要根據(jù)軟件結(jié)合
34、,測(cè)試數(shù)碼管給以程序,8段數(shù)碼管一段一段的觀察,看是否管腳接錯(cuò),如果斷碼接錯(cuò)了等顯示數(shù)據(jù)就會(huì)錯(cuò)亂。系統(tǒng)軟件程序調(diào)試,程序調(diào)試先在KEIL軟件里寫(xiě)好各模塊程序,在一個(gè)個(gè)子程序調(diào)試,結(jié)合proteus仿真成功后,再將所有的程序拼在一起調(diào)試,軟件調(diào)試注意的主要是定時(shí)中的的初始化,算好中斷時(shí)間,還有按鍵程序,看是否讀取得到相應(yīng)的電平,其他的就沒(méi)沒(méi)什么了吧。5.2 心得通過(guò)本次課程設(shè)計(jì)不僅是我的硬件設(shè)計(jì)和軟件設(shè)計(jì)有了很大的提高,還使我學(xué)到了更多相關(guān)專(zhuān)業(yè)的知識(shí),如模擬電子技術(shù)、數(shù)字電子技術(shù)、單片機(jī)原理與應(yīng)用技術(shù)等。增強(qiáng)了我的動(dòng)手能力與實(shí)踐能力,也增強(qiáng)了我軟件調(diào)試能力和硬件調(diào)試能力,加強(qiáng)了與同學(xué)的交流能力,
35、交流學(xué)習(xí)交流生活,也增強(qiáng)了我與同學(xué)們得合作能力,使我們配合的更加默契,這次課程設(shè)計(jì)是我們受益不少,這不僅是一次課程設(shè)計(jì),為我們的知識(shí)多蓋了一層金子,更是給我們交流學(xué)習(xí)生活,同學(xué)們相互配合的一次機(jī)會(huì),為我們的生活增添了不少色彩。因此很感激學(xué)校給我們課程設(shè)計(jì)的機(jī)會(huì),希望有更多這樣的機(jī)會(huì)。讓我們的知識(shí)閱歷更加的豐富,在社會(huì)上有更多的機(jī)會(huì)。第六章總結(jié)通過(guò)本次課程設(shè)計(jì)不僅是我的硬件設(shè)計(jì)和軟件設(shè)計(jì)有了很大的提高,還使我學(xué)到了更多相關(guān)專(zhuān)業(yè)的知識(shí),如模擬電子技術(shù)、數(shù)字電子技術(shù)、單片機(jī)原理與應(yīng)用技術(shù)等。增強(qiáng)了我的動(dòng)手能力與實(shí)踐能力,也增強(qiáng)了我軟件調(diào)試能力和硬件調(diào)試能力,加強(qiáng)了與同學(xué)的交流能力,交流學(xué)習(xí)交流生活,
36、也增強(qiáng)了我與同學(xué)們得合作能力,對(duì)各個(gè)元器件有了更好的感性的認(rèn)識(shí),熟悉了個(gè)元器件的模型,有利于走入社會(huì)參考文獻(xiàn)(1)單片機(jī)原理及應(yīng)用(第二版) 電子工業(yè)出版社 張迎新等編著 (2)單片機(jī)原理與實(shí)例應(yīng)用 清華大學(xué)出版社 萬(wàn)隆、張娟、陳文剛等編著(3)單片機(jī)原理及接口技術(shù)(第三版) 北京航空航天大學(xué)出版社 李朝清等編著(4)c語(yǔ)言程序設(shè)計(jì)(第三版) 清華大學(xué)出版社 譚浩強(qiáng)編著(5)模擬電子技術(shù)基礎(chǔ)(第四版) 高等教育出版社 周良權(quán) 李世馨等編著(6)數(shù)字電子技術(shù) 哈爾濱工程大學(xué)出版社 付子義等編著 附錄一:系統(tǒng)的原理圖附錄二:系統(tǒng)程序附錄/*秒表及電子時(shí)鐘-* P0口接數(shù)碼管的數(shù)據(jù)位,p2口接數(shù)碼管
37、的片選位,P1口接獨(dú)立按鍵和發(fā)光二 極管,P1.1和P1.0分別接綠色和紅色的發(fā)光二極管,分別表示秒表開(kāi)始與停止 P1.2P1.4分別接年、月、日顯示按鈕,蜂鳴器提示按鈕,電子秒表顯示按鈕, 外部中斷兩個(gè)按鈕分別表示秒表開(kāi)始與停止。*制作人:練紅海*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 /電子秒表加計(jì)數(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í)鐘加計(jì)數(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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025陜西省安全員《C證》考試題庫(kù)及答案
- 宿州學(xué)院《烏克蘭語(yǔ)語(yǔ)法與寫(xiě)作》2023-2024學(xué)年第二學(xué)期期末試卷
- 廣州南方學(xué)院《軍訓(xùn)(含軍事理論教育)》2023-2024學(xué)年第二學(xué)期期末試卷
- 正德職業(yè)技術(shù)學(xué)院《人工智能基礎(chǔ)與應(yīng)用A》2023-2024學(xué)年第二學(xué)期期末試卷
- 青海交通職業(yè)技術(shù)學(xué)院《寫(xiě)作(二)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年陜西省安康市高新中學(xué)高二上學(xué)期12月月考?xì)v史試卷
- 周口職業(yè)技術(shù)學(xué)院《EDA技術(shù)及應(yīng)用A》2023-2024學(xué)年第二學(xué)期期末試卷
- 延邊大學(xué)《生態(tài)毒理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 天津商務(wù)職業(yè)學(xué)院《物理有機(jī)化學(xué)選論》2023-2024學(xué)年第二學(xué)期期末試卷
- 黃河交通學(xué)院《藥學(xué)分子生物學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 《兒童胃食管反流病》課件
- 閱讀理解:如何找文章線索 課件
- 工程分包商履約情況與進(jìn)度關(guān)聯(lián)分析
- 英語(yǔ)倒裝句課件(全面詳細(xì))
- 培訓(xùn)業(yè)務(wù)的競(jìng)爭(zhēng)對(duì)手分析與對(duì)策
- 產(chǎn)品設(shè)計(jì)思維 課件 第3-5章 產(chǎn)品設(shè)計(jì)的問(wèn)題思維、產(chǎn)品設(shè)計(jì)的功能思維、產(chǎn)品設(shè)計(jì)的形式思維
- 餐券模板完整
- 英語(yǔ)48個(gè)國(guó)際音標(biāo)課件(單詞帶聲、附有聲國(guó)際音標(biāo)圖)
- 門(mén)機(jī)司機(jī)室更換施工方案
- 預(yù)制裝配式鋼筋混凝土排水檢查井標(biāo)準(zhǔn)圖集
- 評(píng)估胎兒健康的技術(shù)
評(píng)論
0/150
提交評(píng)論