打印
[Atmel]

用AtmelStudio6.2跑mega16例程(70)DAC0832

[复制链接]
723|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2014-12-12 21:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
DAC0832是8位的D/A转换器件,转换结果惟电流形式输——为通过DAC0832生成所需要的波形,电路中采用运放uA741将电流信号转换为电压信号。
当输出字节值由0x00-0xFF循环递增时,输出电压值由5V向0v循环递减,从而输出锯齿波。
当输出由0x00 - 0xFF循环递增,再由0xFF- 0x00循环递减时,即形成三角波效果。
使用正弦函数sin生成输出值时,即可得到正弦波。


Ptoteus仿真截图:


Atmel Studio6.2编译通过截图:


程序清单:
/*
* GccApplication33.c
*
* Created: 2014-12-12 21:15:48
*  Author: Administrator
*/

#define  F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <math.h>
#include <stdint.h>
#define  PI 3.1415926


#define  DAC0832 (uint8_t *)0xFFFE
#define  S1_ON() (PINB & _BV(0)) == 0x00
#define  S2_ON() (PINB & _BV(PB1)) == 0x00
#define  S3_ON() (PINB & _BV(PB2)) == 0x00
#define  S4_ON() (PINB & _BV(PB3)) == 0x00

void SawTooth_Wave()
{
        uint8_t i;
        for(i = 0;i<255;i++)
        {
                *DAC0832 = i;
                _delay_ms(3);
                if(!S1_ON()) return;
        }
}

void Triangle_Wave()
{
        uint8_t i;
        for(i=0;i<255;i++)
        {
                *DAC0832 = i;
                _delay_ms(3);
                if(!S2_ON())return;
        }
        for(i = 255;i>0;i--)
        {
                *DAC0832 = i;
                _delay_ms(3);
                if(!S2_ON())return;
        }
}

void Sin_Wave()
{
        float i;
        for(i = 0;i<= 2*PI;i+=0.02)
        {
                *DAC0832 = 128 + sin(i)*127;
                _delay_ms(100);
                if(!S3_ON())return;
        }
}

int main(void)
{
    DDRA = 0xFF;
        DDRB = 0x00;PORTB = 0xFF;
        MCUCR |= 0x80;
        while(1)
    {
        //TODO:: Please write your application code
                if(S1_ON()) SawTooth_Wave();
                else if (S2_ON()) Triangle_Wave();
                else if (S3_ON()) Sin_Wave();
                else if (S4_ON()) *DAC0832 = 0xFF;
                else _delay_ms(100);
    }
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6950

帖子

67

粉丝