




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南大学物理与电子学院开放实验室单片机设计报告数字式智能语音温度计设计人:开放实验室入室人员 目 录0 前言11 系统组成与功能11.1 系统组成1 1.1.1 STC89C52单片机1 1.1.2 74LS138译码器芯片2 1.1.3 DS18B20测温传感器31.1.4 四位一体七段数码管31.1.5 WT588D语音芯片41.2 系统功能62 系统原理52.1系统仿真图62.2 实物照片63 程序流程图74 具体程序代码85 结论116 扩展部分设计心得12参考文献13- 13 -河南大学物理与电子学院开放实验室单片机设计报告 数字式智能语音温度计0 前言LED数码管实际上是由七个发光管组成8字形构成的,加上小数点就是8个。这些段分别由字母a,b,c,d,e,f,g,dp来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED数码管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为1.8V左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用LED数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 在本学期的单片机在项目设计中,我们两人一组共同讨论并设计出了一种基于单片机控制的LED数码智能语音温度计,并最终在老师指导下完成了实际的成品,调试后能实现了预期的功能。同时我们在实现其基本功能的基础上进行了一定程度的功能扩展。1系统组成与功能1.1 系统组成本系统主要有STC89C52单片机、按键、74LS138译码器芯片、DS18B20测温传感器、四位一体七段数码管、WT588D语音芯片等元件组成。1.1.1 STC89C52单片机STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。其引脚图如图11所示。1.1.2 74LS138译码器芯片74LS138 为3 线8 线译码器,共有 54/74S138和 54/74LS138 两种线路结构型式。其工作原理如下:1.当一个选通端(E1)为高电平,另两个选通端((/E2)和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。2.利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。3.若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。(a) (b) 图12 (a)74LS138引脚图 (b)74LS138实物图1.1.3 DS18B20测温传感器DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢封装式,型号多种多样,有LTM8877,LTM8874等等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM 的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。图13 DS18B20实物及简易使用接线图1.1.4 四位一体七段数码管本设计用到四位一体七段数码管1个,其原理与单个的数码管显示原理相同。四位一体的数码管共12个引脚。A-dp八个引脚对应八根数据线,控制显示的字形。DIG1-DIG2四个引脚为公共端,控制当前显示字形的位别,为扫描法显示提供了方便,有效减少了数码管占用的单片机引脚数。上图为共阴四位数码管的内部结构图。引脚排列依然是从左下角的第一只管脚开始,以逆时针方向依次为1-12脚,数码管内部结构及引脚参见图1 4 。1.1.5 WT588D语音芯片WT588D芯片封装有DIP18、SSOP20和LQFP32形式; 根据外挂或者内置SPI-Flash的不同,播放时长也不同,支持2M32Mbit的SPI-Flash存储器; 内嵌DSP高速音频处理器,处理速度快; 内置13Bit/DA转换器,以及12Bit/PWM输出,音质好; PWM输出可直接推劢0.5W/8扬声器,推挽电流充沛; 支持DAC/PWM两种输出方式; 支持加载WAV音频格式;支持MP3控制模式、挄键控制模式、38挄键组合控制模式、开口控制模式、一线串口控制模式、三线串口控制模式以及三线串口控制I/O口扩展输出模式; 三线串口控制模式切换到三线串口控制I/O口扩展输出模式只需发送数据就可以迚行切换。切换后仍可把切换前的最后一工作状态带迚切换后的模式工作; 仸意设定显示诧音播放状态信号的BUSY输出方式; 抗干扰性强,可应用在工业领域; 15种挄键控制模式,仸意一个挄键可设定仸意一种控制模式; 配套WT588D VoiceChip上位机软件,接口简单,使用方便。能极大限度的发挥出WT588D诧音单片机的各项功能; 下图为WT588D16PIN引脚图及实物图:图15 WT588D(16PIN)引脚图及实物图1.2 系统功能 本设计的主要功能是用单片机来控制DS18B20测温及驱动LED数码管显示温度,用户可以通过修改程序的延时函数来改变测温频率。扩展后的系统增加了语音模块,通过事先编译的语音文件来实现智能的语音报告温度和高低温提醒功能。同时,我们进一步优化了程序,将报温过程中的LED数码管设置成跟随语音的同步闪烁,增加了这个产品的人性化。2 系统原理本系统设计的主要原理是用DS18B20测温单元和用单片机控制WT588D语音模块、数码管显示模块(由74LS138译码器驱动)来工作。其中WT588D语音模块集成了语音的存储、编译和输入、输出功能。当18B20测出实时温度后,单片机将采集到的相应的数据转换并由38译码器驱动LED数码管显示温度,接下来单片机通过I/O把程序转换后的相应数据分别传送到对应模块,实现对各模块的控制功能。2.1 系统仿真图基本的仿真图具体见图21所示。图21 基本系统仿真图(WT588D不能仿真)2.2 实物照片具体的实物照片如图23所示。图23 实物照片3 程序流程图开始初始化温度采集处理数码管闪烁播放系统音开始测温检测忙信号如果十位顺序播放:个位、点、小数、摄氏度 Y十位 播放十位语音 N Y播放语音“十”不播放个位 然后顺序播放个位=0 Y Y N 顺序播放:点、小数位、摄氏度播放个位 4程序源代码(主要部分)/*; 闪烁函数*/void reade(char j)TemCode=dis_7displayj;if(j=1) LEDdot=0;TemScan=scan_conj;delay(90);TemScan=0xff; /*; 显示扫描函数*/scan() char k;for(k=0;k4;k+)TemCode=dis_7displayk;if(k=1) LEDdot=1;TemScan=scan_conk;delay(90);TemScan=0xff;/*; 读出温度函数*/float read_temp()ow_reset();/18B20 总线复位write_byte(0xCC);/发skip ROM 命令write_byte(0xBE);/发读命令temp_data0=read_byte();/温度低8位temp_data1=read_byte();/温度高8位ow_reset();write_byte(0xCC);/发skip ROM命令write_byte(0x44);/发转换命令/*; 语音报告函数*/ TemVoice()for(h=0;h200;h+)scan();TEST_Busy();Send_threelines(13);TEST_Busy(); /现在温度是for(h=0;h50;h+) reade(3);if(display3=0x0B) Send_threelines(16);TEST_Busy(); /读 负 判断for(h=0;h50;h+) reade(2); /程序太长不宜写在报告中,完整程序请if(display2!=0x0A&display2!=1) /联系QQ154401855(或154401856)下载Send_threelines(display2);TEST_Busy();Send_threelines(10);TEST_Busy(); /读第3位 如果非零且非一 读几十if(display2=1) Send_threelines(10);TEST_Busy(); /第三位是一 则读十for(h=0;h50;h+) reade(1);if(display2!=0x0A&display1!=0|display2=0x0A)Send_threelines(display1);TEST_Busy();/读第2位for(h=0;h50;h+)TemCode=dis_710;LEDdot=1;TemScan=scan_con1;delay(90);TemScan=0xff; Send_threelines(14);TEST_Busy(); /读小数点for(h=0;h50;h+) reade(0);Send_threelines(display0);TEST_Busy(); /读第1位Send_threelines(11);TEST_Busy(); /摄氏度delay(300000); /适当延时以便于提醒if(display3=0x0B|display2=0x0A|(display2=1&display1=0) Send_threelines(17);TEST_Busy(); /低温提醒 负 或者 019度if(display3=0x0A&(display2=2&display1=0) Send_threelines(18);TEST_Busy(); /提醒2029度if(display3=0x0A&display2=3&display2=9) Send_threelines(19);TEST_Busy(); /高温提醒 大于30度/*; 主函数*/main() unit i=0; TemCode=0xFF;/初始化端口TemScan=0xff;for(h=0;h4;h+)displayh=0x0B;/开始显示-.-.-.-.ow_reset();/开机先转换一次write_byte(0xCC);/Skip ROMwrite_byte(0x44);/发转换命令for(h=0;h500;h+) char k;for(k=0;k4;k+)TemCode=dis_7displayk;LEDdot=1;TemScan=scan_conk;delay(90);TemScan=0xff; /显示小数点for(t=0;t4;t+)for(h=0;h200;h+) reade(t);for(h=0;h50;h+)TemCode=dis_710;LEDdot=1;TemScan=scan_cont;delay(90);TemScan=0xff;Send_threelines(15);TEST_Busy();Send_threelines(12);TEST_Busy(); /系统读音while(1) read_temp();work_temp();/读出DS18B20温度数据 处理温度数据for(h=0;h750;h+,i+) scan();if(i=3750) TemVoice();i=0; /温度 3s 一扫描 15s 报告一次 /*; 程序结束*/ 5 结论通过本学期单片机项目设计的学习与动手制作,本设计基本上实现的预定功能,但在此基础上还可以根据不同的需求做相应的扩展,比如可以设计实现与计算机的通信,无线遥控温度的报告及测温频率的大小等。实际设计中,我们查阅了很多相关资料和各种所需原件的技术参数,学到了大量在教材中所不能得到的知识,对我们以后的学习工作带来了很大帮助。由于个人的知识及时间有限,设计本身不足之处可能未完全顾及,比如硬件焊接的工艺不够美观、程序优化不够精简等,还有待进一步改进。但总体来说,本组焊接和程序的优化都做的差强人意。特别是程序的注释条理清晰,可为修改和以后同学的借鉴节省大量时间。由此可见,一个良好的编程习惯对于一个项目设计的重要性是不言而喻的。6 扩展部分设计思路及心得18B20测温基本程序老师已提供,本制作主要扩展了语音存储及播放提醒功能。扩展部分主要使用了WT588D语音芯片,电路主要由魏浩洋同学制作,不再赘述。由于本人编程能力有限,相关程序编写方面,颇费周折,也因此获得了更多的宝贵经验和教训,现总结如下:1、 WT588D芯片采用了三线串口下载模式,具体使用过程中,我们查阅了相关资料和技术参数,最终完成了其与单片机的连接,并顺利让单片机对其进行控制。编译语音时应注意码率的控制,太大无法识别。在制作提醒语音时,我们使用了SmartRead软件进TTS转换,避免了语音的人为朗读差异;2、 通过修改相关参数,我们对18B20采集的温度进行转换并最终显示在LED数码管上。然后通过程序寻找显示数字对应的语音存放地址行朗读提醒。实际制作过程中并不清楚各种数据的进制是否还需要进行转换,所以对显示函数、扫描函数进行了深入研究,最后发现可以直接调用数码管显示的十进制温度数字,因此编程变得清晰。3、 程序编写过程中我们对出现的各种问题进行了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第一医院医疗耗材采购合同2025
- 脚手架项目合同书范例
- 合同付款担保函模板
- 企业解除劳动合同的操作指南
- 快递物流集装箱运输合同
- 建筑企业资质培训
- 债权转让合同范例
- 皮鞋制作中的环境保护措施考核试卷
- 2024年04月江苏苏州市吴江区卫健系统事业单位招聘高层次紧缺卫技人才137人笔试历年专业考点(难、易错点)附带答案详解
- 石灰在海水淡化预处理中的应用考核试卷
- 新人面试典型试题及答案
- 2024年云南省烟草专卖局毕业生招聘考试真题
- 青岛市李沧区教育系统招聘中小学教师笔试真题2024
- 福建省部分地市2025届高中毕业班4月诊断性质量检测英语试题(含答案无听力音频无听力原文)
- 私人飞机转让协议书
- 急诊护理人文关怀成效汇报
- 2024北京中学高二(下)期中数学试题及答案
- 电力技术监督专责人员上岗资格考试题库汽轮机技术监督分册
- 榜样的力量有一种力量叫榜样的力量课件
- 搅拌站的施工方案
- 特种设备安全使用操作培训课件3
评论
0/150
提交评论