畢業(yè)設(shè)計(jì)6_數(shù)字頻率計(jì) 論文_第1頁(yè)
畢業(yè)設(shè)計(jì)6_數(shù)字頻率計(jì) 論文_第2頁(yè)
畢業(yè)設(shè)計(jì)6_數(shù)字頻率計(jì) 論文_第3頁(yè)
畢業(yè)設(shè)計(jì)6_數(shù)字頻率計(jì) 論文_第4頁(yè)
畢業(yè)設(shè)計(jì)6_數(shù)字頻率計(jì) 論文_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、數(shù)字頻率計(jì)河南工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書專業(yè):電子信息技術(shù)_班級(jí):0 5 3 5 2_姓名:許娜 _題目:_ 數(shù)字頻率計(jì)_指導(dǎo)教師:胡應(yīng)占_目錄前言 (3摘要 (41. 芯片介紹 (41. 1 10116 (41. 2 74HC04 (41. 3 562 (51. 4 74HC74 (51. 5 AT89C51 (52. 統(tǒng)概述 (82. 1 頻率計(jì)定義 (82. 2 系統(tǒng)的組成 (82. 3 處理方法 (83. 系統(tǒng)硬件設(shè)計(jì) (93. 1 信號(hào)預(yù)處理 (93. 1 .1 濾波、衰減、補(bǔ)償 (93. 1 .2 放大電路 (93. 2 波形轉(zhuǎn)換電路 (103. 3 整形及分頻電路 (113.

2、 4 單片機(jī)復(fù)位電路 (123. 5 單片機(jī)小系統(tǒng)電路 (133. 6 顯示部分 (133 .6.1 顯示電路 (133. 7 整機(jī)工作原理 (164. 系統(tǒng)軟件框圖 (164. 1 系統(tǒng)軟件框圖 (164. 2 數(shù)據(jù)處理過(guò)程 (174. 3 單片機(jī)源程序 (175. 對(duì)單片機(jī)的優(yōu)缺點(diǎn)進(jìn)行分析 (266. 對(duì)本設(shè)計(jì)的改進(jìn)意見(jiàn) (267. 數(shù)字頻率計(jì)原理圖 (278. 參考文獻(xiàn) (299. 結(jié)束語(yǔ) (30前言數(shù)字頻率計(jì)在電子、通訊等領(lǐng)域中的實(shí)驗(yàn)、研究開發(fā)、生產(chǎn)用途非常的廣泛,它可以由邏輯電組成,也可以用單片機(jī)控制。我們知道,計(jì)算機(jī)的發(fā)展經(jīng)歷了從電子管、晶體管、集成電路到大規(guī)模集成電路這四個(gè)發(fā)展階

3、段。目前,計(jì)算機(jī)正在向著巨型化、微型化、網(wǎng)絡(luò)化和智能化等幾個(gè)方向發(fā)展。作為微型計(jì)算機(jī)的重要分支,自1971年世界第一片微處理器芯片INTER4004研制成功以來(lái),單片機(jī)技術(shù)也隨之迅速發(fā)展起來(lái)。而現(xiàn)在單片機(jī)技術(shù)作為一個(gè)非常有發(fā)展前景的計(jì)算機(jī)技術(shù),其應(yīng)用已經(jīng)遍及越來(lái)越多的領(lǐng)域。單片機(jī)實(shí)際上是在半導(dǎo)體集成技術(shù)發(fā)展到一定程度,結(jié)合計(jì)算機(jī)技術(shù)的發(fā)展而出現(xiàn)的。自1976年Intel公司推出MCS48系列8位單片機(jī)后,1980年Intel公司又推出了MCS51系列高檔8位單片機(jī)。所謂的單片機(jī)就是將計(jì)算機(jī)的CPU、存儲(chǔ)器、I/O接口電路、定時(shí)器/計(jì)數(shù)器、中斷部件等計(jì)算機(jī)的功能部件集成在一塊芯片上,形成單芯片的

4、、具備獨(dú)特功能的微型計(jì)算機(jī)。因該芯片具有計(jì)算機(jī)所必須具備的基本部件,因此,單片機(jī)實(shí)際上就是一個(gè)簡(jiǎn)單的微型計(jì)算機(jī)。它的抗干擾能力強(qiáng),工作溫度范圍寬,有很高的可靠性,控制功能強(qiáng),指令系統(tǒng)比通用微機(jī)的指令系統(tǒng)簡(jiǎn)單,具有很高的性價(jià)比。因?yàn)檫壿嬰娐方M成的頻率計(jì),結(jié)構(gòu)復(fù)雜,組裝、調(diào)試比較麻煩;由單片機(jī)控制的頻率計(jì),數(shù)據(jù)采集、計(jì)算、譯碼及量程的自動(dòng)轉(zhuǎn)換,都可以由CPU 來(lái)完成,簡(jiǎn)化了電路,提高了系統(tǒng)的可靠性。摘要本設(shè)計(jì)是以AT89C51為核心的單片機(jī)設(shè)計(jì),在單片機(jī)設(shè)計(jì)中應(yīng)用單片機(jī)的數(shù)字運(yùn)算和控制功能實(shí)現(xiàn)了量程的自動(dòng)切換,滿足了時(shí)間要求和精度要求。1 芯片介紹1.1 1011610116是一個(gè)三運(yùn)算放大器,帶

5、有正、反輸出端,邏輯圖及引腳功能如下: 引腳圖1.2 74HC0474HC04為六反相器Y=/A 引腳圖1.3 562在本計(jì)數(shù)計(jì)中,562主要用于構(gòu)成64分頻的分頻器,原理如下圖: 1.4 74HC7474HC74是一雙D 型正沿觸發(fā)器,帶預(yù)和清除端,其引腳及功能如下: D 觸發(fā)器在這里主要是分頻,它的這種接法是一種二分頻的接法,對(duì)經(jīng)過(guò)562分頻的信號(hào)再一次分頻,進(jìn)一步降低它的頻率,提高單片機(jī)的測(cè)量范圍。1.5 AT89C51單片機(jī)的管腳排列圖,各管腳的功能,關(guān)于此單片機(jī)的介紹AT89c2051與Intel 的51系列兼容。內(nèi)部集成二個(gè)A/D 轉(zhuǎn)換器。它是一個(gè)帶有4KB 可編程只讀存儲(chǔ)器(EE

6、PROM 的低壓高性能8位CMOSE 微型計(jì)算機(jī)。它用ATMEL 的高密非易失存儲(chǔ)技術(shù)制造,并和工業(yè)標(biāo)準(zhǔn)MCS 51指說(shuō)明:*為不穩(wěn)定 引腳圖令集和引腳結(jié)構(gòu)兼容。通過(guò)在單塊芯片上組合通用的CPL1和Flash存儲(chǔ)器,使AT89C51成為一強(qiáng)勁的微型計(jì)算機(jī)。它為許多嵌入式控制應(yīng)用提供了高度靈活和成本低的解決辦法。1.主要性能和MCS-51產(chǎn)品兼容。4KB可重編程Flash存儲(chǔ)器。耐久性:1000次寫/擦除。2.76V的操作范圍。全靜態(tài)操作:0Hz24MHz。2級(jí)加密程序存儲(chǔ)器。128*8位內(nèi)部RAM。32條可編程I/O引線。2個(gè)16位定時(shí)器/計(jì)數(shù)器。6個(gè)中斷源??删幊檀蠻ART通道。直接LED

7、驅(qū)動(dòng)輸出。片內(nèi)模擬比較器。低功耗空載和掉電方式。2. 引腳功能說(shuō)明 AT89C51的引腳結(jié)構(gòu) 2122232425262728293031323334353637383940AT89C51引腳(1Vcc 電源端。 (2GND :接地端。(3P1口:P1口是一8位雙向I/O 口。引腳P1.2P1.7提供內(nèi)部上拉電阻。P1.0和P1.1要求外部上拉電阻。P1.0和P1.1還分別作為片內(nèi)精密模擬比較器的同相輸入(AIN0和反相輸入(AIN1。P1口輸出緩沖器可吸收20mA電流,并能直接驅(qū)動(dòng)LED顯示。當(dāng)P1口引腳寫入“1”時(shí),可用作輸入端。當(dāng)引腳P1.2P1.7用作輸入端并被外部拉低時(shí),將因內(nèi)部的上

8、拉電阻而輸出電流(IIL。P1口還在Flash編程和程序效驗(yàn)期間接收代碼數(shù)據(jù)。(43口:P3口的P3.0P3.5,P3.7是帶有內(nèi)部上拉電阻的7個(gè)雙向I/O引腳。P3.6用于固定輸入片內(nèi)比較器的輸出信號(hào),并且作為一通用I/O引腳而不可訪問(wèn)。P3口緩沖器可吸收20mA電流。當(dāng)P3口引腳寫入“1”時(shí),它們被內(nèi)部 (1作輸入端時(shí),被外部拉低的P3口引腳將用上拉電阻而輸出電流(IIL。P3口還用于實(shí)現(xiàn)AT89C2051的各種功能,如表2-6所列。P3口還接收一些用于Flash存儲(chǔ)器編程和程序效驗(yàn)的控制信號(hào)。(5RST:復(fù)位輸入。RST一旦變成高電平,所有的I/O引腳就復(fù)位到“1”。當(dāng)振蕩器正在運(yùn)行時(shí),

9、持續(xù)給出RST引腳兩個(gè)機(jī)器周期的高電平便可完成復(fù)位。每一個(gè)機(jī)器周期需12個(gè)振蕩器或時(shí)鐘周期。(6XTAL1:作為振蕩器反相放大器的輸入和內(nèi)部時(shí)鐘發(fā)生器的輸入。(7正在運(yùn)行時(shí),持續(xù)給出RST引腳兩個(gè)機(jī)器周期的高電平便可完成復(fù)位。每一個(gè)機(jī)器周期需12個(gè)振蕩器或時(shí)鐘周期。(8XTAL1:作為振蕩器反相放大器的輸入和內(nèi)部時(shí)鐘發(fā)生器的輸入。(9XTAL2:作為振蕩器反相放大器的輸出。2.統(tǒng)概述2.1 頻率計(jì)定義頻率計(jì)為一秒時(shí)間內(nèi)信號(hào)變化的次數(shù)。數(shù)字頻率計(jì)就是在一秒標(biāo)準(zhǔn)時(shí)間內(nèi)測(cè)出信號(hào)變化的次數(shù),然后以數(shù)字的形式顯示出來(lái)。2.2 系統(tǒng)的組成頻率計(jì)是以89c51 、信號(hào)預(yù)處理電路、波形轉(zhuǎn)換電路、波形整形及分頻

10、電路、復(fù)位看門狗電路、CPU電路、顯示電路和系統(tǒng)軟件所組成,其中信號(hào)預(yù)處理電路包含衰減、低通濾波、高頻補(bǔ)償、其作用是對(duì)強(qiáng)信號(hào)的衰減;測(cè)量低頻信號(hào)時(shí),對(duì)高頻進(jìn)行濾除;測(cè)量高頻時(shí)進(jìn)行補(bǔ)償;對(duì)待測(cè)信號(hào)的放大,降低對(duì)待測(cè)信號(hào)的幅度要求。波形轉(zhuǎn)換電路主要由10116及外圍元件組成,實(shí)現(xiàn)把正負(fù)交替的信號(hào)波形變換成可被單片機(jī)接受的TTL/ CMOS兼容信號(hào);波形整形由74HC04、562、74HC74、及外圍元件等組成,復(fù)位電路由1161組成,用于保證系統(tǒng)的可靠運(yùn)行。CPU用Atmel公司的AT89C51芯片。顯示電路由16*2字符型帶背光液晶顯示模塊1602組成。系統(tǒng)硬件框圖如圖1 所示。 圖1 系統(tǒng)硬件

11、框圖系統(tǒng)軟軟件用匯編語(yǔ)言編寫,包括測(cè)量初始化模塊、顯示模塊、信號(hào)頻率測(cè)量模塊。2.3 處理方法本頻率計(jì)的設(shè)計(jì)以AT89C51單片機(jī)為核心,利用它內(nèi)部的定時(shí)/計(jì)數(shù)器完成待測(cè)信號(hào)頻率的測(cè)量。單片機(jī)AT89C51內(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(使用12MHz的時(shí)鐘時(shí),每1us加1,這樣以機(jī)器周期為基準(zhǔn)可以用來(lái)測(cè)量時(shí)間間隔。在構(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的跳

12、變至少需要2個(gè)機(jī)器周期(24個(gè)振蕩周期,所以最大計(jì)數(shù)速率為時(shí)鐘頻率的1/24(使用12MHz的時(shí)鐘時(shí),最大計(jì)數(shù)速率為500kHz。定時(shí)/計(jì)數(shù)器的工作由響應(yīng)的運(yùn)行控制位TR控制,當(dāng)TR置1,定時(shí)/計(jì)數(shù)器開始計(jì)數(shù);當(dāng)TR清0,停止計(jì)數(shù)。為提高頻率穩(wěn)定度,本電路采用24M溫度補(bǔ)償晶振,其最大計(jì)數(shù)為500KHZ,本頻率計(jì)測(cè)頻范圍為1Hz到500KHZ,待測(cè)信號(hào)經(jīng)放大、變換、整形后,一路直接送AT89C51的P3.7口,首先T0為定時(shí),T1為計(jì)數(shù),閘門時(shí)間1S采用硬件及軟件結(jié)合方法實(shí)現(xiàn),計(jì)數(shù)值用三字節(jié)存放,經(jīng)十六進(jìn)制到BCD碼的變換后送顯示。3.系統(tǒng)硬件設(shè)計(jì)3.1信號(hào)預(yù)處理信號(hào)預(yù)處理電路包括濾波、衰減、

13、補(bǔ)償、放大。3.1.1濾波、衰減、補(bǔ)償 待測(cè)信號(hào)經(jīng)0.47uF的隔直通交電容耦合過(guò)來(lái),當(dāng)輸入的信號(hào)電壓較高時(shí)可按下琴鍵K1衰減,輸入的電壓信號(hào)可達(dá)到125V,當(dāng)輸入的信號(hào)頻率較低時(shí),按下琴鍵K2,經(jīng)低通濾波減小干擾信號(hào)對(duì)后級(jí)的影響,信號(hào)經(jīng)高頻補(bǔ)償電路進(jìn)入放大電路。3.1.2 放大電路放大部分采用場(chǎng)效應(yīng)管,靜態(tài)功耗低,而且放大之前有穩(wěn)壓二極管保護(hù)電路,可以對(duì)輸入的電壓進(jìn)行嵌位,防止輸入到CMOS的電壓過(guò)高。由于采用零偏置,當(dāng)輸入信號(hào)為零或者為負(fù)時(shí),場(chǎng)效應(yīng)管夾斷,當(dāng)輸入信號(hào)為正電壓時(shí),場(chǎng)效應(yīng)管導(dǎo)通,零偏置放大器將正負(fù)交替的輸入信號(hào)變成單向脈沖信號(hào),使得輸入信號(hào)在一個(gè)周期內(nèi),產(chǎn)生一個(gè)脈沖信號(hào),以便于

14、對(duì)其計(jì)數(shù)。 3.2 波形轉(zhuǎn)換電路 采用差動(dòng)輸入,提高輸入阻抗和共模抑制比,輸入端提供偏置,使信號(hào)預(yù)處理電路出來(lái)的脈沖信號(hào)通過(guò),信號(hào)經(jīng)放大變?yōu)榉茸銐虼蟮姆讲}沖或近似于方波脈沖的信號(hào)送波形整形電路。3.3 整形電路 由波形轉(zhuǎn)換電路輸出的方波信號(hào)。從波形轉(zhuǎn)換出來(lái)的信號(hào),經(jīng)74HC04整形后去除毛刺又經(jīng)施密特反相器74HC14整形變?yōu)榕c標(biāo)準(zhǔn)的TTL/CMOS電平兼容的方波3.4 單片機(jī)復(fù)位電路 單片機(jī)復(fù)位電路當(dāng)單片機(jī)死機(jī)或掛起的時(shí)候,在1.6秒以內(nèi)計(jì)算機(jī)就不會(huì)給1161脈沖,這時(shí)復(fù)位電路就會(huì)給單片機(jī)以復(fù)位信號(hào),使單片機(jī)重新開始工作。3.5 單片機(jī)小系統(tǒng)電路VCC 單片機(jī)小系統(tǒng)單片機(jī)工作電源為5.0

15、V,C3和R1構(gòu)成單片機(jī)的復(fù)位電路,每一次上電開機(jī)復(fù)位一次。Y1和C1 C2構(gòu)成單片機(jī)的晶振電路,C1 C2使高頻旁路濾波電容。單片機(jī)沒(méi)有外接存儲(chǔ)器,所以31腳接高電平。3.6顯示部分3.6.1 顯示電路16x2字符型帶背光液晶顯示模塊液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在袖珍式儀表和低功耗應(yīng)用系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。這里介紹的字符型液晶模塊是一種用5x7點(diǎn)陣圖形來(lái)顯示字符的液晶顯示器,根據(jù)顯示的容量可以分為1行16個(gè)字、2行16個(gè)字、2行20個(gè)字等等. 外形尺寸:PCB外形:36.4*80毫米液晶屏金屬黑框:34.2*72毫米1602采用標(biāo)準(zhǔn)的16腳接口,其中

16、:第1腳:VSS 為地電源 第2腳:VDD 接5V 正電源第3腳:V0為液晶顯示器對(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í)行命令。第714腳:D0D7

17、為8位雙向數(shù)據(jù)線。 第1516腳:空腳 1602602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表1所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A ”的代碼是01000001B (41H ,顯示時(shí)模塊把地址41H 中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A ”.1602液晶模塊內(nèi)部的控制器共有11條控制指令:它的讀寫操作、屏幕和光標(biāo)的操作都是通過(guò)指令編程來(lái)實(shí)現(xiàn)的。(說(shuō)明:1為高電平、0為低電平指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置指令2:光標(biāo)復(fù)位,光標(biāo)返回到

18、地址00H指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無(wú)效指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(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)陣字符(有些模塊是 D

19、L:高電平時(shí)為8位總線,低電平時(shí)為4位總線指令7:字符發(fā)生器RAM地址設(shè)置指令8:DDRAM地址設(shè)置指令9:讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)指令11:讀數(shù)據(jù)DM-162液晶顯示模塊可以和單片機(jī)AT89C51直接接口,電路如圖1所示。 3.7整機(jī)工作原理待測(cè)信號(hào)經(jīng)預(yù)處理電路之后,變成直流脈沖信號(hào),經(jīng)波形轉(zhuǎn)換電路變換,信號(hào)變成削頂?shù)拿}沖信號(hào),此時(shí)的信號(hào)已近似于方波脈沖,從波形轉(zhuǎn)換早路出來(lái)的信號(hào)分成兩路,一路直接經(jīng)過(guò)整形,變成方波脈沖,送到AT89C51的P3.7端;AT89C51首先對(duì)P3.7端進(jìn)行計(jì)數(shù),則直接

20、將結(jié)果顯示出來(lái),單位為Hz.4.系統(tǒng)軟件的組成4.1 系統(tǒng)軟件框圖 結(jié)構(gòu)框圖系統(tǒng)軟件設(shè)計(jì)采用模塊化設(shè)計(jì)方法。整個(gè)系統(tǒng)由初始化模塊、顯示模塊和信號(hào)頻率測(cè)量模塊等各種功能模塊組成(見(jiàn)圖4 。上電后,進(jìn)入系統(tǒng)初始化模塊,系統(tǒng)軟件開始運(yùn)行。在執(zhí)行過(guò)程中,根據(jù)運(yùn)行流程分別調(diào)用各個(gè)功能模塊完成頻率測(cè)量、測(cè)量結(jié)果顯示。4.2 數(shù)據(jù)處理過(guò)程計(jì)數(shù)值用三個(gè)字節(jié)來(lái)存儲(chǔ),經(jīng)十六進(jìn)制到BCD碼的轉(zhuǎn)換,本頻率計(jì)測(cè)頻范圍為1Hz到500KHZ,待測(cè)信號(hào)經(jīng)放大、變換、整形后,一路直接送AT89C2051的P3.7口,首先T0為計(jì)數(shù)器,T1為定時(shí)器,控制閘門時(shí)間為1秒,閘門時(shí)間1S采用硬件及軟件結(jié)合方法實(shí)現(xiàn),計(jì)數(shù)值用三字節(jié)存放

21、,經(jīng)十六進(jìn)制到BCD 碼的變換后送顯示。4. 3單片機(jī)源程序BEEP BIT P3.7LCD_RS BIT P2.0LCD_RW BIT P2.1LCD_EN BIT P2.2LCD_X EQU 3FH ;LCD 地址變量TIMER_H EQU 30H ;定時(shí)器高位字節(jié)單元TIMER_L EQU 31H ;定時(shí)器低位字節(jié)單元TIMCOUNT EQU 32H ;時(shí)間中斷數(shù)INT_G EQU 35H ;中斷計(jì)數(shù)緩沖單元高地址INT_H EQU 34H ;中斷計(jì)數(shù)緩沖單元中地址INT_L EQU 33H ;中斷計(jì)數(shù)緩沖單元低地址T_S EQU 36H ;數(shù)據(jù)顯示低位T_M EQU 37H ;數(shù)據(jù)顯示

22、中位T_H EQU 38H ;數(shù)據(jù)顯示高位T_G EQU 39H ;數(shù)據(jù)顯示最高位;-ORG 0000HJMP MAIN ;主程序開始ORG 000BHJMP TIMER_INT ;定時(shí)器T0中斷服務(wù)程序ORG 001BH ;定時(shí)器T1中斷服務(wù)程序JMP TIMER1ORG 0030H;- MAIN:MOV SP,#60H ;設(shè)置SP指針LCALL PRO_SET ;初始化CALL SET_LCDLCALL TIM_T0;- ;LCD1602是慢速顯示器件,故100MS顯示一次。;- MAIN1:MOV R5,40MAIN2:ACALL DELAY1 ;3msDJNZ R5,MAIN2ACAL

23、L SBIN_SBCDCALL CONVJMP MAIN1;- ;T1計(jì)數(shù)器中斷服務(wù)子程序;計(jì)T1計(jì)數(shù)器溢出次數(shù);- TIMER1:INC 2AHRETI;- ;初始化程序;- PRO_SET: MOV A,#00HMOV B,#00HMOV 2AH,AMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV INT_H,#00HMOV INT_L,#00HMOV INT_G,#00HMOV T_S,#00HMOV T_H,#00HMOV T_M,#00HMOV T_G,#00HMOV TIMCOUNT,#00HMOV TIMER_H,#04CH ;定時(shí) 50 MSMOV

24、 TIMER_L,#10H ;CLR BEEPSETB P3.5 ;P3.5端口置輸入狀態(tài)RET ;T1(TIMER1的外部輸入腳 ;- ;LCD 初始化設(shè)置;- SET_LCD:CLR LCD_ENCALL INIT_LCD ;初始化 LCDCALL DELAY1MOV DPTR,#INFO1 ;指針指到顯示信息1MOV A,#1 ;顯示在第一行CALL LCD_SHOWMOV DPTR,#INFO2 ;指針指到顯示信息2MOV A,#2 ;顯示在第二行CALL LCD_SHOWRET;- INFO1: DB " CYMOMETER ",0 ;LCD 第一行顯示信息INF

25、O2: DB "FREQ: HZ ",0 ;LCD 第二行顯示信息;- ;LCD 接口初始化;8位I/O控制;- INIT_LCD:MOV A,#38H ;雙列顯示,字形5*7點(diǎn)陣CALL WCOMCALL DELAY1MOV A,#38H ;雙列顯示,字形5*7點(diǎn)陣CALL WCOMCALL DELAY1MOV A,#38H ;雙列顯示,字形5*7點(diǎn)陣CALL WCOMCALL DELAY1MOV A,#0CH ;開顯示,關(guān)光標(biāo),CALL WCOMCALL DELAY1MOV A,#01H ;清除 LCD 顯示屏CALL WCOMCALL DELAY1RET;- LCD_

26、SHOW: ;在LCD的第一行或第二行顯示信息字符CJNE A,#1,LINE2 ;判斷是否為第一行LINE1: MOV A,#80H ;設(shè)置 LCD 的第一行地址CALL WCOM ;寫入命令CALL CLR_LINE ;清除該行字符數(shù)據(jù)MOV A,#80H ;設(shè)置 LCD 的第一行地址CALL WCOM ;寫入命令JMP FILLLINE2: MOV A,#0C0H ;設(shè)置 LCD 的第二行地址CALL WCOM ;寫入命令CALL CLR_LINE ;清除該行字符數(shù)據(jù)MOV A,#0C0H ;設(shè)置 LCD 的第二行地址CALL WCOMFILL: CLR A ;填入字符MOVC A,A+

27、DPTR ;由消息區(qū)取出字符CJNE A,#0,LC1 ;判斷是否為結(jié)束碼RETLC1: CALL WDATA ;寫入數(shù)據(jù)INC DPTR ;指針加1JMP FILL ;繼續(xù)填入字符RET;- CLR_LINE: ;清除該行 LCD 的字符MOV R0,#24CL1: MOV A,#' 'CALL WDATADJNZ R0,CL1RET;-; 寫指令、數(shù)據(jù)使能子程序;-ENABLE: ;寫指令使能CLR LCD_RS ;RS=L,LCD_RW=L,D0-D7=指令碼,E=高脈沖 CLR LCD_RWSETB LCD_ENCALL DELAY0CLR LCD_ENRETENABL

28、E1: ;寫數(shù)據(jù)使能SETB LCD_RS ;RS=H,RW=L,D0-D7=數(shù)據(jù),E=高脈沖CLR LCD_RWSETB LCD_ENCALL DELAY0CLR LCD_ENRETDELAY0: MOV R7,#250 ;延時(shí)500微秒DJNZ R7,$RET;-;寫入命令子程序;-WCOM: ;以8位控制方式將命令寫至LCDMOV P0,A ;寫入命令CALL ENABLERET;-;寫入數(shù)據(jù)子程序;-WDATA: ;以8位控制方式將數(shù)據(jù)寫至LCDMOV P0,A ;寫入數(shù)據(jù)CALL ENABLE1RET;-;在 LCD 第二行顯示字符;A=ASC DATA, B=LINE X POS;

29、- LCDP2: ;在LCD的第二行顯示字符PUSH ACC ;MOV A,B ;設(shè)置顯示地址ADD A,#0C0H ;設(shè)置LCD的第二行地址CALL WCOM ;寫入命令POP ACC ;由堆棧取出ACALL WDATA ;寫入數(shù)據(jù)RET;- ;ASCII 轉(zhuǎn)換并在第二行顯示數(shù)字子程序;- CONV: ; MOV A,T_GMOV LCD_X,#6 ;設(shè)置位置; CALL SHOW_DIG2MOV A,T_H;INC LCD_X ;加載小時(shí)數(shù)據(jù)CALL SHOW_DIG2 ;顯示數(shù)據(jù)MOV A,T_M ;加載分鐘數(shù)據(jù)INC LCD_X ;設(shè)置位置CALL SHOW_DIG2 ;顯示數(shù)據(jù)MOV

30、 A,T_S ;加載秒數(shù)數(shù)據(jù)INC LCD_X ;設(shè)置位置CALL SHOW_DIG2 ;顯示數(shù)據(jù)RET;- SHOW_DIG2:MOV B,#16DIV ABADD A,#30HPUSH BMOV B,LCD_XCALL LCDP2POP BMOV A,BADD A,#30HINC LCD_XMOV B,LCD_XCALL LCDP2RET;- DELAY1: ;延時(shí)3MSMOV R6,#15D2: MOV R7,#100DJNZ R7,$DJNZ R6,D2RET; - 定時(shí)器設(shè)置 -;設(shè)置定時(shí)器0工作在定時(shí)方式1,定時(shí)器1工作在計(jì)數(shù)方式1;- TIM_T0: MOV TMOD,#0D1H

31、MOV TH0,TIMER_H ;設(shè)置定時(shí)初值高位MOV TL0,TIMER_L ;設(shè)置定時(shí)初值低位MOV TH1,#00H ;清T1計(jì)數(shù)器MOV TL1,#00HMOV IE,#8AH ;開中斷總允許,允許T0溢出中斷 SETB PT1SETB TR1SETB TR0 ;定時(shí)器開始工作RET;-;定時(shí)器0中斷服務(wù)程序;- TIMER_INT:CLR TR0 ;關(guān)閉定時(shí)器MOV TL0,TIMER_L ;重新賦初值MOV TH0,TIMER_H ;INC TIMCOUNT ;定時(shí)1S,時(shí)間單位MOV A,TIMCOUNT ;查看數(shù)量值CPL P1.4 ;產(chǎn)生自測(cè)信號(hào)CJNE A,#20,T_E

32、ND ;如果沒(méi)有到1S返回CLR TR1 ;關(guān)閉計(jì)數(shù)器T1MOV TIMCOUNT,#00H ;到1S則清零MOV INT_L,TL1 ;取出計(jì)數(shù)值低位MOV INT_H,TH1 ;取出計(jì)數(shù)值高位MOV INT_G,2AH ;取出溢出計(jì)數(shù)值位MOV TH1,#00HMOV TL1,#00HMOV 2AH,#00HSETB TR1T_END: SETB TR0 ;重新開始定時(shí)操作RETI;- ;三字節(jié)二進(jìn)制整數(shù)轉(zhuǎn)換成四字節(jié)BCD碼子程序;二進(jìn)制數(shù)從低位到高位分別存放在INT_L、INT_H、INT_G單元中;BCD碼從低位到高位分別存放在T_S、T_M、T_H、T_G 單元中;- SBIN_SB

33、CD:PUSH PSWSETB PSW.3 ;設(shè)置當(dāng)前寄存器CLR PSW.4CLR A ;清累加器MOV T_G,AMOV T_H,A ;清除出口單元,準(zhǔn)備轉(zhuǎn)換MOV T_M,AMOV T_S,AMOV R5,INT_GMOV R7,INT_L ;設(shè)置二進(jìn)制數(shù)起始地址MOV R6,INT_HMOV R2,#24CLR CHH1:MOV A,R7RLC AMOV R7,AMOV A,R6RLC AMOV R6,AMOV A,R5RLC AMOV R5,AMOV A,T_S ;得到低位數(shù)據(jù)ADDC A,T_S ;累加DA A ;十進(jìn)制調(diào)整MOV T_S,A ;保存數(shù)據(jù)MOV A,T_M ;得到第二位數(shù)據(jù)ADDC A,T_M ;累加DA A ;十進(jìn)制調(diào)整MOV T_M,A ;保存結(jié)果MOV A,T_H ;得到第三位ADDC A,T_H ;累加DA AMOV T_H,A ;保存MOV A,T_G ;得到第四位ADDC A,T_G ;累加;DA AMOV T_G,ADJNZ R2,HH1 ;POP PSWRET;- END ;告訴編譯器本程序到此結(jié)束。5對(duì)單片機(jī)的優(yōu)缺點(diǎn)進(jìn)行分析首先本設(shè)計(jì)的頻率計(jì)的測(cè)量范圍不大在150

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論