历史上的今天

今天是:2024年10月21日(星期一)

正在发生

2019年10月21日 | Atmega16l单相逆变器SPWM原理图PCB及源程序

发布者:Xiaoxue666 来源: 51hei关键字:Atmega16l  单相逆变器  SPWM 手机看文章 扫描二维码
随时随地手机看文章

Altium Designer画的原理图和PCB图


Atmega16l单片机源码如下:

#include

#include

#define uint unsigned int

#define uchar unsigned char

uchar zd=0,c=0;

uint iv=0,ii=0,ov=0,oi=0,sj=0,b=0;

uchar table[3]={8,8,8};

#pragma data:code

flash uint table1[]={0X3f,0X06,0X5b,0X4f,0X66,0X6d,0X7d,0X07,0X7f,0X6f,0X77,0X7c,0X39,0X5e,0X79,0X71,0X00,

0X40,0XFF};

flash uint table2[]={

0,5,10,16,21,27,32,38,43,48,54,59,64,69,75,80,85,90,95,100,

105,110,115,120,124,129,134,138,143,147,152,156,160,164,168,172,176,180,184,187,

191,194,198,201,204,207,210,213,216,219,221,224,226,228,230,233,234,236,238,240,

241,242,244,245,246,247,247,248,249,249,249,249,250,249,249,249,249,248,247,247,

246,245,244,242,241,240,238,236,234,233,230,228,226,224,221,219,216,213,210,207,

204,201,198,194,191,187,184,180,176,172,168,164,160,156,152,147,143,138,134,129,

125,120,115,110,105,100,95,90,85,80,75,69,64,59,54,48,43,38,32,27,

21,16,10,5,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0};


flash uint table3[]={

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,

0,0,0,0,

0,5,10,16,21,27,32,38,43,48,54,59,64,69,75,80,85,90,95,100,

105,110,115,120,124,129,134,138,143,147,152,156,160,164,168,172,176,180,184,187,

191,194,198,201,204,207,210,213,216,219,221,224,226,228,230,233,234,236,238,240,

241,242,244,245,246,247,247,248,249,249,249,249,250,249,249,249,249,248,247,247,

246,245,244,242,241,240,238,236,234,233,230,228,226,224,221,219,216,213,210,207,

204,201,198,194,191,187,184,180,176,172,168,164,160,156,152,147,143,138,134,129,

125,120,115,110,105,100,95,90,85,80,75,69,64,59,54,48,43,38,32,27,

21,16,10,5};


#pragma interrupt_handler timer2_capt_isr:5

#pragma interrupt_handler adc_sj:15

void timer2_capt_isr()

{

   TCNT2=5;

   c++;

   if(c>=2)

   {

     c=0;

         OCR1AH=0;

         OCR1AL=table2[b];

         OCR1BH=0;

     OCR1BL=table3[b];

         b++;

         if(b>=288){b=0;zd++;}

   }

}

void timer1_init()

{

    TCCR2=0X01;

        TCNT2=5;

        OCR1AH=0;

        OCR1AL=0;

        OCR1BH=0;

        OCR1BL=0;

        ICR1=250;

        TCCR1A=0XA0;

        TCCR1B=0X11;

}

void init_devices()

{

        DDRD|=BIT(4);

        DDRD|=BIT(5);

        timer1_init();

        MCUCR=0X00;

        GICR=0X00;

        TIMSK=0X40;

        SREG|=BIT(7);

}

void led()//正常指示灯

{

    PORTB|=BIT(3);

        PORTB&=~BIT(4);

}

void led1()//故障指示灯

{

   PORTB&=~BIT(3);

   PORTB|=BIT(4);

}

void led2()//报警指示灯

{

   PORTB|=BIT(4);

   PORTB|=BIT(3);

}

void ad_init(uchar a)//AD转换

{

  // uint sj;

   SFIOR=0;//设置ADC为连续工作模式

   ADMUX=a;//设置那一路ADC转换

   ADCSR=0X80;//ADC转换使能

   ADCSR|=BIT(ADSC);//启动ADC

   ADCSR|=BIT(ADIE);

   SREG|=BIT(7);

//  while(!(ADCSR&(BIT(ADIF))));//等待ADC转换完成

//  sj=ADCL;

//  sj=sj+256*ADCH;

  // ADCSR|=BIT(ADIF);

  // ADCSR=0X00;//关闭ADC

  // return sj;

}


void  show(uchar bai,uchar shi,uchar ge )

{   

         PORTC=table1[bai];

         PORTA|=BIT(7); 

         PORTA&=~BIT(7);

         PORTC=table1[shi];

         PORTA|=BIT(6);

         PORTA&=~BIT(6);

         PORTC=table1[ge];

         PORTA|=BIT(5);

         PORTA&=~BIT(5);

}

void adc_sj()

{

   sj=ADCL;

   sj=sj+256*ADCH;

   ADCSR|=BIT(ADIF);

   ADCSR=0X00;//关闭ADC

}

void  delay(uint ms)

{

           uint  x,y;

          for(x=0;x          {

             for(y=0;y<1141;y++);

          }

}

void main()

{

   uchar f=0;

   uint ci=0;

        DDRC=0XFF;

        DDRA|=BIT(5);

        DDRA|=BIT(6);

        DDRA|=BIT(7);

        PORTC=0X00;

    PORTA&=~BIT(7);

        PORTA&=~BIT(6);

        PORTA&=~BIT(5);

        DDRA&=~BIT(1);

        PORTA&=~BIT(1);

        DDRA&=~BIT(4);

        PORTA&=~BIT(4);

        

    DDRB|=BIT(3);

    DDRB|=BIT(4);

    PORTB&=~BIT(3);

    PORTB&=~BIT(4);

    DDRB|=BIT(6);

    PORTB&=~BIT(6);

    init_devices();

   while(1)

   {

    if(zd>=80)

           {

            zd=0;

                switch(f)

                {

                  case 0: table[0]=1;table[1]=17;table[2]=17;f++;ad_init(0x44);

                  break;

                  case 1:sj=sj/51;iv=sj;table[0]=iv/100;table[1]=iv%100/10;table[2]=iv%10;f++;sj=0;led();

                  break;

                  case 2: table[0]=2;table[1]=17;table[2]=17;f++;

                  break;

……………………



关键字:Atmega16l  单相逆变器  SPWM 引用地址:Atmega16l单相逆变器SPWM原理图PCB及源程序

上一篇:ATmega16单片机蓝牙串口控制程序
下一篇:AVR单片机红外解码程序

推荐阅读

歌尔股份披露了《关于与南宁市人民政府签署战略合作框架协议的公告》。公告显示,歌尔股份与南宁市人民政府于本日签订了《战略合作框架协议》。 公告提到的战略合作框架协议主要内容指出:经双方充分协商,拟在南宁市高新区以自有资金或自筹资金投资建设项目,用于智能耳机、智能音箱、无人机等产品的加工生产。前期项目总投资10亿元人民币,后期投资双方...
0.jpg (58.35 KB, 下载次数: 24)下载附件 保存到相册2018-3-14 05:20 上传单片机源程序如下:#include<intrins.h>#include<stdlib.h>//包含 rand() 这样的随机函数#include "STC12C5A60S2.h"#include "zcy.h"#include "s_12864.h"//////////////////////////////////////////////////////////全局变量volatile long time0_temp1 = 0;volatil...
据台媒联合新闻网报道,相关消息指出,三星最快会在2022年将AMD Radeon GPU设计整合在旗下Exynos处理器上,以借此强化其处理器显示运算性能。 AMD在去年6月份宣布与三星建立合作,预计将把Radeon图像芯片技术导入智能手机应用,而三星在后续也说明此项合作至少长达两年。 报道指出,高通处理器所搭载的Adreno GPU通常在手机显示运算性能有明显突出表现...
广告摘要声明广告撰文 | 潘敏瑶随着移动机器人赛道上的入局者越来越多,行业融资加快,产品也渐趋成熟,行业的竞争愈发激烈,产品同质化等问题逐渐显现。另一方面,移动机器人在应用场景上还处于相对初级的阶段,更多能够快速大规模复制的场景还有待挖掘。在这一赛道上的仙工智能,截至目前已获得总计数亿元融资,投资人包括IDG、普洛斯、科沃斯、华创资...

史海拾趣

问答坊 | AI 解惑

新型的电解电容--QTSTAR电容(导电性高分子铝固体电解电容器)

电解电容器是常用的电子元件,主要应用于滤波、去耦及信号耦合等场合。 1、使用液体电解液的铝电解电容器,由通用电气(GE)公司发表于1908年。 2、使用固态钽电解电容器,由WE和SPRAGUE发表于1953年。 3、使用有有机半导体为电解质的固体OS-CON ...…

查看全部问答∨

程控音频OCL功率放大器.doc

本帖最后由 paulhyde 于 2014-9-15 09:37 编辑 程控音频OCL功率放大器.doc  …

查看全部问答∨

测转速不用编码器,程序怎么写?

大家有啥好方法,共享一下?…

查看全部问答∨

PXA270核心板方案

PXA270核心板方案:   CPU:PXA270   SDRAM:128M   FLASH:32M   接口:USB、SDCARD、SERIAL等   LCD+TOUCH:3.5‘   支持WIFI 方案可提供:SCH + PCB + BOOM + WINCE ...…

查看全部问答∨

哪有wince 4.2 sdk 下的?

弄了一个导航仪,里面是WinCE 4.2的操作系统; 自己的EVC只有5.0的SDK  ,想找个4.2的SDK,找了好久都找不到啊,怎么办啊?…

查看全部问答∨

现在做毕设,有一些问题不是很明白,望大侠指点

  毕设要做一个ARM终端采集静态图像压缩后经GPRS模块以彩信的方式发送到用户手机,最近看了一些资料,懂了一点,但还是有很多不是很明白,望各位做过这方面的朋友多指点一下,谢谢了,呵呵   我现在能够控制GPRS模块拨号上网 ...…

查看全部问答∨

三菱 PLC MX Component 编程 读取块的函数 readBlock(),在C# 中如何调用

   三菱 PLC  MX Component 编程 读取块的函数 readBlock(),在C# 中如何调用。 在三菱编程手册上 有C++格式的函数的格式说明是 readBlock(string szdevice,int size,out lplData) C# 的没有说明。对这个格式有点疑问   ...…

查看全部问答∨

求资料

目前在设计一个PCI,以前没作过,没有资料,不知道哪位兄弟可给点资料呀 可以的话请mailto:darkise@gmail.com 特别是pci specs,pci-sig上要dollars的:( …

查看全部问答∨

十万火急,,这样的延时程序如何写

如附件,,,,我这样的程序如何写延时?? 我的意思是30US的延时我写个1US的延时,,,然后调30次延时程序好不??有朋友有更好的办法不???       请把详细程序写出来....朋友帮忙,+-  代表相差的意思…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved