目录
1 设计题目 ..........................................................2
2 设计说明 ..........................................................2
2.1 设计目的 .................................................... 2
2.2 实验设备 .................................................... 2
2.3芯片介绍 ..................................................... 3
2.3.1 CH451芯片 ............................................. 3
2.3.2 89S52芯片 ............................................. 5
2.3.3 CD4052芯片 ............................................ 6
2.3.4 DS18B20芯片 ........................................... 6
3 实验原理 ..........................................................8
4 实验步骤 ..........................................................9
4.1 硬件连接 .................................................... 9
4.2 软件设计 ................................................... 10
4.2.1 18B20芯片的控制 ...................................... 10
4.2.2温度获取 .............................................. 10
4.2.3 主函数 ............................................... 11
5 实验成功标志 ..................................................... 11
6 程序说明 .........................................................11
6.1常量定义头文件def.h ......................................... 11
6.2 向CH451发送命令 ............................................ 12
6.3 测试显示LED数码管 .......................................... 13
6.4 显示一个整数 ............................................... 14
6.5 读写18B20数据 .............................................. 14
6.6检测并显示温度 .............................................. 16
6.7 数码管操作display .......................................... 17
7 操作说明 .........................................................18
7.1 软件安装 ................................................... 18
7.2 添加文件 ................................................... 18
7.3 硬件连线 ................................................... 18
7.4 使用在线编程软件 ........................................... 19
7.5 显示检测温度 .............................................. 19
7.6 测试手指温度 ............................................... 19
8实验结果 .........................................................20
9 心得体会 .........................................................22
1
环境温度测试例程设计
1 设计题目
环境温度测试例程设计
2 设计说明
2.1 设计目的
(1)掌握 IO 口操作;
(2)掌握显示及键盘芯片的运用;
(3)了解中断的运用;
(4)了解单总线操作。
2.2 实验设备
(1)PC 机一台
(2)ZG-211 单片机系统实验板一块
(3)实验连接线若干
(4)芯片:CH451,89S52 ,CD4052, DS18B20
(5)并口编程线一根
(6)配套电源 1 个
2
2.3芯片介绍
2.3.1 CH451芯片
CH451 是一个整合了数码管显示驱动和键盘扫描控制以及μP 监控的多功能外围芯
片。CH451 内置RC 振荡电路,可以动态驱动8 位数码管或者64 位LED,具有BCD 译
码、闪烁、移位等功能;同时还可以进行64 键的键盘扫描;CH451 通过可以级联的
串行接口与单片机等交换数据;并且提供上电复位和看门狗等监控功能。
3
在此次课题设计中将使用到的对CH451进行操作的命令如下表所示:
操作命令
11
10
设置系统参数 0
设置显示参数 0
加载字数据0
加载字数据1
加载字数据2
加载字数据3
加载字数据4
加载字数据5
加载字数据6
加载字数据7
1
1
1
1
1
1
1
1
读取按键代码 0
1
1
0
0
0
0
1
1
1
1
1
9
0
0
0
0
1
1
0
0
1
1
1
位
5
0
4
0
3
0
7
0
6
0
2
1
0
WDOG
KEYB
DISP
MODE
LIMIT
INTENSITY
DIG_DATA, DIG0 对应的字数据
DIG_DATA, DIG1 对应的字数据
DIG_DATA, DIG2 对应的字数据
DIG_DATA, DIG3 对应的字数据
DIG_DATA, DIG4 对应的字数据
DIG_DATA, DIG5 对应的字数据
DIG_DATA, DIG6 对应的字数据
DIG_DATA, DIG7 对应的字数据
8
0
1
0
1
0
1
0
1
0
1
1 × × × × × ×
×
×
4
2.3.2 89S52芯片
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存
储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和
引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单
芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控
制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节
Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位
定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另
外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式
下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方
式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或
硬件复位为止。
寄存器中各个位的功能如下,课题设计中我们只使用到了EA和EX0,EX0控制的
是键盘按键的外部中断:
符号 位地址
功能
中断总允许控制位。EA=0,中断总禁止;EA=1,各中断由各自的中
EA
IE.7
断控制位决定
—
IE.6 预留
ET2
IE.5 定时器2中断允许控制位
ES
IE.4 串行口中断允许控制位
ET1
IE.3 定时器1中断允许控制位
EX1
IE.2 外部中断1允许控制位
ET0
IE.1 定时器0中断允许控制位
EX0
IE.0 外部中断0允许控制位
5
2.3.3 CD4052芯片
CC4052 是一个差分4 通道数字控制模拟开关,有A0、A1 两个二进制控制输
入端和INH 输入,具有低导通阻抗和很低的截止漏电流。幅值为4.5~20V 的数字
信号可控制峰-峰值至20V 的模拟信号。例如,若VDD=+5V,VSS=0,VEE=
-13.5V,则0~5V 的数字信号可控制-13.5~4.5V 的模拟信号。这些开关电路在
整个VDD-VSS 和VDD-VEE 电源范围内具有极低的静态功耗,与控制信号的逻
辑状态无关。当INH 输入端=“1”时,所有的通道截止。二位二进制信号选通4通
道中的一通道,可连接该输入端至输出。CC4052 提供了16 引线多层陶瓷双列直插
(D)、熔封陶瓷双列直插(J)、塑料双列直插(P)和陶瓷片状载体(C)4 种封
装形式。
2.3.4 DS18B20芯片
DS1820 数字温度计以 9 位数字量的形式反映器件的温度值。
DS1820 通过一个单线接口发送或接收信息,因此在中央微处理器和 DS1820 之间仅
需一条连接线(加上 地线)。用于读写和温度转换的电源可以从数据线本身获得,
无需外部电源。
因为每个 DS1820 都有一个独特的片序列号,所以多只 DS1820 可以同时连在一
根单线总线上,这样就 可以把温度传感器放在许多不同的地方。这一特性在 HVAC
环境控制、探测建筑物、仪器或机器的温度以及 过程监测和控制等方面非常有用。
对应的十进制温度值。
6
BIT
BYTE
对应单位(℃)
BYTE
对应单位(℃)
0
1
2
3
4
5
6
7
低
低
低
低
低
低
低
低
1/16
1/8
1/4
1/2
1
2
4
8
高
高
高
高
高
高
高
高
16
32
64
128
—
—
—
符号位
18B20 的访问通过命令来实现,命令即为通过写操作向芯片发送的数据。 与温度检
测相关的命令有 4 个,分别为:
初始化(复位)
忽略 ROM 匹配(命令 CC)
温度转换(命令 44)
读温度(命令 BE)
(1)初始化
单线总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位
脉 冲,接着由从属器件(即 18B20)送出存在脉冲。
(2)忽略 ROM 匹配
一旦总线主机检测到从属器件的存在,它便可以向器件发出命令。所有命令均为 8
位 (BIT)长。 在单点总线系统中,可以使用忽略 ROM 匹配命令允许总线主机不
提供 64 位从属器件的 ROM 编码而访问从属器件。(注意:若总线上有多个从属器
件,则会发生数据冲突。) 该命令的编码为CC(十六进制)
7
(3)温度转换
启动 18B20,进行温度测量,并将测量结果保存在 18B20 的 RAM 中 该命令的编码
为44(十六进制)
(4)读温度
向 18B20 发送命令,要求 18B20 将᳔ 近存放在 RAM 中的温度发送到总线上。 该
命令的编码为BE(十六进制)
软件中就是利用上面介绍的命令对 18B20 芯片进行操作以得到环境温度。
3 实验原理
传统的温度测试,需要温度探头和 A/D 传换模块,电路复杂,不易控制。本实
验板采用 高精度温度传感器 DS18B20 芯片。该芯片将温度探头与 A/D 转换模块集
成在一起,同时采用 单总线与 CPU 通信,简化了电路,使大数量多点温度检测成
为可能。
单总线协议是指通过总线上的不同高低电平的时间控制来代表数字’0’或
者’1’。由 于单片机的 IO 口资源有限, DS18B20 的 IO 口通过 4 通道数字
控制模拟开关 CD4052 接到单 片机的 IO 口上。
实验线路连接图如下:
图一
8