怎么提高单片机定时器输出PWM的精度

怎么提高单片机定时器输出PWM的精度,第1张

我不知道您用的是硬件PWM还是软件自己编写的PWM,两种方法都可以用您说的方法即延长周期实现,但是这样载波频率就降下来了,对于硬件PWM,尽量提高载频。对于软件PWM,可能频率太低,低到很难接受的程度,因为这时候低通滤波效果不好。

实在要求高精度,还是用DAC吧。

我试了几次都传不上图去,我把管脚定义说一下吧。P1.0—P1.4接5个对地键,分别作为:顺时针、逆时针、停止、加速和减速按键。P3.0接L294的IN1,P3.1接IN2。P3.7接ENA,也就是PWM输出口。另外你也可以用P0和P2口接LED或者LCD显示屏。晶振就用单片机流行的12MHz就行了。我这是用C语言写程序Keil编译。#includesbitMA=P3^0sbitMB=P3^1sbitPWM=P3^7bitKeyFreeunsignedcharPWM_OUTvoidDelay(unsignedchar)//声明延时函数unsignedcharKeyScan(void)voidkeyProcess(unsignedchar)main(){TMOD=0x01TH0=-50000/256TL0=-50000%256IE=0x82TR0=1while(1){keyProcess(KeyScan())}}voidT0_INT()interrupt1//定时器函数控制PWM输出{TH0=-5000/256TL0=-5000%256PWM=1//设置PWM输出Delay(PWM_OUT)PWM=0Delay(100-PWM_OUT)}voidDelay(unsignedcharx){uchariwhile(x--)for(i=0i<200i++)}unsignedcharKeyScan(void){P1|=0x1fif((P1&0x1f)!=0x1f){Delay(10)//延时去抖if((P1&0x1f)!=0x1f){returnP1&0x1f}}returnP1&0x1f}voidkeyProcess(uintkey){if(key==0x1f)/*******************/{/**/KeyFree=1/*软件松手检测*/}/**/else/**/{/**/if(KeyFree==1)/**/{/*******************/KeyFree=0/*******************************************/switch(key){case0x1e:{MA=1MB=0break}case0x1d:{MA=0MB=1break}case0x1b:{PWM_OUT=0break}case0x17:{if(PWM_OUT!=90){PWM_OUT+=30}break}case0x0f:{if(PWM_OUT!=30&&PWM_OUT!=0){PWM_OUT-=30}break}}/*******************************************/}}}

引脚个数:这个主要看封装形式,其引脚分别为44脚(LQFP44封装),40脚(DIP40),48脚(LQFP48),64脚(LQFP64S及LQFP64L封装);

数据存储器大小:4KB(4096);

程序存储器大小:56KB;

内置EEPROM大小:3KB;

次单片机特点:

1. 增强型 8051 CPU,1T,单时钟/机器周期,速度比普通8051快8-12倍

2. 工作电压:2.5V - 5.5V

3. 56K字节片�Flash程序存储器,擦写次数10万次以上

4. 片内大容量4096字节 的SRAM,包括常规的256字节RAM <idata>和内部扩展的3840字节XRAM <xdata>

5. 大容量片内 EEPROM ,擦写次数10万次以上

6. ISP/IAP,在系统可编程/在应用可编程,无需编程器/仿真器

7. 共 8 通道10位高速ADC,速度可达30万次/秒,8路PWM还可当8路D/A使�

8. 6通道15位专门的高精度PWM(带死区控制) + 2通道CCP(利用它的高速脉冲输出功能可实现11~16位PWM)

----可用来再实现8路D/A,或2个16位定时器,或2个外部中断(支持上升沿/下降沿中断)

9. 6路增强型PWM

10. 内部高可靠复位,ISP编程时16级复位门槛电压可选,可彻底省掉外部复位电路

11. 工作频率范围:5MHz ~ 30MHz,相当于普通8051的60MHz~360MHz

12. 内部高精度R/C时钟(±0.3%),±1%温飘(-40℃~+85℃),常温下温飘±0.6%(-20℃~+65℃),ISP编程时内部时钟从5MHz~30MHz可设(5.5296MHz / 6MHz /11.0592MHz / 12MHz /18.432MHz / 20MHz / 22.1184MHz / 24MHz / 27MHz / 30MHz)

13.  一组高速同步串行通信端口SPI.

等等,还有其他特点,可以查阅STC官方datasheet;


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12077159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存