历史上的今天
今天是:2024年10月23日(星期三)
2019年10月23日 | AVR单片机三路PWM程序+仿真电路
2019-10-23 来源:51hei
#include #include #define key1 PINC.0 #define key2 PINC.1 #define key3 PINC.2 #define key4 PINC.3 #define key5 PINC.4 #define key6 PINC.5 void main(void) { unsigned char a=0; unsigned char b=0; unsigned char c=0; PORTB=0x00; DDRB=0xFF; PORTC=0xff; DDRC=0x00; PORTD=0x00; DDRD=0x00; TCCR0=0x00; TCNT0=0x00; TCCR1A=0xA1; //调整输出波形相位(正相) TCCR1B=0x03; // (产生约122.5Hz的PWM信号) //TCCR1B=0x02; // (产生约980.4Hz的PWM信号) TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; //改变此值将改变PWM1的占空比 OCR1BH=0x00; OCR1BL=0x00; //改变此值将改变PWM2占空比 ASSR=0x00; TCCR2=0x64; //调整输出波形相位(正相) (产生约122.5Hz的PWM信号) TCNT2=0x00; OCR2=0x00; //改变此值将改变PWM3的占空比 MCUCR=0x00; while (1) { if (key1==0) //判断PWM1+是否按下 { delay_ms(20); //去抖动 if (key1==0) //再次判断 { if (a!=255) //增加占空比 ++a; else //使占空比比较器最大值保持为255 a=255; OCR1AL=a; }; }; if (key3==0) //判断PWM1+是否按下 { delay_ms(20); //去抖动 if (key3==0) //再次判断 { if (b!=255) //增加占空比 ++b; else //使占空比比较器最大值保持为255 b=255; OCR1BL=b; }; }; if (key4==0) //判断PWM1-是否按下 { delay_ms(20); //去抖动 if (key4==0) //再次判断 { if (b!=0) //减少占空比 --b; else //使占空比比较器最小值保持为0 b=0; OCR1BL=b; }; }; if (key6==0) //判断PWM1-是否按下 { delay_ms(20); //去抖动 if (key6==0) //再次判断 { if (c!=0) //减少占空比 --c; else //使占空比比较器最小值保持为0 c=0; OCR2=c; }; }; //------------------------------------------------------------ delay_ms(40); //控制按键扫描间隔,防止按住不放时变化过快 }; }
下一篇:avr单片机带小数点数码管的程式
史海拾趣
|
这是采用双线串行数字接口的温湿度传感器,与单片机接口非常方便,时序也很简单。 测量的温度/湿度精度很高。我们使用以后觉得很好用,所以,介绍给大家。 特点如下: 相对湿度和温度测量 _ 兼有露点 _ 全标定输出,无需标定即可互换使用 ...… 查看全部问答> |
|
关于IO0PIN指令的疑惑 最近在调一个键盘程序(LPC2103),用到了IO0PIN读端口指令(据说这是飞利浦系列的BUG),发现这个指令没有手册上说的那么简单呐,直接读是读不出来的。有人说要读一个输入状态的端口,要先把它设为输出,然后置高,最后再设 ...… 查看全部问答> |
|
各位手上有什么比较好用的bootloader吗?要求可以将nk.bin文件下载到内存中运行。 有的话给我发推荐一份啊,如果有时间的话麻烦给我发一份。 我的邮箱cy757#21cn.com(#改为@)… 查看全部问答> |
|
波峰面:波的表面均被一层氧化皮覆盖﹐它在沿焊料波的整个长度方向上几乎都保持静态﹐在波峰焊接过程中﹐PCB接触到锡波的前沿表面﹐氧化皮破裂﹐PCB前面的锡波无皲褶地被推向前进﹐这说明整个氧化皮与PCB以同样的速度移动波峰焊机。 焊点成 ...… 查看全部问答> |
|
有个项目用了STM8S105,电池供电(3节镍氢),系统中带DC-DC给功放供电,当DC-DC启动时或输出功率较大时,经常引起MCU复位。 STM8S有没有相应的低电压版本(即管脚,软件都一样,只是工作电压不同的)?… 查看全部问答> |




