单 片 机 原 理 及 接 口 技 术设计报告.doc_第1页
单 片 机 原 理 及 接 口 技 术设计报告.doc_第2页
单 片 机 原 理 及 接 口 技 术设计报告.doc_第3页
单 片 机 原 理 及 接 口 技 术设计报告.doc_第4页
单 片 机 原 理 及 接 口 技 术设计报告.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

课程设计课程名称: 单 片 机 原 理 及 接 口 技 术 学 院: 专 业: 姓 名: 学 号: 年 级: 任课教师: 年 月 日目 录摘要第一章 单片机概述第二章 总体方案设计2.1 课题的意义2.2 系统整体硬件电路 2.2.1 芯片简介 2.2.2 硬件电路设计及描述第三章 系统软件算法设计3.1 主程序3.2 读温度子程序3.3 串行收发数据子程序 3.4 程序流程图课程设计体会参考文献 第一章 单片机概述 单片机是一种集成在电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。 单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。 单片机的基本结构单片机由运算器、控制器、存储器、输入输出设备构成 起初模型1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。 Micro Controller Unit2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。 嵌入式系统单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。 单片机发展史1971年intel公司研制出世界上第一个4位的微处理器;Intel公司的霍夫研制成功世界上第一块4位微处理器芯片Intel 4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。因发明微处理器,霍夫被英国经济学家杂志列为“二战以来最有影响力的7位科学家”之一 。 1971年11月,Intel推出MCS-4微型计算机系统(包括4001 ROM芯片、4002 RAM芯片、4003移位寄存器芯片和4004微处理器 )其中4004(下图)包含2300个晶体管,尺寸规格为3mm4mm,计算性能远远超过当年的ENIAC,1972年4月,霍夫等人开发出第一个8位微处理器Intel 8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。 1973年INTEL公司研制出8位的微处理器8080;1973年8月,霍夫等人研制出8位微处理器Intel 8080,以N沟道MOS电路取代了P沟道,第二代微处理器就此诞生。 主频2MHz的8080芯片运算速度比8008快10倍,可存取64KB存储器,使用了基于6微米技术的6000个晶体管,处理速度为0.64MIPS(Million Instructions Per Second )。 1975年4月,MITS发布第一个通用型Altair 8800,带有1KB存储器。这是世界上第一台微型计算机。 1976年INTEL公司研制出MCS-48系列8位的单片机,这也是单片机的问世。 Zilog公司于1976年开发的Z80微处理器,广泛用于微型计算机和工业自动控制设备。当时,Zilog、Motorola和Intel在微处理器领域三足鼎立。 20世纪80年代初,Intel公司在MCS-48系列单片机的基础上,推出了MCS-51系列8位高档单片机。MCS-51系列单片机无论是片内RAM容量,I/O口功能,系统扩展方面都有了很大的提高。 单片机的硬件特性 1、单片机集成度高。单片机包括CPU、4KB容量的ROM(8031 无)、128 B容量的RAM、 2个16位定时/计数器、4个8位并行口、全双工串口行口。 2、系统结构简单,使用方便,实现模块化; 3、单片机可靠性高,可工作到106 107小时无故障; 4、处理功能强,速度快。单片机的工作过程单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件存储器中。存储器由许多存储单元(最小的存储单位)组成,指令就存放在这些单元里,单元里的指令:每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。 程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。 学习应用六大重要部分单片机学习应用的六大重要部分 一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以需要的连线就很多了,在各微器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。 二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的数字,或者说都是一串0和1组成的序列。换言之,地址、指令也都是数据。指令:由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的一一对应关系,不可以由单片机的开发者更改。地址:是寻找单片机内部、外部的存储单元、输入输出口的依据,内部单元的地址值已由芯片设计者规定好,不可更改,外部的单元可以由单片机开发者自行决定,但有一些地址单元是一定要有的(详见程序的执行过程)。数据:这是由微处理机处理的对象,在各种不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况: 1.地址(如MOV DPTR,1000H),即地址1000H送入DPTR。 2.方式字或控制字(如MOV TMOD,#3),3即是控制字。 3.常数(如MOV TH0,#10H)10H即定时常数。 4.实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执行指令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实际输出的值。 理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指令来执行了。 三、P0口、P2口和P3的第二功能用法:初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间要有一个切换的过程,或者说要有一条指令,事实上,各端口的第二功能完全是自动的,不需要用指令来转换。如P3.6、P3.7分别是WR、RD信号,当微处理机外接RAM或有外部I/O口时,它们被用作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从P3.6或P3.7送出,不需要事先用指令说明。事实上不能作为通用I/O口使用也并不是不能而是(使用者)不会将其作为通用I/O口使用。你完全可以在指令中按排一条SETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么去做,因为这通常会导致系统的崩溃。 四、程序的执行过程:单片机在通电复位后8051内的程序计数器(PC)中的值为0000,所以程序总是从0000单元开始执行,也就是说:在系统的ROM中一定要存在0000这个单元,并且在0000单元中存放的一定是一条指令。 五、堆栈:堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一部份,特殊的是它存放和取用数据的方式,即所谓的先进后出,后进先出,并且堆栈有特殊的数据传输指令,即PUSH和POP,有一个特殊的专为其服务的单元,即堆栈指针SP,每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原来值的基础上)自动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP的值,就可以把堆栈设置在规定的内存单元中,如在程序开始时,用一条MOV SP,#5FH指令,就是把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么一条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元开始往后,而08H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的混乱。不同作者编写程序时,初始化堆栈指令也不完全相同,这是作者的习惯问题。当设置好堆栈区后,并不意味着该区域成为一种专用内存,它还是可以象普通内存区域一样使用,只是一般情况下编程者不会把它当成普通内存用了。 六、单片机的开发过程:我们假设已设计并制作好硬件,下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后用文本编辑器(如EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以写片(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。在此,为使大家对整个过程有个认识,举一例说明: ORG 0000H LJMP START ORG 040H START: MOV SP,#5FH ;设堆栈 LOOP: NOP LJMP LOOP ;循环 END ;结束 单片机学习目前,很多人对汇编语言并不认可。可以说,掌握用C语言单片机编程很重要,可以大大提高开发的效率。不过初学者可以不了解单片机的汇编语言,但一定要了解单片机具体性能和特点,不然在单片机领域是比较致命的。如果不考虑单片机硬件资源,在KEIL中用C胡乱编程,结果只能是出了问题无法解决!可以肯定的说,最好的C语言单片机工程师都是从汇编走出来的编程者,因为单片机的C语言虽然是高级语言,但是它不同于台式机个人电脑上的VC+什么的。单片机的硬件资源不是非常强大,不同于我们用VC、VB等高级语言在台式PC上写程序,毕竟台式电脑的硬件非常强大,所以才可以不考虑硬件资源的问题。还有就是在单片机编程中C语言虽然编程方便,便于人们阅读,但是在执行效率上是要比汇编语言低10%到20%,所以用什么语言编写程序是要看具体用在什么场合下。总的来说做单片机编程要灵活使用汇编语言与C语言,让单片机的强大功能以最高是效率展示给用户。 第二章 总体方案设计2.1 课题的意义 随着计算机技术的飞速发展,数据采集系统应用在多个领域中。将其在某一段时间内检测得到的数据经过转换提取出来,以便进行比较,做出决策,调整控制方案,以提高产品的合格率,产生良好的经济效益。不仅如此,数据采集系统在我国高科技领域中也扮演着十分重要的地位。雷达的实时数据采集,航天飞机成功升空,通讯卫星的实时通报数据,这些高科技给国家人民的生活带来了便利。 因此数据采集是一项十分重要的技术。从严格意义上来讲,数据采集系统是用计算机控制的多路自动检测或巡回检测,并且能够对采集到的数据进行存储、计算、分析,以及从数据中提取可用的信息,供显示,记录、打印或描绘的系统。数据采集系统通常由数据输入通道、数据处理、数据存储、数据显示、数据输出五个部分组成。输入通道实现对数据的检测并读取;数据转化是将采集到的数据进行适当的转化;以便输出人们易懂的数据;数据存储是对采集过来的数据进行存储;以防下次用到可以方便提取;数据显示便是将处理后的数据进行显示,让操作者可以方便读取采集到的信息,以便进行控制;数据输出就是将数据输送到打印机打印。本设计中对数据采集系统做了基本的研究。此次试验主要解决的是怎样进行多路数据采集并如何通过串行口发送数据实现双机通讯的。 2.2 系统整体硬件电路以8051单片机为例讲解单片机的引脚及相关功能; 单片机引脚图 单片机引脚图40个引脚按引脚功能大致可分为4个种类:电源、时钟、控制和I/O引脚。 电源: VCC - 芯片电源,接+5V; VSS - 接地端; 注:用万用表测试单片机引脚电压一般为0v或者5v,这是标准的TTL电平。但有时候在单片机程序正在工作时候测试结果并不是这个值而是介于0v-5v之间,其实这是万用表的响应速度没这么快而已,在某一个瞬间单片机引脚电压仍保持在0v或者5v。 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。 控制线:控制线共有4根, ALE/PROG:地址锁存允许/片内EPROM编程脉冲 ALE功能:用来锁存P0口送出的低8位地址 PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。 PSEN:外ROM读选通信号。 RST/VPD:复位/备用电源。 RST(Reset)功能:复位信号输入端。 VPD功能:在VCC掉电情况下,接备用电源。 EA/VPP:内外ROM选择/片内EPROM编程电源。 EA功能:内外ROM选择端。 VPP功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源VPP。 I/O线 80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。 P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线) 5. P3口第二功能 P30 RXD 串行输入口 P31 TXD 串行输出口 P32 INT0 外部中断0(低电平有效) P33 INT1 外部中断1(低电平有效) P34 T0 定时计数器0 P35 T1 定时计数器1 P36 WR 外部数据存储器写选通(低电平有效) P37 RD 外部数据存储器读选通(低电平有效) max232芯片简介 该产品是由德州仪器公司(TI)推出的一款兼容RS232标准的芯片。由于电脑串口RS232电平是-12v +12v,而一般的单片机应用系统的信号电压是TTL电平0 +5v,MAX232就是用来进行电平转换的,该器件包含2驱动器、2接收器和一个电压发生器电路提供TIA/EIA-232-F电平。该器件符合TIA/EIA-232-F标准,每一个接收器将TIA/EIA-232-F电平转换成5-V TTL/CMOS电平。每一个发送器将TTL/CMOS电平转换成TIA/EIA-232-F电平。主要特点 1、 单5V电源工作2、 LINBICMOSTM工艺技术3、 两个驱动器及两个接收器4、 30V输入电平5、低电源电流:典型值是8mA6、符合甚至优于ANSI标准 EIA/TIA-232-E及ITU推荐标准V.287、ESD保护大于MIL-STD-883(方 法3015)标准的2000V下图为MX232双串口的连接图,可以分别接单片机的串行通信口或者实验板的其它串行通信接口:max232应用电路,注意电容接法。232是电荷泵芯片,可以完成两路TTL/RS-232电平的转换,它的的9、10、11、12引脚是TTL电平端,用来连接单片机的。 MAX232获得正负电源的另一种方法 在单片机控制系统中,我们时常要用到数/模(D/A)或者模/数(A/D)变换以及其它的模拟接口电路,这里面要经常用到正负电源,例如: 9V,-9V; 12V,-12V.这些电源仅仅作为数字和模拟控制转换接口部件的小功率电源。 在控制板上,我们有的只是5V电源,可又有很多方法获得非5V电源。 1.外接;2.DC-DC变换.在这里我选了一块大家常用的芯片:MAX232. MAX232是TTL-RS232电平转换的典型芯片,按照芯片的推荐电路,取振荡电容为uF的时候,若输入为5V,输出可以达到-14V左右,输入为0V ,输出可以达到14V,在扇出电流为20mA的时候,处处电压可以稳定在 12V和-12V.因此,在功耗不是很大的情况下,可以将MAX232的信号经稳压块后作电源使用。 RS232是一种接口,就是通常所说的串口,RS232接口上通信时要12V的电压才能识别,也高是相对高低电平为12V和0V,但是51单片机的高低电平为5V和0V,2者电平不一样没法通信,那中间就需要一个电平转换芯片来当翻译,MAX232就充当这个用的。 USB串口是指一种能把USB信号转换成串口信号的设备。PL2303是一个芯片,这个芯片就是把USB信号转换在串口信号的芯片,所以USB串口可以用PL2303制作出来。PL2303出来还是12V和0V的信号,和单片机通信时中间还是要MAX232芯片转换的。3振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。4芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.2.2 硬件电路设计及描述2.2.2.1 复位电路 为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V5%,即4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才被撤除,微机电路开始正常工作。 在实际应用中,单片机通常采用2中形式的复位电路:上电自动复位电路和按钮开关复位电路。按钮开关及上电自动复位电路 在单片工作过程中,由于某种原因使单片陷入“死机”状态,或根据需要采用强制手段使程序重新开始执行等等,需要采用按钮开关复位方式。下图为开关及上电自动复位电路。当按钮开关S按下时,+5V电源通过S接入电阻R和R1构成的电路网络,设计时使电阻R1上的分压达到高电平的阀值,就可以使单片机复位。因为我们按动按钮开关使其闭合的时间远远大于单片机度为所用时间。通常把上电自动复位电路和按钮开关复位电路综合在一起,这样既可以在每一次电源接通时系统复位,也可以满足复位的要求。AT89C51的上电复位电路,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1?F。上电复位的工作过程是在加电时,复位电路通过电 容加给RST端一个短暂的高电平信号,此高电平信号随着VCC对电容的充电过程而逐渐回落,即RST端的高电平持续时间取决于电容的充电时间。为了保证系统能够可靠地复位,RST端的高电平信号必须维持足够长的时间。上电时,VCC的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在图2的复位电路中,当VCC掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“l”态。如果系统在上电时得不到有效的复位,则程序计数器PC将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。 2.2.2.2 DS18B20温度传感器的简介2.3.1 功能介绍DALLAS最新单线数字温度传感器DS18B20的“一线器件”体积更小、适用电压更宽、更经济 Dallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、 DS1822 “一线总线”字化温度传感器 同DS1820一样,DS18B20也 支持“一线总线”接口,测量温度范围为 -55C+125C,-10+85C范围内,精度为0.5C。DS1822的精度较差为 2C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。而且新一代产品更便宜,体积更小。 DS18B20、 DS1822 的特性 DS18B20可以程序设定912位的分辨率,精度为0.5C。可选更小的方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色! DS1822DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2C,适用于对性能要求不高,成本控制严格的应用,是经济型产品。 继“一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。DS18B20的内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下: DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位,见表2-1。表2-1DS18B20内部温度表示形式这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。见表2-2表2-2DS18B20转化温度形式实际温度值数字输出(二进制)数字输出(十六进制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6EH-551111 1100 1001 0000FC90H2.3.2 DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2PPRAM,后者存放高温度和低温度触发器TH、T和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节,见表2-3。表2-3DS18B20暂存存储器的8个连续字节寄存器内容字节地址温度最低数字位0温度最高数字位1高温限值2低温限值3保留4保留5计数剩余值6每度计数值7CTR校验8该字节各位的意义如下: TM R1 R0 1 1 1 1 1 低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位),见表2-4表2-4分辨率设置表 根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。 DS1820使用中注意事项DS1820虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题: (1)较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。在使用PL/M、C等高级语言进行系统程序计时,对DS1820操作部分最好采用汇编语实现。 (2)在DS1820的有关资料中均未提及单总线上所挂DS1820数量问题,容易使人误认为可以挂任意多个DS1820,在实际应用中并非如此。当单总线上所挂DS1820超过8个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。(3)连接DS1820的总线电缆是有长度限制的。试验中,当采用普通信号电缆传输长度超过50m时,读取的测温数据将发生错误。当将总线电缆改为双绞线带屏蔽电缆时,正常通讯距离可达150m,当采用每米绞合次数更多的双绞线带屏蔽电缆时,正常通讯距离进一步加长。这种情况主要是由总线分布电容使信号波形产生畸变造成的。因此,在用DS1820进行长距离测温系统设计时要充分考虑总线分布电容和阻抗匹配问题。 (4)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。这一点在进行DS1820硬件连接和软件设计时也要给予一定的重视。测温电缆线建议采用屏蔽4芯双绞线,其中一对线接地线与信号线,另一组接VCC和地线,屏蔽层在源端单点接地。2.3.3 DS18B20的内部逻辑图,见图2-3。C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd 图2-3DS18B20内部内部逻辑图2.3.4 DS18B20读写时序主机使用时间隙(time slots)来读写 DSl820 的数据位和写命令字的位2.3.4.1初始化时序见图 2-4主机总线 to 时刻发送一复位脉冲(最短为 480us 的低电平信号)接着在 tl 时刻释放总线并进入接收状态DSl820 在检测到总线的上升沿之后 等待 15-60接着 DS1820 在 t2 时刻发出存在脉冲(低电平持续 60-240 us)如图中虚线所示图2-4DS18B20初始化时序图 2.3.4.2写时间隙当主机总线 t o 时刻从高拉至低电平时 就产生写时间隙从 to 时刻开始 15us 之内应将所需写的位送到总线DSl820 在 t1为15-60us 间对总线采样 若低电平 写入的位是 0见若高电平 写入的位是连续写 2 位间的间隙应大于 1us ,见图2-5。 图2-5写时间隙2.3.4.3读时间隙见图 2-6 主机总线 to 时刻从高拉至低电平时总线只须保持低电平 l 7ts之后15捍 s也就是说t z 时刻前主机必须完成读位 并在 t o 后的 60 尸 s 一 120 fzs 内释放总线读位子程序(读得的位到 C 中) 图2-6读时序2.3.5存储器操作命令,见表2-5表2-5存储器操作命令指令约定代码功能读ROM33H读取DS18B20ROM中的编码(64位地址)符合ROM55H发出命令后,接着发出64位ROM编码,访问单总线上与该编码相同的DS18B20,使之做出反应,为下一步读写作准备。搜索ROM0F0H用于确定挂在同一总线上DS18B20的个数,和识别64位ROM地址,微操作各器件做准备。跳过ROM0CCH忽略64位ROM地址,直接向DS18B20发送温度转换命令,适用于单片工作。告警搜索命令0ECH执行后只有温度值超过限度值才做出反应,温度变换命令44H启动DS18B20进行温度转换,转换时间最长为500毫秒,结果存入内部就九字节RAM中。读暂存器0BEH读内部RA九字节内容写暂存器4EH发出向内部RAM的第3、4字节写上下限温度命令,紧随该命令之后是传送两个字节数据。复制暂存器48H将RAM中的第3、4字节内容写到EEPRAM中。重调EEPRAM0B8H将EEPRAM中的第3、4字节内容写到RAM中。读供电方式0B4H读DS18B20供电模式,寄生供电DS18B20时发送“1”,外接电源发送“1”。2.2.2. 声光报警电路声光报警器是一种用在危险场所,通过声音和各种光来向人们发出示警信号的一种不会引燃易燃易爆性气体的报警信号装置。防爆声光报警器适用于安装在含有C级T6温 度组别的爆炸性气体环境场所,还可使用于石油、化工等行业具有防爆要求的1区及2区防爆场所,也可以露天、室外使用。可以和国内外任 何厂家的火灾报警控制器配套使用。当生产现场发生事故或火灾等紧急情况时,火灾报警控制器 送来的控制信号启动声光报警电路,发出声和光 报警信号,完成报警目的。本产品也可同手动报 警按钮配合使用,达到简单的声,光报警目的。本 产品符合GB3836系列标准的要求(满足GB3836.12000爆炸性环境用防爆电气设备通用要求及GB3836.22000爆炸性环境用防爆电气设备隔爆型“d”标准),经国家指定的 检测机构鉴定并取得了防爆合格证。报警器外壳为全不锈钢壳体,灯壳抗冲击能力强,180清晰可视超高亮LED发光管,配备超强蜂鸣器,具有工作稳定,使用寿命长, 功耗低,不受污染物和水的影响等特点。 声光报警器(Audible and visual alarm)又叫声光警号, 是为了满足客户对报警响度和安装位置的特殊要求而设置。同时发出声、光二种警报信号。产品专用领域:银行,政府机关,邮政,电信,酒店,大厦,工厂商场 商铺、别墅、ATM,周界防越系统及保险服务公司等; 是消防火灾自动报警系统中的一个配件产品。 主要技术参数1工作电压:DC18V26V静态电流:500A 报警电流:60mA 声响等级:80dB 线制:二总线24V(红)、GND(黑) 安装方式:外露壁挂 工作温度:-10+55 相对湿度:95% 外形尺寸:1227344mm(高宽厚) 重量:约150g 颜色:上半部红色、下半部白色 技术参数2防爆标志:ExdbT6 工作电压:DC24V;AC220V 报警电流:DC24V时100mA频闪频率:60次/min 声响强度:90-100dB 声响形式:消防声(可根据用户需求设计成警笛声、救护车声)防 护等级:IP65或无防护 使用环境:温度:-20-+50 相对湿度:95% 不结露 大气压力:80KPa-110KPa 进线口径:M221.5(进线口径的数量及大小可以根据用户的需求设计生产) 重量:1.2Kg 注意事项 1、严禁在易燃易爆场所带电拆卸。 2、安装时不要损伤防爆面,并保持其清洁。防爆面紧固螺钉应均匀拧紧, 注意防爆面不要夹杂导线或其它异物。 3、控制线应与强电磁场导体分开敷设,如无法避开, 探测总线电缆应采用带屏蔽线的铠装电缆,并确保屏蔽线接地良好。 4、长期使用要定期检测防爆火灾声光报警器的性能是否完好, 如失效或损坏时要由专业人员进行维修。 5、接入到火灾报警控制器中,要接输入/输出模板,来控制声光的启动。 声光报警电路 元器件清单 本系统所用的硬件有:见表2-1。表2-1系统硬件清单序号名称型号数量备注1单片机AT89C511个2蜂鸣器AD37-M1个声光报警3串口芯片MAX2321个电平转换4温度传感器DS18B201个检测温度5三极管1个6二极管4个7电阻0.2K、1K、4.7K4个8电容20OF、10UF、0.3UF、0.33UF、1000UF8个9PC机RS2321个10按钮开关3个11导线若干12发光二极管1个硬件原理框图第三章 系统软件算法设计3.1 主程序ORG 0000HLJMP MAINORG 001BHLJMP PINT1MAIN: MOV P1,#0FFH ACALL CSH ;调用初始化程序 MOV A, P1 XRL A,#03H ;判断是否有键按下 JNZ MAIN ;没有就返回 ACALL DL20MS ;调用延时20MS程序MOV A, P1XRL A,#03H ;再次判断是否有键按下JNZ MAIN MOV A, P1MOV TMOD,#20H ;T1方式2、定时模式MOV PCON,#00H ;SMOD=0MOV TH1, #0F4HMOV TL1, #0F4HSETB TR1MOV IE,#90H ;开中断,允许串行口中断MOV SCON,#50H ;串行口方式1,可以接收和发送CLR TRN_STA ;设置本机为发送命令字状态CLR RCV_STA ;设置本机为接收命令字状态RET3.2 键盘扫描子程序NEXT1: CJNE A, #01H, NEXT2 LCALL K1 ;调用K1键的处理程序 CJNE A, #02H, NEXT1 LCALL K2 ; 调用K2键的处理程序NEXT2: CJNE A, #02H, MAIN ACALL K2 END ;延时20MS的程序DL20MS: MOV R2, #10 DL20MS1: MOV R3, #250DL20MS2: NOP NOP DJNZ R3, DL20MS2 DJNZ R3, DL20MS2 RET ;以下初始化程序CHS: MOV R2, #03H DH: MOV P0, #3FH MOV P2, #00H MOV R3, #250DELAY: NOP NOP DJNZ R3, DELAY MOV A, P1 INC A DJNZ R2, DH RET3.3检测温度子程序ORG 0100HCheck_Temperature:data_ACQURACALL rest_pulse;发送复位脉冲DATA_ACQURACALLRESET BYTE;发送复位脉冲MOVA, #0CCHACALLWRITE BYTE;MOVA, #44HACALLWRITE BYTE;初始化温度模块JNBP1.5,$;读DS18B20状态ACALLRESET BYTEMOVA,#0CCHACALLWRITE BYTE MOVA,#0BEHACALLWRITE BYTE ACALL READ BYTEMOVR7,A;存储LSB在R7中ACALLR

温馨提示

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

评论

0/150

提交评论