找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 10196|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的數(shù)字頻率計(jì)課程設(shè)計(jì)說(shuō)明書(word文檔下載)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:430730 發(fā)表于 2018-11-21 18:24 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
主要內(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
元器件名稱
規(guī)格/型號(hào)
數(shù)量
單片機(jī)
AT89S51
1pc
瓷片電容
       30PF/63V
    2pc
電解電容
       10μF/25V
    1pc
晶振
       12MHz
    1pc
金屬膜電阻
       10K/W
    1pc
電位器
       10K/W
1pc
液晶顯示屏
1602
1pc

表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所示:

指  令
RS
R/W
E
D7
D6
D5
D4
D3
D2
D1
D0
清顯示
0
0
1
0
0
0
0
0
0
0
1
光標(biāo)返回
0
0
1
0
0
0
0
0
0
1
*
置輸入模式
0
0
1
0
0
0
0
0
1
I/D
S
顯示開(kāi)/關(guān)控制
0
0
1
0
0
0
0
1
D
C
B
光標(biāo)或字符移位
0
0
1
0
0
0
1
S/C
R/L
*
*
置功能
0
0
1
0
0
1
DL
N
F
*
*
置字符發(fā)生存儲(chǔ)器地址
0
0
1
0
1
字符發(fā)生存儲(chǔ)器地址(AGG)
置數(shù)據(jù)存儲(chǔ)器地址
0
0
1
1
顯示數(shù)據(jù)存儲(chǔ)器地址(ADD)
讀忙標(biāo)志或地址
0
1
1
BF
計(jì)數(shù)器地址(AC)
寫數(shù)到CGRAM或DDRAM
1
0
1
要寫的數(shù)
從CGRAM或DDRAM讀數(shù)
1
1
1
讀出的數(shù)據(jù)

表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ì)。



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)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏8 分享淘帖 頂4 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:632361 發(fā)表于 2019-11-26 20:44 | 只看該作者
感謝分享,不錯(cuò)
回復(fù)

使用道具 舉報(bào)

板凳
ID:650098 發(fā)表于 2019-11-27 16:03 來(lái)自手機(jī) | 只看該作者
這個(gè)輸入可以改成555電路嗎
回復(fù)

使用道具 舉報(bào)

地板
ID:508977 發(fā)表于 2019-12-13 15:40 | 只看該作者
有c完整程序么
回復(fù)

使用道具 舉報(bào)

5#
ID:674605 發(fā)表于 2019-12-26 15:13 來(lái)自手機(jī) | 只看該作者
有沒(méi)有全部程序啊
回復(fù)

使用道具 舉報(bào)

6#
ID:703927 發(fā)表于 2020-4-24 10:13 | 只看該作者
有沒(méi)有全部程序啊
回復(fù)

使用道具 舉報(bào)

7#
ID:737141 發(fā)表于 2020-4-24 16:46 | 只看該作者
你好請(qǐng)問(wèn)你的電路可以實(shí)現(xiàn)自檢功能嗎?是具體如何實(shí)現(xiàn)的?
回復(fù)

使用道具 舉報(bào)

8#
ID:582255 發(fā)表于 2020-4-24 21:23 | 只看該作者
樓主厲害,應(yīng)該不是*寶上的
回復(fù)

使用道具 舉報(bào)

9#
ID:188115 發(fā)表于 2021-1-7 02:56 | 只看該作者
感謝分享,只可惜看不到圖片類容!
回復(fù)

使用道具 舉報(bào)

10#
ID:912468 發(fā)表于 2021-12-1 10:34 | 只看該作者
只有匯編程序呀
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表