如何用C8051F340的PCA产生频率可调的PWM?希望有程序,谢谢

如何用C8051F340的PCA产生频率可调的PWM?希望有程序,谢谢,第1张

PCA时钟用T0溢出,

void PCA_Init (void)

{

PCA0MD &=~0x40//关闭开门狗

//0号舵机

PCA0MD=0x04//0000 0100 定时器0溢出,禁止看门狗.

PCA0CPM0=0x42//0100010 使能8位脉宽调制方式

PCA0CPL0=235//

PCA0CPH0=235//初始化为角度为0

}

/***************************************************************************************/

void Counter_Init(void)

{ TCON=0x10 //0001 0000 启动定时器T0&T1

CKCON=0x00 //定时时钟来源 系统时钟12分频( 2MHZ)

TMOD=0x02 //0000 00(计时)10(方式2) Timer0 工作在方式28位计数器自动重载,

TL0=120 //计数器初 值 256-156=100 50HZ(20ms/256 计156次)120 58HZ 150 74HZ 延时20 80 45HZ 延时50

TH0=120 //计数器重载值

}

/*************************************************************************************************/

这是一个延时函数调用delay_ms()

当主函数给i赋值,例如将在主函数中会出现延时语句如 delay_ms(1000);

这表示给i的赋值为1000即可以发现for(i>0i--)delay_1ms()中的i=1000是大于0,因此进行1000次递减,那它递减一次将调用void delay_1ms()函数,递减1000次所用时间为1000ms也就是1s;

另外void delay_1ms()函数根据程序可以知道延时1ms系统将递减3060次;

可以的,c8051系列有用户可擦写flash区,程序放在这个区域就可以通过USB下载,但是整个flash里面可能要有Boot程序,用来写USB的驱动和上位机通信,否则无法识别,简单说就是能用USB升级的只是其中flash的一部分


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

原文地址:https://54852.com/yw/11149129.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存