欢迎来到亿配芯城! | 免费注册
你的位置:高云半导体gowin高云FPGA芯片全系列-亿配芯城 > 芯片资讯 > STC单片机如何实现输出固定的脉冲个数
STC单片机如何实现输出固定的脉冲个数
发布日期:2024-11-20 07:56     点击次数:166
实现方法:脉宽调制输出功能(PWM output function)用于输出某一频率(f)的脉冲,确定某一时间某一频率输出的脉冲数。因此,输出脉冲的时间逻辑可以根据要输出的脉冲数(PlusCount)来确定。时间逻辑= plus count/F;我们定期采用T0操作模式3,即自动重装模式。 EA=1TMOD = 0x 02;//自动重新加载模式AUXR = 0x80。//T0为12T模式TH0 = TL0 = 256无效时间0()中断1{时间计数++;如果(时间计数= =初始计数){CR = TR0 = 0;//停止T00//加号停止时间计数= 0;}}因此, 芯片采购平台一次中断的时间(t)是256us。脉冲输出模式为SYSclk/2因此,F=12M/2/256所需的中断数(InitCount)是,初始化计数=时间计数/T=加号/减号/减号=加号/12M/2/256/256us =加号/6源代码如下:#包括“stc12cxx.h”#包括“intrins.h”#定义uchar无符号字符#定义uint无符号int无符号长时间计数=0,初始计数;voninit()//初始化子程序{ EA = 1;ET0=1。P1M0 = 0xff。P1M1 = 0xff//将所有P1设置为开漏模式TMOD = 0x 02;//自动重新加载模式AUXR = 0x00。//T0为12T模式TH0 = TL0 = 256}无效脉宽调制_热量(uchar脉宽调制_数量){CCON = 0;CL = 0;CH = 0;//CMOD = 0x 00;//SYSclk/12CMOD = 0x 02;//SYSclk/2//CMOD = 0x 04;//T0生成CCAP0H = CCAP0L = pwm _ num//占空比CCAPM0 = 0x42//脉宽调整模式}void PulsOut(无符号长脉冲计数){init COunt = PulCOunt/6;//(PulCount/23435)* 4000;脉宽调制_热量(0x7f);TR0 =铬= 1;//开始1;//开始T0}void main(){init();pulsOut(234500);而(1);{}}无效定时器0()中断1{时间计数++;如果(时间计数= =初始计数){CR = TR0 = 0;//停止T00//加号停止时间计数= 0;}}

  • 上一篇:晶体管构成的开关电路图
  • 下一篇:没有了