您现在的位置是:主页 > news > 平顶山公司做网站/重庆网站建设技术外包
平顶山公司做网站/重庆网站建设技术外包
admin2025/5/23 6:21:36【news】
简介平顶山公司做网站,重庆网站建设技术外包,运营电商,广州做网站seo今天做了个PWM占空比调节的例子,已经调试通过,供大家参考.以下是原理图:(原文件名:PWM 调节实例原理图.jpg)以下是程序清单:#include "iom16v.h"#define SLEEP() asm("sleep")#define WDR() asm("wdr")#define NOP() asm("nop"…
今天做了个PWM占空比调节的例子,已经调试通过,供大家参考.
以下是原理图:
(原文件名:PWM 调节实例原理图.jpg)
以下是程序清单:
#include "iom16v.h"
#define SLEEP() asm("sleep")
#define WDR() asm("wdr")
#define NOP() asm("nop")
#define KEY1 (1<<6)
#define KEY2 (1<<7)
//------------------------------------------------------------------
//000000000000000000000000000000000000000000000000000000000000000000
//------------------------------------------------------------------
//按键子程序:
char key1_ci=0,key1_down=0;
char key2_ci=0,key2_down=0;
void kb_scan_pro()
{
if(!(PINB&KEY1))
{
if(!key1_down)
{ key1_ci++;
if(key1_ci>=200)
{ OCR1A++; //按键KEY1按下,则增大OCR1A,占空比增大
key1_ci=0;
key1_down=1;
}
}
}
else
key1_down=0;
if(!(PINB&KEY2))
{if(!key2_down)
{
key2_ci++;
if(key2_ci>=200)
{
OCR1A--; //按键KEY2按下,则减小OCR1A,占空比减小
key2_ci=0;
key2_down=1;
}
}
}
else
key2_down=0;
}
//按键子程序结束.
//------------------------------------------------------------------
//000000000000000000000000000000000000000000000000000000000000000000
//------------------------------------------------------------------
//主程序开始:
void main()
{
PORTA=PORTB=PORTC=PORTD=0x00;
DDRA=DDRB=DDRC=DDRD=0xff;
DDRB&=~(KEY1|KEY2); //按键输入
PORTB|=(KEY1|KEY2);
SFIOR&=~(1<
//SREG|=1<<7; //状态寄存器
WDTCR=(1<
TCCR1A=0B10000001; //比较匹配时清零OC1A/OC1B, OC1A/OC1B在TOP 时置位 这样OCR1A越大,则占空比越大
TCCR1B=0B00001001; //WGM13:0=5,快速PWM, TOP=0X00FF
OCR1A=100;
while(1)
{
kb_scan_pro();
WDR();
}
}
//------------------------------------------------------------------
//000000000000000000000000000000000000000000000000000000000000000000
//------------------------------------------------------------------