找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1142|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机温度控制系统 BCD码的形式在LED上显示

[复制链接]
跳转到指定楼层
楼主
ID:864035 发表于 2020-12-20 16:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


设计背景
能够独立工作的温度检测和
传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,


AT89C51单片机作为主控制器件,DS18B20作为测温传感器,通过LM016L
DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性
0℃~100℃最大线性偏差小于0.01℃。该器件可直接向单片机传




设计方案
总体设计思路方案与系统框图
DS18B20测量温度,输出信号全数字化。采用了单总线的数据传输,
DS18B20和AT89C51单片机构成的温度测量装置,DS18B20的DQ与AT89C51
P3.7口相连,与它直接输出温度的数字信号,采用AT89C51单片机控制,温度显示由四位
LED显示屏完成,LED的D0~D7为8位双向数据端,与AT89C51的P1口相连,



芯片介绍

引脚定义:
DQ为数字信号输入输出端
GND为电源地
VDD为外接供电电源输入端
0和1字节)   
      AT89C51 时钟电路 复位电路 DS18B20数字温度传感器 测温物体 图1 显示电路
中的温度传感器可完成对温度的测量,以12位转化为例:
位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号

12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中
5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625
0,这5位为1,测到的数值需要取反加1再乘于0.0625

DS18B20 的温度操作是使用16 位,也就是说分辨率是0.0625。BIT15~BIT11 是符号位,




显示屏(共阴)介绍

管脚是段选引脚,1,2,3,4是位选引脚(低电平有效),字形码如下:


3.4.AT89C51芯片

:供电电压。
:接地。
口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第
1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/
FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出
P0外部必须被拉高。
口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,
这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接

口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL
P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入
P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程
16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”
P2口输出其特殊功
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当
口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低
P3口将输出电流(ILL)这是由于上拉的缘故。

口也可作为AT89C51的一些特殊功能口,如下表所示:
备选功能
(串行输入口)
(串行输出口)
(外部中断0)
(外部中断1)
(记时器0外部输入)
(记时器1外部输入)
(外部数据存储器写选通)
(外部数据存储器读选通)
口同时为闪烁编程和编程校验接收一些控制信号。

:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在
编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉
1/6。因此它可用作对外部输出的脉冲或用于定时目的。然
ALE脉冲。如想禁止ALE的输出
SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。
ALE禁止,置位无效。

:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次
有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,
FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
:反向振荡放大器的输入及内部时钟工作电路的输入。
:来自反向振荡器的输出。

硬件电路图

DS18B20的数据线DQ与主控芯片51单片机的P3.7相连接,
将采集到的数据送给单片机,经过单片机出来后,显示在8位数据线与单片机P1
LED上。位选由P2控制。
程序设计













仿真与调试



      AT89C51 复位电路  晶振电路  测温部分  显示部分  




   EQU  29H
   EQU  28H
BIT  P3.7
  0000H
显示清零(空格)
GET_TEMPER;调用初始化,写指令,读指令子程序
十六进制转换为BCD码
DISP1;LED显示温度子程序
MAIN
初始化DS18B20


DATAIN;拉低DQ发送复位脉冲
R1,#3;延时
R0,#107


拉高DQ

等待应答脉冲
延时



初始化完毕
调用初始化,写指令,读指令子程序


调用初始化子程序

写命令,0CCH送入DS18B20,跳过ROM检测

WRITE_1820;写命令,把44H送入DS18B20,在DS18B20内部进行温度转

调用初始化子程序
A,#0CCH
写命令,把0CCH送入DS18B20,跳过ROM检测

读命令,把0BEH送入DS18B20,准备读DS18B20的温度数据

读命令,把温度数据读入单片机(以十六进制保存)

调用初始化,写指令,读指令子程序完毕
调用写指令子程序开始



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表