版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
多功能電子秒表設(shè)計(jì)畢業(yè)論文目錄摘要錯(cuò)誤!未定義書簽。Abstract錯(cuò)誤!未定義書簽。TOC\o"1-5"\h\z\o"CurrentDocument"目錄I\o"CurrentDocument"1引言1\o"CurrentDocument"1.1單片機(jī)的發(fā)展1\o"CurrentDocument"1.2單片機(jī)的應(yīng)用1\o"CurrentDocument"2總體方案設(shè)計(jì)3\o"CurrentDocument"2.1系統(tǒng)框圖3\o"CurrentDocument"2.2計(jì)時(shí)控制方案3\o"CurrentDocument"2.3顯示控制方案3\o"CurrentDocument"2.4鍵盤控制方案4\o"CurrentDocument"3硬件設(shè)計(jì)5\o"CurrentDocument"89C51單片機(jī)的簡(jiǎn)介589C51的引腳6\o"CurrentDocument"89C51單片機(jī)復(fù)位方式8\o"CurrentDocument"3.4鍵盤接口工作原理93.4.1按鍵開關(guān)的去除抖動(dòng)功能93.4.2獨(dú)立式鍵盤的接口電路9\o"CurrentDocument"3.5七段LED顯示工作原理10\o"CurrentDocument"3.674LS245的功能11\o"CurrentDocument"3.7電路原理12\o"CurrentDocument"4軟件設(shè)計(jì)14\o"CurrentDocument"4.1定時(shí)1秒的方法14\o"CurrentDocument"4.2定時(shí)器初值計(jì)算14\o"CurrentDocument"4.3主程序模塊14\o"CurrentDocument"4.4中斷服務(wù)程序模塊16\o"CurrentDocument"4.5按鍵掃描程序模塊18\o"CurrentDocument"4.6顯示程序模塊20\o"CurrentDocument"5系統(tǒng)調(diào)試23\o"CurrentDocument"6總結(jié)25\o"CurrentDocument"參考文獻(xiàn)26\o"CurrentDocument"附錄27\o"CurrentDocument"致謝311引言1.1單片機(jī)的發(fā)展單片微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是一種非?;钴S和頗具有生命力的機(jī)種。單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于工業(yè)控制領(lǐng)域,因此又稱為微控器。1971年微處理器研制成功不久,就出現(xiàn)了單片微型計(jì)算機(jī)即單片機(jī),但最早的單片機(jī)是1位的,處理能力有限。單片機(jī)的發(fā)展分為4個(gè)階段:第一階段(1974—76年):?jiǎn)纹瑱C(jī)初級(jí)階段。因?yàn)槭芄に囅拗?,單片機(jī)采用單片的形式而且功能比較簡(jiǎn)單。例如美國(guó)仙童公司生產(chǎn)的F8單片機(jī),實(shí)際上只包括了8位CPU,64個(gè)字節(jié)的RAM和2個(gè)并行接口第二階段(1976—78年):低性能單片機(jī)階段。以Intel公司生產(chǎn)的MCS——48系列單片機(jī)為代表,該系列單片機(jī)片內(nèi)集成有8位CPU,8位定時(shí)器/計(jì)數(shù)器,并行I/O接口,RAM和ROM等,但是最大的缺點(diǎn)就是無串行接口,中斷處理比較簡(jiǎn)單而且片內(nèi)RAM和ROM容量較小,且尋址范圍不大與4KB。第三階段(1978—83)高性能單片階段這個(gè)階段推出的單片機(jī)普遍帶有串行接口。多級(jí)中斷系統(tǒng),16位定時(shí)器/計(jì)數(shù)器,片內(nèi)ROM,RAM容量加大,且尋址范圍可達(dá)64KB,有的片內(nèi)還帶有A/D轉(zhuǎn)換器。第四階段(1983年至今)8位單片機(jī)鞏固發(fā)展以及16位單片機(jī),32位單片機(jī)推出階段。此階段的主要特征是:一方面發(fā)展16位單片機(jī),32位單片機(jī)及專用型單片機(jī);另一方面不斷完善高檔8位單片機(jī),改善其結(jié)構(gòu),增加片內(nèi)器件,以滿足不同的客戶要求。1.2單片機(jī)的應(yīng)用單片機(jī)的應(yīng)用很廣,分別在以下領(lǐng)域中得到了廣泛的應(yīng)用。工業(yè)自動(dòng)化:在自動(dòng)化技術(shù)中,無論是過程控制技術(shù)、數(shù)據(jù)采集技術(shù)還是測(cè)控技術(shù),都離不開單片機(jī)。在工業(yè)自動(dòng)化的領(lǐng)域中,機(jī)電一體化技術(shù)將發(fā)揮愈來愈重要的作用,在這種機(jī)械、微電子和計(jì)算機(jī)技術(shù)為一體的綜合技術(shù)(例如機(jī)器人技術(shù)、數(shù)控技術(shù))中,單片機(jī)將發(fā)揮非常重要的作用特別是近些年來,隨著計(jì)算機(jī)技術(shù)的發(fā)展,工業(yè)自動(dòng)化也發(fā)展到了一個(gè)新的高度,出現(xiàn)了無人工廠、機(jī)器人作業(yè)、網(wǎng)絡(luò)化工廠等,不僅將人從繁重、重復(fù)和危險(xiǎn)的工業(yè)現(xiàn)場(chǎng)解放出來,還大大提高了生產(chǎn)效率,降低了生產(chǎn)成本。儀器儀表:目前對(duì)儀器儀表的自動(dòng)化和智能化要求越來越高。在自動(dòng)化測(cè)量?jī)x器中,單片機(jī)應(yīng)用十分普及。單片機(jī)的使用有助于提高儀器儀表的精度和準(zhǔn)確度,簡(jiǎn)化結(jié)構(gòu),減小體積,易于攜帶和使用,加速儀器儀表向數(shù)字化、智能化和多功能化方向發(fā)展。消費(fèi)類電子產(chǎn)品:該應(yīng)用主要反映在家電領(lǐng)域。目前家電產(chǎn)品的一個(gè)重要發(fā)展趨勢(shì)是不斷提高其智能化程度。例如,電子游戲、照相機(jī)、洗衣機(jī)、電冰箱、空調(diào)、電視機(jī)、微波爐、手機(jī)、IC卡、掛鐘、汽車電子設(shè)備等。在這些設(shè)備中使用了單片機(jī)后,其功能和性能大大提高,并實(shí)現(xiàn)了智能化、最優(yōu)化控制通信方面:較高檔的單片機(jī)都具有通信接口,因而為單片機(jī)在通信設(shè)備中的應(yīng)用創(chuàng)造了很好的條件。例如,在微波通信、短波通信、載波通信、光纖通信、程控交換等通信設(shè)備和儀器中都能找到單片機(jī)的應(yīng)用。武器裝備:在現(xiàn)代化的武器裝備中,如飛機(jī)、軍艦、坦克、導(dǎo)單、魚雷制導(dǎo)、智能武器設(shè)備、航天飛機(jī)導(dǎo)航系統(tǒng),都有單片機(jī)在其中發(fā)揮重要作用。終端及外部設(shè)備控制:計(jì)算機(jī)網(wǎng)絡(luò)終端設(shè)備,如銀行終端,以及計(jì)算機(jī)外部設(shè)備如打印機(jī)、硬盤驅(qū)動(dòng)器、繪圖機(jī)、傳真機(jī)、復(fù)印機(jī)等,在這些設(shè)備中都使用了單片機(jī)。近年來隨著科技的飛速發(fā)展,同時(shí)帶動(dòng)自動(dòng)控制系統(tǒng)日新月異更新,單片機(jī)的應(yīng)用正在不斷地走向深入。2總體方案設(shè)計(jì)2.1系統(tǒng)框圖多功能電子秒表的總體設(shè)計(jì)框圖如圖2.1所示。圖2.1系統(tǒng)框圖Figure2.1systemblockdiagram2.2計(jì)時(shí)控制方案圖2.1系統(tǒng)框圖Figure2.1systemblockdiagram利用MCS-51內(nèi)部的定時(shí)器/計(jì)數(shù)器進(jìn)行定時(shí),配合軟件延時(shí)實(shí)現(xiàn)到計(jì)時(shí)。該方案節(jié)省硬件成本,切能夠使讀者在定時(shí)器/計(jì)數(shù)器的使用、中斷及程序設(shè)計(jì)方面得到鍛煉與提高,2.3顯示控制方案顯示分為靜態(tài)示和動(dòng)態(tài)顯示靜態(tài)顯示由于占用較多的接口,在單片機(jī)設(shè)計(jì)中常采用串行擴(kuò)展來完成。該方案占用接口資源多,顯示亮度由保證,但硬件開銷大,電路復(fù)雜,信息刷新速度慢,實(shí)用于并行接口資源較少以及對(duì)顯示沒有要求的場(chǎng)合。LED動(dòng)態(tài)顯示硬件連接簡(jiǎn)單,但動(dòng)態(tài)掃描的顯示方式需占用CPU較多的時(shí)間,在該系統(tǒng)中由于單片機(jī)除了掃描89c51芯片外沒有太多的實(shí)時(shí)測(cè)控任務(wù),故選用動(dòng)態(tài)掃描方式。2.4鍵盤控制方案鍵盤分為獨(dú)立式鍵盤和行列式鍵盤,獨(dú)立式鍵盤接口電路配置靈活,硬件結(jié)構(gòu)簡(jiǎn)單,工作可靠但每個(gè)按鍵必須占用一跟I/O接口線,I/O接口線浪費(fèi)較大,在單片機(jī)應(yīng)用系統(tǒng)中,有時(shí)只需要幾個(gè)簡(jiǎn)單的按鍵向系統(tǒng)輸入信息,可將按鍵直接在一根I/O接口線上,故只在按鍵數(shù)量不多時(shí)采用。而行列式鍵盤每條行線與列線在交叉處不直接相通,而是通過一個(gè)按鍵加以連接,當(dāng)按鍵較多時(shí)可采用行列式鍵盤以節(jié)省I/O接口。本設(shè)計(jì)采用一個(gè)按鍵,所以這里選用獨(dú)立式鍵盤。3硬件設(shè)計(jì)89C51單片機(jī)的簡(jiǎn)介89C51是MCS-51系列單片機(jī)的典型產(chǎn)品,我們就這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。89S51單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:P0-3圖3.1單片機(jī)內(nèi)部結(jié)構(gòu)示意圖P0-3圖3.1單片機(jī)內(nèi)部結(jié)構(gòu)示意圖Figure3.1monolithicinternalstructure1、中央處理器中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。2、數(shù)據(jù)存儲(chǔ)器(RAM)89C51內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。
3、程序存儲(chǔ)器(ROM)89C51共有4KB掩膜ROM,最大可擴(kuò)展64K字節(jié),用于存放用戶程序,原始數(shù)據(jù)或表格。4、定時(shí)/計(jì)數(shù)器:89C51有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。5、并行輸入輸出(I/O)口:89C51共有4組8位I/O口(P0、P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。6、中斷系統(tǒng)89C51具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。89C51的引腳89c51引腳如圖3.2所示:o1234587TSo1234587TS11111111RPPPPPPPPRXDZP3.0TXDZP3.1INT0/P3.2INTTZP3.3T0/P3.4T1/P3.5WRZP3.6RD/P3.7XTAL2XTAL1GND012345678301234567003111111111120987654321038765432143333333333222222222nnnnnnnnnnnnnnnnnnnnVccPO.0/ADOPO.1/ADIPO.2/AD2PO.3ZAD3PO.4/AD4PO.5/ADSPO.6/AD6PO.7/hDTEA/VPPALE/PROGPESNP2.7/A15P2.6/A14P2.5/A13P2.4/Al2P2.3/A11P2.2/A10P2.1/A9P2.0/A8圖3.289c51引腳圖Figure3.289c51pinmapPin20:接地腳。Pin40:正電源腳,正常工作或?qū)ζ瑑?nèi)EPROM讀寫程序時(shí),接+5V電源。Pin19:時(shí)鐘XTAL1腳,片內(nèi)振蕩電路的輸入端。Pin18:時(shí)鐘XTAL2腳,片內(nèi)振蕩電路的輸出端。輸入輸出(I/O)引腳:Pin39-Pin32為P0.0-P0.7輸入輸出腳,Pin1-Pin1為P1.0-P1.7輸入輸出腳,Pin21-Pin28為P2.0-P2.7輸入輸出腳,Pin10-Pin17為P3.0-P3.7輸入輸出腳,這些輸入輸出腳的功能說明將在以下內(nèi)容闡述。Pin9:RESET/Vpd?位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指鐘寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)如表3.2所示:表3.28051初始狀態(tài)Table3.28051initialstate特殊功能寄存器初始態(tài)特殊功能寄存器初始態(tài)ACC00HB00HPSW00HSP07HDPH00HTH000HDPL00HTL000HIPxxx00000BTH100HIE0xx00000BTL100HTMOD00HTCON00HSCONxxxxxxxxBSBUF00HP0-P31111111BPCON0xxxxxxxBPin30:ALE/或當(dāng)訪問外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),
這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問外部程序存儲(chǔ)器,ALE會(huì)跳過一個(gè)脈沖。如果單片機(jī)是EPROM,在編程其間,有而將用于輸入編程脈沖。Pin29:商當(dāng)訪問外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,CPU讀入并執(zhí)行。Pin31:EA/Vp程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲(chǔ)器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。89C51單片機(jī)復(fù)位方式單片機(jī)在開機(jī)時(shí)或在工作中因干擾而使程序失控,或工作中程序處于某種死循環(huán)狀態(tài),在這種情況下都需要復(fù)位.復(fù)位的作用是使中央處理器CPU以及其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)重新開始工作.89C51單片機(jī)的復(fù)位靠外部電路實(shí)現(xiàn),信號(hào)由RESET(RST)引腳輸入,高電平有效,在振蕩器工作時(shí),只要保持RST引腳高電平兩個(gè)機(jī)器周期,單片機(jī)即復(fù)位.復(fù)位后,PC程序計(jì)數(shù)器的內(nèi)容為0000H,片內(nèi)RAM中內(nèi)容不變.復(fù)位電路一般有上電復(fù)位、手動(dòng)開關(guān)復(fù)位和自動(dòng)復(fù)位電路3種,如圖3.3所示.+5VC10葉R8.2KVCCRST89C51GNDa.上電復(fù)位電路圖3.3單片機(jī)復(fù)位電路Figure3.3monolithicreset+5VC10葉R8.2KVCCRST89C51GNDa.上電復(fù)位電路圖3.3單片機(jī)復(fù)位電路Figure3.3monolithicresetcircuit+5Vc.自動(dòng)復(fù)位電路在單片機(jī)應(yīng)用系統(tǒng)中,常用鍵盤作為輸入設(shè)備,通過它將數(shù)據(jù)、內(nèi)存地址、命令及指令等輸入到系統(tǒng)中,來實(shí)現(xiàn)簡(jiǎn)單的人機(jī)通信。3.4.1按鍵開關(guān)的去除抖動(dòng)功能目前,MCS-51單片機(jī)應(yīng)用系統(tǒng)上的按鍵常采用機(jī)械觸點(diǎn)式按鍵,它在斷開、閉合時(shí)輸入電壓波形如圖3.4所示.可以看出機(jī)械觸點(diǎn)在閉合及斷開瞬間均有抖動(dòng)過程,時(shí)間長(zhǎng)短與開關(guān)的機(jī)械特性有關(guān),一般為5?10ms。由于抖動(dòng),會(huì)造成被查詢的開關(guān)狀態(tài)無法準(zhǔn)確讀出。例如,一次按鍵產(chǎn)生的正確開關(guān)狀態(tài),由于鍵的抖動(dòng),CPU多次采集到底電平信號(hào),會(huì)被誤認(rèn)為按鍵被多次按下,就會(huì)多次進(jìn)行鍵輸入操作,這是不允許的。為了保證CPU對(duì)鍵的一次閉合僅在按鍵穩(wěn)定時(shí)作一次鍵輸入處理,必須消除產(chǎn)生的前沿(后沿)抖動(dòng)影響。圖3.4.1按鍵過程Figure3.4.1keyprocess3.4.2獨(dú)立式鍵盤的接口電路獨(dú)立式鍵盤的接口電路:在單片機(jī)應(yīng)用系統(tǒng)中,有時(shí)只需要幾個(gè)簡(jiǎn)單的按鍵向系統(tǒng)輸入信息。這時(shí),可將每個(gè)按鍵直接接在一根I/O接口線上,這種連接方式的鍵盤稱為獨(dú)立式鍵盤。如圖3.4.2所示,每個(gè)獨(dú)立按鍵單獨(dú)占有一根I/O接口線,每根I/O接口線的工作狀態(tài)不會(huì)影響到其他I/O接口線。這種按鍵接口電路配置靈活,硬件結(jié)構(gòu)簡(jiǎn)單,但每個(gè)按鍵必須占用一根I/O線,I/O接口線浪費(fèi)較大。故只在按鍵數(shù)量不多時(shí)采用這種按鍵電路。在此電路中,按鍵輸入都采用低電平有效。上拉電阻保證了按鍵斷開時(shí),I/O接口線有確定的高電平。當(dāng)I/O接口內(nèi)部有上拉電阻時(shí),外電路可以不配置上拉電阻。sipl-°L3PL1SW-PBP1L1P1JPL4PLSPL6Pl.7ATB9C51圖3.4.2獨(dú)立按鍵Figure3.4.2independentpress3.5七段LED顯示工作原理LED顯示器是由發(fā)光二極管顯示字段的MCS-51單片機(jī)輸出設(shè)備。單片機(jī)應(yīng)用系統(tǒng)常采用七段LED數(shù)碼管作為顯示器,這重顯示器具有耗電低、配置靈活、線路簡(jiǎn)單、安裝方便、耐轉(zhuǎn)動(dòng)、價(jià)格低廉且壽命長(zhǎng)等優(yōu)點(diǎn)。因此應(yīng)用比較廣泛。LED數(shù)碼管顯示器可以分為共陰極和共陽極兩種結(jié)構(gòu)。共陰極結(jié)構(gòu):如果所有的發(fā)光二極管的陰極接在一起,稱為共陰極結(jié)構(gòu),則數(shù)碼顯示段輸入高電平有效,當(dāng)某段輸入高電平該段便發(fā)光,如圖3所示。共陽極結(jié)構(gòu):如果所有的發(fā)光二極管的陽極接在一起,稱為共陽極結(jié)構(gòu),則數(shù)碼顯示段輸入低平有效,當(dāng)某段輸入低電平該段便發(fā)光,如圖3Figure3.5LEDdigitaltubestructureschematicdiagrammin?跚LED動(dòng)態(tài)顯示接口:LED動(dòng)態(tài)顯示就是利用單片機(jī)依次輸出每一位數(shù)碼管的段選碼和對(duì)應(yīng)于該位數(shù)碼管的位選控制信號(hào),一位一位輪流點(diǎn)亮各七段數(shù)碼管。對(duì)每位數(shù)碼管來說,每隔一段時(shí)間點(diǎn)亮一次,如此循環(huán)。利用人眼的“視覺暫留”效應(yīng),只要每位顯示間隔足夠短就可以給人以同時(shí)顯示的感覺。在動(dòng)態(tài)顯示方式中,同一時(shí)刻,只有一位LED數(shù)碼管在顯示,其他各位是關(guān)閉的。在段選碼和位選碼每送出一次后,應(yīng)保持1ms左右,這個(gè)時(shí)間應(yīng)根據(jù)實(shí)際情況而定。不能太小,因而發(fā)光二極管從導(dǎo)通到發(fā)光有一定的延時(shí),導(dǎo)通時(shí)間太小,發(fā)光太弱人眼無法看清。但也不能太大,因?yàn)楫吘挂芟抻谂R界閃爍頻率,而且此時(shí)間越長(zhǎng),占用CPU時(shí)間也越多。采用動(dòng)態(tài)顯示方式比較節(jié)省I/O接口,硬件電路也較靜態(tài)顯示方式簡(jiǎn)單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時(shí),CPU要依次掃描,占用CPU較多的時(shí)間。用MCS-51單片機(jī)構(gòu)建七段數(shù)碼管動(dòng)態(tài)顯示系統(tǒng)時(shí),6位數(shù)碼管均采用共陰極LED,P0作為段選碼輸出口,8接至數(shù)碼管的各段,字形驅(qū)動(dòng)輸出0時(shí)發(fā)光。P2接口作為位選碼輸出口,當(dāng)P2口輸出0時(shí),選通相應(yīng)位的數(shù)碼管工作。3.674LS245的功能74LS245是常用的芯片,用來驅(qū)動(dòng)led或者其他的設(shè)備,它是8路同相三態(tài)雙
向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。當(dāng)8051單片機(jī)的P0口總線負(fù)載達(dá)到或超過P0最大負(fù)載能力時(shí),必須接入74LS245等總線驅(qū)動(dòng)器。當(dāng)片選端/CE低電平有效時(shí),DIR二“0”,信號(hào)由B向A傳輸;如圖3.6所示。A0B0A1B1A2B2A0B0A1B1A2B2A3B3A4B4A5B5A6B6A7B7E皿如DIR1817161413\2Figure3.674LS245pinmap3.7電路原理電路的核心是AT89C51單片機(jī),其內(nèi)部帶有4KB的FlashROM,無須擴(kuò)展程序存儲(chǔ)器;電腦沒有大量的運(yùn)算和暫存數(shù)據(jù),現(xiàn)有的128B片內(nèi)RAM已能滿足要求,也不必?cái)U(kuò)展片外RAM,系統(tǒng)配備6位LED顯示和1個(gè)單接口鍵盤,采用P0接口外接8路反相三態(tài)緩沖器74LS245作LED動(dòng)態(tài)掃描的段碼控制驅(qū)動(dòng)信號(hào),LED共陰極端與單片機(jī)P2端口直接相連;按鍵接口,由P1.0來完成。啟動(dòng)計(jì)時(shí)需要按鍵按下,才可以計(jì)時(shí)開始,停止也需要按鍵按下,清零操作也需要按鍵按鍵按下,它主要實(shí)現(xiàn)人機(jī)交互功能和計(jì)時(shí)功能。利用軟件計(jì)數(shù)器的方法計(jì)時(shí)一秒,利用中斷的方法使計(jì)時(shí)時(shí)間循環(huán),當(dāng)按下應(yīng)急按鍵時(shí)啟動(dòng)定時(shí)器,開始計(jì)時(shí),再次按下時(shí),停止計(jì)時(shí),最后一次按下,顯示進(jìn)行了初始化,如圖3.9所示沖MIL沖0K4FL5PH程FL-WmiKOrcra心K2itF23Id心K!J瓦VPWP2TXL3C2JLE5ETJtXDTZCD55ALE7HEX圖3.7電路原理圖Figure3.7circuitdiagram4軟件設(shè)計(jì)4.1定時(shí)1秒的方法定時(shí)方法我們采用軟硬件結(jié)合的方法,在主程序中設(shè)定一個(gè)初值為100的軟件計(jì)數(shù)器使定時(shí)器0工作于方式1定時(shí)10毫秒,這樣每當(dāng)T0到10毫秒時(shí)CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)加1,然后判斷它是否為零。為零表示1秒已到。4.2定時(shí)器初值計(jì)算定時(shí)器工作時(shí)必須給計(jì)數(shù)器送初值,將這個(gè)值送到TH和TL中。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此工作于方式1,定時(shí)器為16位計(jì)數(shù)器其定時(shí)時(shí)間由下式計(jì)算:定時(shí)時(shí)間二(216—X)X振蕩周期X12(或)X=216一定時(shí)時(shí)間/振蕩周期X12式中x為T0的初始值,該值和計(jì)數(shù)器工作方式有關(guān)。如單片機(jī)的主脈沖頻率為12MHZ,經(jīng)過12分頻方式0定時(shí)時(shí)間=213X1微秒=8.192毫秒方式1定時(shí)時(shí)間=216X1微秒=65.536毫秒秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題,定時(shí)器需定時(shí)10毫秒,故丁0工作于方式1,定時(shí)100次,就可定時(shí)一秒。4.3主程序模塊主程序主要初始化各參數(shù)和調(diào)用按鍵、顯示兩子程序,首先將時(shí)間、中斷、次數(shù)、和顯示分別進(jìn)行初始化,然后調(diào)用按鍵掃描子程序,再調(diào)用顯示子程序,然后對(duì)這兩個(gè)子程序進(jìn)行周而復(fù)始的循環(huán),如圖4.3所示
圖4.3主程序流程圖Figure4.3themainprogramflowvoidmain(void)(P1=0xff;//初始化pl口,全設(shè)為1TMOD=0x01;//timer0為定時(shí)器,方式1EA=1;ET0=1;num=0;key=0;ms=0;second=0;minuet=0;TH0=(65536-10000)/256;TL0=(65536-10000)%256;while(1)(keyscan();〃按鍵掃描display();//顯示時(shí)間}}4.4中斷服務(wù)程序模塊本中斷采用AT89C51內(nèi)部T0中斷實(shí)現(xiàn),定時(shí)時(shí)間為10ms,當(dāng)時(shí)間到達(dá)10X100時(shí),實(shí)現(xiàn)了1秒的定時(shí),首先進(jìn)入中斷程序后,先判斷10ms到了嗎?如果沒有到將定時(shí)器重裝初值,返回主程序,如果一秒鐘到了,將軟件計(jì)數(shù)器加1再判斷,如果ms計(jì)數(shù)到100,進(jìn)行清零,然后再向前second加1,再判斷到60s沒有,到了清零,然后再向前minute加1,再判斷到60minute沒有,到了清零,最后中斷返回,如圖4.4所示。圖4.4中斷服務(wù)流程圖Figure4.4interruptserviceflowchartvoidtimer0(void)interrupt1using(TH0=(65536-10000)/256;TL0=(65536-10000)%256;ms++;if(ms==100)(ms=0;second++;if(second==60)(second=0;minute++;if(minute==60){minute=0;}}}0//定時(shí)器0方式1,10ms中斷一次//100進(jìn)1〃秒設(shè)為60進(jìn)制//分鐘設(shè)為60進(jìn)制4.5按鍵掃描程序模塊按鍵主要對(duì)人輸入的信息進(jìn)行處理,按鍵識(shí)別成功后,然后key加一,采用switch開關(guān)語句進(jìn)行判斷,key等于1時(shí),啟動(dòng)丁0工作,key等于2時(shí),停止丁0工作,key等于3時(shí),再次啟動(dòng)T0,繼續(xù)計(jì)時(shí),key等于4時(shí),初始化各參數(shù),調(diào)用顯示子程序,再對(duì)key清零處理。
圖4.5按鍵掃描流程圖Figure4.5-keyscanningflowchartvoidkeyscan(void)(if(P1_0==0)〃按鍵1的調(diào)整(delay(30);if(P1_0==0)(key=key+1;switch(key)(case1:TR0=1;break;〃啟動(dòng)定時(shí)器case2:TR0=0;break;//停止定時(shí)器case3:TR0=1;break;case4:(TR0=0;ms=0;//清零操作second=0;minute=0;display。;key=0;break;}}while(P1_0==0)//判斷按鍵是否松開do(delay(30);}while(P1_0==0);}}}4.6顯示程序模塊顯示程序采用動(dòng)態(tài)顯示,由位碼控制那一個(gè)數(shù)碼管顯示,由段碼控制數(shù)碼管顯示什么數(shù)值,根據(jù)中斷程序顯示時(shí)間來查表顯示數(shù)值,從第一位到第六位逐個(gè)點(diǎn)亮,同時(shí)每顯示一位判斷一次六位顯示完了嗎?沒有顯示完進(jìn)行顯示下一位,顯示完了從頭開始再循環(huán),如圖4.6所示。
P2=0xfe顯示60s的個(gè)位V顯示60m的十位延時(shí)T延時(shí)P2=0xefV1P2=0xfd顯示10ms的十位TI顯示60m的個(gè)位延時(shí)IFu延時(shí)P2=0xdf1fP2=0xfb顯示10ms的個(gè)位1r顯示60s的十位延時(shí)1延時(shí)中斷返回P2=0xf7圖4.6顯示流程圖Figure4.6showstheflowchartvoiddisplay(void)(P2=0xfe;P0=discoed[minite/10];〃顯示60m的十位delay(4);P2=0xfd;P0=(discoed[(minite%10)])|0X80;delay(4);P2=0xfb;P0=discoed[seconde/10];delay(4);P2=0xf7;P0=(discoed[seconde%10])|0X80;delay(4);P2=0xef;P0=discoed[ms/10];delay(4);〃顯示60m的個(gè)位〃顯示60s的十位〃顯示60s的個(gè)位〃顯示10ms的十位P2=0xdf;P0=discoed[ms%10];delay(4);}〃顯示10ms的個(gè)位5系統(tǒng)調(diào)試完成了硬件的設(shè)計(jì)、制作和軟件編程之后,要使系統(tǒng)能夠按設(shè)計(jì)意圖正常運(yùn)行,必須進(jìn)行系統(tǒng)調(diào)試。系統(tǒng)調(diào)試包括硬件調(diào)試和軟件調(diào)試兩個(gè)部分。不過,作為一個(gè)單片機(jī)系統(tǒng),其運(yùn)行是軟硬件相結(jié)合的,因此,軟硬件的調(diào)試也是絕對(duì)不可能分開的。程序的調(diào)式應(yīng)一個(gè)模塊一個(gè)模塊地進(jìn)行,單獨(dú)調(diào)試各功能子程序,檢驗(yàn)程序是否能夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各個(gè)子程序連接起來總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正確傳遞參數(shù),特別要注意各子程序的聯(lián)系。調(diào)試的基本步驟如下:將所要調(diào)試的程序輸入到KeiluVision2中,然后進(jìn)行建立新文件,保存和建立新的項(xiàng)目,并按要求修改各個(gè)參數(shù),達(dá)到設(shè)定的效果。值得注意的是編好的文件應(yīng)有后綴例如*.c文件。然后再將編好的程序進(jìn)行編譯,檢查出現(xiàn)的錯(cuò)誤,并作以修改,直到?jīng)]有錯(cuò)誤為止,最后生成*.Hex文件,再加載到仿真圖里面,進(jìn)行程序運(yùn)行,觀察效果,調(diào)整程序,直到達(dá)到設(shè)計(jì)效果為止。在調(diào)試過程中出現(xiàn)的問題:(1)數(shù)碼管不顯示,經(jīng)分析原因在與數(shù)碼管位碼和單片機(jī)的相對(duì)應(yīng)的端口連接的不正確,經(jīng)調(diào)整后顯示正常,開始顯示時(shí)間,如圖5.1所示。000000DP1CA4SCI圖5.1開始顯示界面000000DP1CA4SCIFigure5.1displayinterface(2)數(shù)碼管從原先的兩位一體數(shù)碼管顯示60秒,雖然效果顯示正確,但不能對(duì)毫秒進(jìn)行顯示,經(jīng)調(diào)整后,采用6位一體的數(shù)碼管,最后兩位顯示“00”~“99”中間兩位顯示秒計(jì)時(shí)即“00”~“59”,最前面兩位顯示分計(jì)時(shí)即“00”~“59”。調(diào)試過程中中斷程序出現(xiàn)了問題,把數(shù)據(jù)的處理沒有放到中斷程序中,數(shù)碼管有顯示一段時(shí)間后,有不顯示的現(xiàn)象,把數(shù)據(jù)處理程序調(diào)整到中斷程序中,因?yàn)橹袛鄷r(shí)間短的緣故,出現(xiàn)此情況,調(diào)整過后顯示正常,故障排除了,任務(wù)基本完成了,如圖5.2所示。圖5.2計(jì)時(shí)顯示ShowninFigure5.2timing6總結(jié)本研究結(jié)果說明了,單片機(jī)控制電子秒表實(shí)現(xiàn)的功能,只是單片機(jī)應(yīng)用的一部分,它本身的功能還可以運(yùn)用到其他地方,秒表的原理反映了單片機(jī)的應(yīng)用,但是如果制作實(shí)物,原理上基本上一樣,單片機(jī)也可以制作其他方案。在秒表調(diào)試的過程中,能夠準(zhǔn)確的實(shí)現(xiàn)其功能,按鍵處理恰當(dāng),而主要我學(xué)會(huì)調(diào)試8051C語言程序,它的靈活性、易于修改、功能強(qiáng)大等特點(diǎn)發(fā)揮的很好。通過這次的畢業(yè)設(shè)計(jì),我不僅把知識(shí)融會(huì)貫通,而且豐富了大腦,同時(shí)在查找資料的過程中,也了解了許多課外知識(shí),開拓了視野,使自己的專業(yè)知識(shí)動(dòng)手動(dòng)腦的能力有了很大的提高。畢業(yè)設(shè)計(jì)是我對(duì)所學(xué)知識(shí)的檢驗(yàn)與總結(jié),能夠培養(yǎng)和提高我的獨(dú)立解決問題的能力,在不斷的努力下畢業(yè)設(shè)計(jì)終于完成了。要學(xué)的知識(shí)還很多,在以后的學(xué)習(xí)和工作中需要繼續(xù)探索,爭(zhēng)取做的更好!參考文獻(xiàn)彭勇.單片機(jī)技術(shù).北京電子工業(yè)出版社,2010邊春元,李文濤等.C51單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用,2010張二峰,謝仕華.C語言程序設(shè)計(jì).南京大學(xué)出版社,2010李廣弟,朱月秀,王秀山.單片機(jī)基礎(chǔ)[M].北京航空航天大學(xué)出版社,2004馬家辰.MCS-51單片機(jī)原理與接口技術(shù)[M].哈爾濱工業(yè)大學(xué)出版社,2005陳正振.電子電路設(shè)計(jì)與制作.廣西交通職業(yè)技術(shù)學(xué)院信息工程系,2007楊子文.單片機(jī)原理及應(yīng)用.西安電子科技大學(xué)出版社,2006何立民.MCS-51系列單片機(jī)應(yīng)用系列設(shè)計(jì)[M].航空航天大學(xué)出版社,2004附錄源程序如下:#include<reg51.h>#defineusherunsignedchar#defineunitunsignedinto/*七段共陰管顯示定義*/ushercodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f);/*定義并初始化變量*/usherms;ucharseconde,minite;ucharnum,key;sbitP1_0=P1"0;//ms調(diào)整定義/*函數(shù)聲明*/voiddelay(uchark);〃延時(shí)子程序voiddisplay();〃顯示子程序voidkeyscan();〃按鍵掃描子程序/*****************************//*延時(shí)子程序*//****************************/voiddelay(uchark)(ucharj;while(k--)(for(j=0;j<125;j++);}}/*****************************//*顯示子程序*//*****************************/voiddisplay(void)(P2=0xfe;P0=dispcode[minite/10];//顯示60m的十位delay(4);P2=0xfd;P0=(dispcode[(minite%10)])|0X80;//顯示60m的個(gè)位delay(4);P2=0xfb;P0=dispcode[seconde/10];〃顯示60s的十位delay(4);P2=0xf7;P0=(dispcode[seconde%10])|0X80;〃顯示60s的個(gè)位delay(4);P2=0xef;P0=dispc
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年朔州陶瓷職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫及完整答案詳解1套
- 2026年武夷山職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫參考答案詳解
- 2026年云南商務(wù)職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫及答案詳解一套
- 2026年上海興偉學(xué)院?jiǎn)握新殬I(yè)技能考試題庫帶答案詳解
- 2026年寧波財(cái)經(jīng)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性考試題庫及參考答案詳解
- 2026年浙江藥科職業(yè)大學(xué)單招綜合素質(zhì)考試題庫含答案詳解
- 2026年河南中醫(yī)藥大學(xué)單招職業(yè)傾向性測(cè)試題庫附答案詳解
- 2026年廣東農(nóng)工商職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)傾向性考試題庫參考答案詳解
- 2026年銅仁幼兒師范高等??茖W(xué)校單招職業(yè)傾向性考試題庫附答案詳解
- 合同封頁模板(3篇)
- 2026年度財(cái)務(wù)總監(jiān)工作計(jì)劃(3篇)
- 2025美國(guó)心臟協(xié)會(huì)心肺復(fù)蘇(CPR)與心血管急救(ECC)指南解讀課件
- 職業(yè)畢業(yè)就業(yè)生涯規(guī)劃書
- 腹腔出血課件
- 驚恐障礙的認(rèn)知行為干預(yù)與藥物協(xié)同
- 消化內(nèi)科2025年終工作總結(jié)及2026年工作計(jì)劃匯報(bào)
- 2025年國(guó)家統(tǒng)計(jì)局齊齊哈爾調(diào)查隊(duì)公開招聘公益性崗位5人筆試考試備考試題及答案解析
- 啦啦操課件教學(xué)課件
- 2025年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)拋光液市場(chǎng)運(yùn)行態(tài)勢(shì)及行業(yè)發(fā)展前景預(yù)測(cè)報(bào)告
- 2026年網(wǎng)絡(luò)安全法培訓(xùn)課件
- 2025年全國(guó)新能源電力現(xiàn)貨交易價(jià)格趨勢(shì)報(bào)告
評(píng)論
0/150
提交評(píng)論