⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.c

📁 avr 二氧化碳测量程序 包含源代码
💻 C
字号:
#include<stdio.h>
#include<math.h>
#include<avr/io.h>
#include<avr/interrupt.h>
#include<util/delay.h>
#include<avr/pgmspace.h>
#define uchar unsigned char
#define uint  unsigned int

void _init_USART();
void _tran_USART(uint data);
void _init_ADC();
void _start_ADC();
void _time0_init();
void _init_ADC();
void _start_ADC();
void _result_ADC();

uint baud=25;

int main( )
{
 cli();
 SREG=0x80;
 MCUCR=0x00;
 GICR=0x00;
 TIMSK=0x01;
 _init_USART();
_time0_init();
 _init_ADC();
 sei();

while(1);

}

void _init_USART()
{
  UBRRH=(uchar)(baud>>8);
  UBRRL=(uchar)baud;
  UCSRB=(1<<RXEN)|(1<<TXEN);
  UCSRC=(3<<UCSZ0)|(1<<URSEL);
}


void _tran_USART(uint data)
{

     while(!(UCSRA&(1<<UDRE)));
     UDR=data;
}

void _init_ADC()
{
 uint than=0xe0;
 ADMUX=than;
 ADCSRA=(1<<ADEN)|(1<<ADPS0);
}

void _start_ADC()
{
 ADCSRA|=(1<<ADSC);
}

void _result_ADC()
{
  uint i;
  uint temp;
  uint result=0;
  _init_ADC();

    for(i=0;i<3;i++)
    { 
       _start_ADC();
       while(ADCSRA&(1<<ADSC));
       temp=ADCH;
       result+=temp;
    }

   result=result/20;
   _tran_USART(result);

}
 


void _time0_init()
{
 
 TCNT0=0x00;
 TCCR0=0x01;
 
}

ISR(TIMER0_OVF_vect)
{
 _result_ADC();

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -