📄 sensor 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 + -