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

📄 lpc935_ad.c

📁 p89lpc932单片机的A/D转换详细资料和源程序代码
💻 C
字号:
/****************************LPC935_AD.C*******************************
*程序功能:测试LPC935 AD转换功能
*转换模式:单次转换
*启动方式:立即启动
**********************************************************************/
#include "reg935.h"
#define	uchar unsigned char

/* 74HC595控制管脚定义 */
sbit	HC595_CS  = P2^4;
sbit	HC595_CLK = P2^5;
sbit	HC595_DAT = P2^2;

void SendHC595(uchar dat) ;
void	DelayNS(uchar no);

main()
{
uchar	result;

	P1M1=0x80;		//P1.7设置为仅为输入状态
	P1M2=0x00;
	P2M1=0x00;		//P0端口设置为准双向
	P2M2=0x00;

//------------------------
	ADINS=0x01;		//0000 0001, 选择channel
	ADMODA=0x01;		//0000 0001, 选择转换工作模式:单次转换模式
	ADMODB=0x00; 		//500Khz < ADC CLK < 3.3Mhz,,
//------------------------
	while(1)
	{
		ADCON0=0x05;		//选择转换触发模式;并立即启动
		result=AD0DAT0;		//将AD转换获得的数据存入result
		SendHC595(~result);	//通过LED显示result的值
		ADCON0&=0xF7;			//清除中断完成标志
	
		DelayNS(10);			//延时
	}
}

/*******************************************************
* 名称:SendHC595()
* 功能:向74HC595发送数据,以驱动LED显示
* 入口参数:data	    要发送的数据
* 出口参数:无
*******************************************************/
void  SendHC595(uchar dat) 
{ uchar i;
  HC595_CS=0;						
  for(i=0; i<8; i++)
  { HC595_CLK=0;					
    if( (dat&0x80)!=0 )HC595_DAT=1;	//设置数据线
	  else HC595_DAT=0;
	HC595_CLK=1;					
	dat=dat<<1;					//移动数据
  }
  HC595_CS=1;						//关闭
}

/*********************************************************
*名称:DelayNS()
*功能:延时一段时间
*入口参数:no
*出口参数:无
*********************************************************/
void  DelayNS(uchar no)		
{ uchar i,j;
  for(; no>0; no--)
  { for(i=0; i<200; i++)
     for(j=0; j<250; j++);
  }
}

⌨️ 快捷键说明

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