利用GSM模块实现远程无线控制程序.doc_第1页
利用GSM模块实现远程无线控制程序.doc_第2页
利用GSM模块实现远程无线控制程序.doc_第3页
利用GSM模块实现远程无线控制程序.doc_第4页
利用GSM模块实现远程无线控制程序.doc_第5页
免费预览已结束,剩余7页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#define p_iob_data (volatile unsigned int *)0x7005#define p_iob_buffer (volatile unsigned int *)0x7006#define p_iob_dir (volatile unsigned int *)0x7007#define p_iob_attrib (volatile unsigned int *)0x7008#definep_ioa_data (volatile unsigned int *)0x7000 #definep_ioa_buffer(volatile unsigned int *)0x7001 #define p_ioa_dir (volatile unsigned int *)0x7002#define p_ioa_attrib (volatile unsigned int *)0x7003#define p_uart_command1 (volatile unsigned int *)0x7021#define p_uart_command2 (volatile unsigned int *)0x7022#define p_uart_data (volatile unsigned int *)0x7023#definep_uart_baudscalarlow(volatile unsigned int *)0x7024#definep_uart_baudscalarhigh(volatile unsigned int *)0x7025#define p_watchdog_clear (volatile unsigned int *)0x7012/定义变量 signed int d_x,d_y,d_z;/延迟signed int b200,b_1=0;/串口接收数据signed int read=at+cmgr=1rn;/读指令signed int del=at+cmgd=1rn;/删除指令signed int del1=at+cmgd=;/删除指令(用于初始化)signed int del_1=1,del_2=0x31;signed int send=at+cmgs=;signed int zcd5,zcd_1,zcd_g,zcd_s;/总长度signed int sendzx=0891683108402305f01100;signed int sjh30,sjh_1,sjh_2,sjh_3;/手机号signed int sendxh=000800;signed int dxc2,dxc_1,dxc_2,dxc_3,dxc_4; /短信长度signed int sendyk=5df25f00003a; /已开:signed int you_1,you_2,you_3,you_4,dx20,wu,dx_1;signed int buf,*cmd,r;signed int bzw,mima=0,chaxun=0;signed int kai,kai_1,guan,guan_1;/void irq7(void) _attribute_ (isr); /void irq7(void);void delay(signed int d_delay);/* 名称 : delay_1ms()* 功能 : 延时子程序,延时时间为 1ms * x* 输入 : x (延时一毫秒的个数)* 输出 : 无*/void delay(signed int d_delay) for(d_x=0;d_x=d_delay;d_x+) *p_watchdog_clear=1;for(d_y=0;d_y=d_delay;d_y+) *p_watchdog_clear=1;for(d_z=0;d_z=d_delay;d_z+)*p_watchdog_clear=1;/* 名称 : readzl()* 功能 :发送读指令* 输入 : at+cmgr=1回车* 输出 : 无*/void readzl(void)cmd=read; while(*cmd!=0) while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=readbuf; cmd+;buf+; delay(10);cmd=0;buf=0;/* 名称 : sendms()* 功能 :发送发短信指令* 输入 : at+cmgs=n回车* 输出 : 无*/void sendms(void)cmd=send; while(*cmd!=0) while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=sendbuf; cmd+;buf+; delay(10);cmd=0;buf=0;for(buf=0;buf=2;buf+)while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=zcdbuf; delay(10);buf=0;delay(50);cmd=sendzx;while(*cmd!=0) while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=sendzxbuf; cmd+; buf+; delay(3);cmd=0;buf=0;for(sjh_1=0;sjh_1=sjh_3;sjh_1+) /发送目标地址 delay(3);while(r!=0x0040) *p_watchdog_clear=1;r=*p_uart_command2; r&=0x0040; *p_uart_data=sjhsjh_1;cmd=sendxh;while(*cmd!=0) while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=sendxhbuf; cmd+; buf+; delay(3);cmd=0;buf=0;for(buf=0;buf=1;buf+)while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=dxcbuf; delay(3);buf=0;cmd=sendyk;while(*cmd!=0) while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=sendykbuf; cmd+; buf+; delay(3);cmd=0;buf=0;for(buf=0;buf=dx_1;buf+)while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=dxbuf; delay(3);buf=0;/* 名称 : del()* 功能 :发送删除指令* 输入 : at+cmgd=1回车* 输出 : 无*/void del(void)if(del_1=1)del_1=0;for(del_2=0x31;del_2=0x38;del_2+)cmd=del1;while(*cmd!=0) while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=del1buf; cmd+; buf+; delay(10);cmd=0;buf=0;while(r!=0x0040) *p_watchdog_clear=1;r=*p_uart_command2;r&=0x0040;*p_uart_data=del_2;delay(10);while(r!=0x0040) *p_watchdog_clear=1;r=*p_uart_command2;r&=0x0040;*p_uart_data=0x0d;delay(10);while(r!=0x0040) *p_watchdog_clear=1;r=*p_uart_command2;r&=0x0040;*p_uart_data=0x0a;delay(40);else cmd=del; while(*cmd!=0) while(r!=0x0040) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0040; *p_uart_data=delbuf; cmd+;buf+; delay(3);cmd=0;buf=0;/* 名称 : void irq7(void) _attribute_ (isr); * 功能 :uart传输中断* 输入 : * 输出 : 无*/void irq7(void) _attribute_ (isr); void irq7(void) r=*p_uart_command2; while(r!=0x0080) *p_watchdog_clear=1; r=*p_uart_command2; r&=0x0080; bb_1=*p_uart_data; /判断密码 自动化81ea 52a8 5316 if(bb_1-11=0x38)&(bb_1-10=0x31)&(bb_1-9=0x45)&(bb_1-8=0x41)&(bb_1-7=0x35)&(bb_1-6=0x32)&(bb_1-5=0x41)&(bb_1-4=0x38)&(bb_1-3=0x35)&(bb_1-2=0x33)&(bb_1-1=0x31)&(bb_1=0x36) mima=1; *p_watchdog_clear=1; /b_1=0; if(bb_1=0x32)&(bb_1-1=0x45)&(bb_1-2=0x42)&(bb_1-3=0x38)&(bb_1-4=0x35)&(bb_1-5=0x45)&(bb_1-6=0x37)&(bb_1-7=0x36)chaxun=1;if(b46=0x31)&(b47=0x30) sjh_2=46;/feixin=1; /对方是用飞信发的sjh_3=19;for(sjh_1=0;sjh_1=19;sjh_1+)*p_watchdog_clear=1;sjhsjh_1=bsjh_2;sjh_2+;else if(b46=0x30)&(b47=0x42)/shouji_b=1; /对方是用手机发的 a1格式 无86sjh_2=46;sjh_3=15;for(sjh_1=0;sjh_1=15;sjh_1+)*p_watchdog_clear=1;sjhsjh_1=bsjh_2;sjh_2+;else if(b46=0x30)&(b47=0x44)/shouji_d=1; /对方是用手机发的带 91格式 86sjh_2=46;sjh_3=17;for(sjh_1=0;sjh_170) /5f00 开*p_watchdog_clear=1;kai=1;kai_1=b_1;else if(bb_1-3=0x35)&(bb_1-2=0x31)&(bb_1-1=0x37)&(bb_1=0x33)&(b_170) /5173 关*p_watchdog_clear=1;guan=1;guan_1=b_1;if(bb_1-3=0x4f)&(bb_1-2=0x4b)&(bb_1-1=0x0d)&(bb_1=0x0a) /判断 ok ,结束标志if(b_1=91)bzw=1;b_1=0;else /bzw=0;b_1=0; else b_1+; *p_watchdog_clear=1;/* 名称 : main()* 功能 : 主程序* 输入 : 无* 输出 : 无*/int main()*p_iob_attrib|=0x0480, /初始化io口,iob7悬浮输入,iob10高电平输出 *p_iob_dir|=0x400,*p_iob_data|=0x400,*p_iob_dir |= 0x0040;/设置iob6为同相高电平输出*p_iob_attrib |= 0x0040;*p_iob_data |= 0x0040;*p_ioa_dir = 0xffff;/设置ioa口为同相低电平输出*p_ioa_attrib = 0xffff;*p_ioa_data = 0x0000;*p_uart_baudscalarlow =0x00, /设置波特率9600bps *p_uart_baudscalarhigh=0x05,*p_uart_command1 =0x0080; /rx使能 *p_uart_command2 =0x00c0;del();_asm(int irq);while(1)readzl();delay(50);if(bzw=1)bzw=0;if(mima=1)mima=0;if(chaxun=1)chaxun=0;if(*p_ioa_data&0x0001)you_1=4;dx0=0x30; dx1=0x30; dx2=0x33; dx3=0x31;if(*p_ioa_data&0x0002)you_2=4;dx0+you_1=0x30; dx1+you_1=0x30; dx2+you_1=0x33; dx3+you_1=0x32;if(*p_ioa_data&0x0004)you_3=4;dx0+you_1+you_2=0x30; dx1+you_1+you_2=0x30; dx2+you_1+you_2=0x33; dx3+you_1+you_2=0x33;if(*p_ioa_data&0x0008)you_4=4;dx0+you_1+you_2+you_3=0x30; dx1+you_1+you_2+you_3=0x30; dx2+you_1+you_2+you_3=0x33; dx3+you_1+you_2+you_3=0x34;if(you_1!=4)&(you_2!=4)&(you_3!=4)&(you_4!=4)wu=4;dx0=0x36;/无 65e0 dx1=0x35; dx2=0x45; dx3=0x30;dx_1=you_1+you_2+you_3+you_4+wu;dx0+you_1+you_2+you_3+you_4+wu=0x1a;dxc_1=20+you_1+you_2+you_3+you_4+wu; /短信内容长度/2 送到 dxc0dxc1 you_1=0; you_2=0; you_3=0; you_4=0; wu=0; dxc_4=(dxc_1-7)/2; dxc_2=dxc_4/16; dxc_3=dxc_4-dxc_2*16; if(dxc_2=9) dxc0=0x30+dxc_2; else dxc0=0x41+dxc_2-0x0a; if(dxc_3=9) dxc1=0x30+dxc_3; else dxc1=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论