- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
430单片机 GPES RS485多通信 AD转换
芯片型号为MSP430F169
本程序包好GPRS通信实现短信,电话,RS485多机通信,5通道ADC
/*****************************************************************************/
/***main.c 编译环境是IAR *****************/
/****************************************************************************/
#includemsp430x16x.h
#includestdio.h
#includestdlib.h
#includeUASR.h//串口通信相关配置
#includeADC.h//AD采样相关配置
#includedeath.h//包含数据采集算法
#includeADC.h//包含AD初始化
#includehumiture.h//温湿度传感器初始化
#includeCRC16.h//CRC16校验初始化
#ifndef uchar
typedef unsigned char uchar;
#endif
#ifndef uint
typedef unsigned int uint;
#endif
extern uchar ADCOK=0;//ADC12转换成功结束标志位 ADCOK=1表 转换
extern uint ADCvalue[5];//ADC12转换出来的结果
extern uchar Rx1finish;//终端数据接受完毕标志位
extern uchar Rx1buf[40];//接受到终端的数据
extern uchar CallNum[11];//存放手机号码
extern uint SecDelay=0,SecDelay1=0;
extern uchar CallOK;
extern uchar startCall=0;
extern uchar phoneCallStart=0;//开始打电话
static int ADC12sampleValue[4]={0},dataDealfinishflg=0;
uchar SmokeMax=20,TemperationMax=60;
uchar sampling=0;
uint CRC16value=0;
uchar setMaxOK=0,setMaxNum=0;
#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
CCR0 += 62500;
static int watchpass=0;
watchpass++;
if(watchpass%20==0)//秒级延时
{
SecDelay++;
setMaxNum++;
SecDelay1++;
}
if(watchpass%4==0)//25ms钟采样一次数据
{
sampling=1;
// P4OUT|=BIT0;
}
else if(watchpass%30==0); //P4OUT=~BIT0;
}
void adc12SampleData()
{
static int temprature[10];
static int humitry[10];
static unsigned char num=0;
if(sampling==1)
{
ADCOK=0;//清楚ADC完成标志位
adcStarrtWork(); //ADC12开始采样数据
while(!ADCOK);//等待ADC完成数据采集
temprature[num]= ADCvalue[2];//获取ADC12值
humitry[num]=ADCvalue[3];
num++;
dataDealfinishflg=0;
if(num==10)
{
ADC12sampleValue[0]=errordeath(num,temprature);
ADC12sampleValue[1]=errordeath(num,humitry);
num=0;
dataDealfinishflg=1;
}
sampling=0;
}
文档评论(0)