實驗報告基于AT89C51的液晶顯示頻率計的設(shè)計_第1頁
實驗報告基于AT89C51的液晶顯示頻率計的設(shè)計_第2頁
實驗報告基于AT89C51的液晶顯示頻率計的設(shè)計_第3頁
實驗報告基于AT89C51的液晶顯示頻率計的設(shè)計_第4頁
實驗報告基于AT89C51的液晶顯示頻率計的設(shè)計_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 本科學(xué)生單片機(jī)課程設(shè)計報告題 目 基于單片機(jī)的頻率計設(shè)計 姓 名 學(xué) 號 201218033 院 (系) 工程與設(shè)計學(xué)院 專業(yè)、年級 應(yīng)用電子技術(shù)教育 2012級 指導(dǎo)教師 楊 進(jìn) 寶 課程設(shè)計成績評定表項目評分依據(jù)滿分得分設(shè)計作品電路板焊接工藝10功能完整20性能指標(biāo)10程序運(yùn)行可靠20人機(jī)交互友好,操作方便10設(shè)計報告內(nèi)容完整10寫作規(guī)范10設(shè)計報告篇幅符合要求10實評總分 指導(dǎo)教師簽名 引言在設(shè)計單片機(jī)和數(shù)字電路時經(jīng)常需要測量脈沖個數(shù)、脈沖寬度、脈沖周期、脈沖頻率等參數(shù),雖然使用邏輯分析儀可以很好地測量這些參數(shù),但其價格昂貴。且實現(xiàn)測量的數(shù)字化、自動化、智能化已成為各類儀器儀表設(shè)計的方

2、向,這里介紹一種用單片機(jī)控制的、全自動、數(shù)字顯示的測量頻率的方法。頻率計是我們在電子電路試驗中經(jīng)常會用到的測量儀器之一,它能將頻率用數(shù)碼管或液晶顯示器直接顯示出來,給測試帶來很大的方便,使結(jié)果更加直接;且頻率計還能對其它多種物理量進(jìn)行測量,如機(jī)械振動的頻率、聲音的頻率等,都可以先轉(zhuǎn)變成電信號,然后用頻率計來測量,研究頻率計的設(shè)計與制作將會對我們的生活有很大意義?,F(xiàn)代的頻率計多是用數(shù)碼管顯示的,其結(jié)果不明確,表示也不直接,研究液晶顯示的頻率計對頻率計的發(fā)展很有意義。數(shù)字頻率計是一種用十進(jìn)制數(shù)字顯示被測信號頻率的數(shù)字測量儀器,被測信號可以是正弦波,方波或其它周期性變化的信號。如配以適當(dāng)?shù)膫鞲衅?,?/p>

3、以對多種物理量進(jìn)行測試,比如機(jī)械振動的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計件等等。 因此,數(shù)字頻率計是一種應(yīng)用很廣泛的儀器。它的基本功能是測量正弦信號、方波信號、尖脈沖信號及其他各種單位時間內(nèi)變化的物理量。 它被廣泛應(yīng)用于航天、電子、測控等領(lǐng)域。數(shù)字式頻率計是基于時間或頻率的A/D轉(zhuǎn)換原理,并依賴于數(shù)字電路技術(shù)發(fā)展起來的一種新型的數(shù)字測量儀器。由于數(shù)字電路的飛速發(fā)展,數(shù)字頻率計的發(fā)展也很快。在電子系統(tǒng)非常廣泛的應(yīng)用領(lǐng)域內(nèi),到處可見到處理離散信息的數(shù)字電路。數(shù)字電路制造工業(yè)的進(jìn)步,使得系統(tǒng)設(shè)計人員能在更小的空間內(nèi)實現(xiàn)更多的功能,從而提高了系統(tǒng)的可靠性和速度。縱觀現(xiàn)在的數(shù)字頻率計,其基本原

4、理都是相同的,頻率是單位時間(1S)內(nèi)信號發(fā)生周期變化的次數(shù)。如果我們能在給定的 1S 時間內(nèi)對信號波形計數(shù),并將計數(shù)結(jié)果顯示出來,就能讀取被測信號的頻率。數(shù)字頻率計首先必須獲得相對穩(wěn)定與準(zhǔn)確的時間,同時將被測信號轉(zhuǎn)換成幅度與波形均能被數(shù)字電路識別的脈沖信號,然后通過計數(shù)器計算這一段時間間隔內(nèi)的脈沖個數(shù),將其換算后顯示出來。這就是數(shù)字頻率計的基本原理。但現(xiàn)在的頻率計其顯示部分都是通過LED數(shù)碼管顯示的,顯示內(nèi)容是BCD碼,不直觀,若用LCD液晶來顯示,會使輸出結(jié)果更直接,便于觀察。正因為如此,所以未來數(shù)字頻率計的發(fā)展必定會向用液晶顯示的方向發(fā)展。1 緒論1.1 研究背景 在電子系統(tǒng)非常廣泛的應(yīng)

5、用領(lǐng)域內(nèi),到處可見到處理離散信息的數(shù)字電路。數(shù)字電路制造工業(yè)的進(jìn)步,使得系統(tǒng)設(shè)計人員能在更小的空間內(nèi)實現(xiàn)更多的功能,從而提高了系統(tǒng)的可靠性和速度。集成電路的類型很多,從大的方面可以分為模擬電路和數(shù)字集成電路兩大類。數(shù)字集成電路廣泛用于計算機(jī)、控制與測量系統(tǒng),以及其它電子設(shè)備中。一般說來,數(shù)字系統(tǒng)中運(yùn)行的電信號,其大小往往并不改變,但在實踐分布上卻有著嚴(yán)格的要求,這是數(shù)字電路的一個特點。數(shù)字集成電路作為電子技術(shù)最重要的基礎(chǔ)產(chǎn)品之一,已廣泛地深入到各個應(yīng)用領(lǐng)域。測量頻率是電子測量技術(shù)中最常見的測量之一,不少物理量的測量, 如時間、速度等都涉及到或本身可轉(zhuǎn)化為頻率的測量。數(shù)字頻率計是用數(shù)字顯示被測信

6、號頻率的儀器,被測信號可以是正弦波、方波或其它周期性變化的信號,如配以適當(dāng)?shù)膫鞲衅?,可以對多種物理量進(jìn)行測試,比如機(jī)械振動的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計件等等。 因此,數(shù)字頻率計是一種應(yīng)用很廣泛的儀器。1.2 發(fā)展現(xiàn)狀 數(shù)字頻率計發(fā)展到現(xiàn)在,有基于CPLD的數(shù)字頻率計的設(shè)計,基于VHDL語言的數(shù)字頻率計的設(shè)計,還有基于單片機(jī)的簡易數(shù)字頻率計等。CPLD是一種新興的高密度大規(guī)模可編程邏輯器件,它具有門陣列的高密度和PLD器件的靈活性和易用性,目前已成為一類主要的可編程器件;可編程器件的最大特點是可通過軟件編程對其器件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),能隨時進(jìn)行設(shè)計調(diào)整而滿足產(chǎn)品升級,使得硬件的設(shè)計

7、可以如軟件設(shè)計一樣方便快捷,從而改變了傳統(tǒng)數(shù)字系統(tǒng)及用單片機(jī)構(gòu)成的數(shù)字系統(tǒng)的設(shè)計方法、設(shè)計過程及設(shè)計概念,使電子設(shè)計的技術(shù)操作和系統(tǒng)構(gòu)成在整體上發(fā)生了質(zhì)的飛躍。VHDL(Very High Speed Integrated Circuit Hardware Description Language,超高速集成電路硬件描述語言)誕生于1982年,是由美國國防部開發(fā)的一種快速設(shè)計電路的工具,目前已經(jīng)成為IEEE(The Institute of Electrical and El

8、ectronics Engineers)的一種工業(yè)標(biāo)準(zhǔn)硬件描述語言;相比傳統(tǒng)的電路系統(tǒng)的設(shè)計方法,VHDL具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(Top to Down)和基于庫(Library Based)的設(shè)計的特點。單片機(jī)技術(shù)在短短的20余年間已發(fā)展成為計算機(jī)技術(shù)中一個非常有活力的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。1.3 單片機(jī)的發(fā)展目前計算機(jī)硬件技術(shù)向巨型化、微型化和單片化三個方向發(fā)展。自1975年美國德克薩斯儀器公司第一塊單片機(jī)芯片TMS-1000問世以來,在短短的30余年間,單片機(jī)技術(shù)已發(fā)展成為計算機(jī)技術(shù)中一個非常有活力的分支

9、,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。按單片機(jī)的生產(chǎn)技術(shù)和應(yīng)用對象,單片機(jī)先后經(jīng)歷了4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī)幾個有代表性的發(fā)展階段。單片機(jī)與通用微機(jī)相比較,在結(jié)構(gòu)、指令設(shè)置上均有其獨(dú)特之處,其主要特點有:1) 單片機(jī)的存儲器ROM和RAM是嚴(yán)格區(qū)分的,ROM稱為程序存儲器,只存放固定常數(shù)及數(shù)據(jù)。RAM則為數(shù)據(jù)存儲器,用于工作區(qū)及存放用戶數(shù)據(jù)。2) 采用面向控制的指令系統(tǒng)。3) 單片機(jī)的輸入/輸出引腳通常是多功能的。4) 單片機(jī)的外部擴(kuò)展能力強(qiáng)。從80年代單片機(jī)被引入我國,單片機(jī)已廣泛地應(yīng)用于電子設(shè)計中。單片機(jī)的應(yīng)用迅速發(fā)展,其性價比高,大量的外圍接口電路,使基于單片機(jī)的電子

10、系統(tǒng)設(shè)計方便,周期縮短,而且不斷發(fā)展。新型單片機(jī)支持高級語言,進(jìn)一步延伸了其發(fā)展空間。2方案論證與選擇2.1 方案一 基于VHDL語言的頻率計的設(shè)計設(shè)計的基于VHDL語言頻率計的系統(tǒng)原理框圖系統(tǒng)原理框圖如圖2.1所示。小 數(shù) 點閘門信號待測信號啟 停 信 號譯碼顯示電路計 數(shù) 器 開 關(guān) 控 制標(biāo) 準(zhǔn) 信 號 發(fā) 生 器時鐘量程選擇鎖 存 器使能1K輸出使能鎖存信號計數(shù)控制器分 頻 器分頻器閘門信號100Hz或10Hz圖2.1 設(shè)計的基于VHDL語言頻率計的系統(tǒng)原理框圖各模塊說明如下:(1) 標(biāo)準(zhǔn)信號發(fā)生器, 開關(guān)控制電路。標(biāo)準(zhǔn)信號發(fā)生器產(chǎn)生1kHz 基準(zhǔn)信號。開關(guān)控制電路對鍵盤輸入的啟停信號

11、進(jìn)行處理 (2)分頻器當(dāng)收到使能信號, 分頻器啟動, 將標(biāo)準(zhǔn)1kHz 信號經(jīng)3次10分頻, 得到100Hz, 10Hz, 1Hz 信號。1kHz, 100Hz, 10Hz 信號作為計數(shù)器閘門信號來控制計數(shù), 以實現(xiàn)不同量程。 (3) 計數(shù)控制器計數(shù)控制模塊將輸入的分頻信號處理, 產(chǎn)生計數(shù)閘門信號、計數(shù)清零信號和鎖存信號。(4) 計數(shù)器采用3個十進(jìn)制計數(shù)器級聯(lián)作為計數(shù)模塊。閘門信號與待測信號相與作為計數(shù)輸入。計數(shù)結(jié)果直接輸出給鎖存器。 (5)鎖存器每當(dāng)鎖存使能信號來臨, 鎖存器便將鎖存結(jié)果讀入、鎖存。鎖存器還完成量程選擇功能。鎖存器還根據(jù)當(dāng)前量程, 選擇合適的小數(shù)點位置輸出。(6)譯碼顯示電路由

12、于小數(shù)點由鎖存器輸出, 故在此僅考慮數(shù)碼管的7段驅(qū)動,7段譯碼器將計數(shù)值譯成相應(yīng)的7 段數(shù)碼驅(qū)動值。2.2 方案二 基于單片機(jī)的頻率計的設(shè)計設(shè)計的基于單片機(jī)頻率計的原理框圖如圖2.2所示。 液 晶 顯 示 模 塊 1602AT89C51 單 片 機(jī)復(fù)位電路時鐘電路被測信號圖2.2 設(shè)計的基于單片機(jī)頻率計的原理框圖復(fù)位電路采用上電復(fù)位方式,每次單片機(jī)上電工作時使單片機(jī)處于復(fù)位狀態(tài),即初始狀態(tài),為測量頻率作好準(zhǔn)備。時鐘電路中片內(nèi)高增益反相放大器通過XTAL1、XTAL2外接作為反饋元件的晶振(呈感性)與電容組成的并聯(lián)諧振回路構(gòu)成一個自激振蕩器向內(nèi)部時鐘電路提供振蕩時鐘,由此向單片機(jī)提供振蕩脈沖。A

13、T89C51單片機(jī)內(nèi)部具有2個16位的定時器/計數(shù)器,并可以在定時或計數(shù)溢出時產(chǎn)生中斷。將被測信號通過P3.5口送入單片機(jī),將T0設(shè)置為定時方式,每50ms產(chǎn)生一次中斷,產(chǎn)生20次中斷所用時間正好為1S,將T1設(shè)置為計數(shù)方式,T1的初值設(shè)置為0,計65535個脈沖后產(chǎn)生一次溢出中斷,在T1中斷溢出時對溢出次數(shù)進(jìn)行計數(shù)(計數(shù)值為N)。1S內(nèi)T1計的總的脈沖數(shù)為65535×NTH1×256TL1,這個數(shù)值就是被測信號的頻率值。單片機(jī)計的脈沖數(shù)值經(jīng)過轉(zhuǎn)換送到液晶顯示模塊1602,從而顯示被測信號的頻率,測量結(jié)果用十進(jìn)制表示,很直接。2.3 方案的選擇基于VHDL語言的頻率計設(shè)計的

14、優(yōu)點:VHDL語言,對設(shè)計的描述具有相對獨(dú)立性, 設(shè)計者可以不懂硬件結(jié)構(gòu), 降低了硬件電路設(shè)計難度。利用EDA工具maxplus II 對源程序進(jìn)行編譯、選配、優(yōu)化、邏輯綜合, 自動地把VHDL描述轉(zhuǎn)變成門級電路, 進(jìn)而完成電路分析、糾錯、驗證、自動布局布線、仿真等各種測試工作。最后通過編程電纜下載數(shù)據(jù)流, 將所設(shè)計內(nèi)容下載到所選中的FPGA器件中, 即完成設(shè)計工作。這種設(shè)計方法減少了電路設(shè)計的時間和可能發(fā)生的錯誤, 降低了開發(fā)成本?;赩HDL語言的頻率計設(shè)計的缺點:FPGA大部分是基于SRAM編程,編程數(shù)據(jù)信息在系統(tǒng)斷電時會丟失,每次上電時需從器件的外部存儲器或計算機(jī)中將編程數(shù)據(jù)寫入,布線

15、結(jié)構(gòu)和邏輯實現(xiàn)復(fù)雜,其編程信息需存放在外部存儲器上,需外部存儲器芯片,且使用方法復(fù)雜,保密性差?;趩纹瑱C(jī)的頻率計的設(shè)計的優(yōu)點:單片機(jī)在控制領(lǐng)域中有很多優(yōu)點,如體積小、成本低、運(yùn)用靈活、抗干擾能力強(qiáng),可以方便地實現(xiàn)多機(jī)和分布式控制。并且利用單片機(jī)設(shè)計的頻率計原理框圖簡單,所用元器件少,電路不易出錯,其程序存放在內(nèi)部存儲器上,不需要外部存儲器芯片,使用方法簡單。且單片機(jī)便宜、穩(wěn)定、開發(fā)簡單、通用性好。基于單片機(jī)的頻率計的設(shè)計的缺點:所測信號的頻率范圍窄,若要擴(kuò)大頻率范圍需外加分頻器。綜合比較上述兩種方案,選擇用單片機(jī)來設(shè)計頻率計,顯示部分用液晶顯示模塊,以使測量結(jié)果更加直接、明確。3基于單片機(jī)的

16、液晶顯示頻率計的設(shè)計3.1系統(tǒng)硬件電路的設(shè)計3.1.1 單片機(jī)的管腳AT89C51單片機(jī)的管腳排部如圖3.1所示。圖3.1 AT89C51單片機(jī)的管腳排布主電源引腳VCC(40腳):接+5V電源正端。VSS(20腳):接+5V電源地端。1、外接晶體引腳XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個反相放大器的輸入端,這個放大器構(gòu)成了片內(nèi)振蕩器。XTAL2(18腳):接外部石英晶體的另一端。在單片機(jī)內(nèi)部,它是片內(nèi)振蕩器的反相放大器的輸出端。輸入/輸出引腳P0口(3932腳):P0.0P0.7統(tǒng)稱為P0口,在不接片外存儲器與不擴(kuò)展I/O口時,可作為準(zhǔn)雙向輸入/輸出口。P1口(1

17、8腳):P1.0P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向輸入/輸出口使用。P2口(2128腳):P2.0P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向輸入/輸出口使用;在接有片外存儲器或擴(kuò)展I/O口且尋址范圍超過256字節(jié)時,P2口用作高8位地址總線。P3口(1017腳):P3.0P3.7統(tǒng)稱為P3口,除作為準(zhǔn)雙向輸入/輸出口使用,還可以將每一位用于第二功能??刂凭€ALE/ (30腳):地址鎖存有效信號輸出端。(29腳):片外程序存儲器讀選通信號輸出端,低電平有效。RST/VPD(9腳):RST即為RESET,VPD為備用電源。該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。/VPP(31腳):EA為片外存儲器選用端

18、。該引腳有效(低電平)時,只選用片外程序存儲器,否則單片機(jī)上電或復(fù)位后選用片內(nèi)程序存儲器。3.1.2 單片機(jī)的外圍電路1)時鐘電路單片機(jī)的定時控制功能是用片內(nèi)的時鐘電路和定時電路來完成的,而片內(nèi)的時鐘產(chǎn)生有兩種方式:內(nèi)部時鐘方式和外部時鐘方式,實際中常應(yīng)用內(nèi)部時鐘方式。設(shè)計的內(nèi)部時鐘方式圖如圖3.2所示。XTAL1單 片 機(jī)C1C230PF30PFXTAL2圖3.2 設(shè)計的內(nèi)部時鐘方式圖電容在22PF33PF之間選擇,起微調(diào)作用,在此采用30PF。晶振可采用6MHz或12MHz,但是若用6MHz的晶振,所測頻率范圍太窄,最高只能測到250KHz,用12MHz的晶振,最高頻率可測到500KHz,

19、故在此選用12MHz的晶振。2)復(fù)位電路單 片 機(jī)單片機(jī)的復(fù)位電路可采用上電復(fù)位或按扭復(fù)位,實際中常應(yīng)用上電復(fù)位的方式,設(shè)計的上電復(fù)位方式圖如圖3.3所示。10FRST10K 圖3.3 上電復(fù)位方式圖3.1.3 液晶顯示模塊1602液晶顯示器(LCD)具有顯示信息豐富、功耗低、體積小、重量輕、超薄等許多其他顯示器無法比擬的優(yōu)點,近幾年來被廣泛用于單片機(jī)控制的智能儀器、儀表和低功耗電子產(chǎn)品中。LCD型顯示器的構(gòu)成原理很簡單,在兩片透明絕緣的有機(jī)薄膜或者玻璃之間均勻充填著液晶流體,底層透明薄膜上鍍有一層導(dǎo)電體,而頂層透明薄膜上則按需要的形狀敷有透明的導(dǎo)電電極,當(dāng)電極通電后,就與下層導(dǎo)電體之間(約1

20、0m)形成一個電場,由于這個電場的作用,其間的液晶體的透光狀況就發(fā)生了變化,從而對外來光線產(chǎn)生了吸收作用,使人們看見了與電極形狀相同的字形顯示。1602采用標(biāo)準(zhǔn)的16腳接口,從該模塊的正面看,引腳排列從左向右為:116腳,1602的管腳排部如圖3.4所示。16151413121110987654321 圖3.4 1602的管腳排部其中:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。 第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電

21、平時選擇指令寄存器。 第5腳:RW為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時可以讀忙信號,當(dāng)RS為高電平RW為低電平時可以寫入數(shù)據(jù)。 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。第714腳:D0D7為8位雙向數(shù)據(jù)線。 第1516腳:空腳。3.1.4 硬件電路原理圖設(shè)計的系統(tǒng)硬件電路原理圖如圖3.5所示。+5V P2.0 P2.1 P2.2RST P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7P3.5XTAL1 XTAL2 +5VVCCRSRW V

22、DDED0D1 VLD2D3D4 D5D6 VSSD7 液 晶 顯 示 模 塊 1602AT89S51 單 片 機(jī)VSS被測信號 圖3.5 系統(tǒng)硬件電路原理圖硬件電路圖中,單片機(jī)的管腳必須接高電平,因為接低電平時只選用片外程序存儲器,而試驗所用的是片內(nèi)程序存儲器。液晶顯示器1602的VL管腳必須接一個電位器來調(diào)節(jié),因為VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產(chǎn)生“鬼影”,對比度過弱時,看不到屏幕上顯示的數(shù)據(jù)。硬件電路中所選用的元器件的規(guī)格/型號見附錄B。3.2 系統(tǒng)軟件的設(shè)計3.2.1 定時器/計數(shù)器工作方式的設(shè)置定時器/計數(shù)器T0、T1都有四種

23、工作方式,可通過程序?qū)MOD設(shè)置選擇。TMOD的低四位用于定時器/計數(shù)器0,高四位用于定時器/計數(shù)器1。TMOD的位定義如圖1.1所示。D5D2D1D0D7D6D4D3 GATEM1M0GATEC/M1M0C/ 圖3.6 TMOD的位定義C/T:定時或計數(shù)功能選擇位,當(dāng)C/T1時為計數(shù)方式;當(dāng)C/T0時為定時方式。M1、M0:定時器/計數(shù)器工作方式選擇位。GATE:門控位,用于控制定時器/計數(shù)器的啟動是否受外部中斷請求信號的影響。一般情況下GATE0。當(dāng)M1M0=00時,定時器/計數(shù)器設(shè)定為工作方式0,構(gòu)成13位定時器/計數(shù)器。計數(shù)值由下式確定:N=8192-X,式中N為計數(shù)值,X是THX、

24、TLX的初值。計數(shù)范圍為18192。定時時間由下式確定:T=N ×Tcy =(8192-X)Tcy,式中Tcy為單片機(jī)的機(jī)器周期。如果振蕩頻率為12MHZ,則Tcy=1us,定時范圍為18192us。當(dāng)M1M0=01時,定時器/計數(shù)器設(shè)定為工作方式1,構(gòu)成16位定時器/計數(shù)器。在方式1時,計數(shù)器的計數(shù)值由下式確定:N=65536-X,計數(shù)范圍為165536。定時器的定時時間由下式確定:T=N × Tcy =(65536-X)Tcy,如果振蕩頻率為12MHZ,則Tcy=1us,定時范圍為165536 us。當(dāng)M1M0=10時,定時器/計數(shù)器設(shè)定為工作方式2。方式2是自動重裝初

25、值的8位定時器/計數(shù)器。在方式2時,計數(shù)器的計數(shù)值由下式確定:N=256-X,計數(shù)范圍為1256。定時器的定時時間由下式確定:T=N × Tcy =(256-X)Tcy,如果振蕩頻率為12MHZ,則Tcy=1us,定時范圍為1256 us.當(dāng)M1M0=11時,定時器/計數(shù)器設(shè)定為工作方式3。方式3只適用于定時器/計數(shù)器T0。當(dāng)T0工作在方式3時,TH0和TL0被分成兩個獨(dú)立的8位計數(shù)器。方式3下定時器/計數(shù)器的定時、計數(shù)的范圍和定時、計數(shù)值的確定同方式2。在試驗中需將T0設(shè)置為定時方式,將T1設(shè)置為計數(shù)方式;定時器T0定時50ms,即50000us,需選用工作方式1,即M1M0=01

26、,因此,在編制程序時,將TMOD的高四位設(shè)為0101,低四位設(shè)為0001。3.2.2 定時器/計數(shù)器開啟/關(guān)閉的設(shè)置定時器/計數(shù)器的開啟和關(guān)閉可通過控制寄存器TCON來設(shè)置, TCON的位定義如圖3.7所示。D0D1D2D3D4D5D6D7TF1TR1TF0TR0IE1IT1IE0IT0圖3.7 TCON的位定義TF0(TF1):T0(T1)定時器/計數(shù)器溢出中斷標(biāo)志位。當(dāng)T0(T1)計數(shù)溢出時,由硬件置位,并在允許中斷的情況下,向CPU發(fā)出中斷請求信號,CPU響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序時,由硬件自動將該位清零。TR0(TR1):T0(T1)運(yùn)行控制位。當(dāng)TR0(TR1)1時啟動T0(T1);T

27、R0(TR1)0時關(guān)閉T0(T1)。該位由軟件進(jìn)行設(shè)置。TCON的低四位與外部中斷有關(guān)。編寫程序時,若需啟動T0(T1),通過指令SETB TR0 或SETB TR1將TR0(TR1)設(shè)為1,需關(guān)閉T0(T1),通過指令CLR TR0 或CLR TR1將TR0(TR1)設(shè)為0。3.2.3 中斷的設(shè)置所謂中斷是指CPU對系統(tǒng)中或系統(tǒng)外發(fā)生的某個事件的一種響應(yīng)過程,即CPU暫時停止現(xiàn)行程序的執(zhí)行,而自動轉(zhuǎn)去執(zhí)行預(yù)先安排好的處理該事件的服務(wù)子程序。當(dāng)處理結(jié)束后,再返回到被暫停程序的斷點處,繼續(xù)執(zhí)行原來的程序。實現(xiàn)這種中斷功能的硬件系統(tǒng)和軟件系統(tǒng)統(tǒng)稱為中斷系統(tǒng)。試驗中涉及到的T0或T1的中斷,中斷的控

28、制可通過中斷允許寄存器IE來設(shè)置。IE的位定義如圖3.8所示。D3D5D6D0D1D2D4D7EAET2ESETIEX1ET0EX0圖3.8 IE的位定義EA:中斷允許總控位。EA0,屏蔽所有的中斷請求;EA=1,開放中斷。EA的作用是使中斷允許形成兩級控制。即各中斷源首先受EA位的控制;其次還要受各中斷源自己的中斷允許總控位控制。ET2:定時器/計數(shù)器T2的溢出中斷允許位,只用于52子系列。ES: 串行口中斷允許位。ES0,禁止串行口中斷;ES1允許串行口中斷。ET1:定時器/計數(shù)器T1的溢出中斷允許位。ET10,禁止T1中斷;ET11,允許T1中斷。EX1:外部中斷1的中斷允許位。EX10

29、,禁止外部中斷1中斷;EX11,允許外部中斷1中斷。ET0:定時器/計數(shù)器T0的溢出中斷允許位。ET00,禁止T0中斷;ET01,允許T0中斷。EX0:外部中斷0的中斷允許位。EX00,禁止外部中斷0中斷;ET01,允許外部中斷0中斷。試驗中需開中斷允許總控位,需允許定時器T0和T1中斷,因此在編程時使EA=1,使ET01且ET11。中斷源有多種, 每個中斷源的優(yōu)先級可通過中斷優(yōu)先級寄存器IP進(jìn)行設(shè)置并管理。IP的位定義如圖3.9所示。D0D1D2D3D4D5D6D7PT2PSPT1PX1PT0PX0 圖3.9 IP的位定義PT2: 定時器/計數(shù)器T2的中斷優(yōu)先級控制位。PS: 串行口的中斷優(yōu)

30、先級控制位。PT1:定時器/計數(shù)器T1的中斷優(yōu)先級控制位。PX1:外部中斷INT1的中斷優(yōu)先級控制位。PT0:定時器/計數(shù)器T0的中斷優(yōu)先級控制位PX0:外部中斷INT0的中斷優(yōu)先級控制位。試驗中為提高測量結(jié)果的準(zhǔn)確度,需要將T1的中斷設(shè)置為優(yōu)先,通過指令SETB PT1來實現(xiàn)。3.2.4 液晶顯示模塊1602內(nèi)部的控制指令 1602液晶模塊內(nèi)部的控制器共有11條指令,控制指令表如表3.1所示:表3.1 控制指令表指 令RSR/WED7D6D5D4D3D2D1D0清顯示00100000001光標(biāo)返回0010000001*置輸入模式001000001I/DS顯示開/關(guān)控制00100001DCB光

31、標(biāo)或字符移位0010001S/CR/L*置功能001001DLNF*置字符發(fā)生存儲器地址00101字符發(fā)生存儲器地址(AGG)置數(shù)據(jù)存儲器地址0011顯示數(shù)據(jù)存儲器地址(ADD)讀忙標(biāo)志或地址011BF計數(shù)器地址(AC)寫數(shù)到CGRAM或DDRAM101要寫的數(shù)從CGRAM或DDRAM讀數(shù)111讀出的數(shù)據(jù) 它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平) 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。 指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或

32、者右移。高電平表示有效,低電平則無效。 指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo) 。指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符 (有些模塊是 DL:高電平時為8位總線,低電平時為4位總線)。指令7:字符發(fā)生器RAM地址設(shè)置 。指令8:DDR

33、AM地址設(shè)置 。指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù) 。指令11:讀數(shù)據(jù) 。在對液晶顯示模塊1602寫入指令或?qū)懭霐?shù)據(jù)前,需要進(jìn)行初始化,如清屏幕,光標(biāo)返回到00H位置,開顯示,將液晶模塊設(shè)置為雙行顯示等。編程時,要根據(jù)表3.1來編制程序,通過對RS、RW、D0-D7設(shè)置不同的高低電平來實現(xiàn)不同的功能。3.3 系統(tǒng)軟件設(shè)計中的主要流程圖設(shè)計的主程序和T0中斷服務(wù)子程序的流程圖如圖3.10所示。 設(shè)計的數(shù)據(jù)處理子程序和T1中斷子程序的流程圖如圖3.11所示。 T0中斷服務(wù)子程序中斷主程序開始設(shè)置T0、T1

34、的工作方式LCD的初始化89C51的初始化設(shè)置SP指針地址關(guān)閉T0定時器重新賦初值TIMCOUNT加1P1.4取反產(chǎn)生自測信號TIMCOUNT=20?開啟T0、T1關(guān)閉T1計數(shù)器延時120MS開啟T1、T0定時器/計數(shù)器2AH單元清零T1存儲空間清零將數(shù)值存入存儲單元TIMCOUNT清零ASC碼的轉(zhuǎn)換及結(jié)果顯示在1602上三字節(jié)二進(jìn)制整數(shù)轉(zhuǎn)換成四字節(jié)BCD碼中斷返回圖3.10 設(shè)計的主程序和T0中斷服務(wù)子程序的流程圖數(shù)據(jù)處理子程序 T1中斷服務(wù)子程序開始開始2AH單元地址加1清出口單元中斷返回三字節(jié)二進(jìn)制數(shù)據(jù)帶進(jìn)位依次左移一位十進(jìn)制調(diào)整保存出口單元調(diào)整后的數(shù)據(jù)原數(shù)據(jù)左移24次?NY子程序返回圖

35、3.11 設(shè)計的數(shù)據(jù)處理子程序和T1中斷服務(wù)子程序的流程圖3.4 系統(tǒng)軟件設(shè)計中的主要子程序3.4.1 T1計數(shù)器中斷服務(wù)子程序 根據(jù)圖3.11中的T1中斷服務(wù)子程序流程圖設(shè)計的T1計數(shù)器中斷服務(wù)子程序如下。 TIMER1: INC 2AH RETI3.4.2 T0定時器中斷服務(wù)子程序 根據(jù)圖3.10中的T0中斷服務(wù)子程序流程圖設(shè)計的T0定時器中斷服務(wù)子程序如下。 TIMER_INT: CLR TR0 MOV TL0, TIMER_L MOV TH0, TIMER_H INC TIMCOUNT MOV A , TIMCOUNT CPL P1.4 CJNE A, #20H,T_END CLR T

36、R1 MOV TIMCOUNT ,#00H; MOV INT_L, TL1 MOV INT_H, TH1 MOV INT_G, 2AH MOV TH1, #00H MOV TL1, #00H MOV 2AH, #00H SETB TR1 SETB TR0 RETI3.4.3 數(shù)據(jù)處理子程序根據(jù)圖3.11中的數(shù)據(jù)處理子程序流程圖設(shè)計的數(shù)據(jù)處理子程序如下。SBIN_SBCD:CLR A MOV T_G, A MOV T_H, A MOV T_M, A MOV T_S, A MOV R5, INT_G MOV R7, INT_L MOV R6, INT_H MOV R2, #24 CLR CSBIN

37、_SBCD1: MOV A, R7 RLC A MOV R7, A MOV A, R6 RLC A MOV R6, A MOV A, R5 RLC A MOV R5, A MOV A, T_S ADDC A, T_S DA A MOV T_S, A MOV A, T_M ADDC A, T_M DA A MOV T_M, A MOV A, T_H ADDC A, T_H DA A MOV T_H, A MOV A, T_H ADDDC A, T_H DA AMOV T_G, AMOV A, T_GDA AMOV T_G, ADJNZ R2, SBIN_SBCD1POP PSWRET 總的源程序

38、見附錄A3.5程序的編譯、仿真3.5.1在Keil環(huán)境下的程序編寫1)建立一個新工程 單擊 Project 菜單,在彈出的下拉菜單中選中 New Project選項,然后選擇你要保存的路徑,輸入工程文件的名字,比如保存到 C51 目錄里,工程文件的名字為 C51 如下圖所示,然后點擊保存.保存新工程的界面圖如圖3.12所示。圖3.12保存新工程的界面圖完成上述步驟后會出現(xiàn)一對話框,選擇需要的單片機(jī)型號,然后點擊確定。2)建立一個新的文件單擊“File”菜單,再在下拉菜單中單擊“New”選項,此時光標(biāo)在編輯窗口里閃爍,這時可以鍵入應(yīng)用程序了,但應(yīng)首先保存空白的文件,單擊菜單上的“File”,在下

39、拉菜單中選中“Save As”選項單擊,屏幕如下圖所示,在“文件名”欄右側(cè)的編輯框中,鍵入欲使用的文件名,同時,必須鍵入正確的擴(kuò)展名。注意,如果用語言編寫程序,則擴(kuò)展名為(.c);如果用匯編語言編寫程序,則擴(kuò)展名為(.asm),然后單擊“保存”按扭?;氐骄庉嫿缑婧螅瑔螕簟癟arget 1”前面的“”號,然后在“Source Group 1”上擊右鍵,添加文件的界面圖如圖3.13所示。 圖3.13 添加文件的界面圖然后單擊“Add File to Group Source Group 1”, 選中要添加的文件,然后單擊“Add ”3)輸入源程序,進(jìn)行編譯、仿真輸入源程序后,單擊“project”

40、按鈕下的“Build project, translate”按鈕,程序無錯誤時界面圖如圖3.14所示。 圖3.14 程序無錯誤時的界面圖4)單擊“Project”菜單,再在下拉菜單中單擊options for targettarget1,出現(xiàn)選擇晶振頻率的界面圖如圖3.15所示。圖3.15 選擇晶振頻率的界面圖把晶振頻率改為12.0,且選中“Use On-chip ROM”,然后單擊“output"選項,出現(xiàn)可選擇生成HEX文件的界面圖如圖3.16所示:圖3.16 選擇生成HEX文件的界面圖 單擊圖3.7中的“Create HEX File” 選項,使程序編譯后產(chǎn)生 HEX 代碼。3

41、.5.2在PROTEUS環(huán)境下的仿真結(jié)果當(dāng)輸入信號頻率為1Hz時的顯示結(jié)果當(dāng)輸入信號頻率為500KHz時的顯示結(jié)果 3.6電路的調(diào)試把程序燒錄到單片機(jī)后,在面包板上按原理圖連接好,卻沒有出現(xiàn)想要的功能,按順序檢查: 1)電路圖的連接,經(jīng)檢查發(fā)現(xiàn)單片機(jī)的31管腳沒有接高電平,這在軟件實現(xiàn)時也沒有接,被默認(rèn)為是高電平,但在硬件中,若不接高電平,該管腳為片外程序存儲器選用端,就無法讀取單片機(jī)內(nèi)的程序,所以未能實現(xiàn)所需功能。 2)31管腳接上高電平時,液晶顯示器1602仍未能顯示所測頻率,推測可能是電位器的調(diào)節(jié)問題,在適當(dāng)?shù)恼{(diào)節(jié)接入電阻值后,1602顯示了所測的頻率。3)把1602所顯示的頻率與實際的

42、頻率相比較,發(fā)現(xiàn)誤差較大,經(jīng)思考發(fā)現(xiàn)在編寫程序時對定時器的定時50ms有誤差,沒有考慮到定時器與計數(shù)器的關(guān)閉不是同時的,而有一定的時間差,這個時間差是因執(zhí)行每一條指令時引起的。然后在程序中把定時時間適當(dāng)?shù)目s小到49.985ms,發(fā)現(xiàn)誤差會變小,能達(dá)到要求。檢查無誤后,接通電源,LCD能顯示頻率,顯示范圍是1500KHz,用信號發(fā)生器檢測,誤差不超過2Hz。組裝的頻率計實物圖如圖3.17所示。 圖3.17 組裝的頻率計實物圖4結(jié)論基于AT89C51單片機(jī)的液晶顯示頻率計包括單片機(jī)控制模塊和液晶顯示模塊,調(diào)試后的頻率計可測量方波、正弦波、脈沖信號等波形,測量最高頻率為500KHz,誤差為2Hz。本

43、設(shè)計的創(chuàng)新點是:顯示部分采用液晶顯示模塊1602,顯示結(jié)果直接且能顯示多行多位,功耗小,使用壽命長。本設(shè)計的不足之處是:測量頻率范圍窄,需要進(jìn)一步擴(kuò)展。5致謝從選擇課題到課程設(shè)計的順利結(jié)束,老師和同學(xué)給予了我熱心的幫助,在這里請接受我誠摯的謝意。首先,要特別感謝我的指導(dǎo)教師聶翔副主任,從查找資料到設(shè)計結(jié)束,聶老師都給予了我悉心的指導(dǎo)和幫助。在設(shè)計與調(diào)試過程中,聶老師淵博的理論知識和豐富的實際經(jīng)驗給了我許多啟發(fā)式的指點,還有他嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和認(rèn)真的工作精神,也使我受益匪淺。其次,還要感謝我們這個小組的其他兩位同學(xué),他們在資料的查閱、整理和設(shè)計的過程中給予了我極大的幫助,正因為有了他們的參與,我們

44、這個團(tuán)隊才能順利地完成課程設(shè)計的各項任務(wù)。除此之外,還要感謝班上其他幫助過我的同學(xué),感謝他們在整個過程中給予我們的鼓勵與幫助。最后,要感謝電信工程系電子教研室的老師,他們?yōu)槲覀兊恼n程設(shè)計提供了良好的實驗環(huán)境,全天時的實驗室開放方便了大家的硬件和軟件調(diào)試。電信系和實驗室的指導(dǎo)老師對我們進(jìn)行的不厭其煩的輔導(dǎo)修改以及必要的批評指正,對設(shè)計的成功給予了很大的幫助。再次衷心的感謝每一位指導(dǎo)并幫助過我的老師和同學(xué)。 參考文獻(xiàn)1貴國慶.1602液晶顯示頻率計J.電子制作,2006,149(8):26-27.2陸容.液晶顯示器(LCD)顯示驅(qū)動原理及其應(yīng)用J.電子制作,2005,134(5):58-59.3李

45、建忠.單片機(jī)原理及應(yīng)用 M.西安電子科技大學(xué)出版社,2002,3-40.5何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計M.北京航空航天大學(xué)出版社,1995,30-34.6吳海州,王文理. 基于VHDL語言的數(shù)字頻率計設(shè)計J.現(xiàn)代電子技術(shù),2002,138(7):19-21.7 Song Pan ,Guodong Wang. VHDL Application Course M . Chengdu :University of Elect ronic Science and TechnologyPress ,2000,15-20.8 Wanjie Song ,Ping Luo ,Shunjun Wu

46、. CPLD Technology and Application M . Xipan :Xipan University of Elect ronic Science and Technology Press ,2000,27-30.附錄A源程序:BEEP BIT  P3.7        LCD_RS  BIT  P2.0        LCD_RW  

47、BIT  P2.1        LCD_EN  BIT  P2.2        LCD_X   EQU  3FH       LCD 地址變量        TIME

48、R_H   EQU   30H    定時器高位字節(jié)單元        TIMER_L   EQU   31H    定時器低位字節(jié)單元        TIMCOUNT  EQU   32H

49、    時間中斷數(shù)        INT_G     EQU   35H    中斷計數(shù)緩沖單元高地址       INT_H     EQU   34H    中斷計數(shù)緩沖單元中

50、地址        INT_L     EQU   33H    中斷計數(shù)緩沖單元低地址        T_S       EQU   36H    數(shù)據(jù)顯示低位   &

51、#160;    T_M       EQU   37H    數(shù)據(jù)顯示中位        T_H       EQU   38H    數(shù)據(jù)顯示高位    &

52、#160;   T_G       EQU   39H    數(shù)據(jù)顯示最高位;-              ORG 0000H             

53、; JMP MAIN          主程序開始              ORG 000BH              JMP TIMER_INT  

54、60;  定時器T0中斷服務(wù)程序              ORG  001BH        定時器T1中斷服務(wù)程序              JMP  TIMER1 

55、             ORG  0030H;-   MAIN:            MOV  SP,#60H         設(shè)置SP指針    

56、;        LCALL PRO_SET        初始化            CALL  SET_LCD            LCALL TIM_

57、T0;-;LCD1602是慢速顯示器件,故100MS顯示一次。;-MAIN1:            MOV  R5,40MAIN2:            ACALL  DELAY1    3ms       

58、;     DJNZ  R5,MAIN2            ACALL  SBIN_SBCD            CALL  CONV         &

59、#160;  JMP MAIN1;-;T1計數(shù)器中斷服務(wù)子程序;計T1計數(shù)器溢出次數(shù);-TIMER1:            INC  2AH            RETI;-;初始化程序;-PRO_SET:  MOV A,#00H    

60、;      MOV B,#00H          MOV  2AH,A          MOV P0,#0FFH          MOV P1,#0FFH  &#

61、160;       MOV P2,#0FFH          MOV INT_H,#00H          MOV INT_L,#00H          MOV  INT_G,#00H          MOV  T_S,#00H          MOV  T_H,#00H    

溫馨提示

  • 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

提交評論