微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于有方GPRS的智能电梯控制系统

基于有方GPRS的智能电梯控制系统

时间:11-20 来源:互联网 点击:
interrupt 4{EA=0; //关总中断if(1 == RI) //当硬件接收到一个数据时,RI会置高位{buffer[com_dat] = SBUF; //存取串口接收的数据RI = 0; //软件置RI为0if(buffer[com_dat]==#){flag2 = 1; //接收短信内容结束com_dat++;//#号不一定是最后一个字符!!!}else{com_dat++;} }EA = 1; //开总中断}/* end function com_int *//\* 名称: com_init()* 功能: 串口初始化,晶振11.0592MHz,波特率9600bps* 输入: 无* 输出: 无\/void com_init(void){TMOD=0X20;TH1=253;TL1=253;TR1=1;EA=1;ES=1;SM0=0;SM1=1;REN=1;}/\*名称:checkinfo()*功能:检查是否有数据到达\/uint checkinfo(){uint i=0;if(buffer[0]!=0&&flag2==0)//短信到达的提示命令已经被单片机接收{while(buffer[i]){if(buffer[i]==,)return 1 ;//有短信到达i++;}}return 0;//数据暂时不能接收}/\*名称:ReceiveData()*功能:接收数据并返回\/uchar ReceiveData(uchar *buf , uchar *buf2){//这是为了发送接收数据的命令uint i=0;uint j ;send_AT_CMGR();delayms(10);while(buffer[i] != ,)//检查时顺便将buffer[i]清0{buffer[i] = 0 ;i++ ;}buffer[i] = 0 ;//将,清0i++;buffer[i++]=0;//将空格清0while(buffer[i]){if(buffer[i]>=0&&buffer[i]<=9){send_uart(buffer[i]);buffer[i]=0;//发完数据后将该位清0delayms(10);}elsebreak;//数据接收完后跳出i++;}delayms(10);send_uart(\r);delayms(10);send_uart(\n);delayms(100);com_dat = 0 ;//为下次接收数据做准备//这是为了检测需要的数据delayms(3000);i = 0 ;j = 0 ;while(1){if(buffer[0]!=0&&flag2==1){flag2=0;while(buffer[i]!=#){if (buffer[i] == \"){sign_flag++;}if (sign_flag == 3){buf2[j++]=buffer[i+1];//接收电话号码}i++;}sign_flag = 0;*buf = buffer[i-1];//目的地点return buffer[i-2];//模拟的楼层数不超过10楼,所以可只返回一个字符,起点}}}/\*名称:init_GPRS()*功能:初始化GPRS模块\/void init_GPRS(){uint i = 0 ;delayms(1000);send_AT_IPR();//设置波特率delayms(15000);send_AT_CMGF();//设置短信格式delayms(1000);send_AT_CSCS();//设置字符集delayms(1000);send_AT_CNMI();//设置短信提示方式delayms(3000);while(buffer[i])//将初始化时接收到的数据清0{buffer[i] = 0 ;i++ ; }com_dat = 0 ;//为下一次接收做准备}void main(){init();//初始化时钟芯片,液晶显示屏//delayms(20000);//避开开机时的无用数据com_init();//串口初始化delayms(1500);init_GPRS();//给gprs设置必要的参数while(1){keyscan();//只是在时间不准确时会被按下,其它时间,不予理会if(flag==0)//表示没有键盘按下{up_down_logic();}}}void exter() interrupt 0{uchar c;flag1=1;c=read_ds(0x0c);}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top