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

📄 main.c

📁 freescale 9s12dp256单片机AD转换原代码
💻 C
字号:
/***************************************************************************************
*					             
*		(c) copyright 2005,Tongji-Freescale Automobile Electronic Aligned Lab,ShangHai,China
*
*						         All Rights Reserved
*
*
* File Name				: AD
*
* Programmer(s)			: Wukai
*	
* Date Created			: 2005.07.16
*
* Current Revision		: V1.0
*
* Modification History	: 
*
* Description			: 
*
***************************************************************************************/

#include <hidef.h>      /* common defines and macros */
#include <mc9s12dp256.h>     /* derivative information */


#pragma LINK_INFO DERIVATIVE "mc9s12dp256b"

unsigned int ad2pwm[2];

#pragma CODE_SEG DEFAULT

/*PORTS初始化程序*/
void PORTSInit(void)		
{

DDRS=0xff;						/*PORTS定义为输出*/
PTS=0xff;						  /*初始化为低*/	
}



/* AD初始化程序 */
void ADInit(void)
{
ATD0CTL2=0x80;					/* 选择normalAD模式 */
ATD0CTL3=0x18;					/* 选择连续读2个通道 */
ATD0CTL4=0x23;					/* 选择AD的clk为系统时钟8分频 */
}

/* AD转换值读取程序 */
void TMP_READ(unsigned int *p)
{
 ATD0CTL5=0x90;						   /* 10bit模式,无符号,多通道连续读取,选择从AN00通道读起,启动转换 */
 while(ATD0STAT0_SCF==0);		 /* 等待AD转换结束 */
 ATD0STAT0_SCF=1;						 /* 清AD转换结束标志 */
 *p=ATD0DR0;								 /* AN00转换值 */
 *(p+1)=ATD0DR1;						 /* AN01转换值 */

}


void main(void) 
{
  /* put your own code here */
  DisableInterrupts;       /*关全局中断*/
  ADInit();
  PORTSInit();		        	
  EnableInterrupts;				 /*开全局中断*/
  for(;;)
    {
      TMP_READ(ad2pwm);
      if(ad2pwm[0]>=512)	 /*若AN00通道电压值大于(VRH-VRL)/2,led(D8)亮*/
       {
        PTS_PTS6=0; 
       }
      else								 /*若AN00通道电压值小于(VRH-VRL)/2,led(D8)灭*/
       {
        PTS_PTS6=1; 
       }
    }
    		
           /* wait forever */
}

⌨️ 快捷键说明

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