

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)系統(tǒng) 課程設(shè)計(jì)任務(wù)書</p><p><b> 目錄</b></p><p><b> 1 引言3</b></p><p><b> 2 系統(tǒng)概述3</b></p><p> 2.1 頻率測(cè)量原理3</p><p
2、> 2.2 方案比較3</p><p><b> 2.3方案選擇4</b></p><p> 3 系統(tǒng)硬件設(shè)計(jì)4</p><p> 3.1 系統(tǒng)硬件總述4</p><p> 3.2 信號(hào)輸入電路5</p><p> 3.3 開關(guān)電路7</p><p
3、> 3.4 計(jì)數(shù)電路7</p><p> 3.5 AT89C51介紹8</p><p> 3.6 數(shù)字頻率計(jì)顯示電路9</p><p> 3.7 時(shí)鐘控制電路10</p><p> 4.系統(tǒng)軟件設(shè)計(jì)11</p><p> 4.1 系統(tǒng)軟件總述11</p><p>
4、 4.2 顯示器初始化設(shè)計(jì)12</p><p> 4.3 計(jì)數(shù)子程序13</p><p> 4.4 數(shù)制轉(zhuǎn)換子程序設(shè)計(jì)14</p><p> 4.5 顯示子程序設(shè)計(jì)15</p><p> 5系統(tǒng)的功能調(diào)試16</p><p><b> 6 結(jié)論18</b></p>
5、<p><b> 參考文獻(xiàn)18</b></p><p><b> 附錄A19</b></p><p><b> 附錄B19</b></p><p><b> 1 引言 </b></p><p> 單片機(jī)是20世紀(jì)中期發(fā)
6、展起來的一種面向控制的大規(guī)模集成電路模塊,具 有功能強(qiáng)、體積小、可靠性高、價(jià)格低廉等特點(diǎn),在工業(yè)控制、數(shù)據(jù)采集、智能儀表、機(jī)電一體化、家用電器等領(lǐng)域得到了廣泛的應(yīng)用,極大的提高了這些領(lǐng)域的技術(shù)水平和自動(dòng)化程度。 </p><p> 51系列單片機(jī)是國(guó)內(nèi)目前應(yīng)用最廣泛的一種8位單片機(jī)之一,隨著嵌入式系統(tǒng)、片上系統(tǒng)等概念的提出和皮鞭接受及應(yīng)用,51系列單片機(jī)還會(huì)在今后很長(zhǎng)一段時(shí)間占據(jù)嵌入式系統(tǒng)產(chǎn)品的低端市場(chǎng),因此,
7、作為新世紀(jì)的大學(xué)生,在信息產(chǎn)業(yè)高速發(fā)展的今天,掌握單片機(jī)的基本結(jié)構(gòu)、原理和使用時(shí)非常重要的。</p><p> 數(shù)字頻率計(jì)是數(shù)字電路中的一個(gè)典型應(yīng)用,實(shí)際的硬件設(shè)計(jì)用到的器件較多,連線比較復(fù)雜,而且會(huì)產(chǎn)生比較大的延時(shí),造成測(cè)量誤差、可靠性差。隨著復(fù)雜可編程邏輯器件(CPLD)的廣泛應(yīng)用,以EDA工具作為開發(fā)手段,運(yùn)用匯編語(yǔ)言。將使整個(gè)系統(tǒng)大大簡(jiǎn)化。提高整體的性能和可靠性。</p><p>
8、;<b> 2 系統(tǒng)概述</b></p><p> 2.1 頻率測(cè)量原理</p><p> 頻率計(jì)的基本原理是用一個(gè)頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時(shí)鐘,對(duì)比測(cè)量其他信號(hào)的頻率。通常情況下,計(jì)算每秒內(nèi)待測(cè)信號(hào)的脈沖個(gè)數(shù),此時(shí)稱閘門時(shí)間為1秒。閘門時(shí)間也可以大于或小于一秒。閘門時(shí)間越長(zhǎng),得到的頻率值就越準(zhǔn)確,但閘門時(shí)間越長(zhǎng)則每測(cè)一次頻率的間隔就越長(zhǎng)。閘門時(shí)間越短,測(cè)的
9、頻率值刷新就越快,但測(cè)得的頻率精度就受影響。數(shù)字頻率計(jì)是用數(shù)字顯示被測(cè)信號(hào)頻率的儀器,被測(cè)信號(hào)可以是正弦波,方波或其它周期性變化的信號(hào)。</p><p><b> 2.2 方案比較</b></p><p> 數(shù)字頻率計(jì)是直接用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率的一種測(cè)量裝置。</p><p> 方案(一):采用分立式元器件,運(yùn)用數(shù)字電路技術(shù),可以
10、設(shè)計(jì)出數(shù)字頻率計(jì),原理框圖如圖2-1所示。</p><p> 傳統(tǒng)的數(shù)字頻率計(jì)大多采用74LS系列數(shù)字集成電路直接測(cè)頻,在使用過程中存在電路結(jié)構(gòu)復(fù)雜,測(cè)量精度低、故障率高、維護(hù)不易等問題。 </p><p> 圖2-1方案(一)原理框圖</p><p> 方案(二)采用51單片機(jī)作為控制器,運(yùn)用較少的外圍器件就可以設(shè)計(jì)出數(shù)字頻率計(jì)。原理框圖如圖2-2所示。&l
11、t;/p><p> 本設(shè)計(jì)是以單片機(jī)為主再附加一些外圍電路來設(shè)計(jì)數(shù)字頻率計(jì),通過單片機(jī)的軟件設(shè)計(jì),采用適當(dāng)?shù)乃惴ǎ〈芏嘁郧坝糜布?shí)現(xiàn)的電路,這不僅能彌補(bǔ)以往頻率計(jì)測(cè)量精度低、故障率高、維護(hù)不易等不足,而且性能也得到了很大的提高。</p><p> 圖2-2 方案(二)原理框圖</p><p><b> 2.3方案選擇</b></p&
12、gt;<p> 對(duì)于生活上的簡(jiǎn)單用用而言,方案二完全符合應(yīng)用要求,況且性價(jià)比更高一些,有實(shí)際的研究?jī)r(jià)值,故選擇方案(二)。</p><p><b> 3 系統(tǒng)硬件設(shè)計(jì)</b></p><p> 3.1 系統(tǒng)硬件總述</p><p> 本課題設(shè)計(jì)的頻率計(jì)由單片機(jī)AT89C51 、計(jì)數(shù)器74HC393 、分頻器MB501以及時(shí)
13、鐘晶振等構(gòu)成。利用外擴(kuò)的計(jì)數(shù)器74HC393和單片機(jī)AT89C51 內(nèi)含的16 位計(jì)數(shù)器來構(gòu)成多位計(jì)數(shù)器對(duì)待測(cè)信號(hào)計(jì)數(shù)。采用的雙四位二進(jìn)制計(jì)數(shù)器74HC393最高計(jì)數(shù)頻率可達(dá)39MHz。若先對(duì)外部信號(hào)進(jìn)行分頻計(jì)數(shù),再利用AT89C51對(duì)所測(cè)信號(hào)進(jìn)行相對(duì)應(yīng)的擴(kuò)頻,這樣可使頻率計(jì)的最高測(cè)量頻率達(dá)GHz 數(shù)量級(jí)范圍,由此達(dá)到頻率計(jì)測(cè)量的范圍的要求。該頻率計(jì)測(cè)量范圍為10Hz,2.0GHz ,分2 個(gè)頻段實(shí)現(xiàn)。(1) 1Hz,60MHz (2)
14、 50MHz,2.0GHz。</p><p> 如圖3-1所示,為頻率計(jì)的原理</p><p> (1)信號(hào)輸入電路:此部分包括兩個(gè)小部分,第一部分是信號(hào)保護(hù)電路,是有兩個(gè)反向并聯(lián)的二極管組成。第二部分是由三極管、電容、電阻、電感組成的放大電路,用來提高輸入阻抗和放大前級(jí)提供的微弱信號(hào)。</p><p> (2)分頻電路:這部分只用于信號(hào)>50MHz的電
15、路,實(shí)現(xiàn)對(duì)高頻信號(hào)的分頻。</p><p> (3)閘門選擇電路:該頻率計(jì)有兩個(gè)信號(hào)輸入端口,工作時(shí)先根據(jù)被測(cè)頻率的大小來判斷閘門電路應(yīng)該與哪個(gè)端口電路接通,這樣測(cè)出的頻率比較精確</p><p> (4)計(jì)數(shù)器:由四塊雙四位二進(jìn)制計(jì)數(shù)器74HC393、單片機(jī)AT89C51內(nèi)部計(jì)數(shù)器T0共同構(gòu)成,其中AT98C51內(nèi)的計(jì)數(shù)器被設(shè)置成16位計(jì)數(shù)器。</p><p>
16、; (5)時(shí)鐘提供:單片機(jī)頻率計(jì)的關(guān)鍵在于時(shí)基信號(hào)的準(zhǔn)確性和穩(wěn)定性,它決定頻率計(jì)的技術(shù)精度。</p><p> (6)顯示:當(dāng)待測(cè)信號(hào)的頻率被測(cè)量出后由顯示模塊1602LCD顯示出來。</p><p> 圖3-1 頻率計(jì)原理方框圖</p><p> 3.2 信號(hào)輸入電路</p><p> 本頻率計(jì)的輸入電路分兩個(gè)量程,分別對(duì)應(yīng)兩個(gè)頻
17、段。圖3-2為信號(hào)輸入1通道的電路圖,其測(cè)量范圍是1Hz,60MHz,圖3-3為信號(hào)輸入2通道的電路圖,其測(cè)量范圍是50MHz,2.0GHz。輸入電路主要完成對(duì)被測(cè)信號(hào)的限幅、放大、整形與轉(zhuǎn)換作用。</p><p> (1)信號(hào)輸入1通道電路</p><p> 信號(hào)輸入1通道電路中,首先采用兩個(gè)二極管對(duì)幅度較大的輸入信號(hào)進(jìn)行限幅。輸入端采用R高通電路,下限頻率可達(dá)1Hz。C,R,Q,R
18、組成放大電路的射極輸出器,用來提高輸入阻抗。C,R,R,C,Q組成共射放大器,用來放大前級(jí)提供的微弱信號(hào)。在圖3-2中,輸入端接低頻交流電壓信號(hào)v(如音頻i信號(hào),頻率為20Hz,20KHz)。輸出端接負(fù)載電阻R,輸出電壓用v表示。 </p><p> 圖3-2 信號(hào)輸入1通道的電路圖</p><p> (2) 信號(hào)輸入2通道電路</p><p> 在頻率計(jì)信號(hào)
19、輸入2通道的電路中,信號(hào)經(jīng)過前兩級(jí)的放大,被送到MB501分頻電路中,通過改變MB501引腳的接法,可以改變分頻比,有256、128、64三種分頻比。本電路接法是64分頻,由3腳控制其是否接入電路,當(dāng)MB501的8腳為+5V時(shí),分頻器工作。AT89C51的10腳可以判斷信號(hào)輸入2通道電路的工作情況,從而來分辨信號(hào)輸入端輸入的是否是>50MHz的信號(hào)。</p><p> 圖3-3 信號(hào)輸入2通道的電路圖&l
20、t;/p><p><b> 3.3 開關(guān)電路</b></p><p> 圖3-4為開關(guān)電路,分頻后的信號(hào)從MB501(4腳)輸出。經(jīng)過C隔直后送14到與非門74HC00的10腳,也就是U4C。當(dāng)J2接通其1腳的時(shí)候,這時(shí)門U4C打開,信號(hào)便能從10腳輸入到8腳。信號(hào)從U4D的11腳輸出,到達(dá)電子開關(guān)U4A的2腳,再?gòu)腢4A的3腳輸出送到分頻 74HC393;經(jīng)過74H
21、C393的256分頻,最后送到AT89C51的INT0口。</p><p> 圖3-4 開關(guān)電路圖</p><p><b> 3.4 計(jì)數(shù)電路</b></p><p> 該頻率計(jì)的計(jì)數(shù)電路是利用外擴(kuò)的計(jì)數(shù)器74HC393和單片機(jī)AT89C51 內(nèi)含的16 位計(jì)數(shù)器來構(gòu)成多位計(jì)數(shù)器分別對(duì)待測(cè)信號(hào)計(jì)數(shù)的。在這里,將對(duì)待測(cè)信號(hào)計(jì)數(shù)的外部擴(kuò)展的計(jì)
22、數(shù)器74HC393的8腳引到AT89C51 的T0端,再利用AT89C51 的內(nèi)部計(jì)數(shù)器即可構(gòu)成多位計(jì)數(shù)器。圖3-6為本頻率計(jì)的計(jì)數(shù)電路。</p><p> 數(shù)字頻率計(jì)的計(jì)數(shù)電路的工作原理如下:計(jì)數(shù)一般是有時(shí)間的,取一段時(shí)間內(nèi)脈沖的個(gè)數(shù)。比如1s,第一步先把AT89C51的12腳置0,再把12腳置1,打開電子開關(guān)。然后數(shù)據(jù)被送到74HC393分頻,分頻后的信號(hào)送到14腳T0口進(jìn)行內(nèi)部計(jì)數(shù)。時(shí)間到了1s就關(guān)閉電子
23、開關(guān),也就是把12腳 INT0置0,13腳INT1置0 單片機(jī)內(nèi)部的計(jì)數(shù)器停止計(jì)數(shù),繼而對(duì)這段時(shí)間內(nèi)脈沖個(gè)數(shù)進(jìn)行保存。再讀取,P0、P2口的狀態(tài),再把這數(shù)據(jù)和以前計(jì)數(shù)的數(shù)據(jù)相加,得到很精確的頻率,再把這頻率數(shù)據(jù)轉(zhuǎn)換,送到LCD顯示,然后89C51的13腳置1清除現(xiàn)有的數(shù)據(jù)信號(hào),進(jìn)行下一次數(shù)據(jù)采集。</p><p> 圖3-5 計(jì)數(shù)電路圖</p><p> 3.5 AT89C51介紹&l
24、t;/p><p> 如圖3-6所示,是AT89C51的外部引腳圖,其功能如下。</p><p> (1)Vcc(40):電源+5V。</p><p> (2)Vss(20):接地,也就是GND。 </p><p> (3)XTL1(19)和XTL2(18):振蕩電路。</p><p> (4)PSEN(29):片
25、外ROM 選通信號(hào),低電平有效。</p><p> (5)ALE/PROG(30):地址鎖存信號(hào)輸出端/EPROM 編程脈沖輸入端。</p><p> (6)RST/VPD(9):復(fù)位信號(hào)輸入端/備用電源輸入端。</p><p> (7)EA/VPP(31):內(nèi)/外部ROM 選擇端。</p><p> (8)P0 口(39-32):雙
26、向I/O 口。</p><p> (9)P1 口(1-8):準(zhǔn)雙向通用I/0 口。</p><p> (10)P2 口(21-28):準(zhǔn)雙向I/0 口。</p><p> (11)P3 口(10-17):多用途口。</p><p> 在頻率計(jì)電路當(dāng)中,單片機(jī)AT89C51是核心元件,它控制著整個(gè)電路的運(yùn)行,包括計(jì)數(shù)器的開啟與關(guān)閉、定時(shí)
27、器的開啟與關(guān)閉、外部計(jì)數(shù)器的開啟與關(guān)閉、高頻信號(hào)分頻、數(shù)據(jù)讀入、數(shù)值轉(zhuǎn)換以及數(shù)據(jù)顯示都是由單片機(jī)來控制的。</p><p> 圖3-6 AT89C51外部引腳圖</p><p> 3.6 數(shù)字頻率計(jì)顯示電路</p><p> 數(shù)字頻率計(jì)的顯示電路如圖3-7所示,在CON16后面接1602LCD液晶顯示器來顯示頻率值。74HC393的計(jì)數(shù)結(jié)果被單片機(jī)的P0、P2
28、口讀入,與單片機(jī)內(nèi)部計(jì)數(shù)值合到一起。再通過乘以16(2.0G檔用到)、二進(jìn)制到十進(jìn)制轉(zhuǎn)換處等處理后送入圖形液晶顯示模塊1602LCD中顯示出來。</p><p> 由于1602液晶顯示模塊可以直接和51系列單片機(jī)進(jìn)行接口,所以在設(shè)計(jì)該數(shù)字頻率計(jì)時(shí)就直接將1602LCD接到了單片機(jī)的后面。在圖3-8中,CON16的3腳上接了一個(gè)10k電位器PR,是用來調(diào)節(jié)液晶顯示器的對(duì)比度的。當(dāng)該電位器的旋鈕1直接和電源端相連時(shí)
29、,顯示器屏幕的對(duì)比度最弱,當(dāng)其旋鈕直接和地端相連時(shí),顯示器屏幕的對(duì)比度最高。液晶顯示器的數(shù)據(jù)來源是單片機(jī)的P1口,當(dāng)單片機(jī)的T1端口由高電平跳變成低電平時(shí),液晶顯示器開始執(zhí)行命令,并最終顯示出頻率的數(shù)值。</p><p> 圖3-7 頻率計(jì)顯示電路圖</p><p> 3.7 時(shí)鐘控制電路</p><p> 時(shí)鐘控制電路如圖3-9所示。制作頻率計(jì)的關(guān)鍵點(diǎn)在于時(shí)
30、基信號(hào)的準(zhǔn)確性和穩(wěn)定性,它決定頻率計(jì)的計(jì)數(shù)精度。這里選用11.0592的晶振組成的電路來作為單片機(jī)AT89C51的時(shí)鐘電路,由單片機(jī)用軟件方法得到所需的門控信號(hào)。 </p><p> 圖3-8時(shí)鐘控制電路圖</p><p><b> 4.系統(tǒng)軟件設(shè)計(jì)</b></p><p> 4.1 系統(tǒng)軟件總述</p><p>
31、 系統(tǒng)軟件的設(shè)計(jì)主要是保證軟件和硬件電路相結(jié)合,控制硬件正常的工作。對(duì)于頻率計(jì)來說,就是控制頻率計(jì)的硬件系統(tǒng)使其最終能較為準(zhǔn)確的測(cè)出待測(cè)信號(hào)的頻率。本課題頻率計(jì)的系統(tǒng)軟件的設(shè)計(jì)采用了模塊化的結(jié)構(gòu)方式,將各個(gè)功能分成獨(dú)立模塊,由系統(tǒng)的監(jiān)控程序統(tǒng)一管理執(zhí)行。本系統(tǒng)軟件的設(shè)計(jì)主要分兩部分:一部分是執(zhí)行軟件,主要完成各種實(shí)質(zhì)性的功能,如測(cè)量、計(jì)算、顯示、定時(shí)中斷服務(wù)等;另一部分是監(jiān)控軟件,主要來協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組
32、織調(diào)度的角色。</p><p> 該頻率計(jì)中主要元器件是單片機(jī)AT89C51 ,由它完成對(duì)待測(cè)信號(hào)頻率的計(jì)數(shù)和結(jié)果傳輸?shù)裙δ埽獠窟€要有分頻器、顯示器等器件。被測(cè)信號(hào)首先要經(jīng)過放大、整形,如果是高頻信號(hào)還要由分頻器進(jìn)行分頻,然后送入單片機(jī)的P0 端口和P2端口并開始計(jì)數(shù),分頻器的分頻系數(shù)由單片機(jī)來控制;計(jì)數(shù)、分頻達(dá)到規(guī)定的精度后結(jié)束計(jì)數(shù),然后調(diào)用顯示子程序,顯示結(jié)果。該頻率計(jì)的總體程序流程圖如圖4-1所示 &l
33、t;/p><p> 圖4-1 程序總體流程圖</p><p> 4.2 顯示器初始化設(shè)計(jì)</p><p> 顯示器初始化程序流程圖如圖4-2所示。在測(cè)量頻率之前,首先要清屏,之后將單片機(jī)的讀寫端同時(shí)設(shè)置為低電平,因?yàn)閱纹瑱C(jī)的讀寫端控制著液晶顯示器的4腳和5腳,當(dāng)液晶顯示器的4腳和5腳同時(shí)為低電平時(shí),液晶顯示器可以寫入指令或顯示地址。其后就要判斷頻率計(jì)顯示器是否處于
34、“忙”狀態(tài)。如果顯示器處于“忙”狀態(tài),則要循環(huán)等待;如果顯示器處于“閑”狀態(tài),則可以對(duì)顯示器進(jìn)行操作。另外,在每次單片機(jī)的P1口寫入控制字后,都要判斷顯示器是否</p><p> 課程設(shè)計(jì) 處于“忙”狀態(tài)。在判斷液晶顯示器的狀態(tài)后,要將其使能端設(shè)置為高電平,為后面的程序做鋪墊。因?yàn)橹挥挟?dāng)該使能端由高電平跳變到低電平時(shí),液晶模塊才可以執(zhí)行命令。</p><p> 圖4-2 顯示初始化流程
35、圖</p><p><b> 4.3 計(jì)數(shù)子程序</b></p><p> 如圖4-3所示,輸入信號(hào)經(jīng)過整形輸入到74HC393中,采用矩形波下降沿開始計(jì)數(shù),上升沿停止計(jì)數(shù)的方來計(jì)數(shù),剛好對(duì)應(yīng)于正弦波一個(gè)完整周期,再輸入到AT89C51單片機(jī)的P0、P2口。其程序流程圖如圖4-3所示。該頻率計(jì)利用定時(shí)器T0來完成計(jì)數(shù)功能,其參數(shù)選定原則是:(1)初值:TL0=00
36、H,TH0=00H,50Hz左右的信號(hào),大約相當(dāng)于104個(gè)機(jī)器周期,用16位計(jì)數(shù)器即可滿足,不會(huì)產(chǎn)生溢出。(2)TMOD的選擇:定時(shí)器T0采用方式1,由于后面要用到T1作為定時(shí)器,也采用方式1,故TMOD選取為11H。(3)TCON的選擇:這里不需要考慮中斷,故只選擇控制TR0就可以了,開始計(jì)數(shù)時(shí),TR0置“1”,停止計(jì)數(shù)時(shí)清“0”。</p><p> 圖4-3 計(jì)數(shù)子程序流程圖</p><
37、p> 4.4 數(shù)制轉(zhuǎn)換子程序設(shè)計(jì)</p><p> 二進(jìn)制轉(zhuǎn)換為十進(jìn)制流程圖如圖4-4所示。在計(jì)算機(jī)中,任何數(shù)據(jù)都以二進(jìn)制形式出現(xiàn),并在計(jì)算機(jī)中處理的。但是通過外部設(shè)備與計(jì)算機(jī)交換數(shù)據(jù)采用的是其他形式的數(shù)據(jù),由于頻率計(jì)的顯示部分是用的1602LCD液晶顯示器,它不可以直接顯示二進(jìn)制數(shù)據(jù),所以單片機(jī)要把P0、P2口讀入的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為可以被顯示器識(shí)別并顯示的十進(jìn)制數(shù)據(jù)。</p><p
38、> 圖4-4 二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)流程圖</p><p> 4.5 顯示子程序設(shè)計(jì)</p><p> 顯示子程序流程圖如圖4-5所示。數(shù)據(jù)由單片機(jī)的P0、P2口讀入,由單片機(jī)的P1口送出,被液晶顯示器接收,顯示器工作狀態(tài)由單片機(jī)的P3口控制,P3.7口控晶顯示器的4腳,4腳為RS,是寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器,低</p><p> 電平時(shí)間選
39、擇指令寄存器。P3.6腳控制顯示器的5腳,5腳為RW,是讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)間可以寫入指令或者顯示地址,RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。P3.5腳控制顯示器的6腳,6腳為E端,是使能端,當(dāng)E端高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。</p><p> 在液晶顯示器開始工作之前要先初始化系統(tǒng)時(shí)鐘,再初始化I
40、/O端口,最后初始化1602LCD模塊。在數(shù)據(jù)從單片機(jī)讀入后,先將數(shù)據(jù)顯示在液晶模塊的第一行,隨后切換到第二行顯示。</p><p> 圖4-5 1602LCD顯示程序流程圖</p><p><b> 5系統(tǒng)的功能調(diào)試</b></p><p> 先將電路圖在仿真軟件進(jìn)行仿真,在仿真沒有問題的情況下,將元器件焊接在電路板上,然后進(jìn)行硬件調(diào)試
41、。</p><p> 硬件調(diào)試的主要任務(wù)是排除硬件故障,其中包括設(shè)計(jì)錯(cuò)誤和工藝性故障。首先進(jìn)行脫機(jī)調(diào)試,用萬用表逐步檢查各個(gè)引腳,尤其是電源是否連接正確,單片機(jī)芯片是否正確插入底座。</p><p> 其次運(yùn)用軟件編輯程序,要生成目標(biāo)代碼文件,不斷地調(diào)試程序。加載目標(biāo)代碼文件 打開元器件單片機(jī)屬性窗口,在“Program File”欄中添加上面編譯好的目標(biāo)代碼文件“
42、.ASM”;在“Clock Frequency”欄中輸入晶振頻率為12MHZ。每一小塊程序編寫過后都進(jìn)行聯(lián)調(diào),這樣可以及時(shí)觀察到自己所編的程序是否符合自己的目的,當(dāng)出現(xiàn)問題時(shí)及時(shí)處理,可以避免當(dāng)有大量問題后無法找出錯(cuò)誤的地方,可以提高編程的效率,也有利于最終將程序編寫出來。</p><p><b> 調(diào)試過程:</b></p><p> ?。?)首先將所寫
43、的匯編程序拷入到89C51單片機(jī)中</p><p> ?。?)將所焊接的硬件接通+5V的電源,保證數(shù)字頻率計(jì)能夠正常運(yùn)行。</p><p> (3)估算一下所要測(cè)量信號(hào)的頻率是在( 1Hz,60MHz ),( 50MHz,2.0GHz)的那個(gè)頻率段,然后將開關(guān)電路的開關(guān)打向?qū)?yīng)的位置。</p><p> ?。?)觀察并記錄液晶顯示1602LCD的實(shí)數(shù)。</p
44、><p> ?。?)將記錄的實(shí)際值與輸入信號(hào)的理論值作比較。檢測(cè)該數(shù)字頻率計(jì)的實(shí)際效果怎么樣。</p><p><b> 調(diào)試現(xiàn)象說明:</b></p><p> ?。?)實(shí)驗(yàn)出現(xiàn)最多的現(xiàn)象就是液晶顯示屏1602LCD老是出現(xiàn)亂碼。</p><p> 在確保電路硬件沒有問題的情況下,檢查系統(tǒng)的程序發(fā)現(xiàn)是程序中的數(shù)制轉(zhuǎn)換子
45、程序有點(diǎn)問題,找到問題后我到網(wǎng)上查找了一個(gè)數(shù)制轉(zhuǎn)換程序,經(jīng)過我的修改后,替代原程序后,調(diào)試后發(fā)現(xiàn)液晶顯示屏沒有出現(xiàn)亂碼,系統(tǒng)能夠正常運(yùn)行。</p><p> ?。?)系統(tǒng)正常運(yùn)行,記錄1602液晶顯示屏顯示的實(shí)數(shù)。如表5-1</p><p> 表5-1 理論值與測(cè)量值比較</p><p> 由實(shí)驗(yàn)數(shù)據(jù)不難看出測(cè)量值與理論值比較接近,說明本數(shù)字頻率計(jì)的性能很好,沒
46、有什么大問題。</p><p><b> 6 結(jié)論</b></p><p> 本課題設(shè)計(jì)的頻率計(jì)采用單片機(jī)AT89C51智能化控制,充分利用單片機(jī)內(nèi)部硬件資源和軟件功能,大大減少了硬件電路的復(fù)雜性,使電路結(jié)構(gòu)更加簡(jiǎn)潔,有利于提高頻率計(jì)的工作可靠性。另外,用AT89C51 單片機(jī)替換傳統(tǒng)的頻率計(jì),硬件結(jié)構(gòu)簡(jiǎn)單,便于升級(jí),能充分改善原有設(shè)備的性能,提高測(cè)試精度。 &l
47、t;/p><p> 通過本次課程設(shè)計(jì),我對(duì)單片機(jī)這門課程有了進(jìn)一步的理解,在本次設(shè)計(jì)數(shù)字頻率計(jì)的過程中,學(xué)會(huì)了很多知識(shí),此外,通過在網(wǎng)上查找相關(guān)內(nèi)容,也學(xué)會(huì)了設(shè)計(jì)系統(tǒng)軟硬件的一些方法。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 閻石,數(shù)字電子技術(shù)基礎(chǔ)(第五版),清華大學(xué)電子學(xué)教研組2005</p>&
48、lt;p> [2] 張毅剛.單片機(jī)原理及應(yīng)用(第2版)北京:高等教育出版社,2010</p><p> [3] 胡漢才, 單片機(jī)原理及其接口技術(shù)[M]. 清華大學(xué)出版社, 1997 </p><p> [4] 毛謙敏,單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì).北京:國(guó)防工業(yè)出版社,2005</p><p> [5]涂時(shí)亮.單片微機(jī)MCS-51用戶手冊(cè)。上海:復(fù)旦大學(xué)出
49、版社,1990</p><p><b> 附錄</b></p><p><b> 附錄A </b></p><p><b> 頻率計(jì)總電路圖</b></p><p><b> 附錄B</b></p><p><b>
50、; 頻率計(jì)總程序</b></p><p> Q0000: MOV SP,#60H ;堆棧設(shè)置</p><p> Q0003: SETB P3.3 ;打開定時(shí)器開關(guān)</p><p> SETB P3.5 ;啟動(dòng)定時(shí)器</p><p> MOV P1,#01H ;清屏,PI口接1602的DB7-DB0,P1寫入控制字&l
51、t;/p><p> ACALL Q01DC ;等代LCD不忙</p><p> MOV P1,#0CH ;顯示器開、光標(biāo)開、閃爍開,即為P1寫入控制字</p><p> ACALL Q01DC</p><p> MOV R0,#EFH</p><p> Q0013: NOP ;延時(shí)</p><
52、;p> DJNZ R0,Q0013 ;延時(shí)R0個(gè)周期</p><p> MOV TMOD,#05H ;定時(shí)器方式一,啟動(dòng)了T0 Q0019: MOV P0,#FFH ;P0置高電平</p><p> MOV P2,#FFH ;P0\P2端口賦值,P2置高電平</p><p> MOV TL0,#00H ;清計(jì)數(shù)器</p><p>
53、; MOV TH0,#00H</p><p> CLR P3.3 ;INT1=0有效</p><p> SETB TR0 ;啟動(dòng)計(jì)數(shù)器0</p><p> SETB P3.2 ;開計(jì)數(shù)開關(guān)</p><p> MOV R0,#0AH</p><p> MOV R1,#32H</p><p&
54、gt; MOV R2,#50H</p><p> MOV R3,#02H</p><p><b> NOP ;延時(shí)</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b>
55、 NOP</b></p><p><b> NOP</b></p><p> Q0038: MOV R1,#32H ;延時(shí)R0*32H*50H*02H</p><p><b> NOP</b></p><p><b> NOP</b></p>
56、<p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p> Q0040: MOV R2,#50H Q0042: M
57、OV R3,#02H</p><p> Q0044: NOP</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b
58、></p><p><b> NOP</b></p><p><b> NOP</b></p><p> DJNZ R3,Q0044</p><p> DJNZ R2,Q0042</p><p> DJNZ R1,Q0040</p><p&
59、gt; DJNZ R0,Q0038</p><p> CLR P3.2 ;INT0=0,關(guān)閉計(jì)數(shù)器開關(guān),停止計(jì)數(shù)值更新</p><p><b> NOP</b></p><p><b> NOP</b></p><p><b> NOP</b></p>
60、<p> CLR TR0 ;關(guān)閉計(jì)數(shù)器,在R0*32H*50H*02H延時(shí)內(nèi)計(jì)數(shù)</p><p><b> ;讀入計(jì)數(shù)值</b></p><p> MOV 20H,P0 ;讀P0口數(shù)值</p><p> MOV 21H,P2 ;讀P2口數(shù)值</p><p> MOV 22H,TL0 ;取計(jì)數(shù)值低位&l
61、t;/p><p> MOV 23H,TH0 ;取計(jì)數(shù)值高位</p><p> SETB P3.3 ;INT1=1,打開定時(shí)器開關(guān)</p><p> ;多(四)字節(jié)二轉(zhuǎn)十,入口R0為二進(jìn)制低位字節(jié)地址指針,R7為字節(jié)數(shù),出口R1為BCD碼結(jié)果低位字節(jié)地址指針</p><p> MOV R0,#20H</p><p>
62、 MOV R1,#30H</p><p> MOV R7,#04H</p><p><b> MOV A,R0</b></p><p><b> MOV R5,A</b></p><p><b> MOV A,R1</b></p><p>&l
63、t;b> MOV R6,A</b></p><p><b> MOV A,R7</b></p><p><b> MOV R3,A</b></p><p><b> INC R3</b></p><p> CLR A ;累加器清零</p>
64、<p> Q0077: MOV @R1,A</p><p><b> INC R1</b></p><p> DJNZ R3,Q0077</p><p><b> MOV A,R7</b></p><p> MOV B,#08H ;將立即數(shù)8送入B中</p>
65、<p> MUL AB ;A、B相乘,結(jié)果送入A中,A=32</p><p><b> MOV R3,A</b></p><p> Q0081: MOV A,R5</p><p><b> MOV R0,A</b></p><p><b> MOV A,R7</
66、b></p><p><b> MOV R2,A</b></p><p><b> CLR C</b></p><p> Q0086: MOV A,@R0</p><p><b> RLC A</b></p><p><b>
67、 MOV @R0,A</b></p><p><b> INC R0</b></p><p> DJNZ R2,Q0086</p><p><b> MOV A,R6</b></p><p><b> MOV R1,A</b></p><
68、p><b> MOV A,R7</b></p><p><b> MOV R2,A</b></p><p><b> INC R2</b></p><p> Q0091: MOV A,@R1 ;得到低位數(shù)據(jù)</p><p> ADDC A,@R1 ;累加<
69、;/p><p> DA A ;十進(jìn)制調(diào)整</p><p> MOV @R1,A ;保存數(shù)據(jù)</p><p> INC R1 ;進(jìn)一步循環(huán)得到第二位、第三位、第四位數(shù)據(jù)等</p><p> DJNZ R2,Q0091</p><p> DJNZ R3,Q0081</p><p> MOV
70、R0,#30H</p><p> MOV R1,#24H</p><p> Q009E: MOV A,@R0</p><p> ANL A,#0FH</p><p> ORL A,#30H</p><p><b> MOV @R1,A</b></p><p>&
71、lt;b> MOV A,@R0</b></p><p> ANL A,#F0H</p><p><b> RL A</b></p><p><b> RL A</b></p><p><b> RL A</b></p><p>
72、;<b> RL A</b></p><p> ORL A,#30H</p><p><b> INC R1</b></p><p><b> MOV @R1,A</b></p><p><b> INC R0</b></p>&l
73、t;p><b> INC R1</b></p><p> CJNE R0,#36H,Q009E</p><p> ;從高往低判斷,不是0就開始顯示</p><p> MOV 2EH,#20H</p><p> MOV R1,#2DH</p><p> CJNE @R1,#30H,
74、Q00F4</p><p> MOV @R1,#20H</p><p><b> DEC R1</b></p><p> CJNE @R1,#30H,Q00F4</p><p> MOV @R1,#20H</p><p><b> DEC R1</b></p&
75、gt;<p> CJNE @R1,#30H,Q00F4</p><p> MOV @R1,#20H</p><p><b> DEC R1</b></p><p> CJNE @R1,#30H,Q00F4</p><p> MOV @R1,#20H</p><p><
76、b> DEC R1</b></p><p> CJNE @R1,#30H,Q0112</p><p> MOV @R1,#20H</p><p><b> DEC R1</b></p><p> CJNE @R1,#30H,Q0112</p><p> MOV @R1
77、,#20H</p><p><b> DEC R1</b></p><p> CJNE @R1,#30H,Q0112</p><p> MOV @R1,#20H</p><p><b> DEC R1</b></p><p> CJNE @R1,#30H,Q0130
78、</p><p> MOV @R1,#20H</p><p><b> DEC R1</b></p><p> CJNE @R1,#30H,Q0130</p><p> MOV @R1,#20H</p><p><b> DEC R1</b></p>
79、<p> CJNE @R1,#30H,Q0130</p><p> AJMP Q016F</p><p> Q00F4: MOV R0,#23H</p><p> MOV @R0,#4DH</p><p><b> DEC R0</b></p><p> MOV @R0,#
80、48H</p><p><b> DEC R0</b></p><p> MOV @R0,#7AH</p><p><b> DEC R0</b></p><p> MOV @R0,#20H</p><p><b> MOV A,2CH</b>
81、</p><p><b> MOV 2DH,A</b></p><p><b> MOV A,2BH</b></p><p><b> MOV 2CH,A</b></p><p><b> MOV A,2AH</b></p><
82、p><b> MOV 2BH,A</b></p><p> MOV 2AH,#2EH</p><p> AJMP Q013D</p><p> Q0112: MOV R0,#23</p><p> MOV @R0,#4BH</p><p><b> DEC R0<
83、;/b></p><p> MOV @R0,#48H</p><p><b> DEC R0</b></p><p> MOV @R0,#7AH</p><p><b> DEC R0</b></p><p> MOV @R0,#20H</p>
84、<p><b> MOV A,29H</b></p><p><b> MOV 2AH,A</b></p><p><b> MOV A,28H</b></p><p><b> MOV 29H,A</b></p><p><b&g
85、t; MOV A,27H</b></p><p><b> MOV 28H,A</b></p><p> MOV 27H,#2EH</p><p> AJMP Q013D</p><p> Q0130: MOV R0,#23H</p><p> MOV @R0,#48H&
86、lt;/p><p><b> DEC R0</b></p><p> MOV @R0,#7AH</p><p><b> DEC R0</b></p><p> MOV @R0,#20H</p><p><b> DEC R0</b></p&
87、gt;<p> MOV @R0,#20H</p><p> Q013D: MOV 10H,#53H</p><p> MOV 11H,#49H</p><p> MOV 12H,#47H</p><p> MOV 13H,#4EH</p><p> MOV 14H,#41H</p>
88、;<p> MOV 15H,#4CH</p><p> MOV 16H,#20H</p><p> MOV 17H,#46H</p><p> MOV 18H,#52H</p><p> MOV 19H,#45H</p><p> MOV 1AH,#51H</p><p&g
89、t; MOV 1BH,#55H</p><p> MOV 1CH,#45H</p><p> MOV 1DH,#4EH</p><p> MOV 1EH,#43H</p><p> MOV 1FH,#59H</p><p> AJMP Q01A7</p><p> Q016F:
90、MOV 10H,#4EH</p><p> MOV 11H,#4FH</p><p> MOV 12H,#20H</p><p> MOV 13H,#49H</p><p> MOV 14H,#4EH</p><p> MOV 15H,#50H</p><p> MOV 16H,#5
91、5H</p><p> MOV 17H,#54H</p><p> MOV 18H,#20H</p><p> MOV 19H,#53H</p><p> MOV 1AH,#49H</p><p> MOV 1BH,#47H</p><p> MOV 1CH,#4EH</p&g
92、t;<p> MOV 1DH,#41H</p><p> MOV 1EH,#4CH</p><p> MOV 1FH,#21H</p><p> MOV R0,#20H</p><p> Q01A1: MOV @R0,#20H</p><p><b> INC R0</b&g
93、t;</p><p> CJNE R0,#30H,Q01A1 Q01A7: ACALL Q01AB</p><p> AJMP Q0019</p><p> Q01AB: MOV R0,#10H;顯示第一行</p><p> MOV P1,#38H ;8位2行5x7點(diǎn)陣</p><p> ACALL Q01
94、DC</p><p> MOV P1,#06H ;文字不動(dòng),光標(biāo)自動(dòng)右移</p><p> ACALL Q01DC</p><p> MOV P1,#80H ;寫入顯示起始地址(第一行第一個(gè)位置)</p><p> ACALL Q01DC</p><p> Q01BC: MOV P1,@R0 ;第一行第N個(gè)位
95、置</p><p> ACALL Q01E7</p><p><b> INC R0</b></p><p> CJNE R0,#20H,Q01BC</p><p><b> :顯示第二行</b></p><p> MOV P1,#04H ;文字不動(dòng),光標(biāo)自動(dòng)左移&
96、lt;/p><p> ACALL Q01DC</p><p> MOV P1,#3CH ;8位2行5x10點(diǎn)陣</p><p> ACALL Q01DC</p><p> MOV P1,#CEH ;寫入顯示起始地址(第二行第十五個(gè)位置)</p><p> ACALL Q01DC</p><p&
97、gt; Q01D3: MOV P1,@R0 ;第二行第15個(gè)位置</p><p> ACALL Q01E7</p><p><b> INC R0</b></p><p> CJNE R0,#2EH,Q01D3</p><p><b> RET</b></p><p&
98、gt; ;===========================================</p><p> Q01DC: CLR P3.7 ;寫入控制命令的子程序</p><p> CLR P3.6 ;P3.7和P3.6同時(shí)為低電平時(shí),顯示器可以顯示地址或?qū)懭胫噶?lt;/p><p> CLR P3.5 ;P3.5從高電平跳變到低電平時(shí),顯示器可以執(zhí)行命
99、令(P3.5腳和顯示器的6 腳相連)</p><p> ACALL Q01F4</p><p> SETB P3.5 ;將顯示器的6設(shè)置為高電平</p><p><b> RET</b></p><p> ;===========================================</p>
100、<p> Q01E7: CLR P3.7 ;顯示一個(gè)字符的子程序,P3.7低電平時(shí),顯示器選擇指令寄存器</p><p> SETB P3.7 ;P3.7高電平時(shí),顯示器選擇數(shù)據(jù)寄存器</p><p> CLR P3.6 ;P3.6為低電平時(shí),顯示器可以進(jìn)行讀操作</p><p> CLR P3.5 ;</p><p>
101、; ACALL Q01F4</p><p><b> SETB P3.5</b></p><p><b> RET</b></p><p> ;===========================================</p><p> Q01F4: MOV P1,#FFH
102、;判斷液晶顯示器是否忙的子程序</p><p><b> CLR P3.7</b></p><p><b> SETB P3.6</b></p><p><b> CLR P3.5</b></p><p><b> NOP</b></p>
103、;<p><b> SETB P3.5</b></p><p> JB P1.7,Q01F4 ;如果P1.7為高電平表示忙就循環(huán)等待</p><p><b> RET</b></p><p> ;===========================================</p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于89c51單片機(jī)的可自選量程的數(shù)字頻率計(jì)設(shè)計(jì)
- 數(shù)字頻率計(jì)畢業(yè)設(shè)計(jì)-- 數(shù)字頻率計(jì)設(shè)計(jì)
- 數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)畢業(yè)設(shè)計(jì)-- 數(shù)字頻率計(jì)設(shè)計(jì)
- 數(shù)字頻率計(jì)畢業(yè)論文--基于vhdl的數(shù)字頻率計(jì)的設(shè)計(jì)
- 數(shù)字頻率計(jì)設(shè)計(jì)
- 數(shù)字頻率計(jì)實(shí)驗(yàn)報(bào)告---數(shù)字頻率計(jì)的設(shè)計(jì)與制作
- 基于51單片機(jī)的數(shù)字頻率計(jì)資料
- 數(shù)字頻率計(jì)的設(shè)計(jì)
- 基于89c52單片機(jī)的數(shù)字頻率計(jì)設(shè)計(jì)
- 基于fpga數(shù)字頻率計(jì)設(shè)計(jì)
- 數(shù)字頻率計(jì)【文獻(xiàn)綜述】
- 基于at89c52單片機(jī)實(shí)現(xiàn)數(shù)字頻率計(jì)的設(shè)計(jì)
- 基于89c52單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)
- 基于51單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)
- 基于fpga的數(shù)字頻率計(jì)設(shè)計(jì)
- 數(shù)字頻率計(jì)的設(shè)計(jì).doc
- 數(shù)字頻率計(jì)的設(shè)計(jì).doc
- 簡(jiǎn)易數(shù)字頻率計(jì)的設(shè)計(jì)
- 基于fpga數(shù)字頻率計(jì)設(shè)計(jì)開題
評(píng)論
0/150
提交評(píng)論