博主福利:100G+电子设计学习资源包!
http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect --------------------------------------------------------------------------------------------------------------------------
本设计选用AT89C51作为整个控制系统的核心部分,通过DS18B20采集温度,通过三个按键:模式切换键、加键和减键。模式切换键可以切换正常显示,上限温度设定状态,下限温度设定状态,当实测温度高于设定的上限值,蜂鸣器报警和LED红灯闪烁报警,当实测温度高于设定的下限值,蜂鸣器报警和LED黄灯闪烁报警,系统可以方便的实现温度的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。
3.1 单片机的选型及简介
CPU是整个控制部分的核心。在考虑经济性和满足需求的前提下,本设计选用AT89C51作为整个控制系统的核心部分,它的内部含有可以进行系统的编程的存储器。Flash存储器功能比较强大,在对它进行编程时不仅可以在线操作,也可以使用一般的方法进行操作。编好的程序主要存储在芯片中,它的功能比较强大。所以,选用AT89C51作为本设计的控制中心。器件管脚图如图3-1:
图3-1 AT89C51管脚图
AT89C51简介:单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示。
3.2最小系统模块
在这次课程设计中,根据课题的需要采用的是ATMEL公司51系列单片机AT89C51芯片作为控制芯片。在实际运用中如果只用单片机芯片是没有办法达到所设计的目的,还要有相配套的电路,这样才能组成一个完整的控制系统达到设计的要求。在本次设计中主要采用AT89C51芯片和相配套的电路来组成所需要的模块进行研究,模块中一些具体的参数主要是选用P3口作1602的命令数据控制、时钟、读写控制、和使能控制接口,P2口作按键扫描接口,P2.3作DS18B20的总线接口。P2.5,P2.7作报警控制接口。其电路连接图3-2如下:
图3-2 数据处理及控制模块
3.3温度传感器设计
3.3.1温度传感器简介
DS18B20可以设定9~12位的分辨率,其精确度比较高。为了满足实际的工作需要也可以采用比较小的封闭方式和相对较宽的电压。设定的分辨率及报警温度存储在EPROM中,掉电后不会丢失。
温度传感器DS18B20引脚如图3-3所示
图3-3 DS18B20TO-92封装温度传感器
引脚功能说明:
VDD :可选电源脚,电源电压范围3~5.5V。
DQ :数据输入/输出脚。漏极开路,常态下高电平。
GND :为接地电源脚。
DS18B20的组成部分主要包括:光刻64位ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器这四部分,它们在其内部按照一定得结构进行排列。
光刻64位ROM它的序列号排列是有一定规律的,一般情况下排在首位的是8位不同类型的产品标签,之后是DS18B20的序列48位序列号,排在最后的是前面所有序列号的校验码,我们通过总结可以知道64光刻ROM的作用是保证每个DS18B20都不一样,这样就可以满足总线连接多个DS18B20的要求。
DS18B20温度传感器主要包括的高速内存非常容易丢失,内存RAM主要有八个字节组成,这八个字节所包含的内容有很大的区别。其中第一个字节是是低八位,第二个字节是高八位,第三个和第四个字节是最高和最低位的的非易失性复制,第五个字节是结构寄存器的非易失性复制,第三,第四,第五个字节在每次上电复位时刷新内容。六,七,八个字节用于内部计算。第九个字节是冗余测试。E2RAM的主要作用是为了储存高温与低温触发TH、TL。
通过DS18B20的通信协议,我们知道主机在对其进行控制时温度实现转换主要由三个步骤构成。分别是每次读写DS18B20时都要进行重新设置,完成设置之后需要发送一个指令,只有把相应的指令发送之后才能对其进行相关的操作。CPU在收到重新设置的要求之后需要先下拉后释放,经历一定的时间之后就可以完成对信号的复位。
3.3.2 温度传感器与单片机的连接 温度传感器在和单机片进行连接时所使用的接口型号是P2.0,这种接口在单机片中属于高位地址线。P2端口是一个带内部上拉电阻的8位双向I/O,另外它在输出缓冲时可以带动4个逻辑门电路。P2端口的工作不受外界干扰,即使在对程序进行编写和检查时,它也能够正常工作。图3-4所示就是DSl8820组成情况。
图3-4 DS18B20和单片机的接口连接
3.4LCD显示模块
在这种模块内部存放的字符是有不同的字符组成的,这些字符主要包括:英文字母、常用的数学符号和阿拉伯数字,不同的字符所具有的代码也不一样。就拿英文字母来说大写的A所代表的是41h,如果使用显示器进行发送时,模块上显示的是41h,但是在液晶显示器上看到的却是字母A。
1602液晶模块的控制器主要有11条指令,数量众多的控制指令可以更好地完成对程序的控制,满足其工作需要。
采用的LCD1602液晶模块是标准16针插座,接口电路如图3.6所示
图3.6 显示电路的连接图
3.5系统硬件的总体框图
系统硬件的总体框图如图3.7所示
图3.7 系统硬件的总体框图
第四章 软件设计
4.1 软件介绍
4.1.1 编程软件
Keil软件:单片机开发中离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
4.1.2 绘图软件
Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。.Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。
第五章 调试5.1开机温度测试
运行程序,数码管显示设定温度值。
图5.1开机温度测试
5.2设置温度测试
三个按键:模式切换键、加键和减键。模式切换键可以切换正常显示,上限温度设定状态,下限温度设定状态。通过加键和减键设定温度,通过切换键可以切换成正常状态。
图5.2设置温度测试
5.3 报警测试
当实测温度高于设定的上限值,蜂鸣器报警和LED红灯闪烁报警,如图5.3所示。当实测温度高于设定的下限值,蜂鸣器报警和LED黄灯闪烁报警,如图5.4所示
图5.3上限报警调试
图5.4设置温度测试