日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]實現(xiàn)方法:運用PWM輸出功能輸出一定頻率(F)的脈沖,在一定的時間、以一定的頻率輸出的脈沖個數(shù)是確定的。所以根據(jù)所要輸出的脈沖個數(shù)(PlusCount)可以確定輸出脈沖的時間(TimePlus)。 TimePlus=PlusCount/F;定時

實現(xiàn)方法:運用PWM輸出功能輸出一定頻率(F)的脈沖,在一定的時間、以一定的頻率輸出的脈沖個數(shù)是確定的。所以根據(jù)所要輸出的脈沖個數(shù)(PlusCount)可以確定輸出脈沖的時間(TimePlus)。

TimePlus=PlusCount/F;
定時我們采用T0的工作方式3,即自動重裝模式。

EA=1

TMOD=0x02;//自動重裝模式
AUXR = 0x80;//T0 為12T模式
TH0=TL0=256;

void Timer0() interrupt 1
{
TimeCount++;
if(TimeCount==InitCount)
{
CR = TR0=0;//停止T00; // PLUS STOP
TimeCount=0;

}
}

因此,中斷一次的時間(T)為:256us

脈沖輸出方式為:SYSclk/2

因此,F(xiàn)=12M/2/256

所需要中斷的次數(shù)(InitCount)為,

InitCount=TimeCount/T

=PlusCount/F/T = PlusCount/12M/2/256/256us = PlusCount/6

源代碼如下:

#include"stc12cxx.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
unsigned long TimeCount=0,InitCount;
void Init()//初始化子程序
{EA=1;
ET0=1;
P1M0 = 0xff;
P1M1 = 0xff; //Set all P1 as Open-Drain mode
TMOD=0x02;//自動重裝模式
AUXR = 0x00;//T0 為12T模式
TH0=TL0=256;

}
void PWM_heat(uchar pwm_num)
{
CCON = 0;
CL = 0;
CH = 0;
//CMOD = 0x00; //SYSclk/12
CMOD = 0x02; //SYSclk/2
//CMOD = 0x04; //T0產(chǎn)生
CCAP0H = CCAP0L = pwm_num; //占空比
CCAPM0 = 0x42; //脈寬調(diào)節(jié)模式

}
void PulsOut(unsigned long PulsCount)
{
InitCount =PulsCount/6;//(PulsCount/23435)*4000;
PWM_heat(0x7f);
TR0=CR = 1; //啟動1;//啟動T0
}


void main()
{

Init();
PulsOut(234500);
while (1);
{
}
}

void Timer0() interrupt 1
{
TimeCount++;
if(TimeCount==InitCount)
{
CR = TR0=0;//停止T00; // PLUS STOP
TimeCount=0;

}
}


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉