基于单片机的水位远程监测系统设计 - 图文(8)

2019-08-03 11:16

唐 山 学 院 毕 业 设 计

_EINT(); // TC35初始化

nTX0_Len = tc35_init(UART0_TX_BUF); // 设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; Delay_ms(100); csca[0] = '+'; csca[1] = '8'; csca[2] = '6'; csca[3] = '1'; csca[4] = '3'; csca[5] = '8'; csca[6] = '0'; csca[7] = '0'; csca[8] = '2'; csca[9] = '3'; csca[10] = '0'; csca[11] = '5'; csca[12] = '0'; csca[13] = '0';

nTX0_Len = setCsca(UART0_TX_BUF,csca); // 设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; Delay_ms(500);

nTX0_Len = setCmgf(UART0_TX_BUF,0); // 设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; Delay_ms(500);

//首先从FLASH里面读出电话号码数据 nPhone = isPhoneSet(PhoneNumber); if(nPhone == 1) {

//电话号码没有配置的情况下

36

唐 山 学 院 毕 业 设 计

//等待配置 for(;;) {

if(nRev_UART1 == 1) {

nRev_UART1 = 0;

for(i = 0;i < nRX1_Len;i++)

{

UART1_RX_Temp[i] = UART1_RX_BUF[i];

PhoneNumber[i] = UART1_RX_BUF[i];

}

nPhone = setPhone(UART1_RX_Temp); //设置成功 if(nPhone == 1) {

nTX1_Len = SetOK(UART1_TX_BUF); // 设置中断标志,进入发送中断程序

IFG2 |= UTXIFG1; break;

} else {

nTX1_Len = SetError(UART1_TX_BUF); // 设置中断标志,进入发送中断程序

IFG2 |= UTXIFG1;

}

}//if(nPhone == 1) }//if(nRev_UART1 == 1) }//for(;;)

//短消息处理循环 count = 0; for(;;)

37

唐 山 学 院 毕 业 设 计

{

//采集数据 if(nADC_Flag) {

//清除标志 nADC_Flag = 1; count += 1; if(count >= 6500) {

//取采集得到的数据

//将采集得到的数据转换为8位 for(i = 0;i < 80;i++) {

pBuf[i] = (char)((ADC_BUF_Temp[i] >> 4) & 0xff); }

count = 0;

nLen = PhoneNumber[0]; for(i = 0;i < nLen;i++) {

//去掉长度信息

PhoneNumber[i] = PhoneNumber[i + 1]; }

//发送短消息

sendSms(PhoneNumber,nLen,pBuf,80,1);

}//if(count >= 65000) }//if(nADC_Flag) }//for(;;) }

//////////////////////////////////////// // 处理来自串口 0 的接收中断 #if __VER__ < 200

38

唐 山 学 院 毕 业 设 计

interrupt [UART0RX_VECTOR] void UART0_RX_ISR(void) #else

#pragma vector=UART0RX_VECTOR __interrupt void UART0_RX_ISR(void) #endif {

char chrTemp; //接收来自的数据

UART0_RX_BUF[nRX0_Len_temp] = RXBUF0;

nRX0_Len_temp += 1;

chrTemp = UART0_RX_BUF[nRX0_Len_temp - 1]; if((chrTemp == 13) || (chrTemp == 10)) {

//接收到一帧信号

nRX0_Len = nRX0_Len_temp; nRev_UART0 = 1; nRX0_Len_temp = 0; } }

//////////////////////////////////////// // 处理来自串口 0 的发送中断 #if __VER__ < 200

interrupt [UART0TX_VECTOR] void UART0_TX_ISR(void) #else

#pragma vector=UART0TX_VECTOR __interrupt void UART0_TX_ISR(void) #endif {

if(nTX0_Len != 0) {

// 表示缓冲区里的数据没有发送完

nTX0_Flag = 0;

39

唐 山 学 院 毕 业 设 计

} }

TXBUF0 = UART0_TX_BUF[nSend_TX0]; nSend_TX0 += 1; Delay_us(5);

if(nSend_TX0 >= nTX0_Len) {

nSend_TX0 = 0; nTX0_Len = 0; nTX0_Flag = 1; }

//数据发送完毕

void sendSms(char pPhone[],int phonelen,char pData[],int nLen,int mode) {

int i; int len1; int len2; char buf1[100]; char buf2[200]; int res; //TEXT模式

packSms_text(pPhone,phonelen,pData,nLen, &len1,&len2,buf1,buf2); //发送头信息

for(i = 0;i < len1;i++) {

UART0_TX_BUF[i] = buf1[1]; }

//设置发送数据的长度 nTX0_Len = len1;

//设置中断标志,进入发送中断程序 IFG1 |= UTXIFG0; //等待 > 响应

40


基于单片机的水位远程监测系统设计 - 图文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:大学生恋爱观的调查分析报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: