基于GSM模块的远程—毕业论文_第1页
基于GSM模块的远程—毕业论文_第2页
基于GSM模块的远程—毕业论文_第3页
基于GSM模块的远程—毕业论文_第4页
基于GSM模块的远程—毕业论文_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、毕业设计论文 基于gsm模块的远程温控毕 业 设 计 论 文基于gsm模块的远程温度监测系统设计 指导老师姓名: 专 业 名 称:班 级 学 号: 论文提交日期:论文答辩日期:2009年12月22日i【摘要】gsm模块,是一个类似于手机的通讯模块,集成了手机的若干功能于一块小电路板上,它可以发送短消息,通话等等,模块虽小,但它具备了很多手机的功能,拥有它等于就是拥有了手机的核心部分了,它在很多领域中都有着广泛的应用,gsm模块是通过at指令控制的。本项目是关于gsm模块的远程温控的设计,其功能主要通过软件编程来实现。该系统主要由gsm模块tc35i、stc89c51单片机、dsl8b20温度传

2、感器等构成。首先单片机要实现测温功能,通过单片机上的温度传感器采集到周围的温度。其次实现单片机与gsm模块的通信,手机发送短信给gsm模块的sim卡,gsm模块接收信息后收集单片机上当时的温度,并把该温度发给手机。【关键词】gsm模块;stc89c51单片机;温度传感器ds18b20;手机【abstract】the gsm module, is one model the same as photo communication module, it certain functions on a small circuit wafer, it may transmit the short new

3、s, telephone conversation and so on, although the modules are small, but it has had many handsets functions, has it to be equal to that had handsets hard core, it has the widespread application in many place, the gsm module is controled by at. this project is about long-distance controls warm about

4、the gsm module, its function mainly realizes through the software programming. this system mainly by gsm module, the stc89c51 , the dsl8b20 temperature sensor and so on constitutes. first monolithic confidential realizes the temperature measurement function, gathers periphery through monolithic inte

5、grated circuits on temperature sensor the temperature. next realizes the monolithic integrated circuit and the gsm module correspondence, photo transmission note for sim card, after the gsm module receive information, collected the temperature then transmission it to mobile.【keywords】gsm module; 51

6、microcomputer; temperature sensor; mobile目 录绪 论1第一章 系统总体结构与功能现象21.1 系统构成21.2 功能及现象2第二章 gsm模块介绍32.1 gsm介绍32.2 tc35i引脚介绍32.3 tc35i通信3第三章 ds18b20温度传感器53.1 ds18b20介绍53.2 ds18b20引脚6第四章 单片机介绍74.1 stc89c51rc单片机74.2 stc89c51rc芯片引脚介绍8第五章 软件介绍95.1 项目介绍与at指令95.2 tc35i模块测试软件105.3 stc芯片烧写软件12总 结13致 谢14参考文献15附录16

7、附录a 项目原理图16附录b stc89c5117附录c 程序18附录d 毕业设计实物图29iii毕业设计论文 基于gsm模块的远程温度监测系统设计绪 论当今社会科技正以前所未有的速度在发展,以前必须人力实现的事,现在都能通过电子产品来实现。以前要知道远方某地的温度必须人亲自去测,这样浪费人力、财力、时间。现在我设计一个基于gsm模块的远程温控的项目,解决这一问题。我先介绍一下gsm的发展。gsm在中国的发展:我国自从1992年在嘉兴建立和开通第一个gsm演示系统,并于1993年9月正式开放业务以来,全国各地的移动通信系统中大多采用gsm系统,使得gsm系统成为目前我国最成熟和市场占有量最大得

8、一种数字蜂窝系统。此前一直是采用蜂窝模拟移动技术,即第一代gsm技术(2001年12月31日我国关闭了模拟移动网络)gsm系统包括gsm900:900mhz、gsm1800:1800mhz及gsm-1900:1900mhz等几个频段。我们做的这项目主要由gsm模块tc35i、stc89c51单片机、dsl8b20温度传感器等构成。单片机与gsm模块用max232串口连接,dsl8b20温度传感器用于收集温度。该项目的过程是:首先单片机要实现测温功能,通过单片机上的温度传感器采集到周围的温度。其次实现单片机与gsm模块的通信,手机发送短信给gsm模块的sim卡,gsm模块接收信息后收集单片机上当

9、时的温度,并把该温度发给手机,这样就实现了远程温控(如果有短信来,gsm模块会通过串口向单片机发送字符串,单片机读取短信,发信息给手机回复温度),人不再需要专门跑到当地实测温度,只要把gsm模块温控系统放在指定地点,我们用手机就能了解到当地当时的温度。该项目成本低、可靠性高、占地小,在温度要求高、比较分散、偏远地使用该系统可很好的节省人力、财力、时间等。也可避免不必要的灾难,比如因温度过高而引起的火灾等。我相信该项目以后将在多方面被使用。1第一章 系统总体结构与功能现象1.1 系统构成该系统分为两部分:第一部分是单片机实现温度采集,主要由stc89c51单片机、温度传感器dsl8b20实现,第

10、二部分是远程监测,主要有gsm无线通信模块(tc35i)、手机实现。远程监测器实现温度数据的采集、处理和显示。gsm无线通信模块用于收发短消息,收到手机短信后经处理后把温度回发给手机,实现远程温度监控。系统总体结构如图1所示。 温度采集 stc89c51单片机gsm通信模块监测中心 pc机或手机 gsm网络图1系统结构总体框图1.2 功能及现象总体思路:手机发送短信给gsm模块,询问当时的温度,gsm模块回复温度给手机。板子的现象:1 给板子供电给(12v直流电源),正常情况板子上ld1点亮。2 ld2一秒一闪,亮灭间隔时间相同,此状态表明tc35i正处于搜寻网络状态。大概一分钟以后(不确定具

11、体时间,看当时所处环境的信号强度)。当ld2出现短灭常亮的状态时,表明tc35已经搜寻到网络信号,处于待机状态。3 通过手机发送短信到模块sim卡上的目标号码,如发送open1到目标号码,片刻后将会看到板子上的一盏灯点亮,并听到继电器打开的声音,此时可以发现继电器1已经打开,此时手机将收到来自目标号码的自动回复,回复内容为当前的温度。毕业设计论文 基于gsm模块的远程温度监测系统设计第二章 gsm模块介绍2.1 gsm介绍gsm全名为:global system for mobile communications,中文为全球移动通讯系统,是一种起源于欧洲的移动通信技术标准,是由电信运营商和制造

12、商组成的标准化委员会设计出来的,它在蜂窝系统的基础上发展而成,属于第二代数字移动通信系统。其开发目的是让全球各地可以共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。众所周知的gsm,是当前应用最为广泛的移动电话标准。全球超过200个国家和地区超过10亿人正在使用gsm电话。gsm较之它以前的标准最大的不同是他的信令和语音信道都是数字式的,因此gsm被看作是第二代(2g)移动电话系统.gsm系统有几项重要特点:防盗拷能力佳、网络容量大、手机号码资源丰富、通话清晰、稳定性强不易受干扰、信息灵敏、通话死角少、手机耗电量低。其技术最成熟及先进,并且具有可开通的移动通信业务种类多、手机接续

13、速度快、通话质量好、安全保密性能强、抗干扰能力强、网络覆盖面广、可国际自动漫游等诸多优点。2.2 tc35i引脚介绍tc35i的引脚介绍:114引脚为电源部分,其中l5引脚为电源电压输入端vbatt+610引脚为电源地gnd,ll12引脚为充电端,13引脚为对外输出电压(供外部电路使用),14引脚accutemp接负温度系数的热敏电阻;2429引脚为sim卡连接端;3340引脚为语音接口用来接电话手柄(其中第35、36接扬声器放音,第37、38可以直接接驻极体话筒来采集声音(37是话筒正端,39是话筒负端)。15、30、31和32引脚为控制部分,15引脚为启动线igt(ignition)。当t

14、c35i通电后必须给igt一个大于100 mv的低电平,模块才能启动。30引脚为rtc back up;31引脚为掉电控制;32引脚为sync,1623引脚为数据输入输出端。2.3 tc35i通信tc35i的数据通信电路以max232为核心实现电平转换及串口通信。max232的作用是实现ttl电平装换。该器件包含2驱动器、2接收器和一个电压发生器电路提供tia/eia-232-f电平。该器件符合tia/eia-232-f标准,每一个接收器将tia/eia-232-f电平转换成5-vttl/cmos电平。每一个发送器将ttl/cmos电平转换成tia/eia-232-f电平。其功能主要是实现串口

15、通讯功能驱动与串口数据接收,max232cpe芯片必须+5v电源才会工作。它是16针smd封装ic,用于完成计算机232端口数据电平转换。它的内部结构基本可分三个部分:第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给rs-232串口电平的需要。第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。其中13脚(r1in)、12脚(r1out)、11脚(t1in)、14脚(t1out)为第一数据通道。8脚(r2in)、9脚(r2out)、10脚(t2in)、7脚(t2out)为第二数据通道。ttl/cmos

16、数据从t1in、t2in输入转换成rs-232数据从t1out、t2out送到电脑dp9插头;dp9插头的rs-232数据从r1in、r2in输入转换成ttl/cmos数据后从r1out、r2out输出。第三部分是供电,15脚gnd、16脚vcc(+5v)。图2 max232引脚图17第三章 ds18b20温度传感器3.1 ds18b20介绍ds18b20的时序是初始化,写指令读数据。下面介绍一下ds18b20的初始化、写操作和读操作。一、ds18b20的初始化(1) 先将数据线置高电平“1”。(2) 延时(该时间要求的不是很严格,但是尽可能的短一点)(3) 数据线拉到低电平“0”。(4) 延

17、时750微秒(该时间的时间范围可以从480到960微秒)。(5) 数据线拉到高电平“1”。(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由ds18b20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。(7) 若cpu读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。(8) 将数据线再次拉高到高电平“1”后结束。二、ds18b20的写操作(1) 数据线先置低电平“0”。(2) 延时确定的时间为15微秒。(3) 按从低位到高位的顺序发送

18、字节(一次只发送一位)。(4) 延时时间为45微秒。(5) 将数据线拉到高电平。(6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。(7) 最后将数据线拉高。三、ds18b20的读操作(1)将数据线拉高“1”。(2)延时2微秒。(3)将数据线拉低“0”。(4)延时15微秒。(5)将数据线拉高“1”。(6)延时15微秒。(7)读数据线的状态得到1个状态位,并进行数据处理。(8)延时30微秒。3.2 ds18b20引脚图3 ds18b20引脚图引脚描述如下表:引脚符号说 明1gnd地2dq单线运用的数据输入/输出引脚3vdd可选vdd引脚表一 ds18b20引脚描述第四章 单片机介绍4

19、.1 stc89c51rc单片机stc89cxx,最高频率可达90mhz,片内4k以上flash程序存储器,8k左右的片内eerom ,512b-1208b片内ram,36个io口。stc89c51单片机具有增强型12时钟/机器周期、6时钟机器/周期任意选择,工作电压为5.5v-3.4v(5v单片机)/3.8v-2.0v(5v单片机);工作频率范围:0-40mhz,相当于普通8051的0-80mhz。实际频率可达48mhz。用户应用程序空间为4k/8k/13k/16k/20k/32k/64k字节 ;片上集成1280字节/512字节ram;有32/36个通用i/o口,p1/p2/p3/p4是准双

20、向口;集成isp(在系统可编程)/ipa(在应用可编程),无需专用的编程器/仿真器,可通过串行口(p3.0/p3.1)直接下载用户程序,8k程序3秒就可以完成一片,具备eeprom功能,共有3个16位定时器/计数器,其中定时器t0还可以当成2个8位定时器使用。部分外围电路图4所示:图4 单片机外围电路原理图4.2 stc89c51rc芯片引脚介绍(1)i/o端口线输入输出引脚(引脚图见附录b)p0.0-p0.7(39-32):p0口是一个漏极开路型准双向i/o口。p1.0-p1.7(1-8):p1口是带内部上拉电阻的8位双向i/o口。在eprom编程和程序验证时接收8位地址。p2.0-p2.7

21、(21-28):p2口是一个带内部上拉电阻的8位双向i/o口。在访问外部存储器时送出高8位地址。p3.0-p3.7(10-17):p3口是一个带内部上拉电阻的8位双向i/o口。(2)控制线控制引脚ale(30):地址锁存控制信号。用于控制p0口输出的低8位地址锁存起来,实现低位地址和数据的隔离。psen(30):外部程序存储器。在读外部rom时,低电平有效,以实现外部rom单元的读操作。ea(31):访问程序存储控制信号。低电平时,对rom的读操作限定在外部程序存储器;高电平时,对rom的读操作是从内部程序存储器开始,并可延至外部程序存储器。rst/vpp(9):复位信号。当输入的复位信号延续

22、两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。(3)外部晶体线xtal1(19)和xtal(18):外部晶体引线端。(4)主电源引脚vcc(40):+5v电源。vss(20):地线gnd。第五章 软件介绍5.1 项目介绍与at指令系统主要的任务是监测被控对象的温度然后通过tc35i发送到监测中心(手机)。系统软件设计的重点在于单片机的编程。向tc35i写入不同的at指令完成多种功能。单片机对tc35i所有的控制都是通过串口发送at指令进行的,tc35i的每一个动作都对应了一个at指令,而且每一个指令之后都要有一个回车符以告诉tc35i该条命令已经发完。一些常用的at指令下

23、表。表2 常用at指令表asci码指令功能手机回答at回车握手okate简化显示okat+cmgr=x回车读取第x条短信短消息内容at+cmgf=1回车用text格式at+cmgf=1回车at+cmgd=x回车删除第x条短信at+cmgd=x回车at+cmgs=6回车发送短消息的字节数at+cmgs=6回车at+cnmi=1,1,2设置收到短消息提示ok+cmti:“sm”,4 4表示手机内短消息数量at+csca短信服务中心地址。at+csq信号质量。+csq: 17,99at+cgmi给出模块厂商的标识at+ccid获得sim卡的标识。这个命令使模块读取sim卡上的ef-ccid文件。5.

24、2 tc35i模块测试软件使用前,我们要对板子进行测试,测试模块是否正常工作。用录下的“tc35tiest.exe”测试程序来对实验板进行测试。测试步骤如下:1、先将sim卡装入开发板,拧上gsm天线。2、将开发板上跳线设置成pc-tc35i通信模式。3、插上配套电源,然后按一下板上的开机按键,时间大于200ms即可。4、找到光盘“tc35i测试程序”目录下的“tc35tiest.exe”测试程序来进行测试。5、先点击“打开端口”,然后点击“tc35i初始化”,如果连接成功后会出现“dsr信号线有问题”的提示,没关系,不用管它,我们确实没用到这条线。图5-2-1 tc35i模块初始化时的各条指

25、令图5-2-2 成功控制短信信息 6、使用电话拨号板子上sim卡的号码,如果电话能打通,则表示模块已正常工作,测试完成。关于通信跳线说明: 在通信过程中进行了三种通信跳线方式的选择:pc机与mcu通信;pc机与tc35i模块通信;mcu与tc35i模块通信。 1.如果要使用pc机来进行模块的测试,收发短信或进行语音呼叫实验,请将跳线设置成:pc与tc35i模块通信。 2.如果要给单片机芯片烧写程序,即完成isp下载功能, 请将跳线设置成:pc与mcu通信。3.如果要使用mcu来控制tc35i模块,请将跳线设置成:mcu与tc35i模块通信。图5-2-3 信跳线说明5.3 stc芯片烧写软件首先

26、要把编写完成的程序烧到stc89c51rc里,写软件的使用步骤:1、打开stc芯片烧写软件的窗口stc-isp.exe选择单片机型号stc89c51rc;2、打开文件open file选择通过编译生成的hex文件;3、选择串行口,最高波特率等参数选择默认值;4、点击下载download,再给mcu上电,程序的烧写工作完成。图5-3 芯片烧写软件窗口总 结大学四年转眼就过去了,回顾四年的大学生活,用四个字形容受益良多。在学校学到了很多专业知识,同时也更多的接触了社会,学校给了我锻炼的机会。现在我已经离开校园开始实习了,刚进入社会,我非常想念大学的生活,大学生活将是我人生中一个不可磨灭的记忆。毕业

27、了,做毕业设计是在所难免的,这是对我们四年学习的总结也是最后一次检测。这次我做的毕业设计是基于gsm模块的远程温控。经过两个多月老师和我们组成员的共同努力,项目完成了。做该项目的第一步就是设计,购买元器件。第二部是焊板子,编程,调试。该项目主要由gsm模块tc35i、stc89c51单片机、dsl8b20温度传感器等构成。过程是:首先单片机要实现测温功能,通过单片机上的温度传感器dsl8b20采集到周围的温度。其次实现单片机与gsm模块的通信,手机发送短信给gsm模块的sim卡,gsm模块接收信息后收集单片机上当时的温度,并把该温度发给手机,这样就实现了远程温控。gsm模块是用at指令控制的。

28、(如果有短信来,gsm模块会通过串口向单片机发送字符串,单片机读取短信,发信息给手机回复温度)在做的过程中遇到了很多问题,当我们焊完板子后发现没任何现象。在老师的帮助下发现板子焊接过程中因为粗心造成了很多问题,而且板子在设计上也存在一定问题。老师和我们从重新开始设计,在前有的基础上不断改进。两个多月的努力后,成果出来了。在设计过程中,老师给与了极大的帮助。这次做项目,我从中学到了很多,首先我们要把书本上的知识转为我们自己的知识其次做事要仔细,要有耐心,不能遇到问题就放弃。我也发现了一句古话的正确性:书到用时方恨少,我们在以后的学习工作中一定要在继续提高自己,多读书充实自己。大学快四年过去了,时

29、间流逝,不再回来。那就让我们珍惜以后的每一天吧!致 谢感谢我的导师杨老师,在做毕业设计的过程中,我们遇到了很多问题,要不是杨老师帮忙,我们不可能完成这个项目。杨老师做事严谨细致、一丝不苟。在我们焊完板子但没出来现象时,是杨老师一直鼓励我们,让我们不要急,还帮我们一根根导线的查故障。我们一次次的往老师办公室跑,老师也很有耐心,从来不骂我们,也大声说我们也不会。杨老师耐心的教导和认真仔细的态度给了我很大的帮助。感谢杨老师,我们毕业设计的完成,您占了很大的功劳。感谢学校,学校为我们提供了优秀的老师,完备的实验器材。让我在这四年中学到了很多。在学习中,学校注重软硬件结合,在学好书本知识的同时还要把知识

30、运用到(实验)实际生活中,这样提高了我们的动手能力,更使我们巩固了一下所学到的知识。毕业设计就是学校给我们的考验,让我们把所学的知识系统的结合起来。感谢无锡商业职业技术学院。感谢室友,在大学四年中,室友无论是在学习上还是生活上,都给了我很多帮助。给了我很多关怀,宿舍是我又一个家,我们每一个都是家庭的一员。我将永远会记得你们。 感谢这次毕业设计和我一组的每一个成员,是我们共同的努力才完成了这个项目,每一位都为毕业设计作出了贡献。因为我提前上岗了,我只参加了设计的前部分,各位组员在我回校的时候就讲给我听进程,在我不懂得地方,耐心的教我,平时上网也发些资料给我,才使我虽然没亲自完成毕业设计,但如同亲

31、自参加了每一个环节。总之,我要感谢学校,感谢学校给我们提供的设施;我更要感谢杨老师,在毕业设计过程中给与我们的帮助;感谢教过我的每一位老师,感谢老师们对我的耐心教导,让我学到了很多知识;我还要感谢同组的同学,感谢你们对我的极大帮助;我也要感谢舍友,感谢你们对我的帮助鼓励。参考文献1刘昌珍.单片机原理与嵌入式系统.无锡商业职业技术学院出版,2008年2月.2谭浩强.c语言程序设计.清华大学出版社。3乔渠,赵国豪,魏葆华基于gsm计术家居安防系统设计j电子工程师.2006,32(11):76784/ / www. k

32、 附录附录a 项目原理图附录b stc89c51 stc89c51rc引脚图 附录c 程序#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;/设置这组参数来了新信息直接显示到串口,不作存储uchar code at_csca=at+c

33、sca=+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=operate failed,try again!;/发送操作失败信息到目标号码uchar a

34、t_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;/记录状态 uchar temp1;/ 用于记录p0口状态uchar temp2; / 用

35、于记录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; /继电器5sbit realy5=p05; /继电器6sbit realy6=p06; /继电器7

36、sbit 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(uchar ch);void sendstring(uchar *p);void gsm_init

37、(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;uchar code dis_712=0xc0,0xf9,0xa4,0xb0,0x99,0x

38、92,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 presence=1;while(presence)while(presence) dq=1;_n

39、op_();_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_(); /从高拉倒低 dq=0;_nop_();_nop_();_nop_();_nop_(); /5 u

40、s 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_();_nop_(); /4 us if(dq)value|=0x80; delay(6)

41、;/66 usdq=1;return(value);/*读出温度函数*/uint read_temp() ow_reset(); /总线复位 delay(200); write_byte(0xcc); /发命令 write_byte(0x44); /发转换命令 ow_reset(); delay(1)19 write_byte(0xcc); /发命令 write_byte(0xbe); temp_data0=read_byte(); /读温度值的第字节 temp_data1=read_byte(); /读温度值的高字节 tempx=temp_data1; tempx6348) / 温度值正负判

42、断 tem=65536-tem;n=1; / 负温度求补码,标志位置1 display4=tem&0x0f; / 取小数部分的值 display0=ditabdisplay4; / 存入小数部分显示值 s16=display0+0x30; display4=tem4; / 取中间八位,即整数部分的值 display3=display4/100; / 取百位数据暂存 s12=display3+0x30; display2=display4/10%10; / 取十位数据暂存 s13=display2+0x30; display1=display4%10; / 取个位数据暂存 s14=display

43、1+0x30; s15=0x2e;/*符号位显示判断*/ if(!display3) display3=0x0a; /最高位为0时不显示 s12=display3; if(!display2)display2=0x0a; /次高位为0时不显示 s13=display2; if(n)display3=0x2d; s12=display3;/负温度时最高位显示-/*/函数void delay_ms(uint i);实现功能:进行毫秒延时/*/void delay_ms(uint i) unsigned int j; for(;i0;i-) for(j=0;j125;j+) ;/*/函数void s

44、tart_gsm(void);实现功能:对tc35i进行启动,开启tc35i/功能详述:单片机上的p3_7管脚是跟tc35i的igt管脚相连;需要启动tc35i必须在 15脚(/igt)加时长至少为100ms的低电平信号,/且该信号下降沿时间小于1ms。启动后,15 脚的信号应保持高电平./*/void start_gsm(void) p3_7=0; delay_ms(1000); p3_7=1; delay_ms(1000);/*/函数void uart_init;实现功能:对串口进行初始化/*/void uart_init (void) tmod=0x20; /选择定时器1 pcon=0x00;/波特率不加倍 scon=0x50;/串行工作方式1允许串行接收 th1=0xfd;/实验板上晶振位11.0592mhz,选择波特率为9600 tl1=0xfd;/在相应计数器上赋值 ea=1;/总中断开启 es=1;/串行中断开启 tr1=1; /开启定时器1/*/函数void sendchar(uchar ch);实现功能:发送一字节数据/*/void sendchar(uchar ch) sbuf=ch;

温馨提示

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

评论

0/150

提交评论