欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3379|回復(fù): 6
收起左側(cè)

利用單片機(jī)定時(shí)/計(jì)數(shù)器T0實(shí)現(xiàn)對輸入脈沖信號4分頻.怎么弄啊?

[復(fù)制鏈接]
回帖獎勵 1 黑幣 回復(fù)本帖可獲得 1 黑幣獎勵! 每人限 2 次
ID:921257 發(fā)表于 2021-5-26 16:16 | 顯示全部樓層 |閱讀模式
我的理解是單片機(jī)晶振頻率為6mhz,一個(gè)機(jī)器周期2us,實(shí)現(xiàn)四分頻就是變成一個(gè)周期8us,然后編程proteus用示波器顯示出來
程序這樣子,但是我感覺不太對啊,求指導(dǎo)。
# include <reg51.h>
sbit LED0=P1^4;
void main()
{
TMOD = 0x01;
TH0 = 65534/ 256;
TL0 = 65534% 256;
EA = 1; ET0 = 1;
TR0 = 1;
while(1) {; }
}
void T0_int( ) interrupt 1
{
TH0 = 65534 / 256;
TL0 = 65534 % 256;
LED0 = !LED0;
}

回復(fù)

使用道具 舉報(bào)

ID:275826 發(fā)表于 2021-5-26 20:23 | 顯示全部樓層
你程序里沒有輸入信號吧
回復(fù)

使用道具 舉報(bào)

ID:825397 發(fā)表于 2021-5-26 20:29 | 顯示全部樓層
本帖最后由 Tuier 于 2021-5-26 20:35 編輯

#include<reg52.h>

sbit input=P1^0;
sbit output=P1^1;

void main()
{
        TMOD=0x051;                 //模式設(shè)置,定時(shí)計(jì)數(shù)器0用于定時(shí),定時(shí)計(jì)數(shù)器1用于計(jì)數(shù)

        TR0=1; //打開定時(shí)器0
        TR1=1; //開通TR1計(jì)數(shù)器
        TH0=(65536-46080)/256;// 計(jì)時(shí)器每隔50000微秒(晶振11.0592MHz)發(fā)起一次中斷。
        TL0=(65536-46080)%256;

        ET0=1;                         //開定時(shí)器0中斷        
        EA=1;                         //開總中斷
        while(1)
        {//TL1為定時(shí)計(jì)數(shù)器1對應(yīng)的內(nèi)部寄存器的低八位。每當(dāng)外部脈沖由1變?yōu)?時(shí),其值加一。

                if(TL1==2)        //對從T1端口采得的波形四分頻。1為二分頻,2為四分頻,3為6分頻,以此類推。
                                        //每計(jì)數(shù)一次(即采的模擬輸入方波的一個(gè)周期),即執(zhí)行此函數(shù)
                        {
                                output=~output;//模擬方波的周期為100ms,而此處,每隔一個(gè)輸入方波的周期,
                                               //輸出信號電平變換一次,故其周期為200ms,實(shí)現(xiàn)了二分頻。
                                TL1=0;
                        }
        }
}

void timer0() interrupt 1
{
        TH0=(65536-46080)/256;
        TL0=(65536-46080)%256;
        input=~input; //定時(shí)器每隔50ms發(fā)起一次中斷,input電平變換一次,故模擬輸入方波的周期為100ms

}
無標(biāo)題.jpg
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2021-5-26 20:43 | 顯示全部樓層
  1. #include <reg51.h>

  2. sbit LED0=P1^4;

  3. void main()
  4. {
  5.         TMOD = 0x05; //外部脈沖計(jì)數(shù)
  6.         TH0 = 65534/ 256;
  7.         TL0 = 65534% 256;
  8.         EA = 1;
  9.         ET0 = 1;
  10.         TR0 = 1;
  11.         while(1);
  12. }

  13. void T0_int( ) interrupt 1
  14. {
  15.         TH0 = 65534 / 256;
  16.         TL0 = 65534 % 256;
  17.         LED0 = !LED0;
  18. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:825397 發(fā)表于 2021-5-26 20:58 | 顯示全部樓層

#include<reg52.h>

sbit input=P1^0;
sbit output=P1^1;

void main()
{
        TMOD=0x051;                 //模式設(shè)置,定時(shí)計(jì)數(shù)器0用于定時(shí),定時(shí)計(jì)數(shù)器1用于計(jì)數(shù)

        TR0=1; //打開定時(shí)器0
        TR1=1; //開通TR1計(jì)數(shù)器
        TH0=(65536-46080)/256;// 計(jì)時(shí)器每隔50000微秒(晶振11.0592MHz)發(fā)起一次中斷。
        TL0=(65536-46080)%256;

        ET0=1;                         //開定時(shí)器0中斷       
        EA=1;                         //開總中斷
        while(1)
        {//TL1為定時(shí)計(jì)數(shù)器1對應(yīng)的內(nèi)部寄存器的低八位。每當(dāng)外部脈沖由1變?yōu)?時(shí),其值加一。

                if(TL1==2)        //對從T1端口采得的波形四分頻。
                                        //每計(jì)數(shù)一次(即采的模擬輸入方波的一個(gè)周期),即執(zhí)行此函數(shù)
                        {
                                output=~output;//模擬方波的周期為100ms,而此處,每隔一個(gè)輸入方波的周期,
                                               //輸出信號電平變換一次,故其周期為200ms,實(shí)現(xiàn)了二分頻。
                                TL1=0;
                        }
        }
}

void timer0() interrupt 1
{
        TH0=(65536-46080)/256;
        TL0=(65536-46080)%256;
        input=~input; //定時(shí)器每隔50ms發(fā)起一次中斷,input電平變換一次,故模擬輸入方波的周期為100ms

}
無標(biāo)題.jpg
回復(fù)

使用道具 舉報(bào)

ID:927807 發(fā)表于 2021-5-26 21:12 | 顯示全部樓層
于 2021-5-26 20:43 | 只看該作者 #include <reg51.h>  sbit LED0=P1^4;  void main() {         TMOD = 0x05; //外部脈沖計(jì)數(shù)         TH0 = 65534/ 256;          TL0 = 65534% 256;         EA = 1;          ET0 = 1;         TR0 = 1;          while(1); }  void T0_int( ) interrupt 1 {         TH0 = 65534 / 256;          TL0 = 65534 % 256;         LED0 = !LED0; }
回復(fù)

使用道具 舉報(bào)

ID:921257 發(fā)表于 2021-5-26 22:13 | 顯示全部樓層
Tuier 發(fā)表于 2021-5-26 20:58
#include

sbit input=P1^0;

謝謝大哥,我悟了
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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