

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 基于單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì)</p><p><b> 【摘要】</b></p><p> 本設(shè)計(jì)以STC89C52單片機(jī)為核心充分利用硬件資源設(shè)計(jì)的一種頻率計(jì),該頻率計(jì)首先將被測(cè)信號(hào)放大整形處理,變成滿足單片機(jī)I/O口接受的TTL/ CMOS 兼容信號(hào)從單片機(jī)的T1輸入口輸入直接累加脈沖數(shù),將單片機(jī)內(nèi)部定時(shí)器定時(shí)為1S,這時(shí)累加的脈沖數(shù)即為
2、被測(cè)信號(hào)的頻率。最后經(jīng)單片機(jī)處理送至lcd液晶顯示屏顯示。</p><p> 【關(guān)鍵字】 單片機(jī)(STC89C52)、放大整形、 數(shù)據(jù)處理、1602LCD、</p><p> 【Abstract】</p><p> This design take STC89C52 monolithic integrated circuit as the core full
3、 use hardware source design's one kind of frequency meter, this frequency meter will be measured first that signal enlargement reshaping processing, turns satisfies TTL/which the monolithic integrated circuit I/O mou
4、th accepts the CMOS compatible signal from monolithic integrated circuit's T1 input port input direct summation pulse number, the monolithic integrated circuit interior timer fixed time is 1S, by now accumulated <
5、/p><p> 【Keyword】STC89C52、 Larger plastic、Data processing、1602LCD</p><p><b> 目錄 </b></p><p> 引言……………………………………………………………………………………………5</p><p> 1.系統(tǒng)概述………………………
6、……………………………………………………………5</p><p> 1.1數(shù)字頻率計(jì)概述…………………………………………………………………………5</p><p> 1.2頻率測(cè)量?jī)x的設(shè)計(jì)思路與頻率的計(jì)算 ……………………………………………………5</p><p> 1.3基本設(shè)計(jì)原理 …………………………………………………………………………5</p&
7、gt;<p> 2.數(shù)字頻率計(jì)的硬件結(jié)構(gòu)設(shè)計(jì)………………………………………………………………7</p><p> 2.1 系統(tǒng)硬件的構(gòu)成 ………………………………………………………………………7</p><p> 2.2 STC89C52單片機(jī)及其引腳說(shuō)明 …………………………………………………………7</p><p> 2.3 信號(hào)調(diào)理及放
8、大整形模塊 ………………………………………………………………8</p><p> 2.3.1工作原理 ………………………………………………………………………8</p><p> 2.3.2 LF353雙運(yùn)算放大器簡(jiǎn)介 ………………………………………………………8</p><p> 2.4 顯示模塊 ……………………………………………………………………………
9、…10</p><p> 2.4.1 1602ALCD與單片機(jī)的接法 ………………………………………………………10</p><p> 2.4.2 1602ALCD基本技術(shù) …………………………………………………………… 11</p><p> 3.Altium designer原理圖 ………………………………………………………………13</p&
10、gt;<p> 3.1 整形放大部分 …………………………………………………………………………13</p><p> 3.2 單片機(jī)及1602部分 ……………………………………………………………………13</p><p> 4.Altium designerPCB布線 ………………………………………………………………14</p><p> 5.
11、 Proteus 仿真 …………………………………………………………………………15</p><p> 6. 軟件設(shè)計(jì) …………………………………………………………………………………16</p><p> 6.1 系統(tǒng)工作流程圖 ………………………………………………………………………16</p><p> 6.1.1 T0的1s定時(shí)………………………………
12、……………………………………16</p><p> 6.1.2 T1的計(jì)數(shù)原理 …………………………………………………………………16</p><p> 6.2 軟件工作原理 …………………………………………………………………………16</p><p> 6.3 軟件處理方法 …………………………………………………………………………17</p>
13、<p> 7. 實(shí)驗(yàn)結(jié)果與分析 …………………………………………………………………………18</p><p> 8. 元器件清單 …………………………………………………………………………18</p><p> 結(jié)束語(yǔ) ………………………………………………………………………………………19</p><p> 致謝詞 …………………………………………
14、……………………………………………19</p><p> 參考文獻(xiàn) ……………………………………………………………………………………19</p><p> 程序附錄 ……………………………………………………………………………………20</p><p><b> 引言</b></p><p> 頻率測(cè)量在科技研究
15、和實(shí)際應(yīng)用中的作用日益重要。傳統(tǒng)的頻率計(jì)通采用組合電路和時(shí)序電路等大量的硬件電路構(gòu)成,產(chǎn)品不但體積較大,運(yùn)行速度慢,而且測(cè)量低頻信號(hào)時(shí)不宜直接使用。頻率信號(hào)抗干擾性強(qiáng)、易于傳輸 ,可以獲得較高的測(cè)量精度。同時(shí) ,頻率測(cè)量方法的優(yōu)化也越來(lái)越受到重視.并采用單片機(jī)和相關(guān)硬軟件實(shí)現(xiàn)。</p><p> STC89C52系列單片機(jī)具有體積小,功能強(qiáng),性能價(jià)格比較高等特點(diǎn),因此被廣泛應(yīng)用于工業(yè)控制和智能化儀器,儀表等領(lǐng)域
16、。此頻率計(jì)以STC89C52單片機(jī)為核心,具有性能優(yōu)良,精度高,可靠性好等特點(diǎn)。</p><p> 以STC89C52單片機(jī)為控制器件的頻率測(cè)量方法,并用C語(yǔ)言進(jìn)行設(shè)計(jì),采用單片機(jī)智能控制,結(jié)合外圍電子電路。最終實(shí)現(xiàn)數(shù)字頻率計(jì)的設(shè)計(jì)方案,根據(jù)頻率計(jì)的特點(diǎn),可廣泛應(yīng)用于各種測(cè)試場(chǎng)所。</p><p> 在基礎(chǔ)理論和專業(yè)技術(shù)基礎(chǔ)上,通過(guò)對(duì)數(shù)字頻率計(jì)的設(shè)計(jì),用十進(jìn)制數(shù)字來(lái)顯示被測(cè)信號(hào)頻率的測(cè)
17、量裝置。以精確迅速的特點(diǎn)測(cè)量信號(hào)頻率,在本設(shè)計(jì)在實(shí)踐理論上鍛煉提高了自己的綜合運(yùn)用知識(shí)水平,為以后的開(kāi)發(fā)及科研工作打下基礎(chǔ)。</p><p><b> 1系統(tǒng)概述 </b></p><p> 1.1數(shù)字頻率計(jì)概述</p><p> 數(shù)字頻率計(jì)是計(jì)算機(jī)、通訊設(shè)備、音頻視頻等科研生產(chǎn)領(lǐng)域不可缺少的測(cè)量?jī)x器。它是一種用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率
18、的數(shù)字測(cè)量?jī)x器。它的基本功能是測(cè)量正弦信號(hào),方波信號(hào)及其他各種單位時(shí)間內(nèi)變化的物理量。在進(jìn)行模擬、數(shù)字電路的設(shè)計(jì)、安裝、調(diào)試過(guò)程中,由于其使用十進(jìn)制數(shù)顯示,測(cè)量迅速,精確度高,顯示直觀,經(jīng)常要用到頻率計(jì)。 </p><p> 本數(shù)字頻率計(jì)將采用定時(shí)、計(jì)數(shù)的方法測(cè)量頻率,采用一個(gè)1602 LCD顯示器動(dòng)態(tài)顯示7位數(shù)。</p><p> 1.2 基本設(shè)計(jì)原理</p><
19、p> 基本設(shè)計(jì)原理是直接用十進(jìn)制數(shù)字顯示被測(cè)信號(hào)頻率的一種測(cè)量裝置。它以測(cè)量頻率的方法直接對(duì)正弦波、方波、三角波的頻率進(jìn)行自動(dòng)的測(cè)量。</p><p> 所謂“頻率”,就是周期性信號(hào)在單位時(shí)間(1s)內(nèi)變化的次數(shù)。若在一定時(shí)間間隔T內(nèi)測(cè)得這個(gè)周期性信號(hào)的重復(fù)變化次數(shù)N,則其頻率可表示為f=N/T。其中脈沖形成電路的作用是將被測(cè)信號(hào)變成脈沖信號(hào),其重復(fù)頻率等于被測(cè)頻率f。利用單片機(jī)的內(nèi)部定時(shí)器作為定時(shí)時(shí)間
20、周期,若其周期為1s,則輸入的脈沖信號(hào)持續(xù)計(jì)數(shù)時(shí)間亦準(zhǔn)確地等于1s,所計(jì)數(shù)的脈沖個(gè)數(shù)即為被測(cè)信號(hào)的頻率。[1]</p><p><b> 1.3 方案選擇</b></p><p> 用單片機(jī)設(shè)計(jì)頻率計(jì)通常采用兩種辦法,第一種方法是使用單片機(jī)自帶的計(jì)數(shù)器對(duì)輸入脈沖進(jìn)行計(jì)數(shù);第二種方法是單片機(jī)外部使用計(jì)數(shù)器對(duì)脈沖信號(hào)進(jìn)行計(jì)數(shù),計(jì)數(shù)值再由單片機(jī)讀取。第一種方法的好處是設(shè)
21、計(jì)出的頻率計(jì)系統(tǒng)結(jié)構(gòu)和程序編寫(xiě)簡(jiǎn)單,成本低廉,不需要外部計(jì)數(shù)器,直接利用所給的單片機(jī)最小系統(tǒng)就可以實(shí)現(xiàn)。這種方法的缺陷是受限于單片機(jī)計(jì)數(shù)的晶振頻率,輸入的時(shí)鐘頻率通常是單片機(jī)晶振頻率的幾分之一甚至是幾十分之一,在本次設(shè)計(jì)使用的98C51單片機(jī),由于檢測(cè)一個(gè)由“1”到“0”的跳變需要兩個(gè)機(jī)器周期,前一個(gè)機(jī)器周期測(cè)出“1”,后一個(gè)周期測(cè)出“0”。故輸入時(shí)鐘信號(hào)的最高頻率不得超過(guò)單片機(jī)晶振頻率的二十四分之一。第二種方法的好處是輸入的時(shí)鐘信號(hào)頻
22、率可以不受單片機(jī)晶振頻率的限制,可以對(duì)相對(duì)較高頻率進(jìn)行測(cè)量,但缺點(diǎn)是成本比第一種方法高,設(shè)計(jì)出來(lái)的系統(tǒng)結(jié)構(gòu)和程序也比較復(fù)雜。[2]</p><p> 由于成本有限,本次設(shè)計(jì)中采用第一種方法,因此輸入的時(shí)鐘信號(hào)最高頻率不得高于12MHz/24=500KHz。對(duì)外部脈沖的占空比無(wú)特殊要求。根據(jù)頻率檢測(cè)的原理,很容易想到利用51單片機(jī)的T0、T1兩個(gè)定時(shí)/計(jì)數(shù)器,一個(gè)用來(lái)定時(shí),另一個(gè)用來(lái)計(jì)數(shù),兩者均應(yīng)該工作在中斷方式
23、,一個(gè)中斷用于1s時(shí)間的中斷處理,一個(gè)中斷用于對(duì)頻率脈沖的計(jì)數(shù)溢出處理。</p><p> 2數(shù)字頻率計(jì)的硬件結(jié)構(gòu)設(shè)計(jì)</p><p> 2.1 系統(tǒng)硬件的構(gòu)成</p><p> 本頻率計(jì)的數(shù)據(jù)采集系統(tǒng)主要元器件是單片機(jī)STC89C52,由它完成對(duì)待測(cè)信號(hào)頻率的計(jì)數(shù)、計(jì)數(shù)處理、結(jié)果顯示等功能,外部還要有信號(hào)處理、LCD顯示器等器件。具體可分為以下幾個(gè)模塊:放大
24、整形模塊、單片機(jī)系統(tǒng)、LCD顯示模塊。各模塊關(guān)系圖如圖2所示:[3]</p><p> 圖2 系統(tǒng)工作原理圖</p><p> 2.2 STC89C52單片機(jī)及其引腳說(shuō)明</p><p> STC89C52是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標(biāo)準(zhǔn)特征:4K字節(jié)的程序存儲(chǔ)器,128字節(jié)的RAM,32條I/O線,2個(gè)16位定時(shí)器/計(jì)數(shù)
25、器, 一個(gè)5中斷源兩個(gè)優(yōu)先級(jí)的中斷結(jié)構(gòu),一個(gè)雙工的串行口, 片上震蕩器和時(shí)鐘電路</p><p><b> 引腳說(shuō)明:</b></p><p><b> ·VCC:電源電壓</b></p><p><b> ·GND:地</b></p><p> &
26、#183;P0口:P0口是一組8位漏極開(kāi)路型雙向I/O口,作為輸出口用時(shí),每個(gè)引腳能驅(qū)動(dòng)8個(gè)TTL邏輯門電路。當(dāng)對(duì)0端口寫(xiě)入1時(shí),可以作為高阻抗輸入端使用。</p><p> 當(dāng)P0口訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),它還可設(shè)定成地址數(shù)據(jù)總線復(fù)用的形式。在這種模式下,P0口具有內(nèi)部上拉電阻。</p><p> 在EPROM編程時(shí),P0口接收指令字節(jié),同時(shí)輸出指令字節(jié)在程序校驗(yàn)時(shí)。程序校
27、驗(yàn)時(shí)需要外接上拉電阻。</p><p> ·P1口:P1口是一帶有內(nèi)部上拉電阻的8位雙向I/O口。P1口的輸出緩沖能接受或輸出4個(gè)TTL邏輯門電路。當(dāng)對(duì)P1口寫(xiě)1時(shí),它們被內(nèi)部的上拉電阻拉升為高電平,此時(shí)可以作為輸入端使用。當(dāng)作為輸入端使用時(shí),P1口因?yàn)閮?nèi)部存在上拉電阻,所以當(dāng)外部被拉低時(shí)會(huì)輸出一個(gè)低電流(IIL)。</p><p> ·P2口:P2是一帶有內(nèi)部上拉
28、電阻的8位雙向的I/O端口。P2口的輸出緩沖能驅(qū)動(dòng)4個(gè)TTL邏輯門電路。當(dāng)向P2口寫(xiě)1時(shí),通過(guò)內(nèi)部上拉電阻把端口拉到高電平,此時(shí)可以用作輸入口。作為輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出電流(IIL)。</p><p> P2口在訪問(wèn)外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如MOVX @ DPTR)時(shí),P2口送出高8位地址數(shù)據(jù)。在這種情況下,P2口使用強(qiáng)大的內(nèi)部上拉電阻功能當(dāng)輸出1時(shí)
29、。當(dāng)利用8位地址線訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)(例MOVX @R1),P2口輸出特殊功能寄存器的內(nèi)容。</p><p> 當(dāng)EPROM編程或校驗(yàn)時(shí),P2口同時(shí)接收高8位地址和一些控制信號(hào)。</p><p> ·P3口:P3是一帶有內(nèi)部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅(qū)動(dòng)4個(gè)TTL邏輯門電路。當(dāng)向P3口寫(xiě)1時(shí),通過(guò)內(nèi)部上拉電阻把端口拉到高電平,此時(shí)可以用作輸入口。作為
30、輸入口,因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出電流(IIL)。</p><p> P3口同時(shí)具有多種特殊功能,具體如下表1所示:</p><p> 表1 P3口的第二功能</p><p> ·RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。</p><p> ·AL
31、E/ :當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節(jié)。當(dāng)在Flash編程時(shí)還可以作為編程脈沖輸出。</p><p> 一般情況下,ALE是以晶振頻率的1/6輸出,可以用作外部時(shí)鐘或定時(shí)目的。但也要注意,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。</p><p> · :程序存儲(chǔ)允許時(shí)外部程序存儲(chǔ)器的讀選通信號(hào)。當(dāng)AT89C52執(zhí)行外部程序存儲(chǔ)器的
32、指令時(shí),每個(gè)機(jī)器周期 兩次有效,除了當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí), 將跳過(guò)兩個(gè)信號(hào)。</p><p> · /VPP:外部訪問(wèn)允許。為了使單片機(jī)能夠有效的傳送外部數(shù)據(jù)存儲(chǔ)器從0000H到FFFH單元的指令, 必須同GND相連接。需要主要的是,如果加密位1被編程,復(fù)位時(shí)EA端會(huì)自動(dòng)內(nèi)部鎖存。</p><p> 當(dāng)執(zhí)行內(nèi)部編程指令時(shí), 應(yīng)該接到VCC端。</p><
33、p> ·XTAL1:振蕩器反相放大器以及內(nèi)部時(shí)鐘電路的輸入端。</p><p> ·XTAL2:振蕩器反相放大器的輸出端。</p><p> 2.3 信號(hào)調(diào)理及放大整形模塊</p><p> 2.3.1 工作原理</p><p> 放大整形系統(tǒng)包括衰減器、跟隨器、放大器、施密特觸發(fā)器。它將正弦輸入信號(hào)Vx整
34、形成同頻率方波Vo,幅值過(guò)大的被測(cè)信號(hào)經(jīng)過(guò)分壓器分壓送入后級(jí)放大器,以避免波形失真。由運(yùn)算放大器構(gòu)成的射級(jí)跟隨器起阻抗變換作用,使輸入阻抗提高。同相輸入的運(yùn)算放大器的放大倍數(shù)為(R3+R4)/R3,改變R3的大小可以改變放大倍數(shù)。系統(tǒng)的整形電路由施密特觸發(fā)器組成,整形后的方波送至單片機(jī)以便計(jì)數(shù)。</p><p> 由于輸入的信號(hào)幅度是不確定、可能很大也有可能很小,這樣對(duì)于輸入信號(hào)的測(cè)量就不方便了,過(guò)大可能會(huì)把器
35、件燒毀,過(guò)小可能器件檢測(cè)不到,所以在設(shè)計(jì)中采用了這個(gè)信號(hào)調(diào)理電路對(duì)輸入的波形進(jìn)行阻抗變換、放大限幅和整形,信號(hào)調(diào)理部分電路具體實(shí)現(xiàn)電路原理圖和參數(shù)如下圖3所示:[4] </p><p><b> 圖3 信號(hào)處理</b></p><p> 圖中D1—D4為肖特基二極管(DIODE),本設(shè)計(jì)中選用IN4148。D5為穩(wěn)壓二極管,本設(shè)計(jì)選用的穩(wěn)壓二極管IN733,其中
36、R1、R2、R5、R6為10KΩ,R4為150KΩ,R3為500KΩ的電位器。[5]</p><p> 2.3.2 LF353雙運(yùn)算放大器簡(jiǎn)介 </p><p> 集成電路運(yùn)算放大器是一種高電壓增益、高輸入電阻和低輸出電阻的多級(jí)直接耦合放大電路,它的類型很多,電路也不一樣,但結(jié)構(gòu)具有共同之處,圖6表示集成運(yùn)放的內(nèi)部電路組成原理框圖。圖中輸入級(jí)一般是由BJT、JFET或MOSFET組成的
37、差分式放大電路,利用它的對(duì)稱性可以提高整個(gè)電路的共模抑制比和其他方面的性能,它的兩個(gè)輸入端構(gòu)成整個(gè)電路的反相輸入端和同相輸入端[7]。電壓放大級(jí)一般由電壓跟隨器或互補(bǔ)電壓跟隨器所組成,以降低輸出電阻,提高帶負(fù)載能力。偏置電路是為各級(jí)提供合適的工作電流。此外還有一些輔助環(huán)節(jié),如電平移動(dòng)電路、過(guò)載保護(hù)電路以及高頻補(bǔ)償環(huán)節(jié)等。</p><p> + 差分 電壓放大級(jí)
38、 輸出級(jí) </p><p> Vid - 輸入級(jí) </p><p><b> 偏置電流</b></p><p> 圖 6 集成電路運(yùn)算放大器內(nèi)部組成原理框圖</p><p> 運(yùn)算放大器分為通用型和專用型集成電路運(yùn)算
39、放大器,741型集成運(yùn)算放大器即為通用型,其電路主要包括偏置電路(24個(gè)BJT、10個(gè)電阻和一個(gè)電容組成)、輸入級(jí)、中間級(jí)和輸出級(jí)四個(gè)部分,整個(gè)電路要求當(dāng)輸入信號(hào)為零時(shí)輸出也為零。放大器主要參數(shù)的設(shè)置不管是哪種類型都極其重要,直接影響到電路的實(shí)際功能。</p><p> 集成電路運(yùn)算放大器在近幾年得到迅速發(fā)展,除了具有高電壓增益的通用型外,還具有性能更優(yōu)良和具有特殊功能的集成運(yùn)放,可分為高輸入阻抗、低漂移、高精
40、度、帶寬、低功耗、高壓、大功率和程控型等專用型集成運(yùn)算放大。</p><p> 題中用到的LF353放大器屬于用型集成運(yùn)算放大,該運(yùn)算放大器內(nèi)部有偏移電壓和FET輸入裝置(雙向場(chǎng)效應(yīng)管),有較大的反向擊穿電壓,因此,當(dāng)大差動(dòng)輸入電壓時(shí),可以很容易容納增加的輸入電流。</p><p> 圖7 典型接法 圖8 內(nèi)部結(jié)構(gòu) </p><p>&
41、lt;b> 顯示模塊 </b></p><p> 2.4.1 1602ALCD 與單片機(jī)的接法</p><p> 單片機(jī)與1602ALCD的連接如圖9所示</p><p> 圖9 單片機(jī)與LCD接法</p><p> 1602ALCD采用標(biāo)準(zhǔn)的16腳接口,本設(shè)計(jì)具體接法如下: </p><p&
42、gt; 第1腳:VSS為地電源(圖中未畫(huà)出)。 </p><p> 第2腳:VDD接5V正電源(圖中未畫(huà)出)。</p><p> 第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,本設(shè)計(jì)使用時(shí)通過(guò)一個(gè)10K的電位器調(diào)整其對(duì)比度(圖中未畫(huà)出)。</p><p> 第4腳:RS為寄存器選擇
43、,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。</p><p> 第5腳:RW為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。</p><p> 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 </p>
44、<p> 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 </p><p> 第15~16腳:空腳(圖中未畫(huà)出)。</p><p> 由于STC89C52單片機(jī)的P0口內(nèi)部沒(méi)有上拉電阻故在單片機(jī)與1602ALCD之間需加上上拉電阻(圖中未標(biāo)出)。</p><p> 2.4.2 1602ALCD基本技術(shù): </p><p
45、> 1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”</p><p> 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如下
46、表所示, </p><p> 它的讀寫(xiě)操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平) </p><p> 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。</p><p> 指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。</p><p> 指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移
47、,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。 </p><p> 指令4:顯示開(kāi)關(guān)控制。 D:控制整體顯示的開(kāi)與關(guān),高電平表示開(kāi)顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開(kāi)與關(guān),高電平表示有光標(biāo),低電平表示無(wú)光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。 </p><p> 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)
48、。 </p><p> 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。 </p><p> 指令7:字符發(fā)生器RAM地址設(shè)置。 </p><p> 指令8:DDRAM地址設(shè)置。 </p><p> 指令9
49、:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 </p><p><b> 指令10:寫(xiě)數(shù)據(jù) </b></p><p><b> 指令11:讀數(shù)據(jù) </b></p><p> 液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平
50、,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,下表是DM-162的內(nèi)部顯示地址. </p><p> 比如第二行第一個(gè)字符的地址是40H,那么是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0
51、H) </p><p> 3 Altium designer原理圖</p><p> 3.1 整形放大部分</p><p> 3.2單片機(jī)及1602部分</p><p> 4 Altium designer PCB布線</p><p> 5 Proteus仿真</p><p><
52、;b> 6 軟件流程圖</b></p><p> 圖10系統(tǒng)工作流程圖</p><p> 6.1.1 T0的1s定時(shí)</p><p> 本次設(shè)計(jì)選用定時(shí)器T0完成定時(shí)功能,選用方式1,采用T0定時(shí)50 ,連續(xù)循環(huán)定時(shí)20次即可完成1 定時(shí),用一個(gè)計(jì)數(shù)單元存放循環(huán)的次數(shù),每一次循環(huán)單元自加1,當(dāng)加到20次時(shí)則1S 定時(shí)到時(shí)。其程序流程圖如圖1
53、1所示。</p><p> 6.1.2 T1的計(jì)數(shù)原理</p><p> 設(shè)計(jì)中T1采用計(jì)數(shù)功能,需要注意的一個(gè)問(wèn)題是,輸入的待測(cè)時(shí)鐘信號(hào)的頻率最高可以達(dá)到460800Hz,但本設(shè)計(jì)的最高頻率為計(jì)數(shù)器的最多計(jì)數(shù)65536次,顯然當(dāng)所輸入的頻率大于65536Hz的時(shí)候?qū)o(wú)法顯示,所以每當(dāng)計(jì)數(shù)器T1溢出回零時(shí)產(chǎn)生中斷,中斷程序執(zhí)行顯示提示錯(cuò)誤信息顯示為00000Hz。其程序流程圖如圖12所
54、示。</p><p> 圖11 圖12</p><p> 6.2 軟件工作原理</p><p> 將整形后的波形送至單片機(jī)的T1計(jì)數(shù)器輸入口,打開(kāi)定時(shí)器0,初始化定時(shí)器0,將單片機(jī)的內(nèi)部定時(shí)器T0定時(shí)為1S,此時(shí)T1輸入口在1s內(nèi)所計(jì)數(shù)到的脈沖個(gè)數(shù)即為該信號(hào)的頻率。將該計(jì)數(shù)脈沖個(gè)數(shù)經(jīng)單
55、片機(jī)處理送至LCD顯示。</p><p> 6.3 軟件處理方法 </p><p> 本頻率計(jì)的設(shè)計(jì)以 STC89C52 單片機(jī)為核心 ,利用它內(nèi)部的定時(shí)/ 計(jì)數(shù)器完成待測(cè)信號(hào)頻率的測(cè)量 。單片機(jī) STC89C52 內(nèi)部具有 2 個(gè) 16 位定時(shí)/計(jì)數(shù)器 ,定時(shí)/ 計(jì)數(shù)器的工作可以由編程來(lái)實(shí)現(xiàn)定時(shí) 、計(jì)數(shù)和產(chǎn)生計(jì)數(shù)溢出中斷要求的功能 。在構(gòu)成為定時(shí)器時(shí) ,每個(gè)機(jī)器周期加 1 (使用 1
56、2M Hz 時(shí)鐘時(shí) ,每 1us 加 1) ,這樣以機(jī)器周期為基準(zhǔn)可以用來(lái)準(zhǔn)確定時(shí)1S。在構(gòu)成為計(jì)數(shù)器時(shí) ,在相應(yīng)的外部引腳發(fā)生從 1 到 0 的跳變時(shí)計(jì)數(shù)器加 1 ,這樣在計(jì)數(shù)閘門的控制下可以用來(lái)測(cè)量待測(cè)信號(hào)的頻率 。外部輸入每個(gè)機(jī)器周期被采樣一次 ,這樣檢測(cè)一次從1 到 0 的跳變至少需要 2 個(gè)機(jī)器周期 (24 個(gè)振蕩周期) ,所以最大計(jì)數(shù)速率為時(shí)鐘頻率的 1/ 24 。定時(shí)/計(jì)數(shù)器的工作由相應(yīng)的運(yùn)行控制位 TR 控制 ,當(dāng) TR
57、置 1 ,定時(shí)/ 計(jì)數(shù)器開(kāi)始計(jì)數(shù) ;當(dāng) TR 清 0 ,停止計(jì)數(shù) 。</p><p><b> 7 實(shí)驗(yàn)結(jié)果與分析</b></p><p> 通過(guò)前一部分的整形放大可以將正弦波,方波,矩形波變換成相同頻率的矩形波,方便單片機(jī)進(jìn)行測(cè)量,在示波器上觀察,頻率基本不變。經(jīng)過(guò)單片機(jī)的測(cè)量,再在LCD上顯示,誤差也比較小。可以測(cè)量的范圍是0~70K,雖然程序設(shè)置是可以超過(guò)1
58、00K,但在實(shí)際中有差別,并且錯(cuò)誤地進(jìn)行了10分頻。在整形放大部分頻率與輸入頻率相差無(wú)幾,但是在顯示的過(guò)程中,進(jìn)行了十分頻,所以應(yīng)該是程序的顯示部分有問(wèn)題,但是在檢查的過(guò)程中沒(méi)有發(fā)現(xiàn)錯(cuò)誤。</p><p><b> 8 元器件清單</b></p><p><b> 結(jié) 束 語(yǔ)</b></p><p> 通過(guò)本次課程設(shè)
59、計(jì),雖然結(jié)果并不十分理想,但是也學(xué)到了很多東西。不僅加深了對(duì)理論知識(shí)的理解,尤其是對(duì)單片機(jī)基礎(chǔ)知識(shí)的掌握,而且也通過(guò)一次一次的實(shí)踐,提高了動(dòng)手操作能力,相對(duì)對(duì)第一次的制作過(guò)程,這次有了一定的提高,不僅在繪制PCB的過(guò)程,在焊接上也少了很多失誤。在設(shè)計(jì)過(guò)程中,得到了同學(xué)的大力支持和協(xié)助,在此表示衷心的感謝。</p><p><b> 參考文獻(xiàn)</b></p><p>
60、 [1]赫建國(guó)、劉立新、黨劍華.《基于單片機(jī)的頻率計(jì)設(shè)計(jì)》[J] .西安郵電學(xué)院學(xué)報(bào) 2003年 7月 第8卷 第3期</p><p> [2] 曲云霞、郭蘭申、李向東《基于單片機(jī)的頻率計(jì)數(shù)器的設(shè)計(jì)》 [J] .河北工業(yè)大學(xué)學(xué)報(bào) 1999年 12月 第28卷 第6期</p><p> [3]史軍、雷正紅.《數(shù)字頻率計(jì)的設(shè)計(jì)》[J] .河西學(xué)院學(xué)報(bào) 2005年05期</p&g
61、t;<p> [4] 馬場(chǎng)清太郎 譯者:何希才.《運(yùn)算放大器應(yīng)用電路設(shè)計(jì)》[M].科學(xué)出版社.2007年4月</p><p> [5] 龔運(yùn)新.《單片機(jī)C語(yǔ)言開(kāi)發(fā)技術(shù)》[M].清華大學(xué)出版社.2006年10月</p><p> [6]鄒道生、李銘、楊漢祥.《多功能數(shù)字頻率計(jì)的設(shè)計(jì)》[J] . 贛南師范學(xué)院學(xué)報(bào) 2004年03期</p><p>&
62、lt;b> 附錄程序:</b></p><p> #include <reg51.h></p><p> #define SEG P0</p><p> sbit PB0=P2^0;</p><p> sbit RS=P1^0;</p><p> sbit RW=P1^1;&l
63、t;/p><p> sbit E=P1^2;</p><p> char AA[]="freq:";</p><p> char BB[]="HZ";</p><p> char CC[8];</p><p> char disp[5];</p><p&
64、gt; #define count_M1 50000</p><p> #define H_0 (65636-count_M1)/256</p><p> #define L_0 (65636-count_M1)%256</p><p> char times=0,num=0;</p><p> int b,c,m,a=0;<
65、/p><p> char scan=1;</p><p> unsigned long int freq=0;</p><p> void delay(int);</p><p> void measure(void);</p><p> void display(void);</p><p&
66、gt; void init();</p><p> void wr_inst(char);</p><p> void wr_char(char);</p><p> void sj();</p><p> void xs();</p><p><b> main()</b></
67、p><p><b> {init(); </b></p><p><b> while(1)</b></p><p><b> { </b></p><p> measure();</p><p> sj();xs();</p>&l
68、t;p> wr_inst(0x80);</p><p> for(m=0;m<8;m++)</p><p> {wr_char(CC[m]);}</p><p> display();}</p><p><b> }</b></p><p> void measure(vo
69、id)</p><p><b> { </b></p><p><b> IE=0x8a;</b></p><p> TMOD=0x51;</p><p> TH0=H_0;TL0=L_0;</p><p> TH1=0;TL1=0;</p><
70、p> TR0=1;TR1=1;</p><p><b> }</b></p><p> void T0_1S(void)interrupt 1</p><p> { TH0=H_0;TL0=L_0;</p><p><b> times++;</b></p><p
71、> if(times==20)</p><p> { times=0;</p><p> TR1=0;TR0=0;</p><p> freq=num*65536+TH1*256+TL1;</p><p> disp[0]=freq/10000+0x30;</p><p> disp[1]=freq/
72、1000%10+0x30;</p><p> disp[2]=freq/100%10+0x30;</p><p> disp[3]=freq/10%10+0x30;</p><p> disp[4]=freq%10+0x30;</p><p><b> }</b></p><p><
73、b> }</b></p><p> void Tcount_1(void)interrupt 3</p><p><b> {</b></p><p> TH1=0;TL1=0;</p><p><b> num++;</b></p><p>&l
74、t;b> }</b></p><p> void display(void)</p><p> { char i,j,l; </p><p> wr_inst(0xc0);</p><p> for(j=0;j<5;j++){wr_char(AA[j]);}</p><p> f
75、or(i=0;i<5;i++){ wr_char(disp[i]);}</p><p> for(l=0;l<2;l++){wr_char(BB[l]);} </p><p><b> }</b></p><p> void init(void)</p><p> { wr_inst(0x30);
76、</p><p> wr_inst(0x30);</p><p> wr_inst(0x30);</p><p> wr_inst(0x38);</p><p> wr_inst(0x08);</p><p> wr_inst(0x01);</p><p> wr_inst(0x06
77、);</p><p> wr_inst(0x0c);}</p><p> void wr_inst(char inst)</p><p> { P0=inst;</p><p> RS=0;RW=0;E=1;delay(2);E=0;}</p><p> void wr_char(char chardata)
78、</p><p> { P0=chardata;</p><p> RS=1;RW=0;E=1;delay(2);E=0;}</p><p><b> void sj()</b></p><p> { a++;delay(900);</p><p> if(a==60){a=0;b++;
79、}</p><p> if(b==60){b=0;c++;}</p><p> if(c==24){a=b=c=0;} </p><p><b> }</b></p><p> void xs(){CC[7]=a%10+0x30;</p><p> CC[6]=a/10+0x30;&
80、lt;/p><p> CC[5]=':';</p><p> CC[4]=b%10+0x30;</p><p> CC[3]=b/10+0x30;</p><p> CC[2]=':';</p><p> CC[1]=c%10+0x30;</p><p>
81、 CC[0]=c/10+0x30;}</p><p> void delay(int x)</p><p> { int i,j;</p><p> for(i=0;i<x;i++)</p><p> for(j=0;j<120;j++);</p><p><b> }</b>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 課程設(shè)計(jì)——數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 課程設(shè)計(jì)-數(shù)字頻率計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)
- eda數(shù)字頻率計(jì)課程設(shè)計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì) (2)
- eda課程設(shè)計(jì)--數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)報(bào)告
- eda課程設(shè)計(jì)---數(shù)字頻率計(jì)
- 數(shù)字頻率計(jì)課程設(shè)計(jì) (2)
- 數(shù)字頻率計(jì)課程設(shè)計(jì)報(bào)告
- 數(shù)字頻率計(jì)--課程設(shè)計(jì)報(bào)告
- 課程設(shè)計(jì)---eda數(shù)字頻率計(jì)
- eda課程設(shè)計(jì)---數(shù)字頻率計(jì)
評(píng)論
0/150
提交評(píng)論