




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
基于單片機數(shù)字式電子秒表電路設計摘要時間是工農(nóng)業(yè)生產(chǎn),國防,人民生活等領域不可缺少的。它涉及到我們工作,生活的各個方面。沒有時間人們的一切行為都無法進行。本篇論文是利用單片機(SinglechipMicrocomputer)AT89C51和接口外圍電路8279芯片等組成的時鐘和秒表雙重功能的電子秒表電路。整個電路由硬件電路和軟件程序兩部分組成。硬件電路由單片機AT89C51接口芯片8279等元件組成,它使用元件少,電路結構簡單,功能強;軟件程序采用匯編語言進行設計,它結構合理,思路清晰,利用中斷服務程序?qū)Ω鞣N事件進行處理,提高微處理器的工作效率。關鍵詞:微處理器中斷接口電路數(shù)碼顯示按鍵電路AbstractTimeistheindustryandagricultureproduction,nationaldefense,andpeople'slivingareassuchasindispensable.Itinvolvesourwork,allaspectsoflife.Notallthetimepeopleareunabletoact.Thispaperisusingsingle-chipMicrocomputerchip(your)AT89C51andinterfacecircuit8279peripheralcomponents,suchaschipclocksandstopwatchfunctionofelectronicstopwatchcircuit.Thecircuithardwarecircuitandsoftwareprogrambytwoparts.ThehardwarecircuitofmicrocomputerAT89C51,interfacechip8279etc,itUSEScomponentscomponents,suchassimplestructure,thefunctionisstrong,Softwaredesignusingassemblylanguage,itsstructureisreasonable,clarity,usinganinterruptserviceroutinetreatmentofvariousevents,improveworkefficiencyofmicroprocessors.Keywords:Microcomputer,interrupt,interfacecircuit,digitaldisplay,switchcircuit目錄TOC\o"1-5"\h\z\o"CurrentDocument"摘要 I\o"CurrentDocument"Abstract n\o"CurrentDocument"目錄 III\o"CurrentDocument"前言 1\o"CurrentDocument"設計功能與要求 2\o"CurrentDocument"1.1系統(tǒng)功能 2\o"CurrentDocument"1.2設計要求 2\o"CurrentDocument"設計構思 3\o"CurrentDocument"硬件電路原理框圖 4\o"CurrentDocument"硬件電路的設計與實現(xiàn) 5\o"CurrentDocument"AT89C51微處理器介紹 5\o"CurrentDocument"AT89C51微處理器的背景 5\o"CurrentDocument"AT89C51單片機的功能結構 5\o"CurrentDocument"AT89C51單片機的應用 6\o"CurrentDocument"4.2接口芯片的介紹 7\o"CurrentDocument"芯片8279的背景 7\o"CurrentDocument"4.2.2芯片8279的功能結構 7\o"CurrentDocument"4.2.3芯片8279的應用 8\o"CurrentDocument"4.3譯碼器74LS138功能結構 9\o"CurrentDocument"4.4總線鎖存器74LS373功能結構 11\o"CurrentDocument"4.5按鍵電路的實現(xiàn) 12\o"CurrentDocument"4.6LED數(shù)碼顯示電路的實現(xiàn) 12\o"CurrentDocument"4.7硬件電路的實現(xiàn) 13\o"CurrentDocument"總電路圖 13\o"CurrentDocument"硬件電路的工作過程 13\o"CurrentDocument"軟件程序的設計與實現(xiàn) 15\o"CurrentDocument"5.1電子秒表主程序設計 15\o"CurrentDocument"主程序的設計構思 15主程序的流程框圖 18\o"CurrentDocument"5.1.3主程序的實現(xiàn) 19\o"CurrentDocument"5.1.4鍵掃描子程序 225.1.58位LED數(shù)碼管顯示子程序 23\o"CurrentDocument"5.2中斷服務程序設計 24\o"CurrentDocument"5.2.1中斷的概念 24\o"CurrentDocument"中斷服務程序的設計構思 25中斷服務程序流程框圖 26\o"CurrentDocument"中斷服務程序?qū)崿F(xiàn) 26285.3軟件程序的調(diào)試與運行 28\o"CurrentDocument"直流電源 29\o"CurrentDocument"總結 31\o"CurrentDocument"致 32\o"CurrentDocument"參考文獻 33\o"CurrentDocument"附圖 34前言時間是工農(nóng)業(yè)生產(chǎn),國防,人民生活等領域不可缺少的。它涉及到我們工作,生活的各個方面。沒有時間人們的一切行為都無法進行。本電路是利用單片機和外圍接口電路組成的時鐘和秒表雙重功能的電子秒表電路。它比僅用分立元件構成的電子秒表電路結構更合理、使用元件少、功能更強大等很多優(yōu)點。整個電路設計分為硬件電路和軟件程序兩大部分組成。硬件電路由單片機AT89C51微處理器CPU)接口芯片8279、8位LED數(shù)碼管顯示電路、按鍵電路等構成。軟件程序由主程序和中斷服務程序組成。主程序包括主程序初始化設置、鍵掃描子程序、8位LED數(shù)碼管顯示子程序等。中斷服務程序的主要作用是時鐘累計和判別時鐘是否已運行帶到24小時。利用匯編語言實現(xiàn)軟件程序,它與硬件電路的關系最直接。設計功能與要求系統(tǒng)功能數(shù)字式電子秒表系統(tǒng)具有毫秒、秒、分、時的累進顯示功能(到24小時后自動復零),并可以任意設置時鐘初值,即可以在任意時刻開機運行。作為秒表,系統(tǒng)可通過按鍵開始記錄時間,在某一事件結束時,又通過按鍵使秒表停止運行,并顯示該事件經(jīng)歷的時間,要求精確到0.01s(即10ms)。設計要求(1) 采用單片機(AT89C51為核心器件,構成數(shù)字式電子秒表系統(tǒng)。(2) 用8位LED數(shù)碼管分別顯示時、分、秒、毫秒(顯示格式要求為XX、XX、XX、XX)。(3)通過按鍵,實現(xiàn)下列人機對話功能:①按A鍵,電子秒表開始計時;②按B鍵,輸入時鐘初值;③按C鍵,時鐘清零;④按D鍵,電子秒表停止計時。(4) 利用定時器/計數(shù)器/作10ms的定時,當定時時間到后,進入中斷服務程序,在中斷服務程序中實現(xiàn)時鐘累進。(5)通過4個按鍵實現(xiàn)時鐘運行,停止等人機對話功能,利用8279芯片連接按鍵盤和LED數(shù)碼管,實現(xiàn)時鐘的顯示。設計構思首先,以微處理器AT89C5偽核心,禾I」用微處理器的P0端口和P2端口實現(xiàn)數(shù)據(jù)、地址的傳送。由于P0端口無鎖存功能,所以P0端在進行地址傳送時需加鎖存器。因微處理器 AT89C51芯片有程序存儲器EPROM81和數(shù)據(jù)存儲器RAM256字節(jié),所以微處理器沒有進行外存儲器的擴展,直接禾用微處理器部的程序存儲器和數(shù)據(jù)存儲器。其次,禾用8279是一種通用的可編程的鍵盤/顯示器接口芯片,將8279的8個顯示器刷新寄存器輸出與8個LED數(shù)碼顯示管的八個引腳a、b、c、d、e、f、g、dp經(jīng)驅(qū)動器74LS244相連。由于是8個LED數(shù)碼管將8279的SL0-SL3掃描線中三根線SL0-SL2經(jīng)74LS138譯碼器產(chǎn)生8個掃描線分別接到八個數(shù)碼管共陰極控制端。禾I」用經(jīng)74LS138譯碼后的8個掃描信號與8279的4個回掃信號RL0-RL3組成具有32個鍵的鍵盤。再次,系統(tǒng)軟件的主程序,它包括三個部分:第一部分為初始化設置,包括設置堆棧指針、8279初始化、定時器/計數(shù)器初始化、顯示緩沖區(qū)初始化、開中斷、定時器/計數(shù)器啟動等。第二部分是對鍵盤進行掃描,判斷是否鍵按下,按的是哪一個鍵,根據(jù)不同的按鍵實現(xiàn)各種人機對話功能;第三部分是實現(xiàn)電子秒表的顯示。最后,中斷服務程序,它的主要功能是實現(xiàn)時鐘累進,以及如何判斷是否已到24小時。硬件電路原理框圖硬件電路由微處理器AT89C51鎖存器、接口電路、LED數(shù)碼管、按鍵電路等組成圖3-1硬件電路原理框圖硬件電路的設計與實現(xiàn)AT89C51微處理器介紹AT89C51微處理器的背景AT89C系列單片機(微處理器)是ATME公司1993年開始研制生產(chǎn)的,優(yōu)越的性能價格比使其成為頗受歡迎的8位單片機。AT89C系列與MC—51系列單片機在軟、硬件上相互兼容,但AT89C系列與MC—51系列單片機相比有兩大優(yōu)勢:第一,片程序存儲器采用閃速存儲器,使程序的寫入更加方便;第二,提供了更小尺寸的芯片(AT89C2051/1051),使整個硬件電路的體積更小。AT89C系列單片機有四種型號:AT89C51AT89C52AT89C1051AT89C2051其中AT89C2051/1051是ATME公司AT89C系列的新成員。它的較小的體積、良好的性能價格比倍受青睞,在家電產(chǎn)品、工業(yè)控制、計算機產(chǎn)品、醫(yī)療器械等應用方面成為用戶降低成本的首選器件。AT89C51單片機的功能結構AT89C51單片機芯片為40個引腳,HMO工藝制造的芯片采用雙列直插(DIP)方式,其引腳示意及功能分類如圖4.1所示。它具有如下主要特性:AT89C51與MCS-51兼容;部帶4KB可編程閃速存儲器;壽命為1000次擦/寫循環(huán);數(shù)據(jù)保留時間為10年;工作電壓圍為2.7V—6V;令靜態(tài)工作頻率為0Hz—24Hz;128X8位部RAM;32條可編程I/O線;2個16位定時器/計數(shù)器;
5個兩級中斷源;可編程全雙工串行UARTS道;P:.LP-.1IX.l<.bPl,7Rsr78丄2P:.LP-.1IX.l<.bPl,7Rsr78丄23454Q10
~[F^13■:ADLJPU.L[畑)pru〔臨問2IA34.PL..4U-A^'PU.t14TIPJ.iiTKDjf0;2(f?TO}w.Mnni)00(ALb;P2./i:AL4;l;J.'.4L_PSlfj3015n15n1819(All;l-J.2護丄「:1:丄』E>S,6[WR)PJ.71RD)XTAL2XIALL20圖4.1AT89C51弓I腳圖AT89C51單片機的應用在本電路中AT89C5單片機只用到了P0端口和P2端口的一部分,以及中斷INT1(P3.3)、定時器/計數(shù)器(P3.5)、讀/寫狀態(tài)線(P3.6、P3.7)、復位端RST/VP0(9腳)、ALE/PROG(30腳)允許地址鎖存信號端。PSEN(29腳)片外程序存儲器讀選通信號輸出端,按高電平;EA/vpp為訪問外部程序存儲器控制信號端,按高電平;中斷0lNT0(P3.2)按高電平;將P0端口與接口芯片8279的8位數(shù)據(jù)線DB0-DB7相連,讀/寫狀態(tài)線(RD/WR)與接口芯片8279的讀/寫狀態(tài)線(RD/WR)相連。XTAL1XTAL2(18、19腳)外接12MHZ勺晶體振蕩器。4.2接口芯片的介紹芯片8279的背景8279是一種通用的可編程鍵盤/顯示器接口芯片。它能接收與識別來自鍵盤列的輸入數(shù)據(jù)并完成預處理,還能顯示數(shù)據(jù)和對數(shù)碼顯示器進行自動掃描控制,是實現(xiàn)CPU與鍵盤、LED數(shù)碼顯示器之間進行信息交換的1種專用接口芯片。8279與MC—51單片機、AT89C51單片機的接口非常簡單,因而在單片機應用系統(tǒng)中得到了廣泛的應用。4.2.2芯片8279的功能結構8279芯片有40條引腳,由單一+5V電源供電。它主要由以下幾部分組成:I/O控制和數(shù)據(jù)緩沖器;控制和定時寄存器及定時控制部分;掃描計數(shù)器;回送緩沖器與鍵盤去抖動控制電路;F1F0(先進先出)寄存器和狀態(tài)電路;顯示器地址寄存器及顯示RAM8279的引腳如圖4.2所示,下面對引腳名稱作簡要說明:DB0—DB:雙向數(shù)據(jù)總線。A°:命令狀態(tài)或數(shù)據(jù)選擇線。A)=1,表示從DB—DB線上傳送的命令或狀態(tài)字;Ad=0表示為數(shù)據(jù)。RD、WR:讀、寫信號線。IRQ:中斷請求線。SL。一SL3:掃描線。若用3—8譯碼器的話,則掃描線為8選1。RL0—RO:回送線。部有上拉電阻,從此線上得到鍵盤的回掃信號。outAo—outA3、outBo—outB3:顯示器刷新寄存器輸出,與掃描線同步。圖4.28279引腳圖芯片8279的應用在本電路中8279接口芯片管理32個鍵的鍵盤和8個LED數(shù)碼顯示器,以及8279芯片與AT89C51單片機相連。作為一個外設接口芯片,8279的片選信號CS由AT89C51的P^、B.6、P2.7這3條地址線經(jīng)地址譯碼器譯碼后得到的(B.7、P2.6、P2.5=111)。其片尋址線A與AT89C5係統(tǒng)的地址線A相連,此時8279數(shù)據(jù)口的地址號為FF80H命令/狀態(tài)口的地址號為FF82H8279向AT89C51申請中斷的信號,IRQ經(jīng)反向后與AT89C51的外部中斷1的輸入端INT1相連。利用掃描線SJSLi、Sb再經(jīng)3—8譯碼器74LS138后得到Y0、Y1、…Y78個掃描線與8個LED數(shù)碼管共陰極端相連。Y0、Y1、…Y78個掃描線與RL、RORL、RL)四個回送線組成32個鍵編碼掃描式工作方式。這種連接方式,10個數(shù)字鍵0—9與編碼相一致,而且功能鍵的編碼也是連續(xù)的。這給編制鍵命令分析程序帶來了方便。4.3譯碼器74LS138功能結構3—8譯碼器74LS138為一種常用的地址譯碼器芯片,其管腳圖如圖4.3所示。其中,G、G2A、g2B為3個控制端,只有當G為“1”且G2A、G2B均為“0”時,譯碼器才能進行譯碼輸出。否則譯碼器的8個輸出端全為高阻狀態(tài)。譯碼輸入端與輸出端之間的譯碼關系表4.1所示。(PDFSOIC)
TOPVIEW圖4.374LS138引腳圖圖4.374LS138引腳圖J-fcjnif—J匚M(Y1岡網(wǎng)w_{Y5丙cQ12345&VYYYYY¥¥F1Z123^F1F113I]AQA1A2ETE2E3Y7NDgG表4.174LS138的譯碼關系A2A1A0輸出有效000Y0001Y010Y2011Y3100Y4101丫5110Y6111丫74.4總線鎖存器74LS373功能結構74LS373是一種帶輸出三態(tài)門的8D鎖存器,其結構示意圖如圖4.4所示,其引腳示意圖如圖4.5所示▼3圖4.774LS373結構圖4.574LS373引腳其中:1D-8D為8個輸入端。1Q-8Q為8個輸出端。G為數(shù)據(jù)打入端:當G為“T時,鎖存器輸出狀態(tài)(1Q-8Q)同輸入狀態(tài)(1D-8D);當G由“1”變?yōu)椤?”時,數(shù)據(jù)打入鎖存器中。為輸出允許端:當°E=0時,三態(tài)門打開;當°E=1時,三態(tài)門關閉,輸出呈高阻。4.5按鍵電路的實現(xiàn)對于鍵的識別,采用專用的可編程鍵盤顯示器接口 8279,該器件能對數(shù)碼顯示器自動掃描,并能自動識別鍵盤上閉合鍵的鍵號,還能消除鍵的抖動。這些工作都是由8279自動完成的,并不需要依靠程序來實現(xiàn)。利用掃描線SL2、SL1、SLO再經(jīng)3—8譯碼器74LS138后得到丫0、Y1、…Y7的行信號與RL3RL2RL1、RLO回送線組成32個鍵編碼掃描式工作方式。每當按下一個鍵,8279會自動識別鍵號,產(chǎn)生相應的鍵編碼自動送入先進先出寄存器FIFO中,同時產(chǎn)生中斷請求信號IRQ,向CPU(AT89C51請求中斷。當CPU相應中斷,執(zhí)行中斷服務程序,并從FIFO寄存器中讀取編碼數(shù)據(jù)之后,則IRQ中斷信號將自動撤銷。如果上一個鍵的編碼數(shù)據(jù)尚未取走,下一個鍵又被按下,則新的鍵碼會自動進入FIF0由8個存儲單元組成,故最多可依次暫存8個鍵碼。只有在讀所有數(shù)據(jù)時,IRQ中斷請求信號才會撤銷。在中斷服務程序中,CPU是用片外取數(shù)指令從FIF0中讀取數(shù)據(jù)。4.6LED數(shù)碼顯示電路的實現(xiàn)由于LED數(shù)碼顯示器為多位,采用動態(tài)顯示掃描顯示方式,即逐個地循環(huán)地點亮各位顯示器。這樣雖然在任一時刻只有 1位顯示器被點亮,但是由于人眼具有視覺殘覺效益,看起來與全部顯示器持續(xù)點亮的效果基本一樣。為了實現(xiàn)8個LED顯示器的動態(tài)掃描顯示,段碼控制信號由8279芯片的outA0—outA3、outB0—outB3顯示器刷新寄存器輸出。而位控制信號由8279芯片的掃描線SL0SL1、SL2經(jīng)譯碼器74LS138輸出丫。、Y1、…丫7共8個掃描線與LED顯示器數(shù)碼管共陰極相連。8279芯片數(shù)據(jù)口首地址為FF80H8位LED顯示器的每位顯示段碼通過顯示字符子程序以查看方式(MOVCA,A+DPTR進行確定和輸出顯示子程序(Display),顯示緩沖區(qū)的首地址為50耳4.7硬件電路的實現(xiàn)4.7.1總電路圖將微處理器AT89C51接口芯片8279,以及各個功能元件按要求進行線路連接,所得電路圖見附錄。4.7.2硬件電路的工作過程首先,軟件程序已固化在程序存儲器FLASHRO中。開啟直流電源+5V,經(jīng)R2C3組成的微分電路將微處理器AT89C518279接口芯片進行清零。按C鍵,時鐘清零;按B鍵,輸入時鐘初始值,并按時間要求把時、分依次通過0—9和0.—9.數(shù)字鍵將時鐘設定;然后,按A鍵,時鐘開始計時。其次,電子秒表功能,按D鍵將時鐘停止計時;通過按C鍵,時鐘清零;按A鍵,啟動電子秒表開始計時;按D鍵,電子秒表停止計時。再次,為保證處理器AT89C51接口芯片8279可靠工作,外加手動復位功能SW1軟件程序的設計與實現(xiàn)5.1電子秒表主程序設計5.1.1主程序的設計構思主程序包括三個部分:第一部分為初始化設置,包括設置堆棧指針、8279初始化、定時器/計數(shù)器初始化、顯示緩沖區(qū)初始化、開中斷、定時器/計數(shù)器啟動等。定時器/計數(shù)器初始化就是選擇定時器/寄存器TMO的工作方式,它的高4位控制定時器T1,低4位控制定時器TO。TMO中各位的定義如下:T1 TOGATECF1M1M0GATECF1M1M000010000TMOD其中:CF1:T/C功能選擇位,當CF1=1時為計數(shù)方式;當CF1=O時為定時方式。M1M0:T/C工作方式定義位,M1M0=0時為工作方式,16位定時/計數(shù)器。TMOD=10H設置定時/計數(shù)器初始值,定時 10ms,計數(shù)初值X=DC00(MOVTL1,#00HMOVTH1,#0DCH。顯示緩沖區(qū)初始化,其顯示緩沖區(qū)的首地址(最低位)為50H共送入8個字符(MOVR0,#50HMOVR2,#08H。二部分主要是通過鍵掃描實現(xiàn)各種人機對話功能。核心部分是鍵掃描子程序GETKEYGETKE的主要功能是先通過讀8279的狀態(tài)字,判斷是否有鍵按下,如有鍵按下則通過讀FIFORAM命令,讀得鍵值,通過查表得到相應的鍵號(0?F號鍵相應的鍵號分別為30H-3FHoGETKEY子程序的出口條件是:如無鍵按下,A累加器的值為00H;如有鍵按下,A累加器的值為FFHB寄存器中的容則為鍵號。通過按鍵識別實現(xiàn)相應的人機對話功能。各項人機對話功能如下:按“C'鍵,秒表清零功能:在主程序中將鍵號和 3CH比較,如相等,則調(diào)用時鐘清零子程序(CLEA—T)。該子程序功能是將顯示緩沖區(qū)50H?57H(分別存放十時、時、十分、分、十秒、秒、百毫秒、十毫秒的數(shù)值)全部清零,顯示全零。按“A”鍵,時鐘啟動計時功能:在主程序中將鍵盤掃描所得鍵號和3AH比較,如相等,則調(diào)用時鐘啟動計時子程序(STAR—T)o該子程序的功能是將TR1置1,啟動定時器/計數(shù)器1工作。按“D”鍵,時鐘停止計時功能:在主程序中將鍵盤掃描所得序號和3DH比較,如相等,則調(diào)用時鐘停止計時子程序(STOP_T°該子程序的功能是將TR1置0,關閉定時器/計數(shù)器1°按“B”鍵,設置時鐘初值功能:在主程序中將鍵盤掃描所得鍵號和3BH比較,如相等,貝U調(diào)用設置時鐘初值子程序(SET_T。該子程序的功能是通過按8個數(shù)字鍵,設置時鐘各位(十時、時、十分、分、十秒、秒、百毫秒和十毫秒)的初值。程序的設計思路是:先通過鍵掃描確認是否有鍵按下,然判斷鍵值是否在0?9之間(即鍵號是否在30H?39H之間),以排除非數(shù)字鍵。后將鍵值(0?9)依次送入顯示緩沖區(qū)50H?57HDANYUAN再調(diào)顯示子程序?qū)崿F(xiàn)顯示。其中調(diào)用了GETWORD程序。該子程序的功能是在鍵掃描判斷出有鍵按下后,再判斷是否按的是0?9數(shù)字鍵(鍵號為30H-39H)。判斷方法是將鍵號與C6H相加,如有進位,則表示非0?9數(shù)字鍵。若在8次鍵入過程中任何一次輸入了非數(shù)字鍵,則8位LED數(shù)碼管全部顯示為零,要求重新輸入。 SET_T子程序用一個循環(huán)程序?qū)崿F(xiàn)上述8次鍵入的功能。第三部分是實現(xiàn)電子秒表的顯示。主要調(diào)用顯示子程序 DISP。該顯示子程序與以前所述子程序不同之處是其中某些位要顯示小數(shù)點。按照課題要求,為區(qū)分時、分、秒、毫秒,要求時鐘顯示格式為XX.XX.XX.XX.,即8位數(shù)據(jù)顯示中每間隔一位要顯示一個小數(shù)點。 為能顯示小數(shù)點,本顯示子程序中的DISLED子程序與以往有所不同,在以LEDSE為起始地址的段碼表中,增加了16個能顯示小數(shù)點的段碼值,如顯示“3”的段碼為3FH而顯示“3.”的段碼為BFH這段碼的變化在懂得LED數(shù)碼管工作原理的基礎上應不難理解。當在DISLED子程序的段碼表中加入16個帶小數(shù)點的段碼后,為實現(xiàn)預定的顯示格式,只要在原顯示子程序中加上一條ADDA,#10H指令即可。這樣,當要求顯示數(shù)據(jù)為“3”時,原通過查表得到的段碼應為4FH而現(xiàn)為CFH即顯示“3.”,從而使6#、4#、2#、0#LED數(shù)碼管上顯示的數(shù)據(jù)均帶有小數(shù)點。5.1.2主程序的流程框圖Y鍵號送A累加器Y判是否為C鍵Y判是否為A鍵Y判是否為D鍵Y調(diào)設置時鐘初值子程序判是否為調(diào)時鐘清零子程序調(diào)啟動計時子程序調(diào)停止計時子程序N顯示B鍵圖5.1主程序框圖主程序的實現(xiàn)ORG0000H;主程序起始地址LJMPSTART;轉(zhuǎn)主程序ORG001BH;定時器T1中斷入口地;址LJMPCTC_T1;轉(zhuǎn)中斷服務程序ORG0040HSTART:MOVSP,#5FH;設置堆棧指針初始化;程序LCALLP8279;8279初始化MOVTMOD,#10H;設定時器/計數(shù)器1為;定時方式,工作方式MOVTL1,00H;定時10msMOVTH1,#0DCHMOVR0,#50H;時鐘緩沖區(qū)清零MOVR2,#08HCLRALOOP0:MOVR0,AINCR0DJNZR2,LOOP0SETBEA;允許中斷SETBET1WAIT:LCALLGETKEY;讀鍵盤CJNEA,#0FFH,CONT;判斷是否有鍵輸入MOVA,B;鍵號送ACJNEA,#3CH,KEY_A;輸入鍵是“C”鍵,轉(zhuǎn);CLEAR_TLCALLCLEAR_TSJMPWAITKEY_A:CJNEA,#3AH,KEY_D;輸入鍵是“A”鍵,;轉(zhuǎn)START_T
LCALLSTART_TSJMPWAITKEY_D:CJNEA,#3DH,KEY_B;輸入鍵是“D”鍵,;轉(zhuǎn)STOP_TLCALLSTOP_DSJMPWAITKEY_B:CJNEA,#3BH,CONTLCALLSET_TSJMPWAITCONT:LCALLDISPLAYSJMPWAITCLEAR_T:CLRTR1MOVR0,#50HMOVR2,#08HCLRALOOP:MOVR0,AINCR0DJNZR2,LOOPLCALLDISPLAYRETSTART_T:SETBTR1RETSTOP_T:CLRTR1RETSET_T:CLRTR1MOVR1,#50HMOVR2,#08HLOOP1:LCALLGETWORD;輸入鍵是“B”鍵,;轉(zhuǎn);輸入鍵是“B”鍵,;轉(zhuǎn)SET_T;顯示時間;循環(huán);時鐘清零子程序,關;計數(shù)器;時鐘緩沖區(qū)清零;顯示;電子鐘開始計時子程序;電子鐘停止計時子程序;關計數(shù)器,設置時鐘初;值子程序;若為非法輸入,則轉(zhuǎn)時;鐘清零MOVA,BMOVR1,ALCALLDISPLAYINCR1DJNZR2,LOOP1RETINVALID:LCALLCLEAR_T;時鐘清零(剛才輸入;無效,重新輸入)LCALLDISPLAYRETP8279:PUSHDHP;8279初始化子程序PUSHDPL;保護現(xiàn)場PUSHACCMOVDTPR,#0FF82H;FF82H為8179命令/;狀態(tài)口地址MOVA,#00H;置8279工作方式;(8個字符顯示,左;入口,編碼掃描鍵盤,;雙鍵鎖定)MOVXDPTR,AMOVA,#2FH;置鍵盤掃描速率MOVXDPTR,AMOVA,#0C1H;清除LED顯示MOVXDPTR,APOPACC;恢復現(xiàn)場POPDPLPOPDPHRETGETWORD:;判有效按鍵子程序WKEY1:LCALLGETKEY;讀鍵盤CJNEA,#0FFH,WKEY1;無鍵輸入,則再讀
MOVA,BADDA,#0C6HJCERROR39HMOVA,BSUBBA,#30HJCERRORMOVB,AMOVA,#0FFHRETERROR:MOVA,#00HRET鍵掃描子程序GETKEY:PUSHDPHPUSHDPLPUSHPSWMOVDPTR,#0FF82H口地址MOVXA,DPTRANLA,#07HJNZGETVALMOVA,#00HSJMPNKBHITGETVAL:MOVA,#40HMOVXDPTR,AMOVDPTR,#0FF80H;判斷輸入鍵號是否大于;判斷輸入鍵號是否??;于39H;鍵號值存B;判斷輸入鍵號是否大于;判斷輸入鍵號是否小;于39H;鍵號值存B;置合法輸入標志;置非法輸入標志;讀取鍵值子程序;保護現(xiàn)場;FF82H為8279命令/狀態(tài);讀8279狀態(tài);屏蔽D7-D3;判斷是否有鍵輸入;置標志(無鍵輸入);讀FIFORAM命令;FF80H為8279數(shù)據(jù)口;地址;讀鍵值;屏蔽SHIFT和CTRL鍵;置鍵碼表起始地址MOVDPTR,#KEYCODEMOVCA,A+DPTR;查表MOVB,A;置鍵值MOVA,#0FFH;置標志(有鍵輸入)NKBHIT:POPPSWPOPDPLPOPDPHRETKEYCODE:DB30H,31H,32H,33H,34H,35H,36H,37HDB38H,39H,3AH,3BH,3CH,3DH,3EH,3FH5.1.58位LED數(shù)碼管顯示子程序DISPLAY:MOVR0,#50H;8個數(shù)碼管顯示子程序MOVR4,#07HLOOP2:MOVA,R0MOVR5,ALCALLDISPLAYINCR0MOVA,R0ADDA,#10HMOVR5,ADECR4LCALLDISLEDINCR0DECR4CJNER4,#0FFH,LOOP2RETDISLED:PUSHDPH;顯示字符子程序PUSHDPL;保護現(xiàn)場PUSHACCMOVA,#80H;置顯示起始地址ADDA,R4;加位置偏移量MOVDPTR,#0FF82H;FF82H為8279命令狀;態(tài)口地址MOVXDPTR,A;設置顯示位置MOVDPTR,#LEDSEG;置顯示常數(shù)表起始位置MOVA,R5MOVCA,A+DPTR;查表MOVDPTR,#0FF80H;FF80H為8279數(shù)據(jù)口地址MOVDPTR,A;顯示數(shù)據(jù)POPACCPOPDPLPOPDPHRETLEDSEG:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;‘0,1,3,4,5,6,7'DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;‘8,9,A,B,C,D,E,F'DB0BFH,86H,0DBH,0CFH,0E6H,0EDH,OFDH,87H;‘0,1.,2.,3.,4.,5.,6.,7.'DB0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H;‘8.,9.,A.,B.,C.,D.,E.,F. '5.2中斷服務程序設計中斷服務程序主要的功能是實現(xiàn)時鐘累進,以及如何判別是否到24小時。中斷的概念中斷是單片機實時地處理部或外部事件的一種部機制。當某種部或外部事件發(fā)生時,單片機的中斷系統(tǒng)將迫使CPU暫停正在執(zhí)行的程序,轉(zhuǎn)而去進行中斷事件的處理,中斷處理完畢后,又返回被中斷的程序處,繼續(xù)執(zhí)行下去。中斷服務程序的設計構思1)所謂“時鐘累進”,是指時鐘顯示緩沖區(qū)的8位數(shù)值按一定規(guī)律逐位遞進。由于定時時間為10ms故每進一次中斷,顯示緩沖區(qū)的十毫秒位(57H單元)容應加1,后判斷是否已加到OAH(即已加了10次),如不是,則馬上跳出時鐘累進程序;但如是,則需先將本單元容清零,后使百毫秒位(56H單元)容加1。此時,又需判斷百毫秒位是否加到OAH如不是,則又跳出時鐘累進程序。但如是,則又需將56H單元容清零,而使上一位(55H單元)容加1。以此推,實現(xiàn)十毫秒、百毫秒、秒、十秒、分、十分、時、十時的逐位遞進。由于逐位遞進的進位制不全相同,如十秒位進分位及十分位進時位均為六進制(即60秒為1分,60分為1小時),故給程序的編寫帶來一些麻煩。在時鐘累進程序段的設計中采用查表的方法來解決此問題。在程序中設置 8次循環(huán),自57H單元開始逐位遞進。先將57H單元容加1,后將該單元容暫存于B,再通過查表找到該位的進位制,與該位的容進行比較,如不等,則直接跳出時鐘累進程序;如相等,則本位清零,上一位容加1,以此類推,最終實現(xiàn)時鐘累進。2)判時鐘是否已運行到24小時。事實上,每天只有一個瞬間,即在23.59.59.59時,如再進行一次中斷,時鐘便會累進到24.00.00.00。此時,只要判50H和51H單元容是否為02H04H即可。在具體程序設計中,當每次時鐘實現(xiàn)累進后,先將50H單元的容OXH用SWAPA旨令將之變?yōu)閄0H后與51H容(0XH相加,再跟24H相比較,如不等,表示時鐘還沒運行到24小時,則跳至恢復現(xiàn)場后返主;如相等,表示時鐘已運行到24小時,此時,只需將50H51H單元容清零即可(因52HH57H單元容已為零),時鐘又從00.00.00.00重新開始運行523中斷服務程序流程框圖圖5.2中斷服務程序框圖524中斷服務程序?qū)崿F(xiàn)CTC_T1:CTC_T1:PUSHDPHPUSHDPLPUSHACCPUSHPSWMOVTL1,#00HMOVTH1,#0DCHMOVR0,#57H;中斷服務程序;保護現(xiàn)場;定時10ms;時鐘累進程序MOVDPTR,#TABMOVR2,#08HLOOP3:INCR0MOVA,R0MOVB,ACLRAMOVCA,A+DPTRCJNEA,B,NEXTMOVR0,#00HDECR0INCDPTRDJNZR2,LOOP3NEXT:MOVR0,#50HMOVA,R0SWAPAINCR0ADDA,R0CJNEA,#24H,NEXTMOV50H,#00HMOV51H,#00HEXIT:POPPSWPOPACCPOPDPLPOPDPHRETI;判是否到24小時;恢復現(xiàn)場5.3軟件程序的調(diào)試與運行首先對軟件程序進行編譯,看是否有語法上的錯誤,在這里是借助WAV軟件進行檢查。其次在完成編譯的情況下,打開菜單上的CPU窗口及數(shù)據(jù)窗口,在軟件上模擬,并且觀察各個窗口中數(shù)據(jù)的變化,該過程可以檢查所編譯的程序是否是自己所要的顯示值。最后,由于無單片機實驗開發(fā)及仿真硬件系統(tǒng),無法知道軟件調(diào)試成功后硬件的運行情況,今后在此方面進行改進和加強。直流電源圖6.1直流電源電路圖首先,通過變壓器T進行交流變壓為交流12V,再經(jīng)過橋式整流VD1-VD鏟生脈動10.8V的單向的直流信號,其計算公式為UC1=0.9U其次,通過RC濾波,產(chǎn)生直流15.1V的直流電壓,其計算公式為UC1=1.4UI經(jīng)過三端穩(wěn)壓器LM7805和LM7810產(chǎn)生穩(wěn)定的直流輸出電壓+5V。為保證輸出電壓的穩(wěn)定和減小交流波紋系數(shù),增加濾波電容C2和輸出電阻R2=200K以保證輸出直流電壓的穩(wěn)定。直流電源元件選擇如表 直流電源元件選擇如表 6.1序號名稱型號單位數(shù)量說明1變壓器TRANS1個1進行交流變壓2橋式整流器IN4007個4產(chǎn)生單向直流信號3電解電容1000UF/15V個1產(chǎn)生直流電壓4三端穩(wěn)壓器7805個1產(chǎn)生穩(wěn)定的直流輸出電壓5濾波電容470FU/15V個1濾波6電阻R2個1分壓總結本篇論文是利用單片機(SinglechipMicrocomputer)和接口外圍電路組成的時鐘和秒表雙重功能的電子秒表電路。整個電路由硬件電路和軟件程序兩部分組成。硬件電路使用元件少,電路結構簡單,功能強;軟件程序設計結構合理,思路清晰,利用中斷服務程序?qū)Ω鞣N事件進行處理,提高微處理器的工作效率。硬件電路由單片機AT89C51微處理器CPU)接口芯片8279、8位LED數(shù)碼管顯示電路、按鍵電路等構成。軟件程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石家莊市人民醫(yī)院青年教師培養(yǎng)考核
- 2025湖南湘潭湘鄉(xiāng)市教育局公開招聘公益性崗位人員2人考前自測高頻考點模擬試題完整答案詳解
- 滄州市人民醫(yī)院醫(yī)患溝通記錄與知情同意書質(zhì)量評審試題
- 天津市人民醫(yī)院推拿新技術應用考核
- 2025江蘇徐州醫(yī)科大學招聘專職輔導員4人考前自測高頻考點模擬試題及答案詳解(名校卷)
- 天津市人民醫(yī)院水療技術準入考核
- 秦皇島市中醫(yī)院兒科患者放射治療安撫與固定技術考核
- 張家口市中醫(yī)院董氏奇穴技術考核
- 2025湖北荊州市石首市面向城市社區(qū)黨組織書記專項招聘事業(yè)崗位人員5人考前自測高頻考點模擬試題及完整答案詳解一套
- 2025湖南張家界市桑植縣衛(wèi)生健康局機關所屬事業(yè)單位公開選調(diào)工作人員3人模擬試卷含答案詳解
- (2024版)小學六年級數(shù)學考試命題趨勢分析
- 腦腫瘤的癥狀和早期診斷方法
- 中級注冊安全工程師-其他安全歷年真題
- 小學生自己修改作文能力的培養(yǎng)研究課題結題報告.文檔
- CREO基礎培訓教程
- 食品保質(zhì)期檢測記錄表
- 詩化小說示范課
- (17)-第三節(jié) 反抗外國武裝侵略的斗爭
- 04質(zhì)量獎(現(xiàn)場)評審報告
- 《羅織經(jīng)》全文及翻譯
- 《中藥商品學》考試復習題庫(含答案)
評論
0/150
提交評論