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

📄 main.c

📁 这是一个基于NC9SDG128B的AD转换源码
💻 C
字号:
#include <hidef.h>      /* common defines and macros */
#include <mc9s12dg128.h>     /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"
#include"sci.h"

uchar ad_value;
uchar vlt;
uchar *ADValue[8];

void AD_Init(void);	             //AD初始化
void display(void);
void delay(void);

void main(void) {
  AD_Init();                     //AD初始化
  SciInit();
  DDRB=0xFF;
  PORTB=0xff; 
  EnableInterrupts;
  for(;;)
  {
       while(!ATD0STAT1_CCF0);    //等待转换结束
	     ad_value= *ADValue[0];
       PORTB = ad_value;    //在B口显示转换值
       display();
  } 
}

/*void AD_Init(void)	//初始化
{
  ATD0CTL2=0xC0;    //
  ATD0CTL3=0x20;    //每个序列4次转换, No FIFO, Freeze模式下继续转换
  ATD0CTL4=0x83;    //8位精度, 2个时钟, ATDClock=[BusClock*0.5]/[PRS+1]  ; PRS=3, divider=8
  ATD0CTL5=0xA0;    //右对齐无符号,单通道采样,通道0 
  ATD0DIEN=0x00;    //禁止数字输入
}   */

void display(void){
  vlt=ad_value/51;
  SciTx(0x30+vlt);
} 


 void AD_Init(void){ 
    ATD0CTL2 = 0xC0;         //AD模块上电, 快速清零, 无等待模式, 禁止外部触发, 中断禁止
    ATD0CTL3 = 0x00;       // 8 bit AD 
    ATD0CTL4 = 0x83;      // 8 bit 10010111        if bus clock=48m,   48/(24*2)=1M; 
    ATD0CTL5 = 0x30; 
    ATD0DIEN = 0x00;      // ATD analog input disable 
    ADValue[0] = &ATD0DR0H; 
    ADValue[1] = &ATD0DR1H; 
    ADValue[2] = &ATD0DR2H; 
    ADValue[3] = &ATD0DR3H; 
    ADValue[4] = &ATD0DR4H; 
    ADValue[5] = &ATD0DR5H; 
    ADValue[6] = &ATD0DR6H; 
    ADValue[7] = &ATD0DR7H; 
}

⌨️ 快捷键说明

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