




已阅读5页,还剩63页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
徐州工程学院毕业设计(论文)温度监控报警系统设计毕业论文目 录1 绪论11.1背景及意义11.2工作原理12 系统硬件设计32.1主控制器AT89S5232.1.1引脚结构32.1.2 主要性能32.1.3 功能特性描述32.1.4 各引脚功能42.2单总线数字温度传感器DSl8B2052.2.1功能特性描述62.2.2引脚结构62.3无线传感器nRF905模块82.3.1 模块介绍82.3.2 接口电路管脚说明82.3.3 工作方式102.3.4 配置nRF905模块112.4 LCD1602显示模块122.4.1 控制器接口说明122.4.2 初始化过程(复位过程)132.5 ISD1420语音模块132.5.1 特点132.5.2 电路外形图及引出端功能说明142.5.3 地址模式142.5.4 操作模式152.6 键盘输入模块152.7硬件概要设计162.8 硬件总体设计163 系统软件设计183.1 软件开发环境183.1.1 Keil简介183.1.2 系统概述183.1.3 Keil C51单片机软件开发系统的整体结构183.2 主程序193.3温度采集电路203.4 收发端的程序流程图213.5 语音播报的程序流程图26结论29致谢30参考文献31附录32附录1 英文文献翻译32附录2 部分程序代码45661 绪论1.1背景及意义随着社会的发展和技术的进步,人们越来越注重温度检测与显示的重要性。温度检测与状态显示技术与设备已普遍应用于各行各业,市场上的产品层出不穷。温度检测及显示也逐渐采用自动化控制技术来实现监控。对现代社会来说,不管是医学还是工业温度的检测与监控尤为重要。本课题就是一个温度检测及状态显示监控系统,该系统由无线接收和发射模块、语音播报、温度采集、自动报警以及显示模块组成。由于单片机技术比较成熟,在价格方面也比较低廉,而且易于控制,所以选用一块8051单片机来控制外围的电路。系统硬件设计主要包括温度传感器模块、单片机系统模块、显示电路模块、nRF905无线通信模块等。系统利用了当今成熟的先进技术,具有高度的可靠性,其温度显示、各种报警功能及各项可用性指标均达到相关的规定。同时简洁、实用、性能价格比高也是其优点。另外,在单片机程序设计方面采用C语言。该课题的设计是对电子信息工程专业主干课程电子技术基础、单片机原理与应用、程序设计语言(C语言)以及相关课程设计等的延伸与拓展,是将理论与技术联系生产实际的主要内容,对我们的基础知识及相关专业知识的实际应用、计算机应用能力、文献资料检索等均有较高的提升。1.2工作原理无线温度采集系统是一种基于射频技术的无线温度检测装置。本系统由传感器和接收机,以及显示芯片组成。传感器部分由数字温度传感器芯片18B20、单片机89S52、低功耗射频传输单元nRF905和天线等组成,传感器采用电源供电;接收机无线接收来自传感器的温度数据,经过处理、保存后在LCD1602上显示,所存储的温度数据可以通过串行口连接射频装置与接收端进行交换。无线温度的采集主要基于单线数字温度传感器DS18B20芯片。Dallas 半导体公司的单线数字温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20支持“一线总线”接口,测量温度范围为-55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,支持3V5.5V的电压范围,DS18B20可以程序设定912位的分辨率,精度为0.5C。数字单总线温度传感器是目前最新的测温器件,它集温度测量,A/D转换于一体,具有单总线结构,数字量输出,直接与微机接口等优点。既可用它组成单路温度测量装置,也可用它组成多路温度测量装置,文章介绍的单路温度测量装置已研制成产品,产品经测试在-10C 70C间测得误差为0.25C,80CT105C时误差为0.5C,当T105C误差为增大到1C左右。温度数据的无线传输主要是基于低功耗射频传输单元nRF905芯片。nRF905是挪威Nordic VLSI公司推出的单片射频收发器,工作电压为1.93.6V,32引脚QFN封装(55mm),工作于433/868/915MHz三个ISM(工业、科学和医学)频道,频道之间的转换时间小于650us。nRF905由频率合成器、接收解调器、功率放大器、晶体振荡器和调制器组成,不需外加声表滤波器,ShockBurstTM工作模式,自动处理字头和CRC(循环冗余码校验),使用SPI接口与微控制器通信,配置非常方便。此外,其功耗非常低,以-10dBm的输出功率发射时电流只有11mA,工作于接收模式时的电流为12.5mA,内建空闲模式与关机模式,易于实现节能。nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率放大器等模块。经过无线传输后,温度数据信息将在1602液晶显示芯片上进行显示,1602液晶显示芯片采用标准的14脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。D0D7为8位双向数据线。本系统的温度采集与显示,无线的传输与对比均由单片机89S52来控制完成。相比较而言ATMEL公司的89S51更实用,因它不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是Flash工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为ATMEL AT89xx做的编程器均带有这些功能。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了我们的劳动成果。2 系统硬件设计2.1主控制器AT89S522.1.1引脚结构AT89S52各引脚如图2-1所示:图2-1 AT89S52封装2.1.2 主要性能与MCS-51单片机产品兼容8K字节在系统可编程Flash存储器1000次擦写周期全静态操作:0Hz33Hz三级加密程序存储器32个可编程I/O口线三个16位定时器/计数器八个中断源全双工UART串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符2.1.3 功能特性描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止1-4。2.1.4 各引脚功能VCC:电源GND:地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O 口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示:表2-1 P1口特殊功能引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在Flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。表2-2 P3口特殊功能引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2(外部中断0)P3.3 (外部中断1)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号()是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。在Flash编程期间,EA也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端5。2.2单总线数字温度传感器DSl8B202.2.1功能特性描述无线温度的采集主要基于单线数字温度传感器DS18B20芯片。Dallas 半导体公司的单线数字温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20支持“一线总线”接口,测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,支持3V5.5V的电压范围,DS18B20可以程序设定912位的分辨率,精度为0.5C。数字单总线温度传感器是目前最新的测温器件,它集温度测量、A/D转换于一体,具有单总线结构、数字量输出、直接与微机接口等优点。既可用它组成单路温度测量装置,也可用它组成多路温度测量装置,文章介绍的单路温度测量装置已研制成产品,产品经测试在-10C 70C间测得误差为0.25C,80CT105C时误差为0.5C,当T105C误差为增大到1C左右。其主要件能指标:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 2.2.2引脚结构DS18B20采用如图2-2所示的3脚PR-35封装或8脚SOIC封装。图2-2 DS18B20封装DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。 DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625C/LSB形式表达,其中S为符号位。12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。DS18B20温度传感器的存储器:DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0。R1和R0用来设置分辨率,如表2-3所示:表2-3 分辨率设置表R1R0分辨率温度最大转换时间009位96.75ms0110位187.5ms1011位375ms1112位750ms根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。在硬件上,DS18B20与单片机的连接有两种方法,一种是Vcc接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时Vcc、GND接地,I/O接单片机I/O。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻。 DS18B20有六条控制命令,如表2-4所示:表2-4 DS18B20控制命令指令约定代码操作说明温度转换44H启动DS18B20进行温度转换读暂存器BEH读暂存器9个字节内容写暂存器4EH将数据写入暂存器的TH、TL字节复制暂存器48H把暂存器的TH、TL字节写到E2RAM中重新调E2RAMB8H把E2RAM中的TH、TL字节写到暂存器TH、TL字节读电源供电方式B4H启动DS18B20发送电源供电方式的信号给主CPU单片机对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作。DS18B20每一步操作都要遵循严格的工作时序和通信协议。如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作6-7。 2.3无线传感器nRF905模块2.3.1 模块介绍无线传感器nRF905模块是以Nordic公司的单片射频发射器nRF905芯片开发而成,工作电压为1.93.6V,工作于433/868/915MHz3个ISM频道。nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器、功率放大器等模块。实物如图2-3所示: 图2-3 nRF905实物图2.3.2 接口电路管脚说明nRF905接口电路如图2-4所示:图2-4 nRF905硬件接口各引脚的说明如表2-3所示:表2-5 nRF905管脚说明表管脚名称管脚功能说明1VCC电源电源+1.9-3.6V DC2TX_EN数字输入TX_EN=1 TX模式 TX_EN=0 RX模式3TRX_CE数字输入使能芯片发射或接收4PWR_UP数字输入芯片上电5uCLK时钟输出本模块该脚废弃不用,向后兼容6CD数字输出载波检测7AM数字输出地址匹配8DR数字输出接收或发射数据完成9MISOSPI接口SPI输出10MOSISPI接口SPI输入11SCKSPI时钟SPI时钟12GSNSPI使能SPI使能13GND地接地14GND地接地说明:(1) VCC脚接口电压范围为3V-3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块。推荐电压3.3V左右。(2) 除电源VCC和接地端,其余脚都可以直接和普通的5V单片机IO口直接相连,无需电平转换。当然对3V左右的单片机更加适用了。(3) 硬件上面没有SPI的单片机也可以控制本模块,用普通单片机IO口模拟SPI不需要单片机SPI模块介入,只需添加代码模拟SPI时序即可。(4) 13脚、14脚为接地脚,需要和母板的逻辑地连接起来。(5) 与51系列单片机P0口连接时,需要加10K的上拉电阻,与其余借口连接不需要。(6) 其他系列的单片机,如果是5V的,需参考该系列单片机IO口输出电流大小,如果超过19 mA,需要串联电阻分压,否则容易烧毁模块!如果是3.3V的,可以直接和nRF905模块的IO口线连接。2.3.3 工作方式nRF905工作模式及TRX_CE、TX_EN、PWR_UP的设置如表2-6所示:表2-6 nRF905工作模式PWR_UPTRX_CETX_EN说明0XX掉电和SPI编程10XStandby和SPI编程110ShockBurst Rx111ShockBurst Tx1)ShockBurst模式ShockBurstTM收发模式下,使用片内的先入先出堆栈区,数据低速从微控制器也能得到很高的射频数据发射速率。与射频协议相关的所有高速信号处理都在片内进行,这种做法有三大好处:尽量节能;低的系统费用(低速微处理器也能进行高速射频发射);数据在空中停留时间短,抗干扰性高。ShockBurstTM技术同时也减小了整个系统的平均工作电流。在ShockBurstTM收发模式下,nRF905自动处理字头和CRC校验码。在接收数据时,自动把字头和CRC校验码移去,在发送数据时,自动加上字头和CRC校验码,当发送过程完成后,DR引脚同志微处理器数据发射完毕。2)ShockBurst TX发送流程典型的nRF905发送流程分以下几步:A当微控制器有数据要发送时,通过SPI借口,按时序把接收机的地址和要发送的数据发送给nRF905,SPI接口的速率在通信协议和器件配置时确定;B微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurst TM发送模式;CnRF905的ShockBurst TM发送;(1)射频寄存器自动开启;(2)数据打包(加字头和CRC校验码);(3)发送数据包;(4)当数据发送完成,数据准备还引脚被置高;DAUTO_RETRAN被置高,nRF905不断重发,知道TRX_CE被置低;E当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。3) ShockBurst RX接收流程A当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurst TM接收模式;B650us后,nRF905不断监测,等待接受数据;C当nRF905检测到同一频段的载波时,载波检测引脚被置高;D当接收到一个匹配的地址,AM引脚被置高;E当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把DR引脚置高;F微控制器把TRX_CE置低,nRF905进入空闲模式;G微控制器通过SPI口,以一定的速率把数据移到微控制器内;H当所有的数据接收完毕,nRF905把DR引脚和AM引脚置低;InRF905此时可以进入ShockBurst TM接收模式、ShockBurst TM发送模式或关机模式。当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,nRF905立即把其工作模式改变,数据包则丢失。当微控制器接到AM引脚的信号之后,其就知道nRF905正在接收数据包,其可以决定是让nRF905继续接收该数据包还是进入另一个工作模式。4)节能模式nRF905的节能模式包括关机模式和节能模式。在关机模式,nRF905的工作电流最小,一般为2.5uA。进入关机模式后,nRF905保持配置字中的内容,但不会接收或发送任何数据。空闲模式有利于减小工作电流,其从空闲模式到发送模式或接收模式的启动时间也比较短。在空闲模式下,nRF905内部的部分晶体振荡器处于工作状态 8-10 。2.3.4 配置nRF905模块所有配置字都是通过SPI接口送给nRF905。SIP接口的工作方式可通过SPI指令进行设置。当nRF905处于空闲模式或关机模式时,SPI接口可以保持工作状态。1)SPI接口寄存器配置SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息;射频配置寄存器包含收发器配置信息,如射频和输出功能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含待发送的数据报信息,如字节数等;接收数据寄存器包含要接收的数据的字节数等信息。SPI接口由5个内部寄存器组成执行寄存器的回读模式来确认寄存器的内容。2)SPI指令设置当CSN为低时,SPI接口开始等待一条指令。任何一条新指令均由CSN的由高到低的转换开始。用于SPI接口的有用命令见下表2-7:表2-7 SPI串行接口指令设置SPI串行接口指令指令名称指令格式操作W_CONFIG(WC)0000AAAA写配置寄存器AAAA指出写操作的开始字节字节数量取决于AAAA指出的开始地址R_CONFIG(RC)0001AAAA读配置寄存器AAAA指出读操作的开始字节字节数量取决于AAAA指出的开始地址W_TX_PAYLOAD(WTP)00100000写TX有效数据1-32字节写操作全部从字节0开始R_TX_PLAYLOAD(RTP)00100001读TX有效数据1-32字节读操作全部从字节0开始W_TX_ADDRESS(WTA)00100010写TX地址1-4字节写操作全部从字节0开始R-TX-ADDRESS(RTA)00100011读TX地址1-4字节读操作全部从字节0开始R_RX_PAYLOAD(RRP)00100100读RX有效数据1-32字节读操作全部从字节0开始CHANNEL_CONFIG(CC)1000pphccccccccc快速设置配置寄存器中CH_NO HFREQ_PLL和PA_PWR的专用命令CH_NO=cccccccc HFREQ_PLL=h PA_PWR=pp2.4 LCD1602显示模块2.4.1 控制器接口说明各引脚符号及功能如表2-8所示:表2-8 接口信号表编号符号引脚说明编号符号引脚说明1VSS电源地9D2Data I/O2VDD电源正极10D3Data I/O3VL液晶显示偏压信号11D4Data I/O4RS数据/命令选择端(H/L)12D5Data I/O5R/W读/写选择端(H/L)13D6Data I/O6E使能信号15D7Data I/O7D0Data I/O15BLA背光源正极8D1Data I/O16BLK背光源负极1)基本操作时序(1)读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字(2)写指令:输入:RS=L,RW=L,D0D7=指令码,E=高脉冲 输出:无(3)读数据:输入:RS=H,RW=H,E=H 输出:D0D7=数据(4)写数据:输入:RS=H,RW=L,D0D7=数据,E=高脉冲 输出:无2) RAM地址映射图控制器内部带有808位(80字节)的RAM缓冲区,对应关系如图2-5所示:图2-5 RAM地址映射图2.4.2 初始化过程(复位过程)1延时15ms2写指令38H(不检测忙信号)3延时5ms4. 写指令38H(不检测忙信号)5. 延时5ms6. 写指令38H(不检测忙信号)7. (以后每次写指令、读/写数据操作之前均需检测信号忙)8. 写指令38H:显示模式设置9. 写指令08H:显示关闭10. 写指令01H:显示清屏11. 写指令06H:显示光标移动设置12. 写指令0CH:显示开及光标设置2.5 ISD1420语音模块ISD1420是美国ISD公司出品的新型单片优质语音录放电路,较之以往所有的语言电路,具有专利技术的模拟处理存储方式,使录放音质极佳,没有常见的背景噪音,且电路断电后语音内容仍不丢失。电路内部由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。一个最小的录音系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻和电容组成。2.5.1 特点 重现优质原声 基本上不耗电信息存储 信息可保存100年,可反复录放10万次 选址处理多达160段 具有自动节电模式 维持状态,仅需0.5uA电流2.5.2 电路外形图及引出端功能说明ISD1420接口电路如图2-6所示:图2-6 ISD1420引脚图引脚说明如表2-9所示:表2-9 引出端说明表名称管脚功能名称管脚功能A0A51-6地址Ana Out21模拟输出A6、A79、10地址(MSB)Ana In20模拟输入VCCD28数字电路电源AGC19自动增益控制VCCA16模拟电路电源Mic17麦克风输入VSSD12数字地Mic Ref18麦克风参考输入VSSA13模拟地24放音,边缘触发SP+、-14、15喇叭输出+、-27录音XCLK26外接定时器(可选)25发光二极管NC11空脚23放音,电平触发2.5.3 地址模式A0A7地址输入有双重功能,根据地址中的A6,A7的电平状态决定功能。如果A6,A7有一个是低电平,A0A7输入解释为地址位,作为起始地址用。根据、或的下降沿信号,地址输入被锁定。A0A7由低位向高位排列,每位地址代表125毫秒的寻址,160个地址覆盖20秒的语音范围(160*0.125s=20s),录音及放音功能均从设定的起始地址开始,录音结束由停止键操作决定,芯片内部自动在该段的结束位置插入结束标志(EOM);而放音时芯片遇到EOM标志即自动停止放音。2.5.4 操作模式如果A6,A7同为高电平时,它们即为模式位。地址位仅作为输入端,在操作过程中不能输出内部地址信息。使用操作模式有两点要注意:1、所有初始操作都是从0地址开始,0地址是ISD1420存储空间的起始端,以后的操作可根据模式的不同,而从不同的地址开始工作。当电路中录放音转换或进入省电状态时,地址计数器复位为0。2、当、或变为低电平,同时A6,A7为高电平时,执行对应操作模式。这种操作模式一直执行到下一个低电平控制输入信号出现为止,这一刻现行的地址/模式信号被取样并执行。操作模式描述:操作模式可以与微控制器一起使用,也可用硬件连线得到所需系统操作。A0-信息检索(或only)不知道每个信息的实际地址,A0可使操作者快速检索每条信息,A0每输入一个低脉冲,可使得内部地址计数器跳到下一个信息。这种模式仅用于放音,通常与A4操作同时应用。A1-删除标志(only)可使录入的分段信息成为连续的信息,用A1可删除掉每段中间信息后的标志,仅在所有信息后留一个标志。当这个操作模式完成时,录入的所有信息作为一个连续的信息放出。A2-未用。A3-循环重放信息(或only)可使存于存储空间始端的信息自动地连续重放。一条信息可以完全占满存储空间,那么循环就可以从头至尾进行工作,并由始至终反复重放。A4-连续寻址:在正常操作中,当一个信息放出,遇到一个标志时,地址计数器会复位,A4可防止计数器复位,使得信息连续不断地放出。A5-未用。2.6 键盘输入模块键盘采用44矩阵式键盘,利用8跟数据线(即占用8个I/O)来实现对16个按键的扫描处理。矩阵式键盘对按键的处理一般采用逐行扫描查询或者逐列扫描查询法。本模块采用逐行扫描查询法,其原理是:首先,判断有无按键按下,将键盘中的行线全部置0,然后读入列线的信号,若有按键按下,则必有列线信号为0;接着,来判断是哪个按键被按下,将按键中的行线逐行依次设置为0;最后读入列线的状态,当列线中有0时,则该列线与当前行线交叉的那个按键被按下。这样,就实现了对矩阵式键盘按键的识别与处理。2.7硬件概要设计系统由两部分组成:一是采集数据、数据处理、发出报警信号和进行无线传输的主机;其原理框图如图2-7所示:图2-7 主机采集发送模块二是接收数据并把数据显示出来的接受端,同时进行语音播报。其原理框图如图2-8所示:图2-8 从机语音播报接收模块2.8 硬件总体设计系统分为两大部分,由概要设计图可知第一部分主要由AT89S52、温度传感器DSl8820、LCD液晶、无线nRF905模块、44矩阵式键盘组成,通过DS18B20将温度信息采集后,经过89S52将数据进行处理后,通过无线模块传输到第二部分,同时第一部分还可以通过键盘对报警温度上下限进行设置。第二部分主要由AT89S52、LCD液晶、无线nRF905模块、ISD1420语音模块组成,通过无线模块进行进行数据的接收,然后通过ISD1420进行语音播报14。系统硬件连线如图2-9、2-10所示。图2-9采集发送模块图2-10语音播报接收模块3 系统软件设计3.1 软件开发环境3.1.1 Keil简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。3.1.2 系统概述Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。3.1.3 Keil C51单片机软件开发系统的整体结构C51工具包的整体结构中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项:* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 * 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 * 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。3.2 主程序该系统的软件采用模块结构,由C语言编写完成。主要由初始化程序、读传感器状态、键扫、LCD显示程序、射频模块无线发送等模块组成。程序结构图如图3-1、3-2所示:图3-1主机程序结构图图3-2从机程序结构图3.3温度采集电路DS18B20的工作严格遵守单总线器件的通信协议,以保证数据的完整性。单总线协议定义了复位脉冲、应答脉冲、写0、写1、读0和读1几种类型的信号,所有的单总线命令序列都是由这些基本的信号类型组成。在这些信号中,除了应答脉冲外,其他均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前11-13。在本设计中,总线上只有一个温度传感器,转换精度为12位。读温度的流程如图3-3所示:图3-3温度转换流程图初始化DS18B20代码如下:Init_DS18B20(void) DQ = 1 ; /DQ复位 Delay1(8) ; /稍做延时 DQ = 0 ; /单片机将DQ拉低 Delay1(90) ; /精确延时大于480us DQ = 1 ; /拉高总线 Delay1(8) ; presence = DQ ; /如果=0则初始化成功 =1则初始化失败 Delay1(100) ; DQ = 1 ; return(presence) ; /返回信号,0=presence,1=no presence读取DS18B20温度信息,代码如下:Read_Temperature(void) Init_DS18B20() ; WriteOneChar(0xCC) ; / 跳过读序号列号的操作 WriteOneChar(0x44) ; / 启动温度转换 Init_DS18B20() ; WriteOneChar(0xCC) ; /跳过读序号列号的操作 WriteOneChar(0xBE) ; /读取温度寄存器 temp_data0 = ReadOneChar() ; /温度低8位 temp_data1 = ReadOneChar() ; /温度高8位 3.4 收发端的程序流程图单片机串口对无线收发模块接收状态转换的控制,可通过设置空间的属性来实现。如图3-4为发送端程序流程图,图3-5为接收端程序流程图。图3-4发送端流程图图3-5
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 瓷砖专卖店年终总结
- 消防安全普及培训报道课件
- 2025至2030中国加筋土工合成材料行业项目调研及市场前景预测评估报告
- 二手房屋买卖合同模板:含房屋交易风险评估及建议
- 文化创意产业园区空场地租赁及运营管理合同
- 因男方过错离婚的财产分割及子女监护安排协议
- 企业核心技术人员离职竞业限制保密协议书
- 高端人才离职后商业秘密保护与竞业禁止合同
- 2025至2030中国皮肤套刮器行业项目调研及市场前景预测评估报告
- 离婚协议书范本:共同财产分割与债务处理
- 生产车间出勤管理制度
- 亲子观影活动方案
- 《书愤》课件-【中职专用】高二语文(高教版2023职业模块)
- 人工智能通识 课件 第七章 智能之躯-具身智能
- 妈妈驿站加盟合同范本
- 专题06 对角互补模型(原卷版)
- 2025勤工俭学合同范本
- 水利工程设计概估算编制规定工程部分
- 《销售经理技能提升》课件
- 培育战斗精神 砥砺血性胆气 -2024教育实践活动
- 小学生科普讲堂课件-彩虹的秘密
评论
0/150
提交评论