




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
时间:周一晚上 组号:8 创新性实验报告题 目超声波测距报警系统设计学 院电子信息学院专 业电子信息工程班 级08041812学 号08041832 08041948 08041906学生姓名 吴思 徐旭东 张翠翠指导教师刘公致完成日期2010年11月 摘要 本文详细介绍了一种基于单片机的超声测距系统。该系统以空气中超声波的传播速度为确定条件,利用反射超声波测量待测距离。其原理是:单片机发出的超声波,通过换能器发射出去,遇到被测物体后翻身回来,计算此超声波从发射出道接受的时间差从而得出被测物体到测距仪的距离,并通过GSM模块实现短信报警。针对测距系统发射、接受、检测、显示部分的总体设计方案做了论证。给出了系统的硬件原理图和软件原理图。 The Design of System for Ultrasonic Distance Measurement Using MCU AbstractThe thesis introduces a kind of single-pulse-reflection ultrasonic distance meter system in detail based on single chip processor.The system could measure certain distance on the premise that the speed of reflected wave in the air is fixed.Based on the study of single chip processor,this paper summarizes the development and fundamental principle of ultrasonic detection.Then it presents the theory and characters of ultrasonic sensor.Moreover,it proposes the whole structure of the system by introducing the function of ultrasonic distance meter.Then this paper introduces the principle of distance-measuring-device which is designed with the single chip PProcessor of 51series.This principle is based on the ultrasonic measure which is calculated by the time used by ultrasonic traveling from the target,we also .And then the transmission,receiver,detection,display scheme of this distance meter system are brought out.This paper presents the design of the Circuit and debug of the ultrasonic distance sensor.Key words:single-chip processor,ultrasonic,distance measurement,GSM 1、总体方案设计1.1超声波测距原理 超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射与接收回波的时间差t,然后求出距离S=Ct/2,式中的C为超声波波速。 由于超声波也是一种声波,其声速C与温度有关,表一列出了几种不同温度下的声速。在使用时,如果温度变化不大,则可以认为声速基本不变的,如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测的超声波往返的时间,既可求得距离。这就是超声波测距仪的机理。温度()-30-20-100 102030100声速(米/秒)313319325323338344349386 表一1.2方案比较方案一 根据设计要求综合各方面的因素,可采用AT89S52单片机作为主控器,用模拟SPI驱动诺基亚5110液晶显示屏,实时显示数据,超声波驱动信号用单片机的定时器完成,同时,我们通过串口发送AT指令控制GSM模块实现了短信报警。超声波测距器的系统框图如下:方案二 本设计的整体框图如下图一所示,主要由超声波发射,超声波接受与信号转换,按键显示电路与温度传感器电路组成。超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差T,然后求出距离S=CT/2,式中的C为超声波波速。在常温下,空气中的声速约为340m/s.由于超声波也是一种声波,其传播速度C与温度有关,在使用时,如果温度变化不大,则可认为声速是基本不变的。因本系统测距精度要求很高,所以通过对温度的检测对超声波的传播速度加以校正。超声波传播速度确定后,只要测的超声波往返的时间,如图下图二波形所示。即可求得距离。这就是超声波测距系统的基本原理。 图一 图二1.3方案选择 比较方案一与方案二,两者有很多相似之处,两个设计都运用到了单片机,用到了同一类型的传感器。运用了LCD显示。但综合分析:方案一,软件的编写方面比较容易理解、实现。而方案二的软件部分与方案一比较,就略显麻烦,而且对外围还需要一些辅助电路,增加了温度补偿电路,程序编写复杂。综合分析之下,本设计采用方案一,另外GSM手机现在已经很普及,而且GSM短信廉价,实现简单,实现超远距离报警。2、单元模块设计 2.1各单元模块功能介绍及电路设计 2.1.1单片机系统设计 详见原理图附录一2.1.2超声波测距模块 此系统我们采用了HC-SR04超声波测距模块,该模块可提供2cm-400cm的非接触式距离感测功能,测距精度可高达3mm;模块包括超声波发射器和接收器与控制电路。 其工作原理:(1) 采用IO口TRIG触发测距,给至少10us的高电平信号;(2) 模块自动发送8个40khz的方波,自动检测是否有信号返回;(3) 有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间声速)/2; 实物图如下图五所示。VCC供5V电源,GND为地线,TRIG触发控制信号输入,ECHO回响信号输出等四支线。 图五2.1.3 TC35GSM模块 另外我们还用TC35实现了无线语音报警功能。GSM模块选用西门子公司的TC35,在应用系统中很容易集成,具有如下特点:(1)频段为双频GSM 900 MHz和GSM 1800 MHz;(2)支持数据、语音、短消息和传真;(3)电源范围宽;(4)具有RS 232接口和语音接口;电路连接简单,单片机的串行接口与TC35的串口相连,采用异步串行通信。 TC35的外围电路图见附录二。3、软件设计3.1 软件设计原理及设计所用工具 本次设计主要利用C语言编写程序,根据功能的需要进行编程,其中软件设计所用的软件主要是Keil uVision3软件,PROTUES ISIS软件。3.2超声波测距的算法原理 超声波在空气中传播速度为每秒钟340米(15)。X2是声波返回时刻,X1是声波发声的时刻,X2-X1得出的是一个时间差的绝对值。 3.3程序流程图设计本软件设计包括了三部分,主程序、定时中断程序和外部中断程序,流程图如下图六所示。 图六(主程序流程图) 图六(定时器中断服务程序) 图六(外部中断服务子程序)其中,GSM模块程序流程图如下图4、系统调试4.1软件调试 软件的调试主要通过Keil uVision3软件进行操作,对程序编写过程中的错误进行查找,找出错误,进行修改,然后再进行编译直至编译成功,生成HEX文件,才能下载到单片机里,继而实现相应功能。程序源文件见附录三 实测数据如下表,精确度控制在3%以内 实际距离/CM51015203040测试距离/cm4.99.914.820.129.839.85、系统功能 本系统通过单片机与现实模块相结合,实现的主要功能是超声波测距,报警以及显示功能。设计前期通过KEIL软件PROTEUS软件仿真的联调,对设计功能进行,仿真,均达到了预期的设计效果。6、总结与体会 本次课程设计是对所学知识的一次综合性运用。其中包括对模拟电子技术的基础和数字电子技术基础、单片机等知识的运用。从而完成了本次设计。在设计的过程中发现了自身知识的不足,也发现我们必须具备专业基础知识才能成功的设计出一间合格的东西。这次课程设计收获很多,体会也很深刻,并且对我们所学的东西也产生了浓厚的兴趣。在设计过程中,也学会了很多新的东西,如对一些初次使用的模块的认识与掌握。当然最重要的是学到了关于基本电子设计的一些方法,同时也加深了对一些常用的电子元件的理解以及其基本用法的掌握。除此之外,我觉得在这次设计过程中,我发现团队净胜的重要性,很多时候一个人的力量是有限的,一个人不可能什么都会,什么都能自己解决,还是有需要他人帮助的时候,我觉得人与人之间的相互帮助很有必要,这样不仅能帮助大家很快的解决问题,还能调高我们每个人的实际水平,也培养了我们的团队合作精神,这些能力对于我们今后的学习和工作都很有帮助。由于时间关系,本次设计中还有不尽完善之处。希望在以后的学习生涯中不断的完善和改进。 7、参考文献【1】全国大学生电子设计竞赛系统设计 黄智伟 北京航空航天大学出版社【2】电子系统设计 余小平 奚大顺 北京航空航天大学出版社【3】单片机高级语言编程与uVision2应用实践 徐爱钧 电子工业出版社【4】单片机原理及其接口技术 胡汉才 北京:清华大学出版社,1996年【5】数字电路逻辑设计 王毓银主编 高等教育出版社【6】电子电路大全【美】J.马库斯,卷5数字电路。北京:计量出版社,1985年。【7】电子创新设计王松屋 主审武思军 于鑫 哈尔兵工程大学电工电子教学基地,2003【8】流行单片机实用子程序及应用实例 杨振江,杜铁军,李群 西安电子科技大学出版社,2002 附录附录一附录二附录二:源程序#include#include #define uchar unsigned char#define uint unsigned int#includeLCD5110.hunsigned long time=0;unsigned int n=0;unsigned char posit=0;unsigned long S=0;bit flag =0;unsigned long sum=0;unsigned long num=0; sbit RX=P21 ;sbit TX=P22 ;/*/void timer_init( void ) TMOD=0x11; /设T0为方式1,GATE=1;TH0=0;TL0=0; TH1=0xf8; /2MS定时 /th1=(65536-2000)/256 tl1=(65536-2000)%256TL1=0x30;ET0=1; /允许T0中断ET1=1; /允许T1中断TR1=1; /开启定时器EA=1; /开启总中断 void Conut(void)time=TH0*256+TL0;TH0=0;TL0=0;S=(time*17)/90; /算出来是CMif(S=7000)|flag=1) /超出测量范围显示“-” flag=0;LCD_write_english_string(1,0,error);sum=num=0;elsenum+;sum+=S;if(num=5)S=sum/num;sum=num=0;set_xy(1,0);LCD_write_char(S%10000/1000+0);LCD_write_char(S%1000/100+0);LCD_write_char(S%100/10+0);LCD_write_char(S%10+0);LCD_write_char( ); void main()timer_init();init();chinese();LCD_write_english_string(0,0,NOKIA 5110 LCD);while(1)while(!RX);/当RX为零时等待TR0=1; /开启计数while(RX);/当RX为1计数并等待TR0=0;/关闭计数Conut();/计算 /*/void timer0() interrupt 1 /T0中断用来计数器溢出,超过测距范围flag=1; /中断溢出标志/*/void timer1() interrupt 3 /T1中断用来扫描数码管和计100MS启动模块TH1=0xf8;TL1=0x30;n+;if(n=50)n=0;TX=1; /100MS 启动一次模块_nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_();_nop_(); _nop_(); _nop_(); _nop_();TX=0; /* * AT指令发送程序 * */uchar Send_AT_Command( uchar type) /发送指令/拨号时号码放在phone.number/其他用para_tempAT_Command_Type=type;send_count=0;switch(type)case RESET_TC35:/复位TC35strcpy(uart_buff,AT+CFUN=1,1);break;case CHECK_PIN:/检查当前是否要输入PIN码strcpy(uart_buff,AT+CPIN?);break; case TC35_INIT:/TC35初始化命令strcpy(uart_buff,ATE0V0);break;case SIM_ID:strcpy(uart_buff,ATE0V0+CMGF=1+CNMI=2,1);break;case AT_IPR:strcpy(uart_buff,AT+IPR=9600); break;case SMSS_ID:strcpy(uart_buff,ATE0V0SSMSS=1+CNMI=2,1);/ATSSMSS=1先存SIM卡再存手机存储器 break;case SMS_CMGF:/SMS 接收方式,strcpy(uart_buff,ATE0V0+CMGF=0);break;case PHONE_WRITE: /存电话号码strcpy(uart_buff,AT+CPBW=);strcat(uart_buff,para_temp);break;case PHONE_READ: /读电话本strcpy(uart_buff,AT+CPBR=);strcat(uart_buff,&read_tmp);uart_buff9=0x0d; uart_buff10=0x0a;uart_buff11=0x00; uart_buff12=0x00;break;case SMS_CMGR:/读一个短信strcpy(uart_buff,AT+CMGR=);strcat(uart_buff,para_temp);break;case SMS_CMGS:/写一个短信strcpy(uart_buff,AT+CMGS=);strcat(uart_buff,para_temp);break;case SMS_CMGD:/删除一个短信strcpy(uart_buff,AT+CMGD=);strcat(uart_buff,para_temp);break;case CMGS_MUB: /发报警短信内容strcpy(uart_buff,para_temp);break;case AT_COMMAND:break;default:receive_count=0;return(TRUE);/LCD_write_string(0,0,uart_buff);ES=1;strcat(uart_buff,x0dx00);/在命令后加入CRsend_count=0;/设置发送指针receive_count=0;AT_Command_Status=COMMAND_WAIT;/设置接收成功标志timer_S_cnt=0;txd_rxd_bit=0;at_send_bit=0;TI=1;/开始发送数据RI=0;/清除接收标志 if (type=TC35_INIT)while (timer_S_cnt6)if (AT_Command_Status!=COMMAND_WAIT|txd_rxd_bit=1)return(TRUE);else if(type=SMS_CMGR)while (timer_S_cnt6)if (AT_Command_Status!=COMMAND_WAIT|txd_rxd_bit=1)return(TRUE);else if(type=CALL_ID)while (timer_S_cnt2)if (AT_Command_Status!=COMMAND_WAIT|txd_rxd_bit=1)return(TRUE);elsewhile (timer_S_cnt6)if (AT_Command_Status!=COMMAND_WAIT|txd_rxd_bit=1)return(TRUE); return(FALSE); /* * 话机启动的初始化程序 * */void Sys_Init(void)/话机启动的初始化程序,包含键盘与定时器,串口等/TH0=(65536-46080)/256;/重新装入定时25mS的初值到TH0,TL0 56320 /TL0=(65536-46080)%256;/65536-(11.0592/12)*20MS*1000=To 18432 47104/1ms定时/11.0592/12 = 0.9216 M (记数频率)/1ms记数 921.6次/16位 216 - x = 922 x=64614 FC66/定时器里不断放fc66,不用怀疑51定时器得到的 1ms的精确性吗 /TH0 = 0xf6; /TL0 = 0x50;TH0 = 0xB8;TL0 = 0x00; /20ms的时钟基准/串口中断TI=0;RI=0;SCON=0x50; /选用方式1TMOD=0x20;TMOD = (TMOD & 0xf0) | 1;/MODE 1TH1=0xfd; /波特率为9600TL1=0xfd;PCON=0x00; /倍频0x80IE = 0xb0; / EA XX ET2 ES ET0 EX0 ET1 EX1 11000000TR1=1; /enable TIMER1ES=1;TR0=1;ET0=1;ET1=0;EA=1;receive_count=0;send_count=0xff;/表示禁止发送,可以接收/定时器2ET2=1;T2CON=0x01; /16位重载计数器RCAP2H=0x0;RCAP2L=0x0;TH2=0x00;TL2=0x00;/TR2=1; /* * 发送短信程序 * */void send_sms() /发送短信 uchar f=1,j=0;Send_AT_Command(SIM_ID);TMP_BUF=0;dopara_tempTMP_BUF=TEL_tempTMP_BUF;TMP_BUF+;while( TMP_BUF=10); para_tempTMP_BUF+=0x0d;para_tempTMP_BUF=0x00;Send_AT_Command(SMS_CMGS);while(TEXT_tempj)para_tempj=TEXT_tempj;j+; para_tempj+=0x1a;para_tempj+=0x0d;para_tempj+=0x00;pa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版型钢结构瓦工施工总承包合同
- 2025版沙盘模型制作技术培训及转让合同
- 2025版新能源汽车充电站运营维护专业服务合同
- 2025版外卖配送服务合同技术升级范本
- 2025场环保产业调研与可持续发展服务协议
- 2025代收代缴水电费及环保监测服务合同
- 2025年商铺认筹与商业综合体合作框架协议
- 2025年度幼儿园食堂安全卫生管理服务协议
- 2025年度绿色建筑劳务分包合同示范文本大全
- 2025版智慧桥梁建设劳务分包合同模板
- 2025届广东省深圳市罗湖区英语八年级第二学期期末教学质量检测试题含答案
- 期权开户考试题及答案
- 建筑工程装饰预算课件
- 《民营经济促进法》解读与案例分析课件
- 山地绿化工程的安全防范措施
- 监理挂靠合同协议书
- 2025年广西南宁宾阳县昆仑投资集团有限公司招聘笔试参考题库含答案解析
- 2025-2030中国公路养护行业市场深度调研及前景趋势与投资研究报告
- 《数据采集与分析》课件
- 国家生物安全法课件
- 老年人生命教育
评论
0/150
提交评论