




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、四川师范大学成都学院本科毕业设计基于gsm的气温监测系统的设计与实现前 言当今社会科技正以前所未有的速度在发展,以前必须人力实现的事,现在都能通过电子产品来实现。以前要知道远方某地的温度必须人亲自去测,这样既浪费人力、财力,又浪费物品,时间。现在我设计一个基于gsm模块的远程温控的项目,解决这一问题。我做的这系统主要由gsm模块tc35i、stc89c51单片机、dsl8b20温度传感器等构成。单片机与gsm模块用max3832串口连接,dsl8b20温度传感器用于收集温度。温度的监测对于提高生产效率、产品质量、节约能源等都有着很重要的作用。伴随着工业和农业科技的发展,温度测量的需求是越来越多
2、,也越来越重要。但是在一些特定环境温度监测环境范围大,测点距离远,布线很不方便。这时就要采用gsm对温度数据进行采集的接收。远程温度测量系统的精准度和智能化深受各个行业的重视。学习并研究远程温度监测可作为一个比较实用的课题的方向,也能够获得比较实用的知识和方法。因此该技术是一个很实用、重要的技术,值得大家去研究掌握。它所应用的领域也很广泛,可以应用到消防电气的非破坏性温度监测,深林的防火监测,远处电力设备的过热故障预知监测等各个地方环境温度检测。本项目成本低、可靠性高、占地小,在温度要求高、比较分散、偏远地使用该系统可很好的节省人力、财力、时间等。我相信本项目发展前景是相当的可观。1 方案比较
3、与论证1.1 温度传感器的选择方案一:温度传感器ad590是美国模拟器件公司的电流输出型温度传感器,供电电压范围为330v,输出电流223a(-50)到423a(+150),灵敏度为1a/。当在电路中串接采样电阻r时,r两端的电压可作为喻出电压。注意r的阻值不能取得太大,以保证ad590两端电压不低于3v。ad590输出电流信号传输距离可达到1km以上。作为一种高阻电流源,最高可达20m,所以它不必考虑选择开关或cmos多路转换器所引入的附加电阻造成的误差。适用于多点温度测量和远距离温度测量的控制。方案二:max6575/76/77系列sot-23封装的温度传感器可通过单线和微处理器进行温度数
4、据的传送,提供三种灵活的输出方式-频率、周期或定时,并具备0.8的典型精度,一条线最多允许挂接8个传感器,150a典型电源电流和2.7v到5.5v的宽电源电压范围及-45到+125的温度范围。它输出的方波信号具有正比于绝对温度的周期,采用6脚sot-23封装,仅占很小的板面。该器件通过一条i/o与微处理器相连,利用微处理器内部的计数器测出周期后就可计算出温度。 方案三:采用数字温度传感器ds18b20测量温度,输出信号全数字化。便于单片机处理及控制,省去传统的测温方法的很多外围电路。且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线性度较好。在0到100摄氏度时,最大线形偏差小于1摄氏
5、度。ds18b20的最大特点之一采用了单总线的数据传输,由数字温度计ds1820和微控制器at89s52构成的温度测量装置,它直接输出温度的数字信号,可直接与计算机连接。这样,测温系统的结构就比较简单,体积也不大,且由于at89s52可以携带多个dsb1820温度传感器,因此可以非常容易实现多点测量。轻松的组建传感器网络。综上所述,本设计温度传感器采用方案三。1.2 控制器的选择方案一:采用stc89c51单片机实现。单片机软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制。而且体积小,硬件实现简单,安装方便。既可以单独对ds18b20控制工作,还可以与pc机通信。通过ds18b2
6、0对周围进行温度采集,由gsm无线通信模块(tc35i)发送信息给手机从而实现远程控制。另外at89s51在工业控制上也有着广泛的应用,编程技术及外围功能电路的配合使用都很成熟1。方案二: 松翰单片机mcu(即单片机)是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器cpu随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。8位微控器ics- 结合otp,高抗干扰及精准的a/d技术,松翰科技推出她的一系列通用型及专用
7、型8位微控器ics,广泛应用于计算机周边装置、通信产品、各类型摇控器、数字相机周边、智能型充电器、大小家电、车用警报系统、安全系统、电子秤、耳温枪、血压计、胎压计、各类量测及健康器材等产品。 综上所述,本设计控制器采用方案一。1.3gsm模块的选择方案一:西门子mc39i采用了高效调制器、信道编码、交织、均衡和语音编码技术,使系统具有高频谱效率。使同频复用栽干比要求降低至9db,故gsm系统的同频 复用模式可以缩小到4/12或3/9甚至更小。提供开放性接口,对手机要求比较低,不限于空中接口,而且网络中各个设备实体之间,例如a接口和abis接口等。方案二:tc35i采用了高效调制器、信道编码、交
8、织、均衡和语音编码技术,使系统具有高频谱效率。使同频复用栽干比要求降低至9db,故gsm系统的同频 复用模式可以缩小到4/12或3/9甚至更小。提供开放性接口,对手机要求比较低,不限于空中接口,而且网络中各个设备实体之间,例如a接口和abis接口等。适用于新手学习,成本费用也比较低。综合上述,本设计gsm模块采用方案二。2 系统硬件设计2.1 系统总体结构 本系统分为两部分:第一部分是单片机实现温度采集,主要由stc89c51单片机、温度传感器dsl8b20实现,第二部分是远程监测,主要有gsm无线通信模块(tc35i)、手机实现。远程监测器实现温度数据的采集、处理和显示。gsm无线通信模块用
9、于收发短消息,收到手机短信后经处理后把温度回发给手机,实现远程温度监控。系统总体结构如图2-1所示。温度采集stc89c51单片机gsm通信模块gsm网络检测中心pc机或手机图2-1 系统结构总体框图2.2 电源电路电源变压器是将交流电网220v的电压变为所需要的电压值。交流电经过二极管整流之后,方向单一了,但是电流强度大小还是处在不断地变化之中。这种脉动直流一般是不能直接用来给集成电路供电的,而要通过整流电路将交流电变成脉动的直流电压。由于此脉动的直流电压还含有较大的纹波,必须通过滤波电路加以滤除,从而得到平滑的直流电压。滤波的任务,就是把整流器输出电压中的波动成分尽可能地减小,改造成接近稳
10、恒的直流电。但这样的电压还随电网电压波动,一般有10%左右的波动,负载和温度的变化而变化,因而在整流、滤波电路之后,还需要接稳压电路。电源原理图如图3.1-1所示,稳压电路的作用是当电网电压波动,负载和温度变化时,维持输出直流电压稳定。220v交流电通过9v变压器变为9v的交流电,9v交流电通过四个二极管的全桥整流后变为9v直流电,然后经过电解电容(470f)进行一级滤波,以去除直流电里面的杂波,防止干扰。9v直流电出来后再经过三端稳压器lm7805稳压成为稳定的5v电源,其中7805的vin脚是输入脚,接9v直流电源正极,gnd是接地脚,接9v直流电源负极,vout为输出脚,它和接地脚的电压
11、就是+5v了。5v电源出来再经过电解电容的二级滤波,使5v电源更加稳定可靠。同时在5v稳压电源加上一个10k的电阻和一个红色发光二极管,当上电后,红色发光二极管点亮,表示电源工作正常。此时一个稳定输出5v的电源已经设计好,对于本设计它完全能够满足单片机及集成块所需电源的要求2。图3.1-1 电源原理图2.3 温度传感器ds18b20 2.3.1 器件描述温度芯片ds18b20是dallas公司生产的一线式数字温度传感器,具有3引脚to92小体积封装形式。测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。测量温度范围为 -55+125,在-10+85范围内,精度为0.5。
12、其工作电源既可在远端引入,也可采用寄生电源方式产生。cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。由于每一个ds18b20都有唯一系列号,因此多个ds18b20可以存在同一条单总线上。此特性的应用范围包括建筑物、设备或机械内的温度检测,以及过程监控和控制中的温度检测等3。ds18b20的内部结构如图3.2.1-1所示。高速缓存存储器温度灵敏元件低温触发器tl高温触发器th配置寄存器8位crc生成器存储器和控制器电源检测64位rom和单线接口图3.2.1-1 ds18b20内部结构图 表 3.2.1-1 分辨率关系表r0r1分辨率/bit最
13、大转换时间/us00993.750110187.510113751112750ds18b20有4个主要的数据部件: 64位激光rom。64位激光rom从高位到低位依次为8位crc、48位序列号和8位家族代码(28h)组成。 温度灵敏元件。 非易失性温度报警触发器th和tl。可通过软件写入用户报警上下限值。 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。其中r0、r1温度计分辨率设置位,其对应四种分辨率如下表所列,用户可根据需要改写配置寄存器以获得合适的分辨率。高速缓存存储器由9个字节组成,其分配如表3.2.1-1所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂
14、存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式如表3.2.1-2所示。对应的温度计算:当符号位s=0时,直接将二进制位转换为十进制;当s=1时,先将补码变为原码,再计算十进制值3。表3.2.1-2 ds18b20存储器温度lsb温度msbthtl保留保留计数寄存器计数寄存器8位crc2.3.2 电路设计本系统只需要采集一个定点的温度、远程测量。将ds18b20的数据输出端连接到微处理器的某个i/o 端口线上,只占用微处理器的一个端口。温度芯片ds18b20采用外部供电方式,在实际应用中还可以使用一个mosfet将i/o口线直接和电源相连,起到上拉
15、的作用4。ds18b20原理图如图3.2.2-1所示: 图3.2.2-1 ds18b20原理图对ds18b20的设计,需要注意以下问题: 对硬件结构简单的单线数字温度传感器ds18b20进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。 对于有多个测温点时,应考虑系统能实现传感器出错自动指示,进行自动识别ds18b20序列号和自动排序,以减少调试和维护工作量。 测温电缆线建议采用屏蔽四芯双绞线,其中一对线接地线与信号线,另一组接vcc和地线,屏蔽层在源端单点接地。ds18b20在三线制应用时,应将其三线焊接牢固;在两线
16、应用时,应将vcc与gnd接在一起,焊接牢固。若vcc脱开未接,传感器只送85的温度值。 实际应用时,要注意单线的驱动能力,不能挂接过多的ds18b20,同时还应注意最远接线距离4。2.4 单片机stc89c51stc89c51单片机最高频率可达90mhz,片内4k以上flash程序存储器,8k左右的片内eerom ,512b1208b片内ram,36个i/o口。stc89c51单片机具有增强型12时钟/机器周期、6时钟机器/周期任意选择,工作电压为5.5v-3.4v(5v单片机)/3.8v-2.0v(5v单片机);工作频率范围:0-40mhz。相当于普通8051的0-80mhz。实际频率可达
17、48mhz。用户应用程序空间为4k/8k/13k/16k/20k/32k/64k字节 ;片上集成1280字节/512字节ram;有32/36个通用i/o口,p1/p2/p3/p4是准双向口;集成isp(在系统可编程)/ipa(在应用可编程),无需专用的编程器/仿真器,可通过串行口(p3.0/p3.1)直接下载用户程序,8k程序3秒就可以完成一片,具备eeprom功能,共有3个16位定时器/计数器,其中定时器t0还可以当成2个8位定时器使用。单片机最小系统如图3.3-1所示:图3.3-1 单片机最小系统复位电路部分,stc89c51的单片机技术资料给出,当振荡器工作时,rst引脚出现两个机器周期
18、以上的高电平就会使单片机复位。10f的电容c3与270的电阻并联后再与一个10k的电阻串联,电容的正极端接到电源的正极,电容的另一端接至引脚rst。设计中选用的石英晶体大小为11.0952mhz,但复位键按下后,电容和电阻选用的参数值能够保证给复位端rst提供大于2个机器周期的高电平复位信号5。晶振电路部分,at89s51单片机中有一个用于构成内部振荡器的高增益反相放大器,引脚19对应的xtal1为输入端引脚18对应的xtal2为输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。石英晶体及电容c1和c2接在放大器的反馈回路中构成并联谐振电路。石英晶体的两端分别接到引
19、脚xtal1 和引脚xtal2,同时石英晶体的两端分别接一个电容c1和c2,电容的另一端接地。对于外接电容c1和c2的大小虽然没有十分严格的要求,但电容容量的大小还是会对振荡频率的高低、振荡器工作的稳定性、起振的难易程度和温度稳定性带来一定的影响,所以陶瓷谐振器推荐电容容量为40pf10pf,石英晶体推荐电容容量为30pf10pf。因为电路中接的是石英晶体,所以设计中接的两个电容c1和c2的容量都选择为20pf。p0.0p0.7:p0口是一个漏极开路型准双向i/o口。p1.0p1.7:p1口是带内部上拉电阻的8位双向i/o口。在eprom编程和程序验证时接收8位地址。p2.0p2.7:p2口是
20、一个带内部上拉电阻的8位双向i/o口。在访问外部存储器时送出高8位地址。p3.0p3.7:p3口是一个带内部上拉电阻的8位双向i/o口。ale:地址锁存控制信号。用于控制p0口输出的低8位地址锁存起来,实现低位地址和数据的隔离。psen:外部程序存储器。在读外部rom时,低电平有效,以实现外部rom单元的读操作。ea:访问程序存储控制信号。低电平时,对rom的读操作限定在外部程序存储器;高电平时,对rom的读操作是从内部程序存储器开始,并可延至外部程序存储器。rst/vpp:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。外部晶体线:xtal1
21、和xtal:外部晶体引线端。主电源引脚:vcc:+5v电源;vss:地线gnd6。2.5 gsm模块2.5.1 gsm的发展现状20世纪80年代中期,当模拟蜂窝移动通信系统刚投放市场时,世界上的发达国家就在研制第二代移动通信系统。其中最有代表性和比较成熟的制式有泛欧gsm ,美国的adc(d-amps)和日本的jdc(现在改名为pdc)等数字移动通信系统。在这些数字系统中,gsm的发展最引人注目。1991年gsm系统正式在欧洲问世,网络开通运行。我国自从1992年在嘉兴建立和开通第一个gsm演示系统,并于1993年9月正式开放业务以来,全国各地的移动通信系统中大多采用gsm系统,使得gsm系统
22、成为目前我国最成熟和市场占有量最大得一种数字蜂窝系统。截至2002年11月,中国手机用户2亿,比2001年年底新增5509.2万7。2.5.2 tc35i外围应用电路 随着通信事业的发展,移动通信应用领域的不断扩大,移动终端的设计也逐渐倍受关注。这一章将详细介绍siemens公司的gsm模块tc35i、ti公司的电平转换芯片max3238等器件,及其构成的移动终端的硬件电路。该电路可以完成短消息收发、语音传输、与pc机进行数据传输等功能,已应用在基于gsm短消息的gps车辆监控系统中。tc35i模块的正常运行需要相应的外围电路与其配合。硬件设计图见附录1。2.5.2.1 tc35i引脚tc35
23、i的引脚:114引脚为电源部分,其中l5引脚为电源电压输入端vbatt+610引脚为电源地gnd,ll12引脚为充电端,13引脚为对外输出电压(供外部电路使用),14引脚accu/temp接负温度系数的热敏电阻;2429引脚为sim卡连接端;3340引脚为语音接口用来接电话手柄(其中第35、36接扬声器放音,第37、38可以直接接驻极体话筒来采集声音(37是话筒正端,39是话筒负端)。15、30、31和32引脚为控制部分,15引脚为启动线igt(ignition)。当tc35i通电后必须给igt一个大于100 mv的低电平,模块才能启动。30引脚为rtc back up;31引脚为掉电控制;3
24、2引脚为sync,1623引脚为数据输入输出端8。引脚如图3.4.2.1-1:图3.4.2.1-1 tc35i引脚2.5.2.2 sim卡电路 基带处理器集成了一个与iso 7816-3 ic card标准兼容的sim接口。为了适合外部的sim接口,该接口连接到主接口(zif连接器)。在gsm11.11为sim卡预留5个引脚的基础上,tc35在zif连接器上为sim卡接口预留了6个引脚,所添加的ccin引脚用来检测sim卡支架中是否插有sim卡。当插入sim卡,该引脚置为高电平,系统方可进入正常工作状态。但是目前移动运营商所提供的sim卡均无ccin引脚,所以在设计电路时将引脚ccin与ccv
25、cc相连。sim卡电路如图3.4.2.2-1:图3.4.2.2-1 sim卡电路sim卡布线时,有一个值得引起注意问题:如果将sim卡的第四脚ccgnd直接与印刷电路板的gnd相连,不作任何信号的隔离保护,则通话时音量很小。考虑到设计中的电磁兼容和静电保护等因素,为了达到最佳的通话效果,采用在sim支架下,即印刷电路板的顶层敷设一层铜隔离网,该层敷铜与sim卡的ccgnd引脚相连,ccgnd和电路板的gnd之间通过两个并联的电容和电感耦合。此举为sim卡构成了一个隔离地,屏蔽了其他信号线对sim卡的干扰。再进行语音通话时,话音清晰。数据通信电路主要完成短消息收发、与pc机通信、软件流控制等功能
26、。tc35i的数据接口采用串行异步收发,符合itu-t rs-232接口电路标准,工作在cmos (2.65v)。数据接口配置为8位数据位、1位停止位、无校验位,可以在300bps115kbps的波特率下运行,支持的自动波特率为4.8kbps115kbps(14.4kbps和28.8kbps除外)。tc35模块还支持rts0/cts0的硬件握手和xon/xoff的软件流控制。数据通信电路以ti公司的max3238芯片为核心,实现电平转换及串口通信功能。ti公司的max3238芯片供电电压为35.5v,符合tia/eia-232-f 和itu v.28标准。具有独特的15kv人体静电保护措施,兼
27、容5v逻辑输入,内含3路接收、5路发送串行通信接口,最大数据传输速率可达250 kbps。该芯片的最大特点是,在串行口无数据输入的情况下,可以灵活的进行电源管理,即当orceon(13脚)为低电平、/forceoff(14脚)为高电平时,auto-power down plus功能有效。在正常运行模式下,约30秒事件内若芯片在接收和发送引脚没有检测到有效信号,将自动进入power down模式,此时耗电1ua。如果forceon和/forceoff引脚均为高电平,那么auto-power down plus功能失效。在auto-power down plus功能有效的时,如果检测到接收或发送引
28、脚有信号输入,该芯片自动被激活,转入正常工作状态。如果任一接收通道的输入电压高于2.7v或小于-2.7v,或者位于-0.3v0.3v的时间小于30us,则/invalid(15脚)引脚为高电平数据有效。如果所有接收通道的输入电压位于-0.3v0.3v的时间大于30us,则invalid(15脚)引脚为低电平(数据无效)。该芯片的以上特性,满足了tc35i作为移动终端的3路接收、5路发送电路连接要求。在max3238与zif连接器相应引脚连接时,要注意发送、接收引脚连接正确。max3238还需要连接4个0.1uf的电容配合,才能完成电平转换功能。tc35i模块通过rs-232接口各引脚输出的信号
29、有rxd0、cts0、dsr0、dcd0、ring0,输入的信号为txd0、rts0、dtr0。由于tc35i的接口电路使用了9针串口的全部引脚,使tc35i可以获得dtr0、dsr0、dcd0和ring0控制信号。信号ring0用来向蜂窝设备指示接收到urc。通过at指令,可以设置tc35i的不同运行模式。通信电路如图3.4-1所示9:图3.4-1 串行通信电路 2.6 led显示器fyd12864-0402b是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864,内置8192个16*16点汉字和128个16*
30、8点ascii字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84 行1616 点阵的汉字,也可完成图形显示,低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。显示器电路如图3.5-1所示:图3.5-1 显示器电路2.7 蜂鸣器图3.6-1 蜂鸣器电路压电式蜂鸣器主要由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成。有的压电式蜂鸣器外壳上还装有发光二极管。 多谐振荡器由晶体管或集成电路构成。当接通电源后(1.5v1
31、5v直流工作电压),多谐振荡器起振,输出1.5khz2.5khz的音频信号,阻抗匹配器推动压电蜂鸣片发声。 压电蜂鸣片由锆钛酸铅或铌镁酸铅压电陶瓷材料制成。在陶瓷片的两面镀上银电极,经极化和老化处理后,再与黄铜片或不锈钢片粘在一起。蜂鸣器电路如图3.6-1所示3 系统软件设计3.1 传感器ds18b203.1.1 ds18b20的初始化先将数据线置高电平“1”数据线拉到低电平“0”数据线拉到高电平“1”若cpu读到了数据线上的低电平“0” 还要做延时,其延时的时间从发出的高电平算起(后,上一步步的时间算起)最少要480微秒。延时,短暂延时750微秒延时等待将数据线再次拉高到高电平“1”后结束图
32、4.1.1-1 db18b20的初始化3.1.2 ds18b20的写操作数据线先置低电平“0”按从低位到高位的顺序发送字节(一次只发送一位)将数据线拉到高电平延时时间为15微秒延时时间为45微秒直到所有的字节全部发送 y?最后将数据线拉高图4.1.2-1 ds18b20的写操作3.1.3 ds18b20的读操作将数据线拉高”1”数据线拉到低“0”数据线拉到高“1”读数据线的状态得到1个状态位,并进行数据处理延时2微妙延时15微秒延时15微妙延时30微妙结束 图4.1.3.-1 ds18b20的读操作3.2 软件控制流程图发送sms信息延迟一段时间成功?.3?执行控制命令删除sms信息数据解码读
33、sim卡串口中断?y定时中断?n采集温度初始化nyyy进行pdu编码读取温度值开始n图4.2-1 软件控制流程图4 软件调试4.1 软件测试系统主要的任务是监测被控对象的温度,然后通过tc35i发送到监测中心(手机)。系统软件设计的重点在于单片机的编程,向tc35i写入不同的at指令完成多种功能。单片机对tc35i所有的控制都是通过串口发送at指令进行的,tc35i的每一个动作都对应了一个at指令,一些常用的at指令如表5.1-1。表5.1-1 常用at指令表asci码指令功能手机回答at回车握手okate简化显示okat+cmgr=x回车读取第x条短信短消息内容at+cmgf=1回车用tex
34、t格式at+cmgf=1回车at+cmgd=x回车删除第x条短信at+cmgd=x回车at+cmgs=6回车发送短消息的字节数at+cmgs=6回车at+cnmi=1,1,2设置收到短消息提示ok+cmti:“sm”,44表示手机内短消息 数量at+csca短信服务中心地址。at+csq信号质量。+csq: 17,99at+cgmi给出模块厂商的标识at+ccid获得sim卡的标识。这个命令使模块读取sim卡上的ef-ccid文件。使用前,我们要对板子进行测试,测试模块是否正常工作。用录下的“tc35tiest.exe”测试程序来对实验板进行测试。图5.1-1 tc35i测试程序测试步骤:先将
35、sim卡装入开发板,拧上gsm天线;将开发板上跳线设置成pc-tc35i通信模式;插上配套电源,然后按一下板上的开机按键,时间大于200ms即可;找到光盘“tc35i测试程序”目录下的“tc35tiest.exe”测试程序来进行测试;先点击“打开端口”,然后点击“tc35i初始化”,如果连接成功后会出现“dsr信号线有问题”的提示,没关系,不用管它,我确实没用到这条线;使用电话拨号板子上sim卡的号码,如果电话能打通,则表示模块已正常工作。图5.1-2 tc35i模块初始化时的各条指令图5.1-3 成功控制短信信息4.2 关于通信跳线说明 在通信过程中进行了三种通信跳线方式的选择:pc机与mc
36、u通信;pc机与tc35i模块通信;mcu与tc35i模块通信。如果要使用pc机来进行模块的测试,收发短信或进行语音呼叫实验,请将跳线设置成:pc与tc35i模块通信;如果要给单片机芯片烧写程序,即完成isp下载功能,请将跳线设置成:pc与mcu通信;如果要使用mcu来控制tc35i模块,请将跳线设置成:mcu与tc35i模块通信。4.3 stc芯片烧写软件首先要把编写完成的程序烧到stc89c51rc里,写软件的使用步骤:a 打开stc芯片烧写软件的窗口stc-isp.exe选择单片机型号stc89c51rc;b 打开文件open file选择通过编译生成的hex文件;c 选择串行口,最高波
37、特率等参数选择默认值;d 点击下载download,再给mcu上电,程序的烧写工作完成。图5.3-1 芯片烧写软件窗口5 结论通过本次毕业设计我学到了不少的知识,进一步巩固了单片机的基础理论知识,实际动手能力有所提高,能够将理论与实际相结合是我这次的最大收获。本项目主要由gsm模块tc35i、stc89c51单片机、dsl8b20温度传感器等构成。过程是:首先单片机要实现测温功能,通过单片机上的温度传感器dsl8b20采集到周围的温度。其次实现单片机与gsm模块的通信,手机发送短信给gsm模块的sim卡,gsm模块接收信息后收集单片机上当时的温度,并把该温度发给手机,这样就实现了远程温控。gs
38、m模块是用at指令控制的。(如果有短信来,gsm模块就会通过串口向单片机发送字符串,单片机读取短信,并发信息给手机回复温度)在设计过程中,由于接触通信方面知识的时间不长,缺乏基础理论知识,在实际制作硬件和软件编写过程中遇到了不少的麻烦,但在指导老师的帮助下,通过针对性地查找资料,了解了些相关方面的资料,既增长了自己见识,补充最新的专业知识,又提高了自己的应用能力,能够自行解决一些基本的问题。在大学四年的时间,大多在学习理论基础知识,实践的并不是太多。经过这次毕业设计,我积累了相关的使用调试经验,发现了自己很多不足之处,体会到了所学理论知识的重要性,知识掌握得越多,设计得就更全面、更顺利、更好。
39、总之,这次毕业设计让我能把理论知识和工程实践相结合、基础知识与创新意识相结合,培养了自己的综合素质。相信这些在我今后的学习和工作当中都会有很大的帮助。附录1: 系统硬件原理模块图 附录2: 软件程序设计#include#include#define uchar unsigned char#define uint unsigned int#define rxin 90/定义接收的数组长度为90char s20=temperature= oc;uchar code at=at;/握手信号uchar code ate=ate; /关回显uchar code at_cnmi=at+cnmi=2,1;/
40、设置这组参数来了新信息直接显示到串口,不作存储uchar code at_csca=at+csca=+8613800510500;/设置服务中心号码uchar code at_cmgf=at+cmgf=1;/设置短信的格式为text格式uchar code at_cmgr=at+cmgr=;/读取短信指令uchar code at_cmgs=at+cmgs=;/发送短信指令uchar code at_cmgd=at+cmgd=;/发送短信指令uchar code successfully=operate successfully!;/发送操作成功信息到目标号码uchar code fail=o
41、perate failed,try again!;/发送操作失败信息到目标号码uchar at_delete12;uchar at_read12;/用来存储发送读取短信指令 uchar at_sendnumber25; /用来存储发送短信号码指令uchar numberbuf3; /用来保存短信条数 uchar idata systembufrxin; /储存出口接收数据 uchar commandbuf6; /用来储存指令 uchar idata state17; /用来存储io口状态 uchar idata state117; /用来存储io口状态 uchar rx=0;uint temp
42、;/记录状态 uchar temp1;/ 用于记录p0口状态uchar temp2; / 用于记录p2口状态 bit check=0;/查询标志位 bit receiveready=0; /接收短信标志位bit sendready=0; /发送短信准备标志位bit send=0; /发送短信标志位bit flag=0; /指令标志位sbit p3_7=p37;/启动gsm的启动线连igtsbit realy0=p00;/继电器1sbit realy1=p01;/继电器2sbit realy2=p02; /继电器3sbit realy3=p03;/继电器4sbit realy4=p04; /继电
43、器5sbit realy5=p05; /继电器6sbit realy6=p06; /继电器7sbit realy7=p07;/继电器8sbit key1=p20; /开关1sbit key2=p21; /开关2sbit key3=p22; /开关3sbit key4=p23; /开关4sbit key5=p24; /开关5sbit key6=p25; /开关6sbit key7=p26; /开关7sbit key8=p27;/开关8void delay_ms(uint i);void start_gsm(void);void uart_init (void);void sendchar(uch
44、ar ch);void sendstring(uchar *p);void gsm_init(void);void receive_ready(void);void message_read(void);void read_message(void);void sendmessage(void);sbit dq=p33; /温度输入口uint h; uint tempx;/*温度小数部分用查表法*/uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;
45、uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf;/共阳led段码表 0 1 2 3 4 5 6 7 8 9 不亮 - uchar data temp_data2=0x00,0x00; /读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00; /显示单元数据,共4个数据和一个运算暂用/*11us延时函数*/void delay(uint t)for (;t0;t-);/*ds18b20复位函数*/ow_reset(void)char pre
46、sence=1;while(presence)while(presence) dq=1;_nop_();_nop_();/从高拉倒低dq=0; delay(50); /550 usdq=1; delay(6); /66 uspresence=dq; /presence=0 复位成功,继续下一步 delay(45); /延时500 us presence=dq;dq=1; /拉高电平/*ds18b20写命令函数*/向1-wire 总线上写1个字节void write_byte(uchar val) uchar i; for(i=8;i0;i-) dq=1;_nop_();_nop_(); /从高
47、拉倒低 dq=0;_nop_();_nop_();_nop_();_nop_(); /5 us dq=val&0x01; /最低位移出 delay(6); /66 us val=val/2; /右移1位 dq=1; delay(1);/*ds18b20读1字节函数*/从总线上取1个字节uchar read_byte(void)uchar i;uchar value=0;for(i=8;i0;i-)dq=1;_nop_();_nop_(); value=1; dq=0;_nop_();_nop_();_nop_();_nop_(); /4 us dq=1;_nop_();_nop_();_nop
48、_();_nop_(); /4 us if(dq)value|=0x80; delay(6);/66 usdq=1;return(value);/*读出温度函数*/uint read_temp() ow_reset(); /总线复位 delay(200); write_byte(0xcc); /发命令 write_byte(0x44); /发转换命令 ow_reset(); delay(1) write_byte(0xcc); /发命令 write_byte(0xbe); temp_data0=read_byte(); /读温度值的第字节 temp_data1=read_byte(); /读温度值的高字节 tempx=temp_data1; tempx6348) / 温度值正负判断 tem=65536-tem;n=1; / 负温度求补码,标志位置1 displa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 读我要做个好孩子有感350字13篇
- 老师谢谢您250字10篇
- 纪念白求恩余映潮课件
- 小说人物塑造手法探究教学教案
- 2025年审计师考试审计职业道德与法律责任试卷
- 2025年期货从业资格考试衍生品市场与交易试卷
- 公司股权转让详细协议签署事项
- 清丰县期中卷子数学试卷
- 全国一卷江西数学试卷
- 内蒙古三模数学试卷
- 达州电力集团笔试真题
- AAMIST79-2017卫生保健设施蒸汽灭菌和无菌保证综合指南
- 《BOM材料清单教程》课件
- 《安全管理体系》课件
- 树立正确的人生价值观课件
- 防腐保温工程监理实施细则
- 法律事务所信息安全管理制度
- DB33T1373-2024农村电影放映服务规范
- 肿瘤患者的康复与护理
- 学生矫治教育申请书
- 防范工贸行业典型事故三十条措施解读
评论
0/150
提交评论