基于单片机的孵化箱温度调节器的设计与制作_毕业设计(论文)(编辑修改稿)内容摘要:

工业 80C51 产品的指令与引脚完全兼容。 片上 Flash允许程序内存在系统可程序设计,也适用于常规程序设计器。 在单芯片上,由于拥有8 位 CPU 和在系统可程序设计 Flash,让 AT89S52 单片机为众多嵌入式控制系统提供了一种灵活性高并且价格便宜的解决方案。 AT89S52 单片机的引脚图及方框图 AT89S52 单片机具有以下标准功能:与 MCS51 单片机产品兼容, 8k 字节在系统可程序设计 Flash 内存, 32 个可程序设计 I/O 口线,看门狗定时器, 1000 次擦写周期,8 个中断源,两个数据指针,三个 16 位定时器 /计数器,全双工串行通道,具有片内晶振及时钟电路。 另外, AT89S52 可降至 0Hz 静态逻辑操作,空闲模式下, CPU 停止工作,允许 RAM、定时器 /计数器、串口、中断继续工作。 掉电保护方式下, RAM 内容被保存,振荡器被冻结,单片机一切工作停止直到下一个中断或硬件复位为止。 AT89S52 单片机有 40 个引脚。 其引脚如图 所示。 10 图 AT89S52 单片机引脚图 AT89S52 单片机 的 内部方框 结构 如图 所示。 图 AT89S52 单片机方框图 AT89S52 单片机引脚功能说明 VCC( 引脚 40):电源。 接 ~ ,正常工作 时的 电压 为 +5V。 GND( 引脚 20):接地。 XTAL1( 引脚 19):内部时钟振荡器电路的输入端。 XTAL2( 引脚 18) :内部时钟振荡器电路的输出端。 P0 口 : ~ (引脚 39~ 32),是一组 8 位并行 I/O 口,也可作为地址 /数据总线复用口,作为输出口用时,每个引脚能驱动 8 个 TTL 电路,是准双向口,需要外接上拉电阻。 对 其 写“ 1”可作为高阻抗输入 口。 在访问外部内存时,这组口线可以定义为地址总线或数据总线的低 8 位。 在 Flash 程序设计时, P0 口接收指令字节代码,而在程序校验时,输出指令字节,校验时,要外接上拉电阻。 基于单片机的孵化箱温度调节器的设计与制作 11 P1 口 : ~ (引脚 1~ 8),是自带内部上拉电阻的 8 位准双向 I/O 口, P1 口可驱动 4 个 TTL 电路。 当需要先输入再输出时,应该在输入前先置“ 1”。 在 Flash 程序设计和校验时, P1 接收低 8 位地址。 P1 口的部分引脚还具有第二功能,如表 所示。 表 P1 口引脚第二功能 引脚 第二功能 T2 的外部计数输入 T2 再装入触发及方向控制 MOSI MISO SCK P2 口 : ~ (引脚 21~ 28),是一组带有内部上拉电阻的 8 位准双向 I/O 口,P2 口可驱动 4 个 TTL 电路。 在运行中由输出转输入时要在输出前先置“ 1”。 在访问外部数据存储器时, P2 接收高 8 位地址。 在只要 8 位地址时, P2 输出锁存器中的内容。 P3 口 : ~ (引脚 10~ 17),是一组带有内部上拉电阻的 8 位准双向 I/O 口,P3 口可驱动 4 个 TTL 电路。 P3 口除了作为一般的 I/O 口线外。 更重要的用途是它的第二功能,如表 所示。 表 P3 口引脚第二功能 引脚 功能名称 第二功能 RXD 串行输入口 TXD 串行输出口 INT0 外中断 0 INT1 外中断 1 T0 定时 /计数器 0 外部输入 T1 定时 /计数器 1 外部输入 WR 外部数据存储器写选通 RD 外部数据存储器读选通 RST (引脚 9):复位输入。 当振荡工作时, RST 引脚出现两个机器周期以上的高电 12 平使单片机复位。 ALE/PROG(引脚 30):程序设计时的脉冲输入端和地址锁存使能端。 当访问外部程序内存时, ALE 将用于锁存地址的低 8 位地址。 不是访问内部存储内存时 , ALE 有一个时钟振荡频率的 1/6 的正脉冲信号,它可以用在外部计数或者是时钟信号,需要注意的是, 如果 访问外部数据存储器的时候, ALE 将跳过一个脉冲。 PSEN(引脚 29) :外部程序内存的读选通。 当 AT89S52 单片机读取外部程序内存指令时,每个机器周期将会产生两次 PSEN 有效信号, 也就是 输出两个用于选通的负脉冲。 在读取片内程序内存指令和读写片外数据指令时,不产生 该脉冲。 EA/VPP(引脚 31) :外部或内部程序内存访问允许。 欲使 CPU 访问外部程序内存, EA 端必须是低电平(接地)。 EA 端是高电平的时候, CPU 访问的是内部程序内存。 应当注意的是,在对 flash 程序设计的时候,该引脚用于输入电压,如果单片机保密位被程序设计,那么复位的时候, EA 端状态将被锁存。 AT89S52 单片机最小系统设计 单片机开发系统的应用一般是以基本的最小系统为基础的, 最小系统虽然简单,但是却是大多数控制系统所必不可少的关键部分。 所以熟悉单片机的最小应用系统至关重要。 所谓的单片机 最小系统,是指一个独立可用的单片机最小配置系统。 对于AT89S52 芯片来说, 其内部已经包含了一定数量的程序存储器和数据存储器,在外部只 需 要增加时钟电路和复位电路即可构成单片机最小系统。 晶振电路:晶振电路用于为单片机提供使整个系统正常工作的时钟信号。 在单片机系统里,晶振电路的作用非常大,它结合单片机内部的电路,产生单片机工作所必须的时钟频率,单片机执行一切指令都建立在这个基础上,晶振所提供的时钟频率越高,那单片机的运行速度也就越快。 AT89S52 内部有一个高增益反相放大器可以用于构成内部振荡器,引脚 XTAL1 和 XTAL2 分别是该放大器的输入端和输出埠。 只需要在这两个引脚之间外接一个片外石英晶体振荡器,再外接两个电容 C1 和 C2 就可以构成稳定的内部时钟模式。 本次设计所用石英晶体的振荡频率为 12MHZ,电容 C1, C2 常选为 20pF~ 40pF 之间 , 本次 选用 30pF。 复位电路: 由电容串联电阻构成, 可以对单片机初始化,使单片机重新开始运行,也可以在单片机程序出错时使系统正常工作。 是在程序调试的时候必须要用到的,用来测试程序与硬件是否正确。 当系统上电 ,RST 脚将会出现一个高电平 ,这个高电平持基于单片机的孵化箱温度调节器的设计与制作 13 续的时间由电路所选的电 阻电容值决定。 本次选用 10k 电阻与 10uF 电容。 最小系统电路 如图 所示。 图 单片机最小系统 键盘输入电路 在单片机控制系统中,有时候往往只需要几个功能键,就可以实现需要的功能,此时,可采用独立式按键结构。 独立式按键就是直接用 I/O 口线构成的单个按键电路,每个按键都单独占用一根线,每个按键工作是时不会影响到其它 I/O 口的状态。 独立式按键电路配置灵活,软件结构简单。 在本次设计中,只使用了四个独立按键。 sw1( set) 用来进行移位 ,sw2(up), sw3(down)进行加减控制,用来实现温度上下限的设置, sw4(out)在温度设置完成后进行确定。 独立按键 电路如 图 所示。 14 图 按键 电路图 显示电路 本次设计 中的显示电路, 采用的是型号为 M1602 的 LCD 液晶屏,可以显示 设置的 温度的上下限与当前温度。 其电路如图 所示。 图 LCD 显示电路 图 温度检测电路 温度传感器 DS18B20 简介 本次设计选用的是数字式温度传感器 DS18B20, 该芯片是美国的 DALLAS 公司生产的单总线式可程序设计数字温度传感器。 它具有微型化、抗干扰能力强、低功耗、高性能、容易配置处理器等优点,可以直接将温度转化成数字信号传递给单片机进行处理,并且在同一根总线上面可以接多个传感器,它具有三引脚 TO92 小体积的封装形式,测量的温度范围是- 55~ + 125℃,可程序设计为 9~ 12 位的 A/D 转换精度,测温分辨率可以达到 ℃。 综上,在本次设计中采用温度传感器 DS18B20 来测量温度。 该芯片的物理化学基于单片机的孵化箱温度调节器的设计与制作 15 性能都很稳定,且该组件线形比较好。 在测量温度为 0~ 100 摄氏度时,最大的线形偏差小于 1℃。 该芯片可以直接向单片机传输数字信号,更加便于单片机的处理和及时控制。 其外形 及管脚 如图 所示。 图 温度芯片 DS18B20 外形及管脚 DS18B20 引脚定义: ( 1) GND—接地端 ; ( 2) DQ—数据输入 /输出端。 用于寄生电源下,可以向芯片提供电源 ; ( 3) VDD —可选择的电源引脚。 当工作于寄生电源下,此引脚必须接地。 DS18B20 温度传感器是一种改进型智能温度传感器,在使用的时候不需要任何外围组件,全部的传感组件以及转换电路都集成在一个形如三极管的集成电路中。 其内部结构主要由四个部分组成: 64 位光刻 ROM、非 易失性 的温度报警触发器 TH 和 TL、配置寄存器、温度传感器。 芯片的内部结构如图 所示。 16 图 温度芯片 DS18B20 内部结构图 温度传感器 DS18B20 的工作原理 温度传感器 DS18B20 的低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号,然后传送给计数器 1。 高温度系数晶振的振荡频率受温度的影响很明显,其产生的信号用来作为计数器 2 的输入脉冲信号。 预置计数器 1 和温度寄存器在温度 55℃所对应的基数值。 计数器 1 对低温系数晶振所产生的脉冲进行减法计数。 当计数器 1 的预置被减到 0 时,温度寄存器的值将会加 1。 计数器 1 的预置将被重新装入并且开始对低温系数晶振所产生的脉冲进行重新计数。 如此循环下去,直到计数器 2 计数到 0 的时候,停止温度寄存器里值的累加,此时温度寄存器的数值就是所测温度。 图中所示的斜率累加器作用是修正和补偿测温过程中出现的非线性,其输出是用来修正计数器 1 预置的值。 测温原理如图 所示。 图 温度传感器 DS18B20 的工作原理 图 温度传感器 DS18B20 的工作 时序 DS18b20 数字温度传感器 单线通讯功能是分时完成的, 对时序的要求十分严格,因此读写时序很重要,其 延时大多是 us 级的, DS18B20 有六条控制命令: 温度转换 44H ,启动 DS18B20 进行温度测量 ; 基于单片机的孵化箱温度调节器的设计与制作 17 复制暂存器 48H, 把暂存器中的内容写到 EEPROM 中; 读暂存器 BEH ,读暂存器 9 位二进制数字; 写暂存器 4EH ,将数据写入暂存器的 TH、 TL 字节; 重新调 EEPROM B8H ,把 EEROM 中的内容重新写到暂存器中; 读电源 B4H, 读取 DS18B20 电源的供电方式。 DS18B20 初始化: ( 1) 将数据线拉到低电平“ 0”; ( 2) 延时 600us(时间范围为 480~ 960us); ( 3) 将数据线拉到高电平“ 1”, DS18B20 检测到上升沿后会发送存在脉冲 ; ( 4) 延时 45us(如果初始化成功,那么在 15~ 60us 之内产生一个由 DS18B20所返回的低电平“ 0”); ( 5) 读取存在的信号; ( 6)延时( 450us), 让 ds18b20 释放总线,避免影响到下一步的操作 ; ( 7) 将数据线再次拉高到高电平“ 1” 释放总线 后结束。 初始化时序如图 所示。 图 DS18b20 初始化时序图 DS18B20 的读操作: ( 1)将数据线拉到高电平“ 1”。 ( 2)延时 1us。 ( 3)将数据线拉到底电平 “ 0”。 ( 4)延时 4us( 1~ 15us 内)。 18 ( 5)将数据线拉到高电平“ 1”。 ( 6)读数据线的状态得到 1 个状态位,并进行数据处理。 ( 7)延时 75us(60us 以上 )。 读 时序如图 所示。 图 DS18b20 读时序图 DS18B20 的写操作: ( 1) 将数据线拉到底电平 “ 0”; ( 2) 延时 60us; (。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。