91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用8051微控制器測(cè)量任何信號(hào)頻率的方式

科技觀察員 ? 來(lái)源:circuitdigest ? 作者:沙希·庫(kù)馬爾 ? 2022-11-17 17:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

頻率定義為每秒的周期數(shù)。它也可以定義為總時(shí)間“T”的倒數(shù)。在本項(xiàng)目中,我們將計(jì)算進(jìn)入8051微控制器端口3.5的脈沖數(shù),并將其顯示在16 * 2 LCD顯示屏上。所以基本上我們測(cè)量了8051端口3.5的信號(hào)頻率。這里我們使用了AT89S528051芯片,在非穩(wěn)定模式下使用555 IC來(lái)生成采樣脈沖進(jìn)行演示。

所需組件:

8051 微控制器 (AT89S52)

16*2液晶顯示屏

頻率源(555 定時(shí)器

電位計(jì)

連接線

電路圖:

poYBAGN2A5iAO2I8AAGVrS21tOE088.png

poYBAGN2A-KAfzu6AAAhVuCJoI8290.png

使用 8051 定時(shí)器測(cè)量頻率:

8051微控制器是一款8位微控制器,具有128字節(jié)的片上RAM,4K字節(jié)的片上ROM,兩個(gè)定時(shí)器,一個(gè)串行端口和四個(gè)8位端口。8052微控制器是微控制器的擴(kuò)展。要將端口 3.5 配置為計(jì)數(shù)器,TMOD 寄存器值設(shè)置為 0x51。下圖顯示了TMOD寄存器。

門(mén) C / T M1 M0 門(mén) C / T M1 M2
定時(shí)器 1 定時(shí)器 0

GATE- 設(shè)置 GATE時(shí),僅當(dāng) INTx 引腳為高電平且 TRx 控制引腳設(shè)置為 TRx 控制引腳時(shí),才會(huì)使能定時(shí)器或計(jì)數(shù)器。當(dāng) GATE 被清除時(shí),只要 TRx 控制位設(shè)置為 U,定時(shí)器就會(huì)啟用。

C / T– 當(dāng)C / T= 0時(shí),它充當(dāng)計(jì)時(shí)器。當(dāng) C/T = 1 時(shí),它充當(dāng)計(jì)數(shù)器。

M1 和M0表示工作模式。

對(duì)于 TMOD = 0x51,定時(shí)器1充當(dāng)計(jì)數(shù)器,并在模式1(16位)下運(yùn)行。

16 * 2 LCD用于以赫茲(Hz)顯示信號(hào)的頻率。如果您不熟悉 16x2 LCD,請(qǐng)?jiān)诖颂幉榭从嘘P(guān) 16x2 LCD 引腳及其命令的更多信息。另請(qǐng)查看如何將液晶屏與8051連接。

555定時(shí)器作為頻率源:
頻率源應(yīng)產(chǎn)生方波,最大幅度限制為5V,因?yàn)?051微控制器的端口無(wú)法處理大于5V的電壓。它可以測(cè)量的最大頻率為655.35 KHz,因?yàn)門(mén)H1和TL1寄存器的內(nèi)存限制(每個(gè)8位)。在 100 毫秒內(nèi),TH1 和 TL1 最多可容納 65535 個(gè)計(jì)數(shù)。因此,可以測(cè)量的最大頻率為 65535 * 10 = 655.35 KHz。

在這個(gè) 8051 頻率計(jì)項(xiàng)目中,我在非穩(wěn)定模式下使用 555 定時(shí)器來(lái)產(chǎn)生可變頻率方波。555 IC產(chǎn)生的信號(hào)頻率可以通過(guò)調(diào)整電位計(jì)來(lái)改變,如本項(xiàng)目結(jié)束時(shí)給出的視頻所示。

在本項(xiàng)目中,Timer1 (T1) 對(duì)進(jìn)入 8051 微控制器端口 3.5 的脈沖數(shù)進(jìn)行 100 毫秒的計(jì)數(shù)。計(jì)數(shù)值將分別存儲(chǔ)在 TH1 和 TL1 寄存器中。為了組合TH1和TL1寄存器的值,使用以下公式。

Pulses = TH1 * (0x100) + TL1
現(xiàn)在,“脈沖”將在 100 毫秒內(nèi)具有周期數(shù)。但信號(hào)的頻率定義為每秒的周期數(shù)。要將其轉(zhuǎn)換為頻率,請(qǐng)使用以下公式。

Pulses = Pulses * 10
工作和代碼解釋:
本項(xiàng)目結(jié)束時(shí)給出了該頻率計(jì)的完整 C 程序。代碼被分成有意義的小塊,并在下面解釋。

對(duì)于與8051微控制器的16 * 2 LCD接口,我們必須定義16 * 2 LCD連接到8051微控制器的引腳。16*2 LCD 的 RS 引腳連接到 P2.7,16*2 LCD 的 RW 引腳連接到 P2.6,16*2 LCD 的 E 引腳連接到 P2.5。數(shù)據(jù)引腳連接到 8051 微控制器的端口 0。

sbit rs=P2^7;
sbit rw=P2^6;
sbit en=P2^5;
接下來(lái),我們必須定義一些在程序中使用的函數(shù)。延遲功能用于創(chuàng)建指定的時(shí)間延遲。Cmdwrt功能用于向16 * 2 LCD顯示器發(fā)送命令。Datawrt功能用于將數(shù)據(jù)發(fā)送到16 * 2 LCD顯示器。

void delay(unsigned int) ;
void cmdwrt(unsigned char);
void datawrt(unsigned char);
在代碼的這一部分中,我們將命令發(fā)送到 16*2 lcd。清除顯示、遞增光標(biāo)、強(qiáng)制光標(biāo)以 1 開(kāi)頭等命令圣在指定的時(shí)間延遲后,線被一一發(fā)送到16 * 2液晶顯示器。

for(i=0;i<5;i++)?
{
cmdwrt (cmd[i]);
delay (1);
}
在代碼的這一部分中,定時(shí)器1配置為計(jì)數(shù)器,操作模式設(shè)置為模式1。

定時(shí)器0配置為定時(shí)器,操作模式設(shè)置為模式1。定時(shí)器1用于計(jì)算脈沖數(shù),定時(shí)器0用于產(chǎn)生延時(shí)。TH1 和 TL1 值設(shè)置為 0,以確保計(jì)數(shù)從 0 開(kāi)始。

TMOD=0x51;
TL1=0;
TH1=0;
在代碼的這一部分中,計(jì)時(shí)器運(yùn)行 100 毫秒。使用延遲功能生成 100 毫秒的延遲。TR1=1 用于啟動(dòng)計(jì)時(shí)器,TR1=0 用于在 100 毫秒后停止計(jì)時(shí)器。

TR1=1;
delay(100);
TR1=0;
在代碼的這一部分中,將 TH1 和 TL1 寄存器中存在的計(jì)數(shù)值組合在一起,然后乘以 10 以獲得 1 秒內(nèi)的總周期數(shù)。

Pulses = TH1*(0x100) + TL1;
Pulses = pulses*10;
在代碼的這一部分中,頻率值被轉(zhuǎn)換為單個(gè)字節(jié),以便于在16 * 2 LCD顯示器上顯示。

d1 = pulses % 10;
s1 = pulses % 100;
s2 = pulses % 1000;
s3 = pulses % 10000;
s4 = pulses % 100000;
d2 = (s1-d1) / 10;
d3 = (s2-s1) / 100;
d4 = (s3-s2) / 1000;
d5 = (s4-s3) / 10000;
d6 = (pulses-s4) / 100000;
在代碼的這一部分中,頻率值的各個(gè)數(shù)字被轉(zhuǎn)換為ASCII格式,并顯示在16 * 2 LCD顯示屏上。

If (pulses>=100000)
datawrt ( 0x30 + d6);
if(pulses>=10000)
datawrt( 0x30 + d5);
if(pulses>=1000)
datawrt( 0x30 + d4);
if(pulses>=100)
datawrt( 0x30 + d3);
if(pulses>=10)
datawrt( 0x30 + d2);
datawrt( 0x30 + d1);
在代碼的這一部分中,我們將命令發(fā)送到 16*2 LCD 顯示器。該命令將復(fù)制到 8051 微控制器的端口 0。對(duì)于命令寫(xiě)入,RS 設(shè)置為低電平。對(duì)于寫(xiě)入操作,RW 設(shè)置為低電平。在使能 (E) 引腳上施加高到低脈沖以啟動(dòng)命令寫(xiě)入操作。

void cmdwrt (unsigned char x)
{
P0=x;
rs=0;
rw=0;
en=1;
delay(1);
en=0;
}
在代碼的這一部分中,我們將數(shù)據(jù)發(fā)送到16 * 2 LCD顯示器。數(shù)據(jù)將復(fù)制到 8051 微控制器的端口 0。RS 設(shè)置為高電平以進(jìn)行命令寫(xiě)入。對(duì)于寫(xiě)入操作,RW 設(shè)置為低電平。在使能(E)引腳上施加高到低脈沖以啟動(dòng)數(shù)據(jù)寫(xiě)入操作。

void datawrt (unsigned char y)
{
P0=y;
rs=1;
rw=0;
en=1;
delay(1);
en=0;
}

pYYBAGN2A-SARL3zAAEGU8ofNNY166.jpg

這就是我們使用8051微控制器測(cè)量任何信號(hào)頻率的方式。

#include



sbit rs=P2^7;

sbit rw=P2^6;

sbit en=P2^5;



void delay(unsigned int) ;

void cmdwrt(unsigned char);

void datawrt(unsigned char);



void main (void)

{

unsigned long int pulses;

unsigned char i;

unsigned int s1,s2,s3,s4;

unsigned char d1,d2,d3,d4,d5,d6;

unsigned char cmd[]={0x38,0x01,0x06,0x0c,0x82};

unsigned char msg[]={"Freq: "};

unsigned char msg2[]={" Hz"};



for(i=0;i<5;i++)?

{

cmdwrt(cmd[i]);

delay(1);

}



while(1)

{

TMOD=0x51;

TL1=0;

TH1=0;



TR1=1;



delay(100);



TR1=0;



pulses= TH1*256 + TL1;

pulses=pulses*10;



d1=pulses%10;

s1=pulses%100;

s2=pulses%1000;

s3=pulses%10000;

s4=pulses%100000;



d2=(s1-d1)/10;

d3=(s2-s1)/100;

d4=(s3-s2)/1000;

d5=(s4-s3)/10000;

d6=(pulses-s4)/100000;



cmdwrt(0x01);

delay(1);



for(i=0;msg[i]!='';i++)

datawrt(msg[i]);



if(pulses>=100000)

datawrt(0x30+d6);

if(pulses>=10000)

datawrt(0x30+d5);

if(pulses>=1000)

datawrt(0x30+d4);

if(pulses>=100)

datawrt(0x30+d3);

if(pulses>=10)

datawrt(0x30+d2);

datawrt(0x30+d1);



for(i=0;msg2[i]!='';i++)

datawrt(msg2[i]);

delay(1000);

}

}





void cmdwrt (unsigned char x)

{

P0=x;

rs=0;

rw=0;

en=1;

delay(1);

en=0;

}



void datawrt (unsigned char y)

{

P0=y;

rs=1;

rw=0;

en=1;

delay(1);

en=0;

}



void delay(unsigned int z)

{

unsigned int p;

for(p=0;p

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微控制器
    +關(guān)注

    關(guān)注

    48

    文章

    8399

    瀏覽量

    164725
  • 8051
    +關(guān)注

    關(guān)注

    3

    文章

    311

    瀏覽量

    53277
  • 信號(hào)頻率
    +關(guān)注

    關(guān)注

    0

    文章

    25

    瀏覽量

    2229
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    8051微控制器架構(gòu)的簡(jiǎn)要說(shuō)明

    此前已經(jīng)介紹了關(guān)于8051微控制器基礎(chǔ)知識(shí)和引腳圖說(shuō)明等相關(guān)知識(shí),而在本文中,將重點(diǎn)介紹8051微控制器的硬件方面內(nèi)容,如 I/O 端口、RAM、ROM、定時(shí)
    發(fā)表于 08-23 14:45 ?3800次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>架構(gòu)的簡(jiǎn)要說(shuō)明

    8051微控制器的基礎(chǔ)知識(shí)

    8051微控制器是嵌入式系統(tǒng)、消費(fèi)電子、汽車等各個(gè)領(lǐng)域中最流行和最常用的微控制器之一,技術(shù)上稱為Intel MCS-51架構(gòu)。8051微控制器
    發(fā)表于 09-12 17:32 ?4273次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的基礎(chǔ)知識(shí)

    8051微控制器指令集和尋址模式

    任何微控制器編寫(xiě)程序包括以特定順序向微控制器發(fā)出命令,這些命令必須按特定順序執(zhí)行才能執(zhí)行特定任務(wù)。微控制器的命令稱為微控制器指令集。
    發(fā)表于 10-11 17:07 ?8394次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>指令集和尋址模式

    #硬聲創(chuàng)作季 微控制器原理:8051微控制器的技術(shù)發(fā)展

    微控制器mcu8051
    Mr_haohao
    發(fā)布于 :2022年11月02日 14:47:16

    基于XCCV3004HQ240芯片的8051微控制器接口設(shè)計(jì)

    接口芯片主要由以下模塊組成:地址解碼邏輯、總線接口狀態(tài)機(jī)、中斷邏輯、用戶可定義寄存組、數(shù)據(jù)輸出多路選擇。其內(nèi)部結(jié)構(gòu)框圖如圖2所示。 3.1 8051微控制器接口
    發(fā)表于 05-24 05:00

    8051架構(gòu)微控制器詳解

    全面剖析久經(jīng)驗(yàn)證的8051架構(gòu)微控制器
    發(fā)表于 02-05 06:17

    討論AVR,ARM,8051和PIC微控制器之間的區(qū)別

    ,8051和PIC微控制器之間的區(qū)別。**AVR,ARM,8051和PIC微控制器之間的區(qū)別**微控制器之間的差異主要包括什么是
    發(fā)表于 11-23 07:24

    用新型微控制器降低8051系統(tǒng)的功耗

    用新型微控制器降低8051系統(tǒng)的功耗
    發(fā)表于 05-04 13:37 ?18次下載

    MAX6901 RTC與8051微控制器的接口

    要:該應(yīng)用筆記演示了MAX6901與8051微控制器的連接方式,并提供了基本的接口程序例程。本文采用的微控制器是DS2250,軟件用C語(yǔ)言編寫(xiě)。 MAX6901引腳配置
    發(fā)表于 04-21 11:12 ?977次閱讀
    MAX6901 RTC與<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    DS1302 RTC與8051微控制器的接口

    摘要:本應(yīng)用筆記說(shuō)明了DS1302 RTC通過(guò)3線接口與8051微控制器的連接方式,設(shè)計(jì)實(shí)例包括電路原理圖和C語(yǔ)言接口程序。 DS1302引腳配置
    發(fā)表于 04-21 11:14 ?2510次閱讀
    DS1302 RTC與<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>的接口

    如何用微控制器測(cè)量電容

    微控制器廣泛用于測(cè)量各種物理變量。測(cè)量中涉及的技術(shù)對(duì)于單個(gè)變量類型可能有所不同,并且主要基于要測(cè)量的變量的特性。本教程介紹了一些使用微控制器
    的頭像 發(fā)表于 12-06 14:54 ?3569次閱讀
    如何用<b class='flag-5'>微控制器</b><b class='flag-5'>測(cè)量</b>電容

    C8051F330和C8051F331微控制器的數(shù)據(jù)手冊(cè)

    本文檔的主要內(nèi)容詳細(xì)介紹的是C8051F330和C8051F331微控制器的數(shù)據(jù)手冊(cè)免費(fèi)下載。
    發(fā)表于 03-03 17:29 ?18次下載
    C<b class='flag-5'>8051</b>F330和C<b class='flag-5'>8051</b>F331<b class='flag-5'>微控制器</b>的數(shù)據(jù)手冊(cè)

    8051微控制器引腳說(shuō)明與基本電路

    此前已經(jīng)介紹過(guò)8051微控制器的基礎(chǔ)知識(shí),包括它的歷史、特性、封裝和一些實(shí)際應(yīng)用。在本文中,小編將將繼續(xù)介紹關(guān)于8051微控制器引腳圖、引腳說(shuō)明以及其他一些細(xì)節(jié)內(nèi)容,包括
    發(fā)表于 08-23 15:53 ?1.1w次閱讀
    <b class='flag-5'>8051</b><b class='flag-5'>微控制器</b>引腳說(shuō)明與基本電路

    如何使用觸摸傳感8051微控制器控制LED燈

    在這個(gè)項(xiàng)目中,我們將觸摸傳感8051 微控制器 AT89S52 連接。如果您是 8051 微控制器的新手,那么您可以從LED 閃爍開(kāi)始
    的頭像 發(fā)表于 09-07 15:13 ?4434次閱讀
    如何使用觸摸傳感<b class='flag-5'>器</b>和<b class='flag-5'>8051</b><b class='flag-5'>微控制器</b><b class='flag-5'>控制</b>LED燈

    將基于8051微控制器連接到SCI端口

    本應(yīng)用筆記介紹如何配置高速微控制器或超高速閃存微控制器的UART,以便與支持SCI的設(shè)備通信。它首先簡(jiǎn)要討論了SCI和UART模塊之間的差異,并以一個(gè)實(shí)際示例結(jié)束,說(shuō)明如何配置基于8051的達(dá)拉斯半導(dǎo)體
    的頭像 發(fā)表于 06-13 15:48 ?1447次閱讀
    將基于<b class='flag-5'>8051</b>的<b class='flag-5'>微控制器</b>連接到SCI端口