历史上的今天
返回首页

历史上的今天

今天是: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); //控制按键扫描间隔,防止按住不放时变化过快

      };

}



推荐阅读

史海拾趣

锋鸣电子(Fengming)公司的发展小趣事

随着新能源和储能市场的快速发展,福斯特公司也积极拓展相关业务领域。公司不仅关注光伏材料的研发和生产,还将目光投向了动力电池及储能领域。例如,公司推出的铝塑复合膜产品已完成一期2000万平米扩产项目,并计划未来进一步拓展至动力电池及储能领域。这一举措不仅丰富了公司的产品线,还为公司带来了新的增长点和发展机遇。同时,福斯特还加强与新能源产业链上下游企业的合作,共同推动新能源和储能产业的发展。

Datalogic公司的发展小趣事

Datalogic公司自成立以来,一直致力于技术创新。在1990年代,随着电子行业的快速发展,对高精度数据采集和处理的需求日益增加。Datalogic凭借其深厚的技术积累,成功研发出一系列高性能的条码扫描器和数据采集器,这些产品凭借其高效、稳定的表现,迅速在电子行业占据了一席之地。

AINFO Inc公司的发展小趣事

AINFO Inc公司在初创期便明确了其在电子行业中的技术发展方向和市场定位。公司注重技术积累,投入大量资源进行研发,逐步在某一领域取得了技术突破。同时,公司对市场进行了深入调研,确定了目标客户群体和市场需求,为后续的产品开发和市场推广打下了坚实基础。

Hammond公司的发展小趣事

AINFO Inc公司在初创期便明确了其在电子行业中的技术发展方向和市场定位。公司注重技术积累,投入大量资源进行研发,逐步在某一领域取得了技术突破。同时,公司对市场进行了深入调研,确定了目标客户群体和市场需求,为后续的产品开发和市场推广打下了坚实基础。

长运通(CYT)公司的发展小趣事

作为一家高新技术企业,长运通深知技术创新的重要性。公司投入大量资源用于研发,不断推出具有竞争力的新产品。例如,在电源管理IC领域,长运通成功研发出多款高性能、低功耗的产品,满足了客户对于高效、稳定电源管理的需求。在LED光源方面,公司也取得了多项技术突破,推出了多款高效、环保的LED照明产品。这些技术突破和创新不仅提升了公司的市场竞争力,也为公司赢得了更多的客户信任。

BROTHER公司的发展小趣事

随着全球环保意识的提高,BROTHER公司也积极践行环保理念,推动绿色生产。公司注重节能减排和资源循环利用,采用环保材料和生产工艺,减少对环境的影响。同时,BROTHER还开展了一系列环保公益活动,宣传环保理念,提高公众环保意识。通过践行环保理念,BROTHER不仅赢得了社会的认可和尊重,还为公司的可持续发展奠定了坚实基础。

以上五个故事只是BROTHER公司在电子行业发展历程中的一部分缩影。实际上,BROTHER的发展还涉及更多的细节和方面。但无论如何,BROTHER始终坚持创新、质量、服务和环保的理念,不断追求卓越和完美,为电子行业的发展做出了重要贡献。

问答坊 | AI 解惑

嵌入式开发站点集锦

国内有关嵌入式开发的论坛 电子产品世界的论坛[2004年09月30日] http://bbs.edw.com.cn/index.asp 恒颐高科论坛[2004年09月30日] http://www.hyesco.com/forum/index.asp 国内站点 华恒公司的主页,里面有很多的相关资料,有待大家去发现 http://ww ...…

查看全部问答>

介绍一种新型“数字温湿度传感器”

这是采用双线串行数字接口的温湿度传感器,与单片机接口非常方便,时序也很简单。 测量的温度/湿度精度很高。我们使用以后觉得很好用,所以,介绍给大家。 特点如下: 相对湿度和温度测量 _ 兼有露点 _ 全标定输出,无需标定即可互换使用 ...…

查看全部问答>

关于IO0PIN指令的疑惑

关于IO0PIN指令的疑惑 最近在调一个键盘程序(LPC2103),用到了IO0PIN读端口指令(据说这是飞利浦系列的BUG),发现这个指令没有手册上说的那么简单呐,直接读是读不出来的。有人说要读一个输入状态的端口,要先把它设为输出,然后置高,最后再设 ...…

查看全部问答>

?哪里有Wince5.0 Pocket PC SDK

微软下载中心验证我的操作系统不是正版下不下来,请哪为高手帮忙?急需非常感谢!!!!…

查看全部问答>

SIM卡费用问题

我以前没接触过GMS,现在正在开发一个项目,需要用到GSM短信。我手头有个GSM模块的资料,但里面没有有关SIM卡剩余话费。请问各位大侠都是怎么解决的?我希望如果话费余额不足能在软件中提前显示出来。…

查看全部问答>

各位手上有什么比较好用的bootloader吗?要求可以将nk.bin文件下载到内存中运行。

有的话给我发推荐一份啊,如果有时间的话麻烦给我发一份。 我的邮箱cy757#21cn.com(#改为@)…

查看全部问答>

大整数的转换问题

如何实现 大整数 999999999999 与 0xXX 0xXX 的十六进制数组 之间的互换? 请高手们指教~…

查看全部问答>

如何对付SMT的上锡不良

  波峰面:波的表面均被一层氧化皮覆盖﹐它在沿焊料波的整个长度方向上几乎都保持静态﹐在波峰焊接过程中﹐PCB接触到锡波的前沿表面﹐氧化皮破裂﹐PCB前面的锡波无皲褶地被推向前进﹐这说明整个氧化皮与PCB以同样的速度移动波峰焊机。  焊点成 ...…

查看全部问答>

STM8S有相应的低电压版本的吗?

有个项目用了STM8S105,电池供电(3节镍氢),系统中带DC-DC给功放供电,当DC-DC启动时或输出功率较大时,经常引起MCU复位。 STM8S有没有相应的低电压版本(即管脚,软件都一样,只是工作电压不同的)?…

查看全部问答>

STM32rtc有电池,确认起振后是不是就后顾无忧了?

                                 我的问题是如果我有外部电池给RTC供电,只要在厂测试RTC已经工作了后,只要电池有电就不会出现晶振不起振的情况吗 ...…

查看全部问答>