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

📄 sensor lpc935_ad.c

📁 LPC935的AD采样源码
💻 C
字号:
/*********************************Sensor LPC935_AD.C***********************************
*程序功能:倾角传感器 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;                          //配置P2口为准双向口
	 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 + -