📄 lpc935_ad1.c
字号:
/****************************LPC935_AD1.C*******************************
*程序功能:测试LPC935 AD转换功能
*转换模式:单次转换
*启动方式:定时器0触发
**********************************************************************/
#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) ;
uchar result;
void Timer0_isr() interrupt 1{
TH0=0x8A; //重装T0值,10ms
TL0=0xD0;
}
void ADC_isr() interrupt 14{
result=AD0DAT0; //重装
SendHC595(~result); //调用显示程序
ADCON0&=0xF7; //清除AD转换完成标志
}
main()
{
P1M1=0x80; //P1.7设置为仅为输入状态
P1M2=0x00;
P2M1=0x00;
P2M2=0x00;
//------------------------
ADINS=0x01; //0000 0001, 选择channel
ADMODA=0x01; //0000 0001, 选择转换工作模式,单次转换模式
ADMODB=0x00; //500Khz < ADC CLK < 3.3Mh,,
ADCON0=0x64; //选择转换触发模式,定时器触发,0110 0100
//------------------------
TMOD=0x01; //T0模式选择:模式1
TH0=0x8A;
TL0=0xD0;
TR0=1; //打开定时器T0
ET0=1; //T0中断使能
EADEE=1; //ADC中断使能
EA=1;
while(1);
}
/*******************************************************
* 名称: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; //关闭
}
/******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -