exp9.c

来自「the practice of proteus and avr」· C语言 代码 · 共 34 行

C
34
字号
#include <io8535.h>
#include <intrinsics.h>

#define LEDs  PORTD             //定义输出端口及灯的类型
#define red   0x03
#define green 0x05
#define yellow 0x06

#pragma vector=0x1C
__interrupt void adc_isr(void)  //定义AD转换中断服务程序
{
  unsigned  int adc_data;       //AD转换结果变量
  adc_data=ADC;                 //将10位全部读入变量
  
  if(adc_data>(3*1023)/5)
    LEDs=red;                   //>3V
  else if(adc_data<(2*1023)/5)
    LEDs=yellow;                //<2V
  else
    LEDs=green;
  ADCSR=ADCSR|0x40;             //启动下一次转换
}

void  main(void)
{
  DDRD=0x07;                    //指定第三位为输出
  ADMUX=0x03;                   //选择读通道三数据
  ADCSR=0xCE;                   //启动AD转换,比例因子64,中断使能

  __enable_interrupt();
  while(1)
  ;
}

⌨️ 快捷键说明

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