📄 lpc935_ad.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 + -