您的位置:首页单片机AVR单片机
内容搜索:
阅读内容
背景:#EDF0F5 #FAFBE6 #FFF2E2 #FDE6E0 #F3FFE1 #DAFAF3 #EAEAEF 默认  

ATMega8 AD转换实验程序

[日期:2008-06-06 ] [来源:NET 作者:佚名] [字体: (投递新闻)

//AD转换实验 调节AD0处的滑动变阻器,PB口的led随之变化
//小灯是低电平点亮
//硬件操作:将PB处的短路帽0到7都插上,将PC处的短路帽A0插上

#i nclude <mega8.h>   //头文件
#i nclude <delay.h>   //引用系统自带的延时函数

#define u8  unsigned char
#define u16 unsigned int

//中断向量的对应入口
#define ADC_VREF_TYPE 0x60

bit i=0;
 
//AD中断函数
interrupt [ADC_INT] void adc_isr(void)
{    
      i=1;    //将i置位,则返回主程序后 跳出while循环
}

void init(void)
{
      //IO初始化
      PORTB=0XFF;
      DDRB=0XFF;

      //ad转换相关的寄存器的初始化
      ACSR=0x80; //别忘了关掉模拟比较器的电源哦
      SFIOR=0x00;
      ADMUX=ADC_VREF_TYPE;
      ADCSRA=0x8F;
     
      #asm("sei")   //使能全局中断函数    
}

void main(void)  //主函数
{
      init();
      while (1)
      {    
            i=0;
            ADCSRA|=1<<6;  //启动一次AD转换
            while(i==0)
            {
                  ;
            } 
            PORTB=~ADCH;
            delay_ms(200);    
      }
}

阅读:
录入:JETTA

推荐 】 【 打印
本文评论
      全部评论
发表评论


点评: 字数
姓名:
赞助商广告