资源描述
第一章绪论 1
1.1 课题背景及意义 1
1.2 课题应用前景 1
第二章总体设计方案 2
1.1 总体设计框图 2
2. 2元器件选择 2
2.1 温度传感器 AD590 3
2.2 模数转换器ADC0808 5
2.3 单片机芯片 AT89C51 10
2.4 显示器件LED 14
第三章结构和基本原理 15
2.5 AD590 传感器检测电路单元 15
2.6 A/D 转换电路单元 16
3. 3键盘控制单元 16
3.4LED 显示电路单元 17
第四章 软件设计分析 16
4.1 系统总流程图 17
4. 2 A/D转换的启动及转换结果获取 20
4.1 程序实现分析 21
4.2 实验源程序 22
4.3 图形仿真 28
第五章结语 31
参考文献 32
II
南昌工程学院专科毕业设计
第四章软件设计分析
第一章绪论
1.1 课题背景及意义
一些传感器市场比如压力传感器、温度传感器、流量传感器、水平传感器 .称重传感
器已表现出成熟市场的特征。流量传感器、压力传感器、温度传感器 .称重传感器的市场
规模最大,分别占到整个传感器市场的 21% 19%口 14%传感器市场的主要增长来自于无 线传感器、MEM浅感器、生物传感器等新兴传感器。其中,无线传感器在 2007-2010年复 合年增长率预计会超过25%
与传统的温度计相比,由于采用了改进型智能温度传感器 AD590作为检测元件,本
数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。 AD590温度计还可以在
过限报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。 AD590是一
种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地 组建起传感器网络,并可使多点温度测量电路变得简单、可靠
在该论文中,我们通过对单片机和温度传感器的设计,从中学到了许多有用的东西, 其中我们明白了如何去设计一个产品,首先要有性价比、良好的适应性,其次要知道设计 的关键,最后也懂得了设计与实际的联系
1.2 课题的应用前景
温度传感器的应用范围很广,它不仅广泛应用于日常生活中,而且也大量应用于自动 化和过程检测控制系统。
目前,全球的传感器市场在不断变化的创新之中呈现出快速增长的趋势。有关专家指出, 传感器领域的主要技术将在现有基础上予以延伸和提高,各国将竞相加速新一代传感器的 开发和产业化,竞争也将日益激烈。新技术的发展将重新定义未来的传感器市场,比如无 线传感器、光纤传感器、智能传感器和金属氧化传感器等新型称重传感器的出现与市场份 额的扩大。
第二章总体设计方案
2.1总体设计框图
测量温度的方法多种多样,测温传感器是决定技术指标的关键元件,这次实训采用 AD590作为温度传感,再通过模数转换把模拟信号转成数字信号,送入单片机进行处理并 显示。
温度传感器
模
数
转
AD(C0808
电
路
CPU
AD590
4位数码管显示
AT89
图2.1总体设计框图
2. 2元器件选择
1传感器型号选择
集成温度传感器实质上是一种半导体集成电路,它是利用晶体管的 b-e结压降的不饱
和值VBE与热力学温度T和通过发射极电流I的下述关系实现对温度的检测,集成温度传 感器具有线性好、精度适中、灵敏度高、体积小、使用方便等优点,得到广泛应用。集成 温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为
10mV/K温度0c时输出为0,温度25c时4出2.982V。电流输出型的灵敏度一般为 1mA/K AD590^美国模拟器件公司生产的单片集成两端感温电流源。
温度传感器AD590
温度传感器的应用范围很广,它不仅用于日常生活中,而且也大量应用于自动化和过 程检测控制系统。温度传感器的种类很多,根据现场使用条件,选择恰当的传感器类型才 能保证测量的准确可靠,并且同时达到增加使用寿命和降低成本的目的。 AD590温度传感
器不但实现了温度转化为线性电量测量,而且精度高、互换性好。 AD590M量热力学温度、
摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温 度控制场合。由于AD590®度高、价格低、不需辅助电源、线性好,常用于测温和热电偶 的冷端补偿。本设计采用 AD590#为温度传感器,它只需要一个电源即可实现温度到电流 的线性变换,然后再终端使用一只取样电阻,即可实现电流到电压的转换。它使用方便, 并且具有较高的精度。图3.5为AD590的封装形式和基本应用电路。
(6封装准式 (为)基本应用电躅
图3-5 AD590封装形式和应用电路
AD5901成温度传感器是将温敏电阻晶体管与相应的辅助电路集成在同一块芯片上,
能直接给出正比于绝对温度的理想线形输出,一般用于 -55C〜+150C之间的测量温度。
温敏晶体管在管子的集电极电流恒定时,其基极发射极电压与温度成线形关系,由于生产 厂家生产时采用激光微调来校正集成电路内的薄膜电阻,使其在摄氏零度(对应绝对温度 为273.2K),输出电流微273.2uA,灵敏度微1uA/K。当其感受的温度升高或者降低时, 则其电流就以1u
受国A/K的速率增大或减小,从而将被测电流转换为电压,则可以用电压来表示其温度大 小。为克服温敏晶体管vb电压产生时的离散性,采用了特殊的差分电路。集成温度传感 器具有电压型和电流型两种。因此,它不容易受接触电阻、引线电阻、电压噪音的干扰, 具有很好的线性特性。
AD59CW度与电流的关系如下表所示
摄氏温度
AD590电流
经10KQ电压
0 c
273.2 uA
2.732V
10 c
283.2 uA
2.832 V
20 c
293.2 uA
2.932 V
30 c
303.2 uA
3.032 V
40 c
313.2 uA
3.132 V
50 c
323.2 uA
3.232 V
60 c
333.2 uA
3.332 V
100 c
373.2 uA
3.732 V
表3.6
AD59叶要特性如下:
・ 流过器件的电流(mA等于器件所处环境的热力学温度(开尔文)度数,即:
T (
3-1 )
式中:Ir为流过器件(AD590的电流,单位为mA
T为热力学温度,单位为K。
・ AD590的测温范围为-55C〜+150C。
・ AD590的电源电压范围为4V〜30V。电源电压可在4V~6V范围变化,电流变 化mA相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接 也不会被损坏。
・ 输出电阻为710MW
・ 精度高。AD59以有I、J、K、L、M五档,其中M档精度最高,在-55C〜+150C
范围内,非线性误差为± 0.3 C。
AD590温度传感器作为一个恒流源,在本设计的温度检测电路中在 AD590的输出端接 一取样电阻可将输出电流信号变化转换为电压信号变化。由于 AD590温度传感器温度每变 化1C其输出电流变化1mA所以在接上10K的取样电阻的情况下,温度每变化 10C,输 出电压就将变化0.1V。
2.模数转换器
传感器输出信号经过电压跟随器和差分放大电路之后,输出的是 0-5V的电压信号,
为了把这一信号用数码管显示出来,还要经过模数转换器件 ADC080。巴0-5V的电压转为
数字信号0-255。a/d转换器的功能是把模拟量变换成数字量。由于实现这种转换的工作 原理和采用工艺技术不同,因此生产出种类繁多的 a/d转换芯片。a/d转换器按分辨率分
为4位。6位。8位。10位。14位。16位和bcd码的31/2位。51/2位等。按照转换速度 可分为超高速(转换时间0 330ns),次超高速,高速,低速(转换时间〉330ps)等。a/d转换 器按照转换原理可分为直接a/d转换器和间接a/d转换器。所谓直接a/d转换器,是把模 拟信号直接转换成数字信号,如逐次逼近型,并联比较型等。其中逐次逼近型a/d转换器, 易于用集成工艺实现,且能达到较高的分辨率和速度,故目前集成化 a/d芯片采用逐次逼
近型者多;间接a/d转换器是先把模拟量转换成中间量,然后再转换成数字量,如电压 / 时间转换型(积分型),电压/频率转换型,电压/脉宽转换型等。其中积分型 a/d转换器电 路简单,抗干扰能力强,切能作到高分辨率,但转换速度较慢。有些转换器还将多路开关。 基准电压源。时钟电路。译码器和转换电路集成在一个芯片内,已超出了单纯 a/d转换功
能,使用十分方便。
A/D转换器的主要技术参数1.分辨率:分辨率是指A/D转换器输出数字量的最低位变 化一个数码时,对应输入模拟量的变化量.通常以A/D转换器输出数字量的位数表示分辨率 的高低,因为位数越多,量化单位就越小,对输入信号的分辨能力也就越高.例如,输入模拟 电压满量程为10V,若用8位A/D转换器转换时,其分辨率为10V/28=39mV,10位的A/D转换 器是9.76Mv,而12位的A/D转换器为2.44mV。2.转换误差:转换误差表示A/D转换器实际 输出的数字量与理论上的输出数字量之间的差别 .通常以输出误差的最大值形式给出.转
换误差也叫相对精度或相对误差.转换误差常用最低有效位的倍数表示.例如,某A/D转换 的相对精度为± (1/2)LSB,这说明理论上应输出的数字量与实际输出的数字量之间的误差 不大于最低位为1的一半。3.转换速度:A/D转换器从接收到转换控制信号开始,到输出端 得到稳定的数字量为止所需要的时间,即完成一次A/D转换所需的时间称为转换速度.采用 不同的转换电路,其转换速度是不同的,并行型比逐次逼近型要快得多.低速的A/D转换器 为1〜30ms,中速A/D转换器的时间在 50 pS左右,高速A/D转换器的时间在 50ns左 右,ADC808的转换时间在100ps左右。采样频率为 8位的、以逐次逼近原理进行模一 数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号, 只选通8路模拟输入信号中的一个进行 A/D转换。,当数字量变化时,d/a转换器输
出的模拟量按比例关系变化的程度。 理想的d/a转换器是线性的, 但是实际上是有误
差的,模拟输出偏离理想输出的最大值称为线性误差。
8路8位A/ D转换器,即分辨率 8位。
具有转换起停控制端。
转换时间为100 pS 单个+ 5V电源供电 模拟输入电压范围 0〜+ 5V,不需零点和满刻度校准。 工作温度范围为-40〜+ 85摄氏度
低功耗,约15mW
(1)内部结构:
ADC0808是CMO却片型逐次逼近式 A/ D转换器,内部结构如图 13. 22所示, 它由8路模拟开关、地址锁存与译码器、比较器、 8位开关树型 D/ A转换器、逐次 逼近
ADC0808的内部结构和外部引脚分别如图 11.19和图11.20所示。内部各部分的作用和工作原理
在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下:
数
字
输
ADD
出
ALE
A叫
ADDC
VR(+) VR(-)
图11.19 ADC0808内部结构框图
(2)外部特性(引脚功能):
ADC0808芯片有28条引脚,采用双列直插式封装,如图 11.20所示
叫一
叫一
叫一
START —>
EOC 一
丐一
OE -a
CLOCK—
“cc
"⑴一
GND —
巳一
I 28
2 27
3 26
4 ADC 25
5 24
6 23
三 0808/0809
7 22
8 21
9 20
10 19
II 18
12 17
13 16
14 15
,* 叫
T— IN]
一N
,— ADDa
A
- ADDr
-人叫、
-ALE
* 1MMsB)
» D0(LSB)
一 Vr㈠
图11.20 ADC0808外部引脚图下面说明各引脚功能。
IN0〜IN7 : 8路模拟量输入端。
2-1〜2-8 : 8位数字量输出端。
ADDA ADDB ADDC 3位地址输入线,用于选通 8路模拟输入中的一路,如表
11.3所示:
表11.3地址信号与选中通道的关系
地 址
选中通道
ADD c
ADD b
ADD a
0
0
0
IN0
0
0
1
INi
0
1
0
IN2
0
1
1
IN 3
1
0
0
IN4
1
0
1
IN 5
1
1
0
IN6
1
1
1
IN7
ALE:地址锁存允许信号,输入,高电平有效。
START A/D转换启动信号,输入,高电平有效。
EOC A/D转换结束信号,输出,当 A/D转换结束时,此端输出一个高电平。
OE数据输出允许信号,输入,高电平有效。当 A/ D转换结束时,此端输入一
个高电平,才能打开输出三态门,输出数字量。
CLK时钟脉冲输入端。要求时钟频率不高于 640KH乙
REF (+)、REF (-):基准电压。
Vcc:电源,单一 + 5V。
GND 地。
ADC0808的工作过程是:首先输入 3位地址,并使 ALE=1,将地址存入地址锁存 器中。此地址经译码选通 8路模拟输入之一到比较器。 START上升沿将逐次逼近寄存
器复位。下降沿启动 A/D转换,之后EOC俞出信号变低,指示转换正在进行。直到 A/ D转换完成,EOC变为高电平,指示 A/ D转换结束,结果数据已存入锁存器,这 个信号可用作中断申请。当 OE输入高电平 时,输出三态门打开,转换结果的数字量
输出到数据总线上
(3)工作时序与使用说明:
ADC0808的工作时序如图11.21所示。当通道选择地址有效时, ALE信号一出现,
地址便马上被锁存,这时转换启动信号紧随 ALE之后(或与ALE同时)出现。START的
上升沿将逐次逼近寄存器 SAR复位,在该上升沿之后的 2仙s加8个时钟周期内(不
定),EOC信号将变低电平,以指示转换操作正在进行中,直到转换完成后 EOC再变
高电平。微处理器收到变为高电平的 EOC信号后,便立即送出 OE信号,打开三态门,
读取转换结果。
(CPU) WR L
Uta dt j! a i c
复位SAR)启动转换
、1A K 1 j AlL 匕
、
|!
)地址锁存
AUD 、/
(ABC)—心
i
\ (
\ ! \
T ।
II d ।
ll d ।
UE
0 1
Il 1
fl
Il 1
fl
SXitoiB! lIJ
1
.
^200nsH
W2p/8T
«
« % «
0 人转换结束
高阻 q
图11.21 ADC 0808 工作时序
模拟输入通道的选择可以相对于转换开始操作独立地进行 (当然,不能在转换过
程中进行),然而通常是把通道选择和启动转换结合起来完成 (因为ADC0808的时间特
性允许这样做)。这样可以用一条写指令既选择模拟通道又启动转换。在与微机接口 时,输入通道的选择可有两种方法,一种是通过地址总线选择,一种是通过数据总线 选择。
如用EOC信号去产生中断请求,要特别注意 EOC的变低相对于启动信号有 2^s+8个 时钟周期的延迟,要设法使它不致产生虚假的中断请求。为此,最好利用 EOC上升沿
产生中断请求,而不是靠高电平产生中断请求。
(4) ADC0808与8031单片机的接口设计
ADC0808^ 8031单片机的硬件接口有三种方式 ,查询方式,中断方式和等待延时方式 .
究竟采用何种方式,应视具体情况,按总体要求而选择.
1 .延时方式
ADC0808编程模式
在软件编写时,应令p2.7=A15=0;A0,A1,A2 给出被选择的模拟通道的地址 ;
执行一条输出指令,启动A/D转换;
执行一条输入指令,读取A/D转换结果.
通道地址:7FF8H~7FFFH
下面的程序是采用延时的方法 ,分别对8路模拟信号轮流采样一次 ,并依次把结果转
存到数据存储区的采样转换程序 .
START: MOV R1, #50H ;置数据区首地址
MOV DPTR, #7FF8H ;P2.7=0 且指向通道 0
MOV R7, #08H ;置通道数
NEXT: MOVX @DPTR,A 启动 A/D 转换
MOV R6, #0AH ;软件延时
DLAY: NOP
NOP
NOP
DJNZ R6, DLAY
MOVX A, @DPTR读取转换结果
MOV @ R1, A ;存储数据
INC DPTR ;指向下一个通道
INC R1 ;修改数据区指针
DJNZ R7, NEXT ;8 个通道全采样完了吗
2 .中断方式
将ADC0808作为一个外部扩展的并行 I/O 口,直接由8031的P2.0和脉冲进行启动.
通道地址为 FEF8H^ FEFFH
用中断方式读取转换结果的数字量 ,模拟量输入通路选择端 A,B,C分别与8031的
P0.0,P0.1,P0.2( 经 74LS373)相连,
CLK由8031的ALE提供.
INTADC:SETB IT1 ;选择为边沿触发方式
SETB EA ;开中断
SETB EX1 ;
MOV DPTR, #0FEF8H ;通道地址送 DPTR
MOVX @DPTR,A 启动 A/D 转换
PINT1:……
MOV DPTR, #0FEF8H ;通道地址送 DPTR
MOVX A, @ DPTR读取从IN0输入的转换结果存入
MOV 50H, A ;50H 单元
MOVX @DPTR,A 启动 A/D 转换
RETI ;中断返回
(5)接口电路设计中的几点注意事项
1.关于ADC0808最高工作时钟频率的说明
由于ADC0808芯片内无时钟,所以必须靠外部提供时钟 ;
外部时钟的频率范围为 10KHz~1280KHz在前面的ADC0808!过中断方式与 8031单片 机接口的电路中,8031单片机的主频接为 6MHZ,ALE提供ADC0808/0809的时钟频率为 1MHZ(1000KHZ);
实际应用系统使用证明,ADC0808能够正常可靠地工作.但在用户进行ADC0808应用设 计时,推荐选用640KHz左右的时钟频率.
3.AT89C51芯片介绍:
AT89C51 是一种带 4K 字节 FLASH存储器(FPEROM Flash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS脑微处理器,俗称单片机。 AT89C2051
是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储
器可以反复擦除1000次。该器件采用ATMEL®密度非易失存储器制造技术制造, 与工
业标准的MCS-5甘旨令集和输出管脚相兼容。 由于将多功能8位CPU和闪烁存储器组合
在单个芯片中,ATMELB AT89C51是一种高效微控制器,AT89C2051是它的一种精简版 本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形 及引脚排列如图所示
AT89C51外形及引脚排列
编辑本段主要特性:
•与MCS-51兼容 ・4K字节可编程FLASH存储器 ・寿命:1000写/擦
循环 •数据保留时间:10年 •全静态工作:0Hz-24MHz •三级程序存
储器锁定 • 128X 8位内部 RAM - 32可编程I/O线 •两个16位定时器/
计数器 • 5个中断源 •可编程串行通道 •低功耗的闲置和掉电模
式 •片内振荡器和时钟电路
编辑本段特性概述:
AT89C51提供以下标准功能: 4k字节Flash 闪速存储器,128字节内部 RAM
32个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行 通信口,片内振荡器及时钟电路。同时, AT89C51可降至0Hz的静态逻辑操作,并支
持两种软件可选的节电工作模式。空闲方式停止 CPU的工作,但允许 RAM定时/计
数器,串行通信口及中断系统继续工作。掉电方式保存 RAMfr的内容,但振荡器停止
工作并禁止其它所有部件工作直到下一个硬件复位。 编辑本段管脚说明:
VCC供电电压。 GND接地。 P0口 : P0口为一个8位漏级开路双向I/O
口,每脚可吸收8TTL门电流。当 P0口的管脚第一次写1时,被定义为高阻输入。 P0
能够用于外部程序数据存储器,它可以被定义为数据 /地址的低八位。在 FIASH编程
时,P0 口作为原码输入口,当 FIASH进行校验时,P0输出原码,此时 P0外部必须接 上拉电阻。 P1 口: P1 口是一个内部提供上拉电阻的 8位双向I/O 口,P1 口缓冲器
能接收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用作输入, P1 口被
外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH编程和校验
时,P1 口作为低八位地址接收。 P2口 : P2口为一个内部上拉电阻的 8位双向I/O
口,P2口缓冲器可接收,输出 4个TTL门电流,当P2口被写“1”时,其管脚被内部 上拉电阻拉高,且作为输入。并因此作为输入时, P2口的管脚被外部拉低,将输出电
流。这是由于内部上拉的缘故。 P2口当用于外部程序存储器或 16位地址外部数据存储
器进行存取时,P2口输出地址的高八位。在给出地址“ 1”时,它利用内部上拉优势, 当对外部八位地址数据存储器进行读写时, P2 口输出其特殊功能寄存器的内容。 P2
口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口 : P3口管月却是8
个带内部上拉电阻的双向 I/O 口,可接收输出4个TTL门电流。当P3口写入“1”后,
它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平, P3口将
输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51的一些特殊功能
口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD
(用行输出口) P3.2 /INTO (外 部中断0) P3.3 /INT1 (外部中断1)
P3.4 T0 (记时器0外部输入) P3.5 T1 (记时器1外部输入) P3.6 /WR (外
部数据存储器写选通) P3.7 /RD (外部数据存储器读选通) P3 口同时为
闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,
要保持RST脚两个机器周期的高电平时间。 ALE/PROG当访问外部存储器时,
地址锁存允许的输出电平用于锁存地址的低位字节。 在FLASH编程期间,此引脚用于
输入编程脉冲。在平时, ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器
频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每 当用作外部数据存储器时,将跳过一个 ALE脉冲。如想禁止 ALE的输出可在 SFR8EH
地址上置00此时,ALE只有在执行 MOVX MOVC旨令是ALE才起作用。另外,该引 脚被略微拉高。如果微处理器在外部执行状态 ALE禁止,置位无效。 /PSEN:外
部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次 /PSEN
有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器( 0000H-FFFFH),不管
是否有内部程序存储器。注意加密方式 1时,/EA将内部锁定为 RESET当/EA端保持
高电平时,此间内部程序存储器。在 FLASH编程期间,此引脚也用于施加 12V编程电
源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL协别为反向
放大器的输入和输出。 该反向放大器可以配置为片内振荡器。 石晶振荡和陶瓷振荡均
可采用。如采用外部时钟源驱动器件, XTAL的不接。有余输入至内部时钟信号要通
过一个二分频触发器, 因此对外部时钟信号的脉宽无任何要求, 但必须保证脉冲的高
低电平要求的宽度。 编辑本段芯片擦除:
整个PEROM$列和三个锁定位的电擦除可通过正确的控制信号组合, 并保持ALE
管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空 存储字节被重复编程以前,该操作必须被执行。 止匕外,AT89C51设有稳态逻辑,
可以在低到零频率的条件下静态逻辑, 支持两种软件可选的掉电模式。 在闲置模式下,
CPU亭止工彳但 RAM定时器,计数器,串口和中断系统仍在工作。在掉电模式下, 保存RAM的内容并且冻结振荡器, 禁止所用其他芯片功能, 直到下一个硬件复位为止。 串口通讯 单片机的结构和特殊寄存器,这是你编写软件的关键。至于串口通信
需要用到那些特殊功能寄存器呢,它们是 SCON TCON TMOD SCON^ ,SBUF数据缓
冲寄存器这是一个可以直接寻址的用行口专用寄存器。 SBUF包含了两个独立的寄存
器,一个是发送寄存,另一个是接收寄存器,但它们都共同使用同一个寻址地址- 99H。
CPU在读SBUF时会指到接收寄存器,在写时会指到发送寄存器,而且接收寄存器是 双缓冲寄存器,这样可以避免接收中断没有及时的被响应,数据没有被取走,下一帧
数据已到来,而造成的数据重叠问题。发送器则不需要用到双缓冲,一般情况下我们
在写发送程序时也不必用到发送中断去外理发送数据。操作 SBUF寄存器的方法则很
简单,只要把这个99H地址用关键字 sfr定义为一个变量就可以对其进行读写操作 了,如sfr SBUF = 0x99; 当然你也可以用其它的名称。通常在标准的 reg51.h 或 at89x51.h 等头文件中已对其做了定义, 只要用#include 引用就可以了。 SCON
用行口控制寄存器通常在芯片或设备中为了监视或控制接口状态, 都会引用到接口控
制寄存器。SCON就是51芯片的用行口控制寄存器。它的寻址地址是 98H,是一个可
以位寻址的寄存器,作用就是监视和控制 51芯片用行口的工作状态。 51芯片的用
口可以工作在几个不同的工作模式下,其工作模式的设置就是使用 SCON寄存器。它
的各个位的具体定义如下: SM0 SM1 SM2 REN TB8 RB8 TI RI SMQ SM1为
用行口工作模式设置位, 这样两位可以对应进行四种模式的设置。 用行口工作模式设
置。 SM0SM1模式 功能 波特率 0 0 0同步移位寄存器 fosc/12 0 1 1 8 位 UART 可变 1 0 2 9 位 UART fosc/32 或 fosc/64 1 1 3 9 位 UART 可 变 在这里只说明最常用的模式 1,其它的模式也就一一略过, 有兴趣的朋友可以
找相关的硬件资料查看。表中的 fosc代表振荡器的频率,也就是晶振的频率。 UART
为(Universal Asynchronous Receiver )的英文缩写。 SM2 在模式 2、模式 3 中
为多处理机通信使能位。 在模式0中要求该位为00 REM为允许接收位,REM置
1时串口允许接收,置 0时禁止接收。REM是由软件置位或清零。如果在一个电路 中接收和发送引脚 P3.0,P3.1 都和上位机相连,在软件上有用口中断处理程序,当 要求在处理某个子程序时不允许串口被上位机来的控制字符产生中断, 那么可以在这
个子程序的开始处加入 REM=0来禁止接收,在子程序结束处加入 REM=1再次打开用
口接收。大家也可以用上面的实际源码加入 REM=0来进行实验。 TB8发送数据
位8,在模式2和3是要发送的第9位。该位可以用软件根据需要置位或清除,通常 这位在通信协议中做奇偶位,在多处理机通信中这一位则用于表示是地址帧还是数据 帧。 RB8接收数据位8,在模式2和3是已接收数据的第 9位。该位可能是奇 偶位,地址/数据标识位。在模式 0中,RB8为保留位没有被使用。在模式 1中,当 SM2=Q RB8是已接收数据的停止位。 TI发送中断标识位。在模式 0,发送完
第8位数据时,由硬件置位。其它模式中则是在发送停止位之初, 由硬件置位。TI置
位后,申请中断,CPU响应中断后,发送下一帧数据。在任何模式下, TI都必须由
软件来清除,也就是说在数据写入到 SBUF后,硬件发送数据,中断响应(如中断打
开),这时TI=1 ,表明发送已完成,TI不会由硬件清除,所以这时必须用软件对其 清零。 RI接收中断标识位。在模式 0,接收第8位结束时,由硬件置位。其它 模式中则是在接收停止位的半中间,由硬件置位。 RI=1 ,申请中断,要求 CPU取走
数据。但在模式1中,SM2=10寸,当未收到有效的停止位,则不会对 RI置位。同样 RI也必须要靠软件清除。 常用的串口模式1是传输10个位的,1位起始位为0,8位
数据位,低位在先,1位停止位为1。它的波特率是可变的,其速率是取决于定时器 1
或定时器2的定时值(溢出速率)。 AT89C51和AT89C2051等51系列芯片只有两个
定时器,定时器0和定时器1,而定时器2是89C52系列芯片才有的。 波特率在
只有上下位机的波特率一样时才
使用串口做通讯时, 一个很重要的参数就是波特率,
可以进行正常通讯。 波特率是指串行端口每秒内可以传输的波特位数。 有一些初学的
朋友认为波特率是指每秒传输的字节数,如标准 9600会被误认为每秒种可以传送
9600个字节,而实际上它是指每秒可以传送 9600个二进位,而一个字节要 8个二进
位,如用串口模式1来传输那么加上起始位和停止位,每个数据字节就要占用 10个
二进位,9600波特率用模式1传输时,每秒传输的字节数是9600+10=960字节。
51芯片的串口工作模式 0的波特率是固定的,为fosc/12,以一个12M的晶振来计算, 那么它的波特率可以达到 1M模式2的波特率是固定在 fosc/64 或fosc/32 ,具体 用那一种就取决于 PCON寄存器中的 SMOD&,如SMOD为0,波特率为focs/64,SMOD 为1,波特率为 focs/32 。模式1和模式3的波特率是可变的,取决于定时器 1或2
(52芯片)的溢出速率。那么我们怎么去计算这两个模 式的波特率设置时相
关的寄存器的值呢?可以用以下的公式去计算。 波特率=(2SMOD32) X定时
器1溢出速率 上式中如设置了 PCON寄存器中的 SMOW为1时就可以把波特
率提升2倍。通常会使用定时器1工作在定时器工作模式 2下,这时定时值中的 TL1 做为计数,TH1做为自动重装值 ,这个定时模式下,定时器溢出后, TH1的值会自
动装载到TL1,再次开始计数,这样可以不用软件去干预,使得定时更准确。在这个 定时模式2下定时器1溢出速率的计算公式如下: 溢出速率=(计数速率)/(256
—TH1) 上式中的“计数速率”与所使用的晶体振荡器频率有关,在 51芯片中 定时器启动后会在每一个机器周期使定时寄存器 TH的值增加一,一个机器周期等于
十二个振荡周期,所以可以得知 51芯片的计数速率为晶体振荡器频率的 1/12 , 一个
12M的晶振用在51芯片上,那么51的计数速率就为1M
然而使用12M晶体的时候计算出来的 TH1不为整数,而TH1的值只能取整数,
这样它就会有一定的误差存在不能产生精确的 9600波特率。当然一定的误差是可以
在使用中被接受的,就算使用 11.0592M的晶体振荡器也会因晶体本身所存在的误差
使波特率产生误差,但晶体本身的误差对波特率的影响是十分之小的, 可以忽略不计。
5.显示器件的选择:
在系统中要显示时间,就必需有显示无器件,目前市场上显示元器件很多,有LCD点阵 显显、7段数码管显示等。LED显示器与LCD显示器相比,LED在亮度、功耗、可视角 度和刷新速率等方面,都更具优势。 LED与LCD的功耗比大约为10:1 ,而且更高的刷
新速率使得LED在视频方面有更好的性能表现,能提供宽达 160°的视角,可以显示
各种文字、数字、彩色图像及动画信息,也可以播放电视、录像、 VCD DVD等彩色
视频信号,多幅显示屏还可以进行联网播出。 有机LED显示屏的单个元素反应速度是
LCD液晶屏的1000倍,在强光下也可以照看不误,并且适应零下 40度的低温。利用
LED技术,可以制造出比 LCD更薄、更亮、更清晰的显示器,拥有广泛的应用前景。 由此可知LCD缺点是比较耗电,而且成本也较高。从节约成本和节约能源的角度作为出 发点,我们选择一组4位7段共阳数码管作为时间显示,以便节约成本和功耗。数码管的 驱动方式:数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示 出我们要的数字,因此根据数码管的驱动方式的不同, 可以分为静态式和动态式两类。
静态显示驱动:静态驱动也称直流驱动。 静态驱动是指每个数码管的每一个段码
都由一个单片机的I/O端口进行驱动,或者使用如 BCD码二-十进制译码器译码进行
驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用 I/O端口多,如驱动 5
个数码管静态显示则需要 5X8= 40根I/O端口来驱动,要知道一个 89S51单片机可
用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬 件电路的复杂性。
动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,
动态驱动是将所有数码管的 8个显示笔划"a,b,c,d,e,f,g,dp” 的同名端连在一起,另
外为每个数码管的公共极 COM1加位选通控制电路,位选通由各自独立的I/O线控制, 当单片机输出字形码时, 所有数码管都接收到相同的字形码, 但究竟是那个数码管会
显示出字形,取决于单片机对位选通 CO邮电路的控制,所以我们只要将需要显示的
数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时 轮流控制各个数码管的的 CO邮,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为 1〜2ms,由于人的视觉暂留现象及发
光二极管的余辉效应, 尽管实际上各位数码管并非同时点亮, 但只要扫描的速度足够
快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显 示是一样的,能够节省大量的 I/O端口,而且功耗更低。
7段LED显示字符及段码表
显示字符
认阳救出吗
共阳松段码
显示字符
共阳槌段格
具阴设段码
0
C0H
1FH
C
C6H
39H
L
F9H
06H
D
AIM
5EH
2
A4 H
5BH
E
86H
79H
3
BOH
4FH
F
8EH
7LH
4
99 H
66H
P
BCH
73H
S
92H
6DH
U
C1H
JEM
6
B2H
7DH
r
CEH
31H
7
FfiH
07H
¥
91H
5EH
8
SOH
7FH
H
89H
76H
9
90H
6FH
展开阅读全文
相关搜索