4573基于stc12c5410ad单片机的温湿度检测仪内容摘要:

D 显示器段码控制端口共用 74HC164 的输出 Q0~Q7。 本设计中采用五个数码管进行静态显示,所以要用五个 74HC164 分别控制五个数码管的显示和选通,前一个 74HC164 的 QH 与后一个 74HC164 的输入端相连, 74HC164 的输出端 QA~QH 通过电阻连到数码管上,控制数码管选通的信号为 P1。 2 口通过电阻、三极管与数码管的共阳极连接。 P1。 1 口控制CLOCK 脉冲信号。 74HC164 的 CLEAR 端都始终接高电平, 74HC164 的 A、 B 两输入端共同连接到 口上。 用 LED 显示器显示十六进制数和空白及小 数点的显示段码。 从 LED 显示器的显示原理可知,为了显示字母数字,必须最终转换成相应段选码。 这种转换可以通过硬件译码器或软件进行译码。 其中的共阳极接法在设计中得以应用,单片机信号通过移位寄存器 74HC164 输出,经过八个电阻在 LED数码管上显示出来。 LED 显示电路图如图 212 所示。 河南科技大学本科毕业设计(论文) PCB 下载站 10 1 23 4 5 68910111213U 11 23 4 5 68910111213U 21 23 4 5 68910111213U 31 289U 41 289U 57 4 L S 1 6 4L 1 1L 1 2L 1 3L 1 4L 1 5L 1 6L 1 7L 1 8L 2 1L 2 2L 2 3L 2 4L 2 5L 2 6L 2 7L 2 8L 3 1L 3 2L 3 3L 3 4L 3 5L 3 6L 3 7L 3 8L 4 1L 4 2L 4 3L 4 4L 4 5L 4 6L 4 7L 4 8L 5 1L 5 2L 5 3L 5 4L 5 5L 5 6L 5 7L 5 8P 1 . 1P 1 . 0V C CabfcgdeV C Cabcdefgd pd p83V C CD S 1abfcgdeV C Cabcdefgd pd p83V C CD S 2abfcgdeV C Cabcdefgd pd p83V C CD S 3abfcgdeV C Cabcdefgd pd p83V C CD S 4abfcgdeV C Cabcdefgd pd p83V C CD S 5Q 1P N PR 4 33 0 KV C Cp 1 . 2L18L17L16L15L14L13L12L11L28L27L26L25L24L23L22L21L38L37L36L35L34L33L32L31L48L47L46L45L44L43L42L41L58L57L56L55L54L53L52L51C O MC O MC O MC O MC O MR 81 0 0C O MCOMarr1arr2arr3arr4arr5arr6arr7arr812456791 012456791 012456791 012456791 012456791 03 4 5 6101112133 4 5 610111213QAQBQCQDQEQFQGQHQAQBQCQDQEQFQGQHQAQBQCQDQEQFQGQHQAQBQCQDQEQFQGQHQAQBQCQDQEQFQGQHABCLKCLRABCLKCLRABCLKCLRABCLKCLRABCLKCLR图 212 LED 显示电路图 由于设计中用到 AD 转化器, AD 转化器的参考电压的稳定对于采集数据的准确性有着直接的关系,本设计采用了从 USB 接口取电和通过变压器供电两种 方式,前者是为了在下程序和做一些基本测试的方便,但 USB 接口的电压不是很稳定,所以如果仅用这一种供电方式是不够的,再加上温度传感器 AD590 的工作电压必须要超过 5V 的要求,本设计还采用了后者通过变压电源供电。 通过简单变压器输出的电压首先经过 C C2 的滤波后,再经过集成稳压块 7805 的电压变换后又滤波一下,形成稳定的 5V 电源,可以共单片机使用,经过 7805 之前的部分可以接到 AD590 的正端就可以使 AD590 正常的工作,从而实现了本设计的用电需求。 河南科技大学本科毕业设计(论文) PCB 下载站 11 第 2章 温湿度检测仪的软件设计 167。 主程序模块设计 主程序是 控制和管理的核心,主要完成在系统上电后进行定时和中断 开 始有 键 按 下 吗。 温 度 检 测 吗。 温 度 检 测温 度 显 示湿 度 检 测 吗。 湿 度 检 测湿 度 显 示结 束N OY E SY E SY E SN ON O 图 31 主程序流程图 河南科技大学本科毕业设计(论文) PCB 下载站 12 处理操作的初始化。 它的内容包括主程序的起始地址,中断服务程序的起始地址,有关内存单元及相关部件的初始化和一些子程序调用等等。 主程序设计框图如上 图 31。 主程序初始化的具体内容包括:时间中断的初始化、外部中断源的初始化、单片机 I/O 口初始化、 RAM 初始化、 LED 初始化、对各个子程序的调用,然后对温度和湿度进行检测并将结果显示在 LED 上。 初始化对单片机的工作非常重要,因为 单片机经过复位以后一些状态字,寄存器的初值可能是随机分配的值也可能是全置 0 或置 1,程序在运行过程中,程序状态字起着重要的作用,为了不影响程序的正常运行初始化是十分必要的。 167。 温湿度检测模块程序设计 167。 温度检测模块程序设计 该检测仪的温度检测部分使用的 AD590 是一种由所在环境温度决定的恒流输出器件,其输出特性为: I=Kt t 式中 I 为 AD590 输出电流信号,单位为 1uA 电流。 t 为绝对温度,单位为 K。 Kt为转换系数,单位为 1uA/K。 AD590 输出电流信号经电阻 R 转换为电压信号,其电压为: VR = Kt R t VR从 ADC 口输入到单片机中,进行 A/D 转换,成为数字量 VT。 温度检测模块程序如图 32,首先读取测量电路的温度电压 VT,并将这一电压信号作为温度转换参数进行电压→温度转换,具体转换方法为:把经过 A/D 的所得的数字电压值 VT 作如下计算 T = KT( VTV0) 式中 T 为需要测量的环境实际温度值,参数 V0为环境温度为 0℃时 A/D转换的数字量电压值,参数 KT 为环境温度与 A/D 转换的数字量电压的转换系河南科技大学本科毕业设计(论文) PCB 下载站 13 数: KT = 1/( Kt R15)。 它们均作为常量存储在单片机的片内数据 EEPROM 中。 由于 V0、 KT准确与否直接影响温度测量的精度,可通过以下方法进行校正: 用其它高精度的测温仪测量环境温度 T1,输入本仪表,单片机同时记录下相应的 A/D 转换的数字量 V1。 当环境温度从 T1 变化到 T2 时,重复以上过程,单片机同时记录下相应的 A/D 转换的数字量 V2。 为保证校准精度,环境温度应在 25℃左右变化,并且变化的范围尽可能大一些。 仪表的应用软件根据 KT=( T1T2) /( V1V2)和 V0=VT1T1/KT计算出 KT 和 V0 的值,并存储在单片机的 EEPROM 数据存储器中,既完成该仪表的温度测量精度的校正。 仪表的 应用软件系统配置有专用的服务子程序完成此项工作,仅仅需按仪表的 LED 显示器的提示完成有关操作。 本设计中所用的单片机自带 AD 转换器,无需再另加转换器。 只需按照手册中所说明的 ADC 的用法即可完成 AD 转换功能。 由于本单片机可以提供 8位和 10位两种 AD转化,但是在本设计中为求检测结果的精确性本设计选用了 10 位 AD 转换器,其转化精度要比 8 位高出数倍,同时又采用稳定的 5V电源为单片机供电,进一步确保了检测的准确性。 模拟 / 数字转换结果计算公式如下: 结果 ( ADC_DATA[7:0],ADC_LOW2[1:0] ) = 1024 x Vin / Vcc Vin 为模拟输入通道输入电压, Vcc 为单片机实际工作电压,用单片机工作电压作为模拟参考电压。 取 ADC_DATA 的 8 位为 ADC 转换的高 8 位 ,取ADC_LOW2 的低 2 位为 ADC 转换的低 2 位 ,则为 10 位精度。 如果舍弃 ADC_LOW2 的低 2 位 ,只用 ADC_DATA 寄存器的 8 位 ,则 A/D 转换结果为 8 位精度。 结果 ADC_DATA[7:0] = 256 x Vin / Vcc。 STC12C5410AD 系列带 A/D 转换的单片机在 P1 口,有 8 路 10 位高速 A/D 转换器 , 速度可达 100KHz。 共 8 路电压输入型 A/D,可做温度检测、电池电压检测、按键扫描、频谱检测等。 上电复位后 P1 口为弱上拉型 I/O 口,用户可以通过软件设置将 8 路中的任何一路设置为 A/D 转换,不需作为A/D 使用的口可继续作为 I/O 口使用。 需作为 A/D 使用的口需先将其设置为高阻输入或开漏模式。 在 P1M0、 P1M1中对相应的位进行设置。 河南科技大学本科毕业设计(论文) PCB 下载站 14 由于单片机对数据的采集只能是电压或者频率, AD590 对温度的检测是电路的大小来反映的,要将这个 电流值读到单片机里面来就必须先把这个电流转变成电压,本设计中是通过一个电阻将这个值变成电压的,而单片机的AD 采样范围必须是它的工作电压范围内,即 0~5 V,所以通过计算就可以确定电阻的值,这个过程是经过反复的实验确定的,如果阻值过小就使得采样值不精确,如果阻值过大则完全不能进行采样过程后面的数据处理就更没法进行。 本设计中为了使编程尽量简洁所选取的阻值非常特殊: AD590 变化的电流通过这个特定阻值的电阻时,转变为一个变化的电压,这个电压变化一个毫安对应温度变化一度,这样大大化简了程序中对的温度的算法。 当 AD 转换器将采样的电压值转变为数字值后,单片机将这个数字值进行简单的处理就可以得到要检测的温度值,本设计将温度对电压的变化大体堪为近似的线性关系,把采集到的数字量是将 5V 的电压分成 1024 个等分,则每变化一个温度就可以对应一个数字电压量的变化,就可以通过这个数字量直接对应出环境温度。 单片机中数据的处理全部是用二进制数表示的,这种表示方法不适合我们平时的读数习惯,还得先将十六进制数转变为对应的十进制数来显示,此时一次温度检测才算完成,程序返回进行重复检测来实现实时检测环境温度。 河南科技大学本科毕业设计(论文) PCB 下载站 15 开始返回温度传感电路电压读取温度信号转换初始化温度数据存储温度显示测温结束吗。 YESNO 图 32 温度检测模块程序流程图 温度检测模块程序流程如图 32,该模块程序最后将计算得到的温度值送入数据存储器,并调用 LED 显示程序将环境温度显示出来,然后返回主程序继续下面的操作。 167。 湿度检测模块程序设计 1. 程。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。