收藏 分销(赏)

用AD590温度传感器测温.doc

上传人:快乐****生活 文档编号:2816911 上传时间:2024-06-06 格式:DOC 页数:35 大小:566.54KB 下载积分:12 金币
下载 相关 举报
用AD590温度传感器测温.doc_第1页
第1页 / 共35页
用AD590温度传感器测温.doc_第2页
第2页 / 共35页


点击查看更多>>
资源描述
(完整word版)用AD590温度传感器测温 目 录 第一章 绪论..................................................................1 1.1课题背景及意义.........................................................1 1.2课题应用前景............................................................1 第二章 总体设计方案......................................................2 2.1 总体设计框图..........................................................2 2.2元器件选择.....................................................2 2.21温度传感器AD590…………………………………………………………………………3 2.22模数转换器ADC0808………………………………………………………………………5 2.23单片机芯片AT89C51………………………………………………………………………10 2.24显示器件LED………………………………………………………………………………14 第三章 结构和基本原理......................................................15 3.1 AD590传感器检测电路单元.............................................15 3.2 A/D转换电路单元.......................................................16 3.3键盘控制单元......................................................16 3.4LED显示电路单元............................................................17 第四章 软件设计分析.......................................................16 4.1 系统总流程图............................................................17 4.2 A/D转换的启动及转换结果获取....................................20 4.3 程序实现分析............................................................21 4.4实验源程序…………………………………………………………………………………22 4.5图形仿真……………………………………………………………………………………28 第五章 结语..................................................................31 参考文献..............................................................32 35 第一章 绪 论 1.1课题背景及意义 一些传感器市场比如压力传感器、温度传感器、流量传感器、水平传感器.称重传感器已表现出成熟市场的特征。流量传感器、压力传感器、温度传感器.称重传感器的市场规模最大,分别占到整个传感器市场的21%、19%和14%。传感器市场的主要增长来自于无线传感器、MEMS传感器、生物传感器等新兴传感器。其中,无线传感器在2007-2010年复合年增长率预计会超过25%。 与传统的温度计相比,由于采用了改进型智能温度传感器AD590作为检测元件,本数字温度计减少了外部的硬件电路,具有低成本和易使用的特点。AD590温度计还可以在过限报警、远距离多点测温控制等方面进行应用开发,具有很好的发展前景。AD590是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠 在该论文中,我们通过对单片机和温度传感器的设计,从中学到了许多有用的东西,其中我们明白了如何去设计一个产品,首先要有性价比、良好的适应性,其次要知道设计的关键,最后也懂得了设计与实际的联系  1.2课题的应用前景   温度传感器的应用范围很广,它不仅广泛应用于日常生活中,而且也大量应用于自动化和过程检测控制系统。 目前,全球的传感器市场在不断变化的创新之中呈现出快速增长的趋势。有关专家指出,传感器领域的主要技术将在现有基础上予以延伸和提高,各国将竞相加速新一代传感器的开发和产业化,竞争也将日益激烈。新技术的发展将重新定义未来的传感器市场,比如无线传感器、光纤传感器、智能传感器和金属氧化传感器等新型称重传感器的出现与市场份额的扩大。 第二章 总体设计方案 2.1总体设计框图 测量温度的方法多种多样,测温传感器是决定技术指标的关键元件,这次实训采用AD590作为温度传感,再通过模数转换把模拟信号转成数字信号,送入单片机进行处理并显示。 温度传感器AD590 模数转换电路 ADC0808 CPU AT89C51 4位数码管显示 图2.1 总体设计框图 2.2 元器件选择 1 传感器型号选择 集成温度传感器实质上是一种半导体集成电路,它是利用晶体管的b-e结压降的不饱和值VBE与热力学温度T和通过发射极电流I的下述关系实现对温度的检测,集成温度传感器具有线性好、精度适中、灵敏度高、体积小、使用方便等优点,得到广泛应用。集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵敏度一般为10mV/K,温度0℃时输出为0,温度25℃时输出2.982V。电流输出型的灵敏度一般为1mA/K。AD590是美国模拟器件公司生产的单片集成两端感温电流源。 温度传感器AD590 温度传感器的应用范围很广,它不仅用于日常生活中,而且也大量应用于自动化和过程检测控制系统。温度传感器的种类很多,根据现场使用条件,选择恰当的传感器类型才能保证测量的准确可靠,并且同时达到增加使用寿命和降低成本的目的。AD590温度传感器不但实现了温度转化为线性电量测量,而且精度高、互换性好。AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均温度的具体电路,广泛应用于不同的温度控制场合。由于AD590精度高、价格低、不需辅助电源、线性好,常用于测温和热电偶的冷端补偿。本设计采用AD590作为温度传感器,它只需要一个电源即可实现温度到电流的线性变换,然后再终端使用一只取样电阻,即可实现电流到电压的转换。它使用方便,并且具有较高的精度。图3.5为AD590的封装形式和基本应用电路。 图3-5 AD590封装形式和应用电路 AD590集成温度传感器是将温敏电阻晶体管与相应的辅助电路集成在同一块芯片上,能直接给出正比于绝对温度的理想线形输出,一般用于-55℃~+150℃之间的测量温度。温敏晶体管在管子的集电极电流恒定时,其基极发射极电压与温度成线形关系,由于生产厂家生产时采用激光微调来校正集成电路内的薄膜电阻,使其在摄氏零度(对应绝对温度为273.2K),输出电流微273.2uA,灵敏度微1uA/K。当其感受的温度升高或者降低时,则其电流就以1u A/K的速率增大或减小,从而将被测电流转换为电压,则可以用电压来表示其温度大小。为克服温敏晶体管vb电压产生时的离散性,采用了特殊的差分电路。集成温度传感器具有电压型和电流型两种。因此,它不容易受接触电阻、引线电阻、电压噪音的干扰,具有很好的线性特性。  AD590温度与电流的关系如下表所示 摄氏温度 AD590电流 经10KΩ电压 0℃ 273.2 uA 2.732V 10℃ 283.2 uA 2.832 V 20℃ 293.2 uA 2.932 V 30℃ 303.2 uA 3.032 V 40℃ 313.2 uA 3.132 V 50℃ 323.2 uA 3.232 V 60℃ 333.2 uA 3.332 V 100℃ 373.2 uA 3.732 V 表3.6 AD590主要特性如下: ●  流过器件的电流(mA)等于器件所处环境的热力学温度(开尔文)度数,即:                                (3-1) 式中:Ir为流过器件(AD590)的电流,单位为mA;   T为热力学温度,单位为K。 ●  AD590的测温范围为-55℃~+150℃。 ●  AD590的电源电压范围为4V~30V。电源电压可在4V~6V范围变化,电流 变化mA,相当于温度变化1K。AD590可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。 ●  输出电阻为710MW。 ●  精度高。AD590共有I、J、K、L、M五档,其中M档精度最高,在-55℃~+150℃范围内,非线性误差为±0.3℃。 AD590温度传感器作为一个恒流源,在本设计的温度检测电路中在AD590的输出端接一取样电阻可将输出电流信号变化转换为电压信号变化。由于AD590温度传感器温度每变化1℃其输出电流变化1mA。所以在接上10K的取样电阻的情况下,温度每变化10℃,输出电压就将变化0.1V。 2.模数转换器 传感器输出信号经过电压跟随器和差分放大电路之后,输出的是0-5V的电压信号,为了把这一信号用数码管显示出来,还要经过模数转换器件ADC0808把0-5V的电压转为数字信号0-255。a/d转换器的功能是把模拟量变换成数字量。由于实现这种转换的工作原理和采用工艺技术不同,因此生产出种类繁多的a/d转换芯片。a/d转换器按分辨率分为4位。6位。8位。10位。14位。16位和bcd码的31/2位。51/2位等。按照转换速度可分为超高速(转换时间≤330ns),次超高速,高速,低速(转换时间>330μs)等。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μs左右,高速A/D转换器的时间在50ns左右,ADC808的转换时间在100μs左右。采样频率为8位的、以逐次逼近原理进行模—数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。,当数字量变化时,d/a转换器输出的模拟量按比例关系变化的程度。理想的d/a转换器是线性的,但是实际上是有误差的,模拟输出偏离理想输出的最大值称为线性误差。 8路8位A/D转换器,即分辨率8位。 具有转换起停控制端。 转换时间为100μs 单个+5V电源供电 模拟输入电压范围0~+5V,不需零点和满刻度校准。 工作温度范围为-40~+85摄氏度 低功耗,约15mW。 (1)内部结构: ADC0808是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近 ADC0808的内部结构和外部引脚分别如图11.19和图11.20所示。内部各部分的作用和工作原理在内部结构图中已一目了然,在此就不再赘述,下面仅对各引脚定义分述如下: 图11.19 ADC0808内部结构框图 (2)外部特性(引脚功能): ADC0808芯片有28条引脚,采用双列直插式封装,如图11.20所示。 图11.20 ADC0808外部引脚图下面说明各引脚功能。   IN0~IN7:8路模拟量输入端。   2-1~2-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路,如表11.3所示: 表11.3 地址信号与选中通道的关系 地 址 选中通道 ADDC ADDB ADDA 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7   ALE:地址锁存允许信号,输入,高电平有效。   START: A/D转换启动信号,输入,高电平有效。   EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平。   OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。   CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。   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信号,打开三态门,读取转换结果。 图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 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示 AT89C51外形及引脚排列 。 编辑本段主要特性:   ·与MCS-51 兼容   ·4K字节可编程FLASH存储器   ·寿命:1000写/擦循环   ·数据保留时间:10年   ·全静态工作:0Hz-24MHz   ·三级程序存储器锁定   ·128×8位内部RAM   ·32可编程I/O线   ·两个16位定时器/计数器   ·5个中断源   ·可编程串行通道   ·低功耗的闲置和掉电模式   ·片内振荡器和时钟电路 编辑本段特性概述:   AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。 编辑本段管脚说明:   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 /INT0(外部中断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地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。   /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。   /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。   XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。   XTAL2:来自反向振荡器的输出。   振荡器特性:   XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 编辑本段芯片擦除:   整个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   SM0、SM1 为串行口工作模式设置位,这样两位可以对应进行四种模式的设置。串行口工作模式设置。   SM0 SM1 模式 功能 波特率   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 中要求该位为0。   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=0,RB8 是已接收数据的停止位。   TI 发送中断标识位。在模式0,发送完第8 位数据时,由硬件置位。其它模式中则是在发送停止位之初,由硬件置位。TI 置位后,申请中断,CPU 响应中断后,发送下一帧数据。在任何模式下,TI 都必须由软件来清除,也就是说在数据写入到SBUF 后,硬件发送数据,中断响应(如中断打开),这时TI=1,表明发送已完成,TI 不会由硬件清除,所以这时必须用软件对其清零。   RI 接收中断标识位。在模式0,接收第8 位结束时,由硬件置位。其它模式中则是在接收停止位的半中间,由硬件置位。RI=1,申请中断,要求CPU 取走数据。但在模式1 中,SM2=1时,当未收到有效的停止位,则不会对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 芯片)的溢出速率。那么我们怎么去计算这两个模   式的波特率设置时相关的寄存器的值呢?可以用以下的公式去计算。   波特率=(2SMOD÷32)×定时器1 溢出速率   上式中如设置了PCON 寄存器中的SMOD 位为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个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 第三章结构和基本原理 本电路主要分为这几部下:传感器及外围元件、信号处理放大电路、模数转换电路、 单片机 传感器 模样数转换电路 键盘输入 显示电路 报警电路 控
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服