单片机的电风扇自动控制号(编辑修改稿)内容摘要:
及使用说明 DS18B20 高精度数字温度传感器可以完成如下的功能: (1)采用 AT89S51 单片机和 DS18B20 温度传感器通信,控制温度的采集过程和进行数据通信; (2)提供 DS18B20 的使用外围电路温度显示 LED 电路以 及 DS18B20 和单片机的通信接口电路; (3)利用发光二极管指示系统的工作状态, DS18B20 温度传感器内置温度上下限; (4)编写程序,完成单片机对温度数据的采集过程以及与 DS18B20 数据传输过程的 大连交通大学 2020 届本科生毕业设计 6 控制。 主机(单片机)控制 DS18B20 完成温度转换必须经过三个步骤,每一次读写之前都要对 DS18B20 进行复位操作 ,复位成功后发送一条 ROM 指令,最后发送 RAM 指令,这样才能对 DS18B20 进行预定的操作。 复位要求主 CPU 将数据线下拉 500 微秒,然后释放,当 DS18B20 收到信号后等待 1660 微秒左右 ,后发出 60240 微秒的存在低脉冲,主 CPU 收到此信号表示复位成功。 部分温度值与 DS18B20 输出的数字量对照表如下图表 31 所示: 表 31 部分温度值与 DS18B20 输出的数字量对照表 DS18B20 寄存器的存储器及格式 DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM和一个非易失性的可电擦除的 E2RAM,后者存放高温度和低温度触发器 TH、 TL和结构寄存器。 暂存存储器包含了 8 个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。 第三个和第四个字节是 TH、 TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。 第六、七、八个字节用于内部计算。 第九个字节是冗余检验字节。 DS18B20 使用注意事项 DS18B20 虽然具有测温系统简单、测温精度高、连接方便和占用口线少等优点,但是在实际应用中也应注意以下几个问题 : 1. 因为硬件开销较小,所以需要较复杂的软件进行补偿,由于 DS18B20 与微处理器间采用串行数据传送。 因此,在对 DS18B20 进行读写编程时必须严格保证读写时序,否则将无法读取 测温结果。 2. 当单总线上所挂 DS18B20 超过 8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意。 3. 在 DS18B20 测温程序设计中,向 DS18B20 发出温度转换时总要等待 DS18B20的返回信号,一旦某个 DS18B20 接触不好或短线,当程序读该 DS18B20 时,将没有返大连交通大学 2020 届本科生毕业设计 7 回信号,程序进入死循环。 这一点在进行 DS18B20 硬件连接和软件设计时也要加以注意。 达林顿反向驱动器 ULN2803 简介 本系统要用单片机控制风扇直流电机,需要加驱动电路,为直流电机提供足够大的驱动 电流。 在本系统驱动电路中,选用达林顿反向驱动器 ULN2803 来驱动风扇直流电机。 ULN2803 在使用时接口简单,操作方便,可为电机提供较大的驱动电流,它实际上是一个集成芯片,单块芯片可同时驱动 8 个电机。 每个电机由单片机的一个 I/O 口控制, 片机 I/O 口输出的为 5V 的 TTL 信号。 ULN2803 如图 32 所示: 图 32 ULN2803 反向驱动器 ULN2803 由 8 个 NPN 达林顿晶体管组装而成,共 18 个引脚,引脚 1~8 分别是 8路驱动器的输入端,输入信号可直接是 TTL 或 CMOS 信号;引脚 11~18 分别是 8 路 驱动器的输出端;引脚 9 为接地线,引脚 10 为电源输入。 当输入 TTL 信号为 5V 或 CMOS信号为 6~15V 时,输出的最大电压为 50V,最大电流为 500mA,工作温度范围为 0~70℃。 本系统选用的电机为 12V 直流无刷电机,可用 ULN2803 来驱动。 LED 数码管简介 本系统选用五个 LED 数码管来进行温度显示。 LED 又称为数码管,它主要是由 8段发光二极管组成的不同组合,其中 a~g 为数字和字符显示段, dp 为小数点的显示,通过 a~g 这 7 个发光二极管点亮的不同组合,可以显示 0~ 9 和 A~ F 共 16 个数字和字母。 LED 数 码管可以分为共阴极和共阳极两种结构,如下图 32(a)和图 32(b)所示。 共阴极结构把 8 个发光二极管阴极连在一起,共阳极结构把 8 个发光二极管阳极连在一起。 通过单片机引脚输出高低电平,可使数码管显示相应的数字或字母,这种使数码管显示字形的数据称字形码,又称段选码 [4]。 大连交通大学 2020 届本科生毕业设计 8 dpgfedcbadpgfedcbaRx 8 Rx 8 图 32 七段 LED 数码管 一个共阴极数码管接至单片机的电路,要想显示数字 “ 7” 须 a、 b、 c 这 3 个显示段发光(即这 3 个字段为高电平)只要在 P0 口输入 00000111( 07H)即可。 这里 07H 即为 数字 7 的段选码。 字形与段选码的关系见表 32 所示。 7 段 LED 的段选码表如下表 32 所示: 表 32 7 段 LED 的段选码表 显示字符 共阴极段码 共阳极段码 显示字符 共阴极段码 共阳极段码 0 3fH C0H 8 7fH 80H 1 06H F9H 9 6fH 90H 2 5bH A4H A 77H 88H 3 4fH B0H B 7fH 83H 4 66H 99H C 39H C6H 5 6dH 92H D 3fH A1H 6 7dH 82H E 79H 86H 7 07H F8H F 71H 8EH 单片机简介 AT89C52 是 51 系列单片机的一个型号,它是由 ATMEL 公司生产的一个低电压、高性能的 8 位单片机,片内器件采用 ATMEL 公司的非易失性、高密度存储技术生产,与标准的 MCS51 指令系统兼容,同时片内置有通用 8 位中央处理器和 8K 字节的可反复擦写的只读程序存储器 ROM 以及 256 字节的数据存储器 RAM,在许多许多较复杂的控制系统中 AT89C52 单片机得到了广泛的应用 [5]。 AT89C52 有 40 个引脚,各引脚介绍如下: VCC: +5V 电源线; GND:接地线。 P0 口 : ~,这组引脚共 8 条,其中 为最高位, 为最低位。 这 8 条引脚共有两种不同的功能,分别使用于两种不同的情况。 第一种情况是单片机不带片外g f bae d c dpgndgnd数码管引脚分配图 大连交通大学 2020 届本科生毕业设计 9 存储器, P0 口可以作为通用 I/O 口使用, ~ 用于传送 CPU 的输入 /输出数据,此时它需外接一上拉电阻才能正常工作。 第二种情况是单片机带片外存储器,其各引脚在CPU 访问片外存储器时先是用于传送片外存储器的低 8 位地址,然后传送 CPU 对片外存储器的读写数据。 P1 口: P1 口是一个内部含上拉电阻的 8 位双向 I/O 口。 它也可作为通用的 I/O 口使用,与 P0 口一样用于传送用户的输入输出数据,所不同的是它片内含上拉电阻而 P0 口没有,故 P0 口在做该用途时需外接上拉电阻而 P1 口则无需。 在 FLASH 编程和校验时,P1 口用于输入片内 EPROM 的低 8 位地址。 P2 口: P2 口为一个内部上拉电阻的 8 位双向 I/O 口,它可以作为通用 I/O 口使用,传送用户的输入 /输出数据,同时可与 P0 口的第二功能配合,用于输出片外存储器的高8 位地址,共同选中片外存储单元,但此时不能传送存储器的读写数据。 在一些型号的单片机中, P2 口还可以配合 P1 口传送片内 EPROM 的 12 位地址中的高 4 位地址。 P3 口: P3 口引脚是 8 个带内部上拉电阻的双向 I/O 口,当 P3 口写入 1 后,它们被内部上拉为高电平。 它也可以作为通用的 I/O 口使用,传送用户的输入 /输出数据 ,P3 口也作为一些特殊功能端口使用,如图 32 所示: 图 32 单片机 AT89C52 引脚 : RXD(串行数据接收口 ) : TXD(串行数据发送口 ) : 0INT (外部中断 0 输入 ) : 1INT (外部中断 1 输入 ) 大连交通大学 2020 届本科生毕业设计 10 : T0(记时器 0 计数输 入 ) : T1(记时器 1 外部输入 ) : WR(外部 RAM 写选通信号 ) : RD (外部 RAM 读选通信号 ) RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平状态。 ALE/:地址锁存允许 /编程线,当访问片外存储器时,在 ~ 引脚线上输出片外存储器低 8 位地址的同时还在 ALE/ 线上输出一个高电位脉冲,其下降沿用于把这个片外存储器低 8 位地址锁存到外部专用地址锁存器,以便空出 ~ 引脚线去传送随后而来的片外存储器读写数据。 在不访问片外存储器时,单片机自动在 ALE/ 线上输出频率为 1/6 晶振频率的脉冲序列。 EA:外部程序存储器 ROM 的选通信号。 在由外部程序存储器取指期间,每个机器周期两次有效。 但在访问外部数据存储器时,这两次有效的信号将不出现。 VPP:允许访问片外存储器 /编程电源线,当保持低电平时,则在此期间允许使用片外程序存储器,不管是否有内部程序存储器。 当端保持高电平时,则允许使用片内程序存储器。 在 FLASH 编程期间,此引脚也用于施加 12V 编程电源( VPP)。 XTAL1 和 XTAL2:片内振荡电路输入线,这两个端子用来外接石英晶体和微调电容,即用来连接单片机片内 OSC 的定时反馈回路。 大连交通大学 2020 届本科生毕业设计 11 第四章 总体硬件设计 系统结构框图 系统结构框图如下图 41 所示 图 41 系统构成框图 在本设计中,电源部分由外接电源直接提供,所以没有设计电源模块,复位系统电路是由 1 个按键, 1 个电容和 2 个电阻组成;时钟振荡电路是由 1 个晶震和 2 个电容组成;键盘控制电路是由 2 按键组成独立键盘连接到单片机上完成按键功能;状态显示以及 LED 显示 电路,由 3 个发光二极管和 3 个共阳极 7 段数码管以及电阻组成,用以完成设计中的状态显示功能和 LED 显示功能;控制电路是由 PWM 控制,用达林顿反向驱动器 ULN2803 控制风扇直流电机,主控制器采用单片机 AT89C52 单片机。 所以本设计中用到的器件很少也很简单。 数字温度传感器模块设计 DS18B20 数字温度传感器通过其内部计数时钟周期来的作用,实现了特有的温度测量功能。 低温系数振荡器输出的时钟信号通过由高温度系数振荡器产生的门周期而被计数,计数器预先置有与 55℃ 相对应的一个基权值。 如果计数器计数到 0 时,高 温度系数振荡周期还未结束,则表示测量的温度值高于 55℃ ,被预置在 55℃ 的温度寄存器中的值就增加 1℃ ,然后这个过程不断重复,直到高温度系数振荡周期结束为止。 此时温度寄存器中的值即为被测温度值,这个值以 16 位二进制形式存放在存储器中,通过温度显示 温度采集 AT89C52 复位 晶振 独立键盘 驱动电路 直流电机 大连交通大学 2020 届本科生毕业设计 12 主机发送存储器读命令可读出此温度值,读取时低位在前,高位在后,依次进行。 由于温度振荡器的抛物线特性的影响,其内用斜率累加器进行补偿 [6]。 DS18B20 在使用时,一般都采用单片机来实现数据采集。 只须将 DS18B20 信号线与单片机 1 位 I/O 线相连,且单片机的 1 位 I/O 线可挂 接多个 DS18B20,就可实现单点或多点温度检测 [7]。 温度传感模块电路图 如图 42 所示: 图 42 温度传感模块电路图 键盘输入模块 键盘包括 2 个独立按键 S2 和 S3,一端与单片机的 和 口相连,另一端接地,当按下任一键时, P1 口读取低电平有效。 系统上电后,进入键盘扫描子程序,以查询的方式确定各按键,完成温度初值的设定。 其中按键 S2 为加按键,每按下一次,系统对最初设定值加一,按键 S3 为减按键,每按下一次,系统对初设定值进行减一计算。 键盘接线图如图 如 43 所示 : 大连交通大学 2020 届本科生毕业设计 13 图 43 键盘接线图 温度显示与控制模块 本设计制作中选用 5 位共阴极数码管作为显示模块。 其中前 3 位数码管 DS DSDS3 用于显示温度传感器实时检测采集到的温度,可精确到 摄氏度,显示范围为0~ 摄氏度;后 2 位数码管 DS DS5 用于显示系统设置的初值温度,只。单片机的电风扇自动控制号(编辑修改稿)
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。