合肥学院
计算机科学与技术系
微机原理与接口技术
课程设计报告
2008~2009 学年第一学期
课
程
微型计算机原理与接口技术
课 程 设 计 名 称
数字式温度计
学 生 姓 名
杨路
学
号
0604032014
专 业 班 级
06 网工(2)班
指 导 教 师
龙夏老师
微机原理课程设计
2009 年 1 月
一、题意分析及解决方案
1.1 题义需求分析
本设计为从温度传感器 DS18B20 通道采样温度模拟信号,转化成数字信号,
并在 LED 液晶显示器上显示出来.
由于 DS18B20 可以直接将模拟量转换为数字量,因此在并送 LED 显示时,须
通过 A/D 转换器先将信号送入 CPU,然后再选用 8255A 作为微处理器的输入输出
接口芯片,最后将 8 位数字信号量显示到 LED 显示器上。
可以从四个方面来分析问题,
1)采样模拟信号,转化成数字信号。
2)接口的连接问题。
3)LED 显示器如何接入电路。
4) 如何进行显示控制。
1.2 解决问题方法及思路
1.2.1 硬件部分
(1) 温度传感器 DS18B20
DS18B20 温度传感器是美国DALLAS 半导体公司最新推出的一种改进型智
能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,可
编程的分辨率为 9~12 位,对应的可分辨温度分别为 0.5℃、0.25℃、0.125℃
和 0.0625℃,可实现高精度测温。
(2) 输入输出接口芯片 8255A
由于考虑到 8086 接口不足的问题,比如对 LED 数码管进行位选需要 2 位,对
LED 数码管每一位进行段选需要 8 位,所以必须要用 8255 进行 I/O 的扩展,通过
8255A,CPU 可以直接同外设相连接,将数字量从 CPU 输出到 LED 显示器上。
(3) 硬件比较
8255A芯片
8255A芯片是可编程并行接口芯片,不需要附加外部电路便可
和大多数并行传输的外设相连,数据可多为同时传输,使用广
泛方便。
8251A芯片
8251A是可编程的串行接口芯片,数据一位一位地顺序传送,
电路简单,传输距离远。
表 1-1 8255A 芯片与 8251A 芯片比较
11
微机原理课程设计
LED
LCD
与LCD相比,LED在亮度,功耗可视角度和刷新速率等方面更具
有优势,其最显著的特点是使用寿命长,光电转换效能高。
LCD占用空间小,功耗低,低辐射,能降低视觉疲劳,但会出现
闪烁现象。
表 1-2 LED和LCD比较
1.2.2 软件部分
该程序主要应分为两大部分,
(1)对 DS18B20 进行设置
如何赋初始温度值,如何保存读出的数字量,如何获取当前温度值,如何将温度
值显示出来等问题进行编程.
(2)对 8255 的初始化
对方式选择控制字的赋值问题,也就是解决 8255A 的 A 口、B 口分别工作在
方式几,A 口、B 口、C 口高位、C 口低位分别是作为输出口还是输入口的问题。
二、硬件设计
2.1 选择芯片 8255A
2.1.1 8255A 在本设计中的作用
芯片 8255A 在本设计中起输出、输入作用,C 口的高四位输入方式。PC7
作为读取 EOC 信号,低四位作输出方式,PC1、PC0 作七段 LED 显示器的位选码,
PA 口用作输出方式,作七段 LED 的段选码,PB 口为输入方式,读取 ADC0809 转
换后的数字量即 8255A 通过 PB 口读入 ADC0809 转换后的数字量由 PC1、PC0 产生
位选,PA 口产生段选后七段 LED 显示出数字量。
2.1.2
8255A 功能分析
8255A是一种通用的可编程的并行I/O接口芯片,可用与连接PCI卡与外设,
实现数据的的输入输出功能,可以对输入/输出的数据进行数据锁存和数据缓冲,
有中断请求信号,可以向CPU发出中断请求,能进行单向和双向通信。
8255A 的数据总线缓冲器是一个三态 8 位双向缓冲器,用作 8255A 同系统数据总线相
连时的缓冲部件,CPU 通过执行输入/输出指令来实现对缓冲器发送或接收数据。8255A 的
控制字或状态字也是通过该缓冲器传送的。PA、PB、PC 三口均工作在方式0状态。
22
微机原理课程设计
图 1-1 8255A 原理图
8255A 的操作功能表
CS
RD WR
A1
A0
操 作
数 据 传 送 方 式
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
0
0
0
0
1
0
0
1
1
0
1
0
0
1
0
1
读 A 口
读 B 口
读 C 口
写 A 口
写 B 口
写 C 口
A 口数据 → 数据总线
B 口数据 → 数据总线
C 口数据 → 数据总线
数据总线数据 → A 口
数据总线数据 → B 口
数据总线数据 → C 口
写控制口
数据总线数据 → 控制口
表 2-1 8255A 的操作功能表
(1) 方式 0 的工作特点:
这种方式通常不用联络信号,不使用中断,三个通道中的每一个都有可以由
程序选定作为输入或输出。
(2) 方式 0 的功能为:
a.两个 8 位通道:通道 A、B。两个四位通道:通道 C 高 4 位和低四位;
33
微机原理课程设计
b.任何一个通道可以作输入/输出;
c.输出是锁存的;
d.输入是不锁存的;
e.在方式 0 时各个通道的输入/输出可有 16 种不同的组合。
2.1.3
8255A 主要技术参数
参数名称
符号
测试条件
输入低电平电压
输入高电平电压
VIL
VIH
输入低电平电压(数据总线) VOL
输入低电平电压(外部端口) VOL
输入高电平电压(数据总线) VOH
输入高电平电压(外部端口) VOH
达林顿驱动电流
电源电流
输入负载电流
输出浮动电流
IDAR
ICC
IIL
IOFL
IOL=2.5MA
IOL=1.7MA
IOH= -400UA
IOH= -200UA
REXT=750
VEXT=1.5
I=VCC~0MA
VOUT=VCC~0MA
规范值
最大 最小
-0.5V
0.8V
VCC
2.0V
0.45V
0.45V
2.4V
2.4V
-0.4MA 1.0MA
120MA
+10MA -MA
-MA
+MA
表 2-2 8255A 主要技术参数
2.2 选择芯片 LED
2.2.1 LED 在本设计中的作用
LED 发光二极管(Light-Emitting Diode),在本设计中采用 7 段数字发
光二级管,做为终端显示。
2.2.2 LED 的功能分析
笔画型 LED 显示器是由 8 个二极管电路 a~dp 按字型‘8’的方式排列,
当不同的二极管被选通后根据发光效果会显示不同的自型。本设计中采用共
阴极连接方式,当某段接入正电压时,对应的发光二极管会发光,当需要显
示字型码“0”时,对应下图中的 a,b,c,d,e,f 发光二极管应发光,输入
位选码应为 00111111,即为:3FH;类似可以显示其他。a~dp 分别与 74LS273
的 1Q~8Q 相连,接收段选码信号(高电平);4 位 LED 显示器的 4 根共阴极
引线与 8255A 的 PC0~PC3 相连,接收位选码信号(低电平)。段选码和位选
码共同作用以显示不同的字型。
44
微机原理课程设计
数字 DP
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
g
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
f
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
e
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
d
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
c
1
0
0
1
1
1
1
1
1
1
1
1
0
1
0
0
b
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
a 二进制编码(字形)
1
1
1
1
0
1
1
1
1
1
1
0
1
0
1
1
3FH
03H
5BH
4FH
66H
6DH
7DH
07H
7FH
6FH
77H
7CH
69H
5EH
79H
71H
表 2-3 共阴极七段 LED 显示段码
2.2.3 芯片 LED 的技术参数
Pcw If
Vr
Ir
If
BT235-2
BT1441529
BT1341529
70
100
100
25
40
40
5
5
5
≥1.5 ≤2.5
≥0.5 ≤2.5
≥0.5 ≤2.5
^p
200
565
585
对应型号
散射颜色
SEL-10
红色
绿色
蓝色
表 2-4 LED 的技术参数
消耗功率 PM=150mW
最大工作电流 IFM=100mA
正常工作电流 IF=40mA
正向压降 VF ≤ 1.8V
燃亮电压为 5v
共阴极 LED 的 PM=300mW,IFM=200 mA,IF=60mA,VF ≤ 1.8V,VR≥
5V,发红光。
2.3 选择芯片 DS18B20
2.3.1 DS18B20 在本设计中的作用
55
微机原理课程设计
DS18B20 在本设计中主要是测量手部的温度并将接收的模拟信号转化为数
字信号输出至 8255 中。
2.3.2 DS18B20 的功能分析
DS18B20 测温原理如图 2-2 所示。图中低温度系数晶振的振荡频率受温度影
响很小,用于产生固定频率的脉冲信号送给计数器 1。高温度系数晶振随温度变
化其振荡率明显改变,所产生的信号作为计数器 2 的脉冲输入。计数器 1 和温度
寄存器被预置在-55℃所对应的一个基数值。计数器 1 对低温度系数晶振产生的
脉冲信号进行减法计数,当计数器 1 的预置值减到 0 时,温度寄存器的值将加 1,
计数器 1 的预置将重新被装入,计数器 1 重新开始对低温度系数晶振产生的脉冲
信号进行计数,如此循环直到计数器 2 计数到 0 时,停止温度寄存器值的累加,
此时温度寄存器中的数值即为所测温度。图 3 中的斜率累加器用于补偿和修正测
温过程中的非线性,其输出用于修正计数器 1 的预置值。
图 2-2 DS18B20 测温原理图
1) DS18B20 主要数据部件
(1)光刻 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是
该 DS18B20 的地址序列码。64 位光刻 ROM 的排列是:开始 8 位(28H)是产品类
型标号,接着的 48 位是该 DS18B20 自身的序列号,最后 8 位是前面 56 位的循环
冗余校验码(CRC=X8+X5+X4+1)。光刻 ROM 的作用是使每一个 DS18B20 都各不相
同,这样就可以实现一根总线上挂接多个 DS18B20 的目的。
(2)DS18B20 中的温度传感器可完成对温度的测量,以 12 位转化为
例:用 16 位符号扩展的二进制补码读数形式提供,以 0.0625℃/LSB 形式表达,
其中 S 为符号位。如图 2-3:
66
微机原理课程设计
图 2-3 DS18B20 温度值格式
这是 12 位转化后得到的 12 位数据,存储在 18B20 的两个 8 比特的 RAM 中,
二进制中的前面 5 位是符号位,如果测得的温度大于 0,这 5 位为 0,只要将测
到的数值乘于 0.0625 即可得到实际温度;如果温度小于 0,这 5 位为 1,测到的
数值需要取反加 1 再乘于 0.0625 即可得到实际温度。
例如+125℃的数字输出为 07D0H,+25.0625℃的数字输出为 0191H,
-25.0625℃的数字输出为 FF6FH,-55℃的数字输出为 FC90H。
图 2-4 DS18B20 温度转换
(3)DS18B20 温度传感器的存储器
DS18B20 温度传感器的内部存储器包括一个高速暂存 RAM 和一个非易
失性的可电擦除的 EEPRAM,后者存放高温度和低温度触发器 TH、TL 和结构寄存
器。
(4)配置寄存器
低五位一直都是"1",TM 是测试模式位,用于设置 DS18B20 在工作模式还是
77