1 引言:
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统
集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便
宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构
的最佳选择。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的
踪迹。
单片机在检测和控制系统中得到广泛的应用, 温度则是系统常需要测量、控制和保持的
一个量。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测
温准确,其输出温度采用数字显示,该设计控制器使用单片机 STC89C52,测温传感器使用
DS18B20,用 4 位共阳极 LED 数码管以串口传送数据,实现温度显示,能准确达到以上要求。
2 总体设计方案:
2.1 设计思路:
(1)本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被
测温度变化的电压或电流采集过来,进行 A/D 转换后,就可以用单片机进行数据的处理,在
显示电路上,就可以将被测温度显示出来,这种设计需要用到 A/D 转换电路,感温电路比较
麻烦。
(2)从中考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以
这是非常容易想到的,所以可以采用一只温度传感器 DS18B20,此传感器,可以很容易直接
读取被测温度值,进行转换,就可以满足设计要求。
从以上两种方案,很容易看出,采用方案(2),电路比较简单,软件设计也比较简单,
故采用了方案(2)。
主
控
制
器
LED
显
示
温
度
传
感
器
单片机复位
时钟振荡
图 1 总体设计方框图
2.2 设计方框图
根据设计的所需要求分析单片机的工作原理,可得出来温度计电路设计总体设计方框图
如图 1 所示,控制器采用单片机 STC89S52,温度传感器采用 DS18B20,用 4 位 LED 数码
管以串口传送数据实现温度显示。
2.3 设计主元件电气性能:
1. STC89C52的主要性能:
与MCS-51单片机产品兼容
8KFlash字节闪速存储器
1000次擦写周期
全静态操作:0Hz~88Hz
32个可编程I/O口线
三个16位定时器/计数器
八个中断源
全双工UART串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
VCC : 电源
GND: 地
P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作
为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来
接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。
P1 口: 是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑
电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为
输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和
P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入
(P1.1/T2EX),具体如下表1所示。在flash编程和校验时,P1口接收低8位地址字节。
P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL
逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外
部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送
出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX
@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接
收高8位地址字节和一些控制信号。
表1 P1口功能
表 2 P3 口功能
P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL
逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作
为AT89S52特殊功能(第二功能)使用,如上表2所示。在flash编程和校验时,P3口也接收
一些控制信号。
RST: 复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计
时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO
位可以使此功能无效。DISRTO默认状态下,复位高电平有效。
ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出
脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟
使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通
过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX
或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR
的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当STC89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访
问外部数据存储器时,PSEN将不被激活。
EA/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指
令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:振荡器反相放大器的输出端。
存储器结构
MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K
寻址。
程序存储器:如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA 接
VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地
址为:2000H~FFFFH。
数据存储器:STC89C52 有256 字节片内数据存储器。高128 字节与特殊功能寄存器重叠。
也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问