基于51单片机的ds18b20温度检测设计报告_第1页
基于51单片机的ds18b20温度检测设计报告_第2页
基于51单片机的ds18b20温度检测设计报告_第3页
基于51单片机的ds18b20温度检测设计报告_第4页
基于51单片机的ds18b20温度检测设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

课程名称微机原理课程设计题目温度检测课程设计摘要随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的温度检测仪。本设计使用简便,功能丰富。可以实现温度采集,温度报警,重设上下限温度值等功能。在现代化的工业生产中,需要对周围环境的温度进行检测和控制。本设计对温控报警问题展开思考,设计一个能根据需求设置低温到高温进行报警并通过数码管显示的系统。该系统使用STC89C51单片机,同时运用单线数字温度传感器DS18B20,四位共阴数码管显示,按键控制等模块可实现温度的检测与设置。课题经过实验验证达到设计要求,具有一定的使用价值和推广价值。本作品使用四位共阴数码管显示,可以清晰地显示当前的报警温度,一定程度避免使用者使用时出错,安全可靠,可使用于各种食品储存室,植物养殖所等地方,实用性很高。关键字温度报警器STC89C51单片机数码管DS18B20目录一、课程设计目的和要求111设计目的112设计要求1二、总体设计方案1三、硬件设计231DS18B20传感器232STC89C51功能介绍533时钟电路734复位电路835LED显示系统电路836按键控制电路1037蜂鸣器电路1038总体电路设计11四、软件设计1341KEIL软件1342系统主程序设计1343系统子程序设计14五、仿真与实现1651PROTEUS仿真软件1652STCISP程序烧录软件1753使用说明17六、总结18一、课程设计目的和要求11设计目的熟悉典型51单片机,加深对51单片机课程的全面认识和掌握,对51单片机及其接口的应用作进一步的了解,掌握基于51单片机的系统设计的一般流程、方法和技巧,为我们解决工程实际问题打下坚实的基础。同时课程设计也是让我们熟练掌握了课本上的一些理论知识,是一个学习新知识、巩固加深所学课本理论知识的过程,它培养了我们综合运用知识、独立思考和解决问题的能力,加深了我们对单片机原理与应用课程的理解。所以此次设计目的具体如下掌握温度检测仪的设计、组装与调试方法;熟悉集成电路DS18B20的使用方法,并掌握其工作原理;12设计要求根据单片机原理及应用课程的要求,主要进行两个方面的设计,即单片机最小系统和外围电路扩展设计、接口技术应用设计。其中,单片机最小系统主要要求学生熟悉单片机的内部结构和引脚功能、引脚的使用、复位电路、时钟电路、4个并行接口和一个串行接口的实际应用,从而可构成最小应用系统,并编程进行简单使用。在采集温度时,为了具有一种反应准确且显示方便的检测温度的装置,下面设计了一种可调节的温度检测仪,也可称作温度报警器。设计要求如下完成温度进行测量,理论测量范围55C125C;将温度测量值通过四位共阴数码管显示模块显示,显示精度为05C;可以通过按键进行对上下限报警温度,自行设定并实现功能;二、总体设计方案硬件电路设计由7个部分组成;DS18B20传感器模块,STC89C51单片机系统,LED显示系统、时钟电路、复位电路以及按键控制电路。其系统框图如下图1所示时钟电路按键控制时钟电路按键控制复位电路时钟电路按键控制STC89C51DS18B20传感器温度采集蜂鸣器电路显示电路图1系统框图三、硬件设计31DS18B20传感器1DS18B20简介DS18B20内部结构主要由四部分组成64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。该装置信号线高的时候,内部电容器储存能量通由1线通信线路给片子供电,而且在低电平期间为片子供电直至下一个高电平的到来重新充电。DS18B20的电源也可以从外部3V55V的电压得到。DS18B20采用一线通信接口。因为一线通信接口,必须在先完成ROM设定,否则记忆和控制功能将无法使用。主要首先提供以下功能命令之一1)读ROM;2)ROM匹配;3)搜索ROM;4)跳过ROM;5)报警检查。这些指令操作作用在没有一个器件的64位光刻ROM序列号,可以在挂在一线上多个器件选定某一个器件,同时,总线也可以知道总线上挂有有多少,什么样的设备。若指令成功地使DS18B20完成温度测量,数据存储在DS18B20的存储器。一个控制功能指挥指示DS18B20的演出测温。测量结果将被放置在DS18B20内存中,并可以让阅读发出记忆功能的指挥,阅读内容的片上存储器。温度报警触发器TH和TL都有一字节EEPROM的数据。如果DS18B20不使用报警检查指令,这些寄存器可作为一般的用户记忆用途。在片上还载有配置字节以理想的解决温度数字转换。写TH,TL指令以及配置字节利用一个记忆功能的指令完成。通过缓存器读寄存器。所有数据的读,写都是从最低位开始。采用DALLAS最新单线数字温度传感器DS18B20。DS18B20“一线总线”数字化温度传感器也支持“一线总线”接口,测量温度范围为55C125C,在1085C范围内,精度为05C。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。DS18B20的特性DS18B20可以程序设定912位的分辨率,精度为05C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。2DS18B20主要特性独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯;测温范围55125,固有测温误差1;支持多点组网功能,多个DS18B20可以并联在唯一的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定;工作电源35V/DC(可以数据线寄生电源);在使用中不需要任何外围元件;测量结果以912位数字量方式串行传送;不锈钢保护管直径6;适用于DN1525,DN40DN250各种介质工业管道和狭小空间设备测温;标准安装螺纹M10X1,M12X15,G1/2”任选;PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。3DS18B20芯片引脚说明DS18B20只有三个引脚,如下图所示图2DS18B20引脚DS18B20有3个引脚,其每个引脚都有着特定的功能GND(1引脚)为电源地;DQ(2引脚)为数字信号输入/输出端;VDD(3引脚)为外接供电电源输入端(在寄生电源接线方式时接地)。如图2。左负右正,一旦接反就会立刻发热,有可能烧毁接反是导致该传感器总是显示85的原因。面对着扁平的那一面,左负右正。如图3为寄生电源供电方式图3DS18B20寄生电源供电方式4DS18B20工作原理独特的单线接口方式使其工作是必须按照严格的时序才能进行。DS18B20的所有通信都由由复位脉冲组成的初始化序列开始。该初始化序列由主机发出,后跟由DS18B20发出的存在脉冲(PRESENCEPULSE)。当发出应答复位脉冲的存在脉冲后,DS18B20通知主机它在总线上并且准备好操作了。在初始化步骤中,总线上的主机通过拉低单总线至少480S来产生复位脉冲。然后总线主机释放总线并进入接收模式。主机将总线拉低最短480US,之后释放总线。由于5K上拉电阻的作用,总线恢复到高电平。DS18B20检测到上升沿后等待15到60US,发出存在脉冲拉低总线60240US。至此,初始化和存在时序完毕。其时序如下图所示图4DS18B20初始化时序主机在写时序向DS18B20写入数据,并在读时序从DS18B20读入数据。在单总线上每个时序只传送一位数据。写时序分为两种写“0”时间隙和写“1”时间隙。总线主机使用写“1”时间隙向DS18B20写入逻辑1,使用写“0”时间隙向DS18B20写入逻辑0所有的写时序必须有最少60US的持续时间,相邻两个写时序必须要有最少1US的恢复时间。两种写时序都通过主机拉低总线产生。为产生写1时序,在拉低总线后主机必须在15S内释放总线。在总线被释放后,由于5K上拉电阻的作用,总线恢复为高电平。为产生写0时序,在拉低总线后主机必须继续拉低总线以满足时序持续时间的要求至少60S。在主机产生写时序后,DS18B20会在其后的15到60US的一个时间窗口内采样单总线。在采样的时间窗口内,如果总线为高电平,主机会向DS18B20写入1;如果总线为低电平,主机会向DS18B20写入0。写0时序和写1时序如图5所示图5写“0”时序和写“1”时序DS18B20只有在主机发出读时序后才会向主机发送数据。因此,在发出读暂存器命令BEH或读电源命令B4H后,主机必须立即产生读时序以便DS18B20提供所需数据。另外,主机可在发出温度转换命令。所有的读时序必须至少有60US的持续时间。相邻两个读时序必须要有最少1US的恢复时间。所有的读时序都由拉低总线,持续至少1US后再释放总线(由于上拉电阻的作用,总线恢复为高电平)产生。在主机产生读时序后,DS18B20开始发送0或1到总线上。DS18B20让总线保持高电平的方式发送1,以拉低总线的方式表示发送0当发送0的时候,DS18B20在读时序的末期将会释放总线,总线将会被上拉电阻拉回高电平(也是总线空闲的状态)。DS18B20输出的数据在下降沿(下降沿产生读时序)产生后15US后有效。因此,主机释放总线和采样总线等动作要在15S内完成。图6为DS18B20的读时序图图6读“0”时序和读“1”时序表明了对于读时序,TINIT(下降沿后低电平持续时间),TRC(上升沿)和TSAMPLE(主机采样总线)的时间和要在15S以内。5DS18B20模块电路图本设计的DS18B20模块负责电路功能是温度采集与转化(DS18B20芯片能自动将采集的温度模拟量转化为数字量),其具体连接电路如下图所示GND3OUT2VC1S8BP图7DS18B20连接电路DS18B20只有三个引脚,因此硬件连线上较为简单。其单总线连接是单片机的P11口,因此在程序中可以通过控制P11口从而来控制DS18B20的功能。如上图所示,上图是DS18B20在PROTEUS中的元件图。该元件上有一个向上和向下箭头,它表示控制传感器的温度,并且温度在传感器能显示出来。这只是仿真上的一个形式,当然实际的元件不是这样的。并且此处为了连接采用的是外接电源的方式,没有使用寄生电源。若在实际工程使用中,如果连接线路更长,为防止电路受外界干扰,可在DQ这条线路上接一个5K的上拉电阻,这样即可使电路更加稳定。32STC89C51功能介绍1简单概述STC89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFLASHPROGRAMMABLEANDERASABLEREADONLYMEMORY)的低电压、高性能CMOS8位微处理器,俗称单片机。STC89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC的89C51是一种高效微控制器。STC89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及仿真引脚排列如图8所示P01234567VCGNDXTRS9/IWALEOU单片机图889C51单片机引脚2主要功能特性带有增强型1T流水线/精简指令集结构8051CPU;工作电压为34V55V(5V单片机)或20V38V(3V单片机);工作频率范围是035MHZ,相当于普通8051的0420MHZ,实际工作频率可达48MHZ;用户应用程序空间有12K/10K/8K/6K/4K/2K字节等多种选择;片上集成512字节RAM;通用I/O口(27/23个),复位后为准双向口/弱上拉(普通8051传统I/O口);可设置成四种模式准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏;每个I/O口驱动能力均可达到20MA,但整个芯片最大不得超过55MA;ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器;可通过串口(P30/P31)直接下载用户程序,数秒即可完成;内部集成MAX810专用复位电路(外部晶体20M以下时,可省外部复位电路);时钟源特点是外部高精度晶体/时钟,内部R/C振荡器,用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟。常温下内部R/C振荡器频率为52MHZ68MHZ。精度要求不高时,可选择使用内部时钟,因为有温漂,所一般选4MHZ8MHZ;有2个16位定时器/计数器;外部中断2路,下降沿中断或低电平触发中断,POWERDOWN模式可由外部中断低电平触发中断方式唤醒;PWM4路)/PCA(可编程计数器阵列),也可用来再实现4个定时器或4个外部中断上升沿中断/下降沿中断均可支持;STC89C51具有ADC功能。10位精度ADC,共8路;通用异步串行口UART,SPI同步通信口,主模式/从模式工作温度范围075/4085;封装类型有PDIP28,SOP28,PDIP20,SOP20,PLCC32,TSSOP20等。3STC89C51引脚89C51单片机多采用40只引脚的双列直插封装DIP方式,下面分别简单介绍。首先电源引脚VCC是40引脚,单片机正是通过它接入5V工作电源。与之相对的是GND20引脚,它是接地端,有了VCC与GND整体电路才能形成回路。时钟引脚有两个,分别是XTAL119引脚和XTAL220引脚,其中XTAL1是片内振荡器反相放大器和时钟发生器电路的输入端,而XTAL2是片内振荡器反相放大器的输出端;复位RST9引脚在振荡器运行时,当有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个引脚保持高电平,51芯片便可循环复位;EA/VPP31引脚为外部程序存储器访问允许控制端。当它为高电平时,单片机读片内程序存储器,在PC值超过0FFFH后将自动转向外部程序存储器。当它为低电平时,只限定在外部程序存储器,地址为0000HFFFFH。VPP为该引脚的第二功能,为编程电压输入端;ALE/PROG30引脚其中ALE为低八位地址锁存允许信号。在系统扩展时,ALE的负跳变沿P0口发出的第八位地址锁存在外接的地址锁存器,然后再作为数据端口。PROG为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端;PSEN29引脚为片外程序存储器的读选通信号端。在单片机读片外程序存储器时,此引脚输出脉冲的负跳变沿作为读片外程序存储器的选通信号;PIN39PIN32为P00P07输入输出脚,P0口是一个8位漏极开路型双向I/O口,内部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个TTL负载电路。通常在使用时外接上拉电阻,用来驱动多个数码管。在访问外部程序和外部数据存储器时,P0口是分时转换的地址低8位/数据总线,不需要外接上拉电阻;PIN1PIN8为P10P17输入输出脚是一个带内部上拉电阻的8位双向I/0口。P1口能驱动4个TTL负载;PIN21PIN28为P20P27输入输出脚,P2口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个TTL负载。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部FLASH程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变;PIN10PIN17为P30P37输入输出脚,P3口是一个内部带上拉电阻的8位双向I/O口,P3口能驱动4个TTL负载,这8个引脚还用于专门的第二功能。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部FLASH程序存储器编程时,接控制信息。33时钟电路单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和2个电容即可,如图9所示GNDX21YTALPFC图9时钟电路电路中的器件选择可以通过计算和实验确定,也可以参考一些典型电路的参数,电路中,电容器C1和C2对震荡频率有微调作用,通常的取值范围是3010PF,在这个系统中选择了22PF;石英晶振选择范围最高可选24MHZ,它决定了单片机电路产生的时钟信号震荡频率,在本系统中选择的是12MHZ,因而时钟信号的震荡频率为12MHZ。34复位电路单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。MCS51单片机有一个复位引脚RST,采用施密特触发输入。当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位。复位完成后,如果RST端继续保持高电平,MCS51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。单片机的复位方式有上电自动复位和手动复位两种,图10是51系列单片机统常用的上电复位和手动复位组合电路,只要VCC上升时间不超过1MS,它们都能很好的工作。0KRUSV图10复位电路35LED显示系统电路LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示器件。1LED基本结构在单片机中使用最多的是七段数码显示器。LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。LED引脚排列如下图11所示图11LED引脚2LED显示器的选择在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4LED”。本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。4LED显示器引脚如图11所示,是一个共阴极接法的4位LED数码显示管,其中A,B,C,E,F,G为4位LED各段的公共输出端,1、2、3、4分别是每一位的位选端,DP是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED显示器组成,每个LED显示器的段输出引脚在内部都并联后,引出到器件的外部。四位共阴数码管P0567DP98LED_图12四位LED引脚对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个I/O接口控制)显示。3数码管显示电路本设计采用的如图12所示的四位共阴极数码管,采用了动态扫描的方式让数码显示出输入通道的电压值。其连接如图13所示图13数码管显示电路图13中P0口接的上拉电阻是1K的排阻,关于排阻的介绍如下常用排阻有A型和B型的区别。A型排阻的引脚总是奇数的。它的左端有一个公共端(用白色的圆点表示),常见的排阻有4、7、8个电阻,所以引脚共有5或8或9个。B型排阻的引脚总是偶数的。它没有公共端,常见的排阻有4个电阻,所以引脚共有8个。排阻的阻值读法如下“103”表示10K,“510”表示51。以此类推。排阻的阻值与内部电路结构通常可以从型号上识别出来。选用时要注意,有的排阻内有两种阻值的电阻,在其表面会标注这两种电阻值,如220330,所以SIP排阻在应用时有方向性,使用时要小心。这里使用的排阻是A09102型号的排阻,它的读读数值方法是1023表示的是10的平方,10乘以10的平方,该排阻阻值为1K欧。图13中数码管是四位共阴数码管P24P27分别接的是数码管的位选,P00P07是数码管的段选,动态扫描时在程序中先打开第一位数码管的位选,再打开此位数码管段选,然后短暂延时(延时尽量不要超过15MS,否则最终效果会使数码管闪烁)。36按键控制电路本设计除了实现温度检测功能外,设计者也丰富了其功能,另外还设计了可调节温度上下限的模块,因为DS1B820内部可存储用上下限值,也可实现温度报警的功能。其按键控制电路连接如下图所示K123P6GND按键图14按键控制如图所示,K1,K2,K3,K4实现的功能分别是增加温度数值,减少温度数值,确认,上下限警报切换。每按一次K1键,数码管显示的温度值加1,按下确认键后,那么这个值就成了一个界限,每按一次K2键,数码管显示的温度值减1,按下确认键后,那么这个值也成了一个界限,最终温度的允许范围只能在这两个界限内,一旦超出或低于这两个界限,蜂鸣器报警电路将会发“嘟嘟嘟嘟”的响声。37蜂鸣器电路蜂鸣器分为有源蜂鸣器和无源蜂鸣器,该电路中蜂鸣器用的是无源蜂鸣器,如图15蜂鸣器驱动模块BUZER器213S90VCRKGNDP蜂鸣器图15蜂鸣器模块电路有源蜂鸣器与无源蜂鸣器的区别注意这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会响,而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K5K的方波去驱动它有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路无源蜂鸣器的优点是便宜,内部无振荡源,价格上相比更为便宜。声音频率可控,可以做出“多来米发索拉西”的效果。在一些特例中,可以和LED复用一个控制口,因为它要求音频输入的信号才能发响。有源蜂鸣器的优点是程序控制方便。此处驱动蜂鸣器用的三极管采用的是S9012PNP型号三极管,由于PROTEUS仿真中没有S9012这个三极管,所以选用了一个相似的PNP型号三极管,其中基极接的限流电阻大小和实物也不一样,实际接的是1K的限流电阻。但实际效果和仿真效果是一样的,如图所示,蜂鸣器接在了三极管的集电极,这里的三极管实际就是运用开关管的功能。关于三极管的引脚分辨方法如下1)判定基极,用万用表R100或R1K挡测量三极管三个电极中每两个极之间的正、反向电阻值。当用第一根表笔接某一电极,而第二表笔先后接触另外两个电极均测得低阻值时,则第一根表笔所接的那个电极即为基极B。这时,要注意万用表表笔的极性,如果红表笔接的是基极B。黑表笔分别接在其他两极时,测得的阻值都较小,则可判定被测三极管为PNP型管;如果黑表笔接的是基极B,红表笔分别接触其他两极时,测得的阻值较小,则被测三极管为NPN型管。2)判定集电极C和发射极E。以PNP为例将万用表置于R100或R1K挡,红表笔基极B,用黑表笔分别接触另外两个管脚时,所测得的两个电阻值会是一个大一些,一个小一些。在阻值小的一次测量中,黑表笔所接管脚为集电极;在阻值较大的一次测量中,黑表笔所接管脚为发射极。图16PNP三极管引脚38总体电路设计经过以上的设计过程,可设计出基于单片机的简易温度检测仪硬件电路原理图如图17所示BUZER器213S90VCRKGNDFTP4567XL电源模块四位共阴数码管IOU蓝白自锁开关口上拉电阻HAD/WAE单片机Y蜂鸣器按键FGCP_B图17整体电路从图中可以看出整体电路是以STC89C52单片机为核心设计的。在数码管部分用的是网络标号与P0口连接,这样比较美观,避免了太多线的麻烦。8按键全部整使用的P1口,因为其他的P0都有扩展东西,所以利用P1口扩展按键将单片机的I/O口合理利用。整体电路的布局也更为合理,也方便了在实际焊接步骤。经过将近一周的单片机课程设计,终于完成了温度检测仪的设计,虽然没有完全达到设计要求,但还是收获良多。通过这次课程设计,使我更进一步地熟悉了单片机芯片的工作原理和其具体的使用方法。单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,这锻炼了自己独立思考问题的能力和通过查看相关资料来解决问题的习惯。还有了解了课程设计的一般步骤,和设计中应注意的问题,做这个设计我有了很多教训,首先在洞洞板的布线上面思考了很久,之前是比较随意的用软件将器件布在了洞洞板软件上,所以很多的问题没有考虑周全,包括一些器件空间的大小,还有包括布局的合理安排等,一开始都做得不够好,在老师指导下,将器件重新布置一番,使得最终效果比以前看上去更工整,这样不仅外观看着更舒服,而且有利于后面出问题的检查与调试。四、软件设计41KEIL软件1)KEILC51是美国KEILSOFTWARE公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。KEIL提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些部分组合在一起。运行KEIL软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么KEIL几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令人事半功倍。2)C51工具包的整体结构,UVISION与ISHELL分别是C51FORWINDOWS和FORDOS的集成开发环境IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件ABS)。ABS文件由OH51转换成标准的HEX文件,以供调试器DSCOPE51或TSCOPE51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。调试程序通过KEIL软件编译,产生HEX文件如图18所示图18KEIL编译产生HEX文件42系统主程序设计根据模块的划分原则,将该程序划分为初始化模块,按键控制模块,DS18B20传感器模块,显示模块。当然还有一个蜂鸣器模块,其在主程序中没标出,因为它是执行报警功能,其详细情况,可到蜂鸣器模块查。主程序流程如图19所示初始化模块开始读取温度按键模块显示温度结束图19主程序流程43系统子程序设计1初始化程序所谓初始化,是对将要用到的MCS51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。本设计程序中的初始化就有一些关于定时器的处理及初始操作,另外还加了一些开机LOGO程序,即刚上电时,该段程序会让数码管显示一些数字,蜂鸣器响一到两秒。2按键控制程序因为本设计中有四个控制按键,所以程序中必然少不了按键扫描的程序,按键控制电路部分程序流程图如下图所示开始K1是否按下调用K1函数功能是否数码管相应显示返回K2是否按下是调用K2函数功能数码管相应显示返回否K3是否按下执行相应功能返回否K4是否按下执行相应功能返回图20按键控制程序流程因本设计中所使用的四脚轻触卧式开关,所以在按键过程中,必然产生一些抖动干扰,因此在程序中必须对按键控制程序进行消抖处理,具体操作一般采用控制其发生,一般这种按键抖动在按下时会有20MS左右时间,在释放时也会存在20MS左右时间,因此,当检测到按键按下时,让其延时10MS后再次检测是否按下,如果按下则进入下一段程序。通过这种方法可以达到去抖的作用。而且这也是比较通用的简便去抖方法。3DS18B20传感器模块程序此模块的程序主要功能是读取采集的温度,其流程图如下所示开始初始化DS18B20输入指令读取温度处理数据返回图21读取温度流程3显示模块程序因本设计是一个温度检测仪,即要显示的是温度值,而且温度数值有正有负,因此本设计中对这些情况都有所考虑,具体流程如下图所示开始判断温度是否大于0是否正温度显示送数码管返回负温度显示送数码管图22显示模块流程因显示模块使用的是四位共阴数码实现的,并且段选都是接一个I/O口上,所以,要让其显示不同的数字时,必须采用动态扫描的方式方能实现。在采用动态扫描时,要非常注意动态扫描的时间长度,一般来讲延时不要超过20MS,因为超过20MS可能看上去会导致数码管闪烁造成显示效果不好。但延时也不能太短,太短会造成显示亮度太低甚致无显示等结果。所以,延时时间上要掌握好,一般来讲延时10MS左右就可以。4蜂鸣器模块程序此模块程序功能是执行报警提示。即当温度不在设定的上下限范围之内时,蜂鸣器便会发出“嘟嘟嘟”的响声。其具体流程如下图所示开始温度是否在范围之内是否蜂鸣器发响执行其他相关操作返回图23蜂鸣器模块程序流程此处所用蜂鸣器为无源蜂鸣器,因此在程序编写中应注意,要将控制该I/O口的电平设成方波形式才能使蜂鸣器发响。五、仿真与实现51PROTEUS仿真软件1)PROTEUS软件是英国LABCENTERELECTRONICS公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。PROTEUS是世界上著名的EDA工具仿真软件,从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086和MSP430等,2010年即将增加CORTEX和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、KEIL和MATLAB等多种编译2)在PROTEUS绘制好原理图后,调入已编译好的目标代码文件HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。PROTEUS是单片机课堂教学的先进助手。PROTEUS不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTEUS提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。随着科技的发展“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTEUS也能茯得愈来愈广泛的应用。通过PROTEUS进行仿真,如仿真结果所示图24启动时整体状态图24显示的是刚启动时的电路状态,从电路中可以看到,每个引旁边都有一些红色或者绿色的小方块,其中红色方块代表此处是高电平,绿色方块代表此处是低电平,在整个电路工作时,基上就可以很清晰地看出电路中每个引脚的电平变化情况。此时数码显示的是一横亮的状态,这是开机时的一个LOGO,在程序中有设定,并且刚开机时,蜂鸣器也会响一到两秒。52STCISP程序烧录软件STCISP是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用非常简便,现在已被广泛使用。1其使用方法步骤如下打开STCISP,在MCUTYPE栏目下选中单片机,如STC89C52RC;根据您的9针数据线连接情况选中COM端口,波特率一般保持默认,如果遇到下载问题,可以适当下调一些;

温馨提示

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

评论

0/150

提交评论