主要內(nèi)容
(參數(shù))
設(shè)計(jì)一個(gè)以單片機(jī)為核心的頻率測(cè)量裝置
被測(cè)頻率fx<110Hz,采用測(cè)周法,顯示頻率×××. ×××;fx>110Hz,采用測(cè)頻法,顯示頻率××××××。
利用鍵盤分段測(cè)量和自動(dòng)分段測(cè)量。
完成單脈沖測(cè)量,輸入脈沖寬度范圍是100us~0.1s。
顯示脈沖寬度要求如下。
Tx<1000us,顯示脈沖寬度×××。
Tx>1000us,顯示脈沖寬度××××。
任務(wù)要求
(進(jìn)度)
第1-2天:熟悉課程設(shè)計(jì)任務(wù)及要求,查閱技術(shù)資料,確定設(shè)計(jì)方案。
第3-4天:按照確定的方案設(shè)計(jì)單元電路。要求畫出單元電路圖,元件及元件參數(shù)選擇要有依據(jù),各單元電路的設(shè)計(jì)要有詳細(xì)論述。
第5-6天:軟件設(shè)計(jì),編寫程序。第7-8天:調(diào)試。
第9-10天:撰寫課程設(shè)計(jì)報(bào)告。要求內(nèi)容完整、圖表清晰、文理流暢、格式規(guī)范、方案合理、設(shè)計(jì)正確,篇幅合理。
目 錄
1 系統(tǒng)概述 2
1.1研究背景 2
1.2 發(fā)展現(xiàn)狀 2
1.3 單片機(jī)的發(fā)展 2
2 方案論證與選擇 3
2.1方案初步設(shè)計(jì) 3
2.1.1基于單片機(jī)的頻率計(jì)的設(shè)計(jì) 3
2.1.2基于單片機(jī)頻率計(jì)設(shè)計(jì)的優(yōu)缺點(diǎn) 4
3 系統(tǒng)的硬件設(shè)計(jì) 4
3.1系統(tǒng)硬件電路的設(shè)計(jì) 4
3.1.1 單片機(jī)的管腳 4
3.1.2 單片機(jī)的外圍電路 5
3.1.3 液晶顯示模塊1602 6
3.1.4 硬件電路原理圖 7
3.1.5元器件的選擇 8
4 系統(tǒng)的軟件設(shè)計(jì) 9
4.1 定時(shí)器/計(jì)數(shù)器工作方式的設(shè)置 9
4.2 定時(shí)器/計(jì)數(shù)器開(kāi)啟/關(guān)閉的設(shè)置 10
4.2.1 中斷的設(shè)置 10
4.2.2 液晶顯示模塊1602內(nèi)部的控制指令 11
4.3 系統(tǒng)軟件設(shè)計(jì)中的主要流程圖 13
4.4 系統(tǒng)軟件設(shè)計(jì)中的主要子程序 15
4.4.1 T1計(jì)數(shù)器中斷服務(wù)子程序 15
4.4.2 T0定時(shí)器中斷服務(wù)子程序 16
4.4.3 數(shù)據(jù)處理子程序 16
5 程序的編譯、仿真 18
5.1在Keil環(huán)境下的程序編寫 18
5.2在PROTEUS環(huán)境下的仿真結(jié)果 20
6 結(jié)論 21
7 心得 22
8 參考文獻(xiàn) 23
1 系統(tǒng)概述 1.1研究背景 在電子系統(tǒng)非常廣泛的應(yīng)用領(lǐng)域內(nèi),到處可見(jiàn)到處理離散信息的數(shù)字電路。數(shù)字電路制造工業(yè)的進(jìn)步,使得系統(tǒng)設(shè)計(jì)人員能在更小的空間內(nèi)實(shí)現(xiàn)更多的功能,從而提高了系統(tǒng)的可靠性和速度。集成電路的類型很多,從大的方面可以分為模擬電路和數(shù)字集成電路兩大類。數(shù)字集成電路廣泛用于計(jì)算機(jī)、控制與測(cè)量系統(tǒng),以及其它電子設(shè)備中。一般說(shuō)來(lái),數(shù)字系統(tǒng)中運(yùn)行的電信號(hào),其大小往往并不改變,但在實(shí)踐分布上卻有著嚴(yán)格的要求,這是數(shù)字電路的一個(gè)特點(diǎn)。數(shù)字集成電路作為電子技術(shù)最重要的基礎(chǔ)產(chǎn)品之一,已廣泛地深入到各個(gè)應(yīng)用領(lǐng)域。測(cè)量頻率是電子測(cè)量技術(shù)中最常見(jiàn)的測(cè)量之一,不少物理量的測(cè)量, 如時(shí)間、速度等都涉及到或本身可轉(zhuǎn)化為頻率的測(cè)量。數(shù)字頻率計(jì)是用數(shù)字顯示被測(cè)信號(hào)頻率的儀器,被測(cè)信號(hào)可以是正弦波、方波或其它周期性變化的信號(hào),如配以適當(dāng)?shù)膫鞲衅,可以?duì)多種物理量進(jìn)行測(cè)試,比如機(jī)械振動(dòng)的頻率,轉(zhuǎn)速,聲音的頻率以及產(chǎn)品的計(jì)件等等。 因此,數(shù)字頻率計(jì)是一種應(yīng)用很廣泛的儀器。 1.2 發(fā)展現(xiàn)狀數(shù)字頻率計(jì)發(fā)展到現(xiàn)在,有基于CPLD的數(shù)字頻率計(jì)的設(shè)計(jì),基于VHDL語(yǔ)言的數(shù)字頻率計(jì)的設(shè)計(jì),還有基于單片機(jī)的簡(jiǎn)易數(shù)字頻率計(jì)等。CPLD是一種新興的高密度大規(guī)?删幊踢壿嬈骷,它具有門陣列的高密度和PLD器件的靈活性和易用性,目前已成為一類主要的可編程器件;可編程器件的最大特點(diǎn)是可通過(guò)軟件編程對(duì)其器件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),能隨時(shí)進(jìn)行設(shè)計(jì)調(diào)整而滿足產(chǎn)品升級(jí),使得硬件的設(shè)計(jì)可以如軟件設(shè)計(jì)一樣方便快捷,從而改變了傳統(tǒng)數(shù)字系統(tǒng)及用單片機(jī)構(gòu)成的數(shù)字系統(tǒng)的設(shè)計(jì)方法、設(shè)計(jì)過(guò)程及設(shè)計(jì)概念,使電子設(shè)計(jì)的技術(shù)操作和系統(tǒng)構(gòu)成在整體上發(fā)生了質(zhì)的飛躍。VHDL誕生于1982年,是由美國(guó)國(guó)防部開(kāi)發(fā)的一種快速設(shè)計(jì)電路的工具,目前已經(jīng)成為IEEE的一種工業(yè)標(biāo)準(zhǔn)硬件描述語(yǔ)言;相比傳統(tǒng)的電路系統(tǒng)的設(shè)計(jì)方法,VHDL具有多層次描述系統(tǒng)硬件功能的能力,支持自頂向下(Top to Down)和基于庫(kù)(Library Based)的設(shè)計(jì)的特點(diǎn)。單片機(jī)技術(shù)在短短的20余年間已發(fā)展成為計(jì)算機(jī)技術(shù)中一個(gè)非常有活力的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。 1.3 單片機(jī)的發(fā)展目前計(jì)算機(jī)硬件技術(shù)向巨型化、微型化和單片化三個(gè)方向發(fā)展。自1975年美國(guó)德克薩斯儀器公司第一塊單片機(jī)芯片TMS-1000問(wèn)世以來(lái),在短短的30余年間,單片機(jī)技術(shù)已發(fā)展成為計(jì)算機(jī)技術(shù)中一個(gè)非常有活力的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。按單片機(jī)的生產(chǎn)技術(shù)和應(yīng)用對(duì)象,單片機(jī)先后經(jīng)歷了4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī)幾個(gè)有代表性的發(fā)展階段。 單片機(jī)與通用微機(jī)相比較,在結(jié)構(gòu)、指令設(shè)置上均有其獨(dú)特之處,其主要特點(diǎn)有: 1) 單片機(jī)的存儲(chǔ)器ROM和RAM是嚴(yán)格區(qū)分的,ROM稱為程序存儲(chǔ)器,只存放固定常數(shù)及數(shù)據(jù)。RAM則為數(shù)據(jù)存儲(chǔ)器,用于工作區(qū)及存放用戶數(shù)據(jù)。 - 采用面向控制的指令系統(tǒng)。
- 單片機(jī)的輸入/輸出引腳通常是多功能的。
- 單片機(jī)的外部擴(kuò)展能力強(qiáng)。
從80年代單片機(jī)被引入我國(guó),單片機(jī)已廣泛地應(yīng)用于電子設(shè)計(jì)中。單片機(jī)的應(yīng)用迅速發(fā)展,其性價(jià)比高,大量的外圍接口電路,使基于單片機(jī)的電子系統(tǒng)設(shè)計(jì)方便,周期縮短,而且不斷發(fā)展。新型單片機(jī)支持高級(jí)語(yǔ)言,進(jìn)一步延伸了其發(fā)展空間。 2 方案論證與選擇 測(cè)量頻率有測(cè)頻法和測(cè)周法兩種。 (1)測(cè)頻法,利用外部電平變化引發(fā)的外部中斷,測(cè)算1s內(nèi)的波數(shù),從而實(shí)現(xiàn)對(duì)頻率的測(cè)定; (2)測(cè)周法,通過(guò)測(cè)算某兩次電平變化引發(fā)的中斷之間的時(shí)間,實(shí)現(xiàn)對(duì)頻率的測(cè)定。簡(jiǎn)而言之,測(cè)頻法是直接根據(jù)定義測(cè)定頻率,測(cè)周法是通過(guò)測(cè)定周期間接測(cè)定頻率理論上,測(cè)頻法適用于較高頻率的測(cè)量,測(cè)周法適用于較低頻率的測(cè)量。 經(jīng)過(guò)調(diào)校,在測(cè)量低頻信號(hào)時(shí),本項(xiàng)目中測(cè)頻法精度已高于測(cè)周法,故舍棄測(cè)周法,全量程采用測(cè)頻法。 2.1方案初步設(shè)計(jì)2.1.1基于單片機(jī)的頻率計(jì)的設(shè)計(jì) 設(shè)計(jì)的基于單片機(jī)頻率計(jì)的原理框圖如圖2-1所示:
圖2-1基于單片機(jī)頻率計(jì)的設(shè)計(jì)的原理框圖(見(jiàn)附件)
復(fù)位電路采用上電復(fù)位方式,每次單片機(jī)上電工作時(shí)使單片機(jī)處于復(fù)位狀態(tài),即初始狀態(tài),為測(cè)量頻率作好準(zhǔn)備。 時(shí)鐘電路中片內(nèi)高增益反相放大器通過(guò)XTAL1、XTAL2外接作為反饋元件的晶振(呈感性)與電容組成的并聯(lián)諧振回路構(gòu)成一個(gè)自激振蕩器向內(nèi)部時(shí)鐘電路提供振蕩時(shí)鐘,由此向單片機(jī)提供振蕩脈沖。 AT89C51單片機(jī)內(nèi)部具有2個(gè)16位的定時(shí)器/計(jì)數(shù)器,并可以在定時(shí)或計(jì)數(shù)溢出時(shí)產(chǎn)生中斷。將被測(cè)信號(hào)通過(guò)P3.5口送入單片機(jī),將T0設(shè)置為定時(shí)方式,每50ms產(chǎn)生一次中斷,產(chǎn)生20次中斷所用時(shí)間正好為1S,將T1設(shè)置為計(jì)數(shù)方式,T1的初值設(shè)置為0,計(jì)65535個(gè)脈沖后產(chǎn)生一次溢出中斷,在T1中斷溢出時(shí)對(duì)溢出次數(shù)進(jìn)行計(jì)數(shù)(計(jì)數(shù)值為N)。1S內(nèi)T1計(jì)的總的脈沖數(shù)為65535×N+TH1×256+TL1,這個(gè)數(shù)值就是被測(cè)信號(hào)的頻率值。 單片機(jī)計(jì)的脈沖數(shù)值經(jīng)過(guò)轉(zhuǎn)換送到液晶顯示模塊1602,從而顯示被測(cè)信號(hào)的頻率,測(cè)量結(jié)果用十進(jìn)制表示,很直接。
2.1.2基于單片機(jī)頻率計(jì)設(shè)計(jì)的優(yōu)缺點(diǎn) 優(yōu)點(diǎn):?jiǎn)纹瑱C(jī)在控制領(lǐng)域中有很多優(yōu)點(diǎn),如體積小、成本低、運(yùn)用靈活、抗干擾能力強(qiáng),可以方便地實(shí)現(xiàn)多機(jī)和分布式控制。并且利用單片機(jī)設(shè)計(jì)的頻率計(jì)原理框圖簡(jiǎn)單,所用元器件少,電路不易出錯(cuò),其程序存放在內(nèi)部存儲(chǔ)器上,不需要外部存儲(chǔ)器芯片,使用方法簡(jiǎn)單。且單片機(jī)便宜、穩(wěn)定、開(kāi)發(fā)簡(jiǎn)單、通用性好。 缺點(diǎn):所測(cè)信號(hào)的頻率范圍窄,若要擴(kuò)大頻率范圍需外加分頻器。 而課程設(shè)計(jì)所需要測(cè)得頻率不需要太大,因此不需要外加分頻器。顯示部分用液晶顯示模塊,以使測(cè)量結(jié)果更加直接、明確。
3 系統(tǒng)的硬件設(shè)計(jì) 3.1系統(tǒng)硬件電路的設(shè)計(jì)3.1.1 單片機(jī)的管腳 AT89C51單片機(jī)的管腳排部如圖3-1所示。
主電源引腳 VCC(40腳):接+5V電源正端。 VSS(20腳):接+5V電源地端。 圖3-1AT89C51單片機(jī)的管腳排布 外接晶體引腳 XTAL1(19腳):接外部石英晶體的一端。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。 XTAL2(18腳):接外部石英晶體的另一端。在單片機(jī)內(nèi)部,它是片內(nèi)振蕩器的反相放大器的輸出端。 輸入/輸出引腳 P0口(39~32腳):P0.0~P0.7統(tǒng)稱為P0口,在不接片外存儲(chǔ)器與不擴(kuò)展I/O口時(shí),可作為準(zhǔn)雙向輸入/輸出口。 P1口(1~8腳):P1.0~P1.7統(tǒng)稱為P1口,可作為準(zhǔn)雙向輸入/輸出口使用。 P2口(21~28腳):P2.0~P2.7統(tǒng)稱為P2口,一般可作為準(zhǔn)雙向輸入/輸出口使用;在接有片外存儲(chǔ)器或擴(kuò)展I/O口且尋址范圍超過(guò)256字節(jié)時(shí),P2口用作高8位地址總線。 P3口(10~17腳):P3.0~P3.7統(tǒng)稱為P3口,除作為準(zhǔn)雙向輸入/輸出口使用,還可以將每一位用于第二功能。 控制線 ALE/  (30腳):地址鎖存有效信號(hào)輸出端。  (29腳):片外程序存儲(chǔ)器讀選通信號(hào)輸出端,低電平有效。 RST/VPD(9腳):RST即為RESET,VPD為備用電源。該引腳為單片機(jī)的上電復(fù)位或掉電保護(hù)端。  /VPP(31腳):EA為片外存儲(chǔ)器選用端。該引腳有效(低電平)時(shí),只選用片外程序存儲(chǔ)器,否則單片機(jī)上電或復(fù)位后選用片內(nèi)程序存儲(chǔ)器。 3.1.2 單片機(jī)的外圍電路
1)時(shí)鐘電路 單片機(jī)的定時(shí)控制功能是用片內(nèi)的時(shí)鐘電路和定時(shí)電路來(lái)完成的,而片內(nèi)的時(shí)鐘產(chǎn)生有兩種方式:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式,實(shí)際中常應(yīng)用內(nèi)部時(shí)鐘方式。設(shè)計(jì)的內(nèi)部時(shí)鐘方式圖如圖3-2所示:
圖3-2內(nèi)部時(shí)鐘方式圖 電容在22PF~33PF之間選擇,起微調(diào)作用,在此采用30PF。晶振可采用6MHz或12MHz,但是若用6MHz的晶振,所測(cè)頻率范圍太窄,最高只能測(cè)到250KHz,用12MHz的晶振,最高頻率可測(cè)到500KHz,故在此選用12MHz的晶振。 2)復(fù)位電路  單片機(jī)的復(fù)位電路可采用上電復(fù)位或按扭復(fù)位,實(shí)際中常應(yīng)用上電復(fù)位的方式,設(shè)計(jì)的上電復(fù)位方式圖如圖3-3所示。 圖3-3上電復(fù)位方式圖
3.1.3 液晶顯示模塊1602  液晶顯示器(LCD)具有顯示信息豐富、功耗低、體積小、重量輕、超薄等許多其他顯示器無(wú)法比擬的優(yōu)點(diǎn),近幾年來(lái)被廣泛用于單片機(jī)控制的智能儀器、儀表和低功耗電子產(chǎn)品中。LCD型顯示器的構(gòu)成原理很簡(jiǎn)單,在兩片透明絕緣的有機(jī)薄膜或者玻璃之間均勻充填著液晶流體,底層透明薄膜上鍍有一層導(dǎo)電體,而頂層透明薄膜上則按需要的形狀敷有透明的導(dǎo)電電極,當(dāng)電極通電后,就與下層導(dǎo)電體之間(約10μm)形成一個(gè)電場(chǎng),由于這個(gè)電場(chǎng)的作用,其間的液晶體的透光狀況就發(fā)生了變化,從而對(duì)外來(lái)光線產(chǎn)生了吸收作用,使人們看見(jiàn)了與電極形狀相同的字形顯示。 1602采用標(biāo)準(zhǔn)的16腳接口,從該模塊的正面看,引腳排列從左向右為:1-16腳,1602的管腳排布如圖3-4所示。
圖3-4 1602的管腳排部
其中: 第1腳:VSS為地電源。 第2腳:VDD接5V正電源。 第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。
第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。
第5腳:RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和RW共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫入數(shù)據(jù)。
第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 第15~16腳:空腳。 3.1.4 硬件電路原理圖
設(shè)計(jì)的系統(tǒng)硬件電路原理圖如圖3-5所示。
圖3-5系統(tǒng)硬件電路原理圖
硬件電路圖中,單片機(jī)的  管腳必須接高電平,因?yàn)榻拥碗娖綍r(shí)只選用片外程序存儲(chǔ)器,而試驗(yàn)所用的是片內(nèi)程序存儲(chǔ)器。液晶顯示器1602的VL管腳必須接一個(gè)電位器來(lái)調(diào)節(jié),因?yàn)閂L為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接 地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,對(duì)比度過(guò)弱時(shí),看不到屏幕上顯示的數(shù)據(jù)。 3.1.5元器件的選擇 硬件電路中所選用的元器件的規(guī)格/型號(hào)見(jiàn)表3-1 | | | | | | | | | | | | | | | | 10K/  W | | | 10K/  W | | | | |
表3-1硬件電路中所選用的元器件的規(guī)格/型號(hào)
4 系統(tǒng)的軟件設(shè)計(jì) 4.1 定時(shí)器/計(jì)數(shù)器工作方式的設(shè)置定時(shí)器/計(jì)數(shù)器T0、T1都有四種工作方式,可通過(guò)程序?qū)MOD設(shè)置選擇。TMOD的低四位用于定時(shí)器/計(jì)數(shù)器0,高四位用于定時(shí)器/計(jì)數(shù)器1。TMOD的位定義如圖4-1所示。         

圖4-1TMOD的位定義 C/T:定時(shí)或計(jì)數(shù)功能選擇位,當(dāng)C/T=1時(shí)為計(jì)數(shù)方式;當(dāng)C/T=0時(shí)為定時(shí)方式。 M1、M0:定時(shí)器/計(jì)數(shù)器工作方式選擇位。 GATE:門控位,用于控制定時(shí)器/計(jì)數(shù)器的啟動(dòng)是否受外部中斷請(qǐng)求信號(hào)的影響。一般情況下GATE=0。 當(dāng)M1M0=00時(shí),定時(shí)器/計(jì)數(shù)器設(shè)定為工作方式0,構(gòu)成13位定時(shí)器/計(jì)數(shù)器。計(jì)數(shù)值由下式確定:N=8192-X,式中N為計(jì)數(shù)值,X是THX、TLX的初值。計(jì)數(shù)范圍為1~8192。 定時(shí)時(shí)間由下式確定:T=N ×Tcy =(8192-X)Tcy,式中Tcy為單片機(jī)的機(jī)器周期。如果振蕩頻率為12MHZ,則Tcy=1us,定時(shí)范圍為1~8192us。 當(dāng)M1M0=01時(shí),定時(shí)器/計(jì)數(shù)器設(shè)定為工作方式1,構(gòu)成16位定時(shí)器/計(jì)數(shù)器。在方式1時(shí),計(jì)數(shù)器的計(jì)數(shù)值由下式確定:N=65536-X,計(jì)數(shù)范圍為1~65536。 定時(shí)器的定時(shí)時(shí)間由下式確定:T=N × Tcy =(65536-X)Tcy,如果振蕩頻率為12MHZ,則Tcy=1us,定時(shí)范圍為1~65536 us。 當(dāng)M1M0=10時(shí),定時(shí)器/計(jì)數(shù)器設(shè)定為工作方式2。方式2是自動(dòng)重裝初值的8位定時(shí)器/計(jì)數(shù)器。在方式2時(shí),計(jì)數(shù)器的計(jì)數(shù)值由下式確定:N=256-X,計(jì)數(shù)范圍為1~256。 定時(shí)器的定時(shí)時(shí)間由下式確定:T=N × Tcy =(256-X)Tcy,如果振蕩頻率為12MHZ,則Tcy=1us,定時(shí)范圍為1~256 us. 當(dāng)M1M0=11時(shí),定時(shí)器/計(jì)數(shù)器設(shè)定為工作方式3。方式3只適用于定時(shí)器/計(jì)數(shù)器T0。當(dāng)T0工作在方式3時(shí),TH0和TL0被分成兩個(gè)獨(dú)立的8位計(jì)數(shù)器。方式3下定時(shí)器/計(jì)數(shù)器的定時(shí)、計(jì)數(shù)的范圍和定時(shí)、計(jì)數(shù)值的確定同方式2。 在試驗(yàn)中需將T0設(shè)置為定時(shí)方式,將T1設(shè)置為計(jì)數(shù)方式;定時(shí)器T0定時(shí)50ms,即50000us,需選用工作方式1,即M1M0=01,因此,在編制程序時(shí),將TMOD的高四位設(shè)為0101,低四位設(shè)為0001。 4.2 定時(shí)器/計(jì)數(shù)器開(kāi)啟/關(guān)閉的設(shè)置定時(shí)器/計(jì)數(shù)器的開(kāi)啟和關(guān)閉可通過(guò)控制寄存器TCON來(lái)設(shè)置, TCON的位定義如圖4-2所示。         

圖4-2TCON的位定義 TF0(TF1):T0(T1)定時(shí)器/計(jì)數(shù)器溢出中斷標(biāo)志位。當(dāng)T0(T1)計(jì)數(shù)溢出時(shí),由硬件置位,并在允許中斷的情況下,向CPU發(fā)出中斷請(qǐng)求信號(hào),CPU響應(yīng)中斷轉(zhuǎn)向中斷服務(wù)程序時(shí),由硬件自動(dòng)將該位清零。 TR0(TR1):T0(T1)運(yùn)行控制位。當(dāng)TR0(TR1)=1時(shí)啟動(dòng)T0(T1);TR0(TR1)=0時(shí)關(guān)閉T0(T1)。該位由軟件進(jìn)行設(shè)置。 TCON的低四位與外部中斷有關(guān)。 編寫程序時(shí),若需啟動(dòng)T0(T1),通過(guò)指令SETB TR0 或SETB TR1將TR0(TR1)設(shè)為1,需關(guān)閉T0(T1),通過(guò)指令CLR TR0 或CLR TR1將TR0(TR1)設(shè)為0。 4.2.1 中斷的設(shè)置 所謂中斷是指CPU對(duì)系統(tǒng)中或系統(tǒng)外發(fā)生的某個(gè)事件的一種響應(yīng)過(guò)程,即CPU暫時(shí)停止現(xiàn)行程序的執(zhí)行,而自動(dòng)轉(zhuǎn)去執(zhí)行預(yù)先安排好的處理該事件的服務(wù)子程序。當(dāng)處理結(jié)束后,再返回到被暫停程序的斷點(diǎn)處,繼續(xù)執(zhí)行原來(lái)的程序。實(shí)現(xiàn)這種中斷功能的硬件系統(tǒng)和軟件系統(tǒng)統(tǒng)稱為中斷系統(tǒng)。 試驗(yàn)中涉及到的T0或T1的中斷,中斷的控制可通過(guò)中斷允許寄存器IE來(lái)設(shè)置。IE的位定義如圖4-3所示。
圖4-3IE的位定義 EA:中斷允許總控位。EA=0,屏蔽所有的中斷請(qǐng)求;EA=1,開(kāi)放中斷。EA的作用是使中斷允許形成兩級(jí)控制。即各中斷源首先受EA位的控制;其次還要受各中斷源自己的中斷允許總控位控制。 ET2:定時(shí)器/計(jì)數(shù)器T2的溢出中斷允許位,只用于52子系列。 ES: 串行口中斷允許位。ES=0,禁止串行口中斷;ES=1允許串行口中斷。 ET1:定時(shí)器/計(jì)數(shù)器T1的溢出中斷允許位。ET1=0,禁止T1中斷;ET1=1,允許T1中斷。 EX1:外部中斷1的中斷允許位。EX1=0,禁止外部中斷1中斷;EX1=1,允許外部中斷1中斷。 ET0:定時(shí)器/計(jì)數(shù)器T0的溢出中斷允許位。ET0=0,禁止T0中斷;ET0=1,允許T0中斷。 EX0:外部中斷0的中斷允許位。EX0=0,禁止外部中斷0中斷;ET0=1,允許外部中斷0中斷。 試驗(yàn)中需開(kāi)中斷允許總控位,需允許定時(shí)器T0和T1中斷,因此在編程時(shí)使EA=1,使ET0=1且ET1=1。 中斷源有多種, 每個(gè)中斷源的優(yōu)先級(jí)可通過(guò)中斷優(yōu)先級(jí)寄存器IP進(jìn)行設(shè)置并管理。IP的位定義如圖4-4所示。
圖4-4IP的位定義 PT2: 定時(shí)器/計(jì)數(shù)器T2的中斷優(yōu)先級(jí)控制位。 PS: 串行口的中斷優(yōu)先級(jí)控制位。 PT1:定時(shí)器/計(jì)數(shù)器T1的中斷優(yōu)先級(jí)控制位。 PX1:外部中斷INT1的中斷優(yōu)先級(jí)控制位。 PT0:定時(shí)器/計(jì)數(shù)器T0的中斷優(yōu)先級(jí)控制位 PX0:外部中斷INT0的中斷優(yōu)先級(jí)控制位。 試驗(yàn)中為提高測(cè)量結(jié)果的準(zhǔn)確度,需要將T1的中斷設(shè)置為優(yōu)先,通過(guò)指令SETB PT1來(lái)實(shí)現(xiàn)。 4.2.2 液晶顯示模塊1602內(nèi)部的控制指令 1602液晶模塊內(nèi)部的控制器共有11條指令,控制指令表如表4-1所示:
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 顯示數(shù)據(jù)存儲(chǔ)器地址(ADD) | | | | | | | | | | | | | | | | |
表4-1控制指令表 它的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平) 指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。
指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。
指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效。 指令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)是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo) 。 指令6:功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符 指令7:字符發(fā)生器RAM地址設(shè)置 。 指令8:DDRAM地址設(shè)置 。 指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。 指令10:寫數(shù)據(jù) 。指令11:讀數(shù)據(jù) 。 在對(duì)液晶顯示模塊1602寫入指令或?qū)懭霐?shù)據(jù)前,需要進(jìn)行初始化,如清屏幕,光標(biāo)返回到00H位置,開(kāi)顯示,將液晶模塊設(shè)置為雙行顯示等。編程時(shí),要根據(jù)表3.1來(lái)編制程序,通過(guò)對(duì)RS、RW、D0-D7設(shè)置不同的高低電平來(lái)實(shí)現(xiàn)不同的功能。 4.3 系統(tǒng)軟件設(shè)計(jì)中的主要流程圖設(shè)計(jì)的主程序和T0中斷服務(wù)子程序的流程圖如圖4-5所示。 設(shè)計(jì)的數(shù)據(jù)處理子程序和T1中斷子程序的流程圖如圖4-6所示。
5 程序的編譯、仿真 5.1在Keil環(huán)境下的程序編寫1)建立一個(gè)新工程 單擊 Project 菜單,在彈出的下拉菜單中選中 New Project選項(xiàng),然后選擇你要保存的路徑,輸入工程文件的名字,保存新工程的界面圖如圖5-1所示。 圖5-1新建工程
然后選擇單片機(jī)型號(hào)89c51 2)建立一個(gè)新的文件 單擊“File”菜單,再在下拉菜單中單擊“New”選項(xiàng),此時(shí)光標(biāo)在編輯窗口里閃爍,這時(shí)可以鍵入應(yīng)用程序了,但應(yīng)首先保存空白的文件,單擊菜單上的“File”,在下拉菜單中選中“Save As”選項(xiàng)單擊,屏幕如下圖所示,在“文件名”欄右側(cè)的編輯框中,鍵入欲使用的文件名,同時(shí),必須鍵入正確的擴(kuò)展名。注意,如果用C語(yǔ)言編寫程序,則擴(kuò)展名為(.c);如果用匯編語(yǔ)言編寫程序,則擴(kuò)展名為(.asm),然后單擊“保存”按扭;氐骄庉嫿缑婧,單擊“Target 1”前面的“+”號(hào),然后在“Source Group 1”上擊右鍵,添加文件的界面圖如圖5-2所示。 圖5-2 添加文件 然后單擊“Add File to Group ‘Source Group 1’”, 選中要添加的文件,然后單擊“Add ” 3)輸入源程序,進(jìn)行編譯、仿真 輸入源程序后,單擊“project”按鈕下的“Build project, translate”按鈕,程序無(wú)錯(cuò)誤時(shí)界面圖5-3如圖: 
圖5-3無(wú)錯(cuò)誤界面 4)單擊“Project”菜單,再在下拉菜單中單擊"options for target'target1',出現(xiàn)選擇晶振頻率的界面圖如圖5-4所示。頻率改為12MHz 圖5-4 設(shè)置頻率界面 單擊圖中的“Create HEX File” 選項(xiàng),使程序編譯后產(chǎn)生 HEX 代碼。程序即編寫好。 
5.2在PROTEUS環(huán)境下的仿真結(jié)果
圖5-5輸入頻率為1Hz時(shí)的仿真結(jié)果 
圖5-6輸入頻率為555Hz時(shí)仿真結(jié)果 6 結(jié)論 基于AT89C51單片機(jī)的液晶顯示頻率計(jì)包括單片機(jī)控制模塊和液晶顯示模塊,調(diào)試后的頻率計(jì)可測(cè)量方波、正弦波、脈沖信號(hào)等波形,測(cè)量最高頻率為500KHz,誤差為2Hz。本設(shè)計(jì)的創(chuàng)新點(diǎn)是:顯示部分采用液晶顯示模塊1602,顯示結(jié)果直接且能顯示多行多位,功耗小,使用壽命長(zhǎng)。本設(shè)計(jì)的不足之處是:測(cè)量頻率范圍窄,需要進(jìn)一步擴(kuò)展。
7 心得 通過(guò)這次單片機(jī)課程設(shè)計(jì),讓我感到了做好一件事是不容易的,對(duì)于單片機(jī)這門課,本來(lái)腦子里呈現(xiàn)出來(lái)就是一個(gè)‘難’字,果然,由于自己落下了一些內(nèi)容后,沒(méi)有好好預(yù)習(xí),導(dǎo)致全盤落下,最后搞得好多都不懂,自己也明白到后面的課程設(shè)計(jì)不好做,會(huì)更加難過(guò)。 老師布置任務(wù)后,都很迷茫,然后呢看著那些課程設(shè)計(jì)題目,自己選了一個(gè),基于51單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì),這時(shí)才明白該好好做些事情了,自己開(kāi)始查了好多資料,能用的微乎其微,當(dāng)自己畫好電路圖后,又對(duì)程序開(kāi)始發(fā)愁,又問(wèn)了好多同學(xué)、學(xué)長(zhǎng)還有網(wǎng)上的資料,終于,程序有了,然后運(yùn)行的時(shí)候卻不行了,一直愁困了我好多天,終于在網(wǎng)上找到了答案,至此,課程設(shè)計(jì)基本完成,然后寫報(bào)告。真的,好久沒(méi)有這么認(rèn)真做作業(yè)了,還有一年多時(shí)間,多學(xué)點(diǎn)東西才對(duì)。
0.png (15.22 KB, 下載次數(shù): 56)
下載附件
2018-11-21 19:02 上傳
4.4 系統(tǒng)軟件設(shè)計(jì)中的主要子程序
4.4.1 T1計(jì)數(shù)器中斷服務(wù)子程序
根據(jù)圖3.11中的T1中斷服務(wù)子程序流程圖設(shè)計(jì)的T1計(jì)數(shù)器中斷服務(wù)子程序如下。
TIMER1:
INC 2AH
RETI
4.4.2 T0定時(shí)器中斷服務(wù)子程序
根據(jù)圖3.10中的T0中斷服務(wù)子程序流程圖設(shè)計(jì)的T0定時(shí)器中斷服務(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 TR1
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
RETI
4.4.3 數(shù)據(jù)處理子程序
根據(jù)圖中的數(shù)據(jù)處理子程序流程圖設(shè)計(jì)的數(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 C
SBIN_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 A
MOV T_G, A
MOV A, T_G
DA A
MOV T_G, A
DJNZ R2, SBIN_SBCD1
POP PSW
RET
完整的Word格式文檔51黑下載地址:
201423030309 鐘明超.doc
(802 KB, 下載次數(shù): 155)
2018-11-21 18:22 上傳
點(diǎn)擊文件名下載附件
基于51單片機(jī)的數(shù)字頻率計(jì)的設(shè)計(jì) 下載積分: 黑幣 -5
|