利用stc的一款单片机提供的pwm实现变频输出。程序将变频pwm输出到led上作测试。
#include
sfrccon = 0xd8;
sfr cmod = 0xd9;
sfr cl = 0xe9;
sfr ch = 0xf9;
sfr ccap0l = 0xea;
sfr ccap0h = 0xfa;
sfr ccapm0 = 0xda;
sfr ccapm1 = 0xdb;
sbit cr = 0xde;
sbit led = p2^0;
unsigned char duty = 0x80;
unsigned int fre = 0xffff;
void timer0_int (void) interrupt 1 using 1
{
th0 = fre 》》 8;
tl0 = fre & 0xff;
led = ~led;
}
void timer0_init(void)
{
tmod &= 0xf0;/* set timer 0 */
tmod |= 0x1;/* mode 1 */
th0 = 0xff;
tl0 = 0xff;
tr0 = 1;/* enable timer 0 */
et0 = 1;/* enable timer 0 interrupt */
}
void pwm_init(void)
{
cmod = 0x4; // use timer0
cl = 0x0;
ch = 0x0;
ccap0h = duty; //duty cycle
ccapm0 = 0x42; // pwm mode
cr = 1; //start pca timer.
}
voidsoft_delay(unsigned int _1ms)
{
unsigned int tmp;
while(_1ms--!=0) {
for(tmp=0;tmp《144;tmp++);
}
}
void check_key(void)
{
unsigned char key1,key2;
key1 = p1 & 0xf;
soft_delay(20);
key2 = p1 & 0xf;
if(key1 == key2 && key1 != 0xf){
if(key1 == 0xe)
duty += 16;
else if(key1 == 0xd)
duty -= 16;
else if(key1 == 0xb)
fre += 0xff;
else if(key1 == 0x7)
fre -= 0xff;
while((p1 & 0xf) != 0xf);
}
}
void main (void)
{
pwm_init();
timer0_init();
ea= 1;
while(1){
ccap0h = duty;
check_key();
}
富士康退出印度半导体制造项目
变频器使能端子是什么 变频器使能端子的设置
关于振荡恒温金属浴工作原理的简单介绍
谈一谈XRD的精修,Rietveld结构精修能得到什么信息?
无线射频识别芯片可以植入纸张制造智能钞票
stc单片机实现PWM变频输出的设计
同茂音圈电机在心肺复苏机中的运用
高通Wifi7进展太快 高通wifi7芯片宣告wifi7时代到来
手机、PC景气淡 半导体Q3需求不旺 寄望Q4反弹
小米9来了 发布会两大亮点回顾
二极管知识:串联防反接原理 并联防反接原理
设计管理系统消除了ASIC捷径风险
数控机床电气系统故障常用诊断方法
如何用vcs+verdi仿真Verilog文件并查看波形呢?
Hi3861V100创建Wi-Fi驱动应用的步骤
机床的轴越多越好吗,机床五轴该如何选择
TF-A的不同启动阶段有哪些
Arduino的碰撞检测警告系统的工作方式
网易Java程序员两轮面试问题经验
SASE安全厂商「亿格云」获近亿元A轮融资,元璟资本领投,红杉中国加码