TLC2543模拟提示输入端口名称AIN0~AIN10怎么分配

TLC2543引脚图及引脚功能说明-电子器件知识电路图-电子产品世界
-&-&-&TLC2543引脚图及引脚功能说明
TLC2543引脚图及引脚功能说明
TLC2543有两种封装形式:DB、DW或N封装以及FN封装,这两种封装的引脚排列如图1,引脚说明见表1。图1TLC2543的封装引脚号名称I/O说明1~9,11,12AIN0~AIN10I模拟量输入端。11路输入信号由内部多路器选通。对于4.1MHz的I/OCLOCK,驱动源阻抗必须小于或等于50&O,而且用60pF电容来限制模拟输入电压的斜率15 I片选端。在端由高变低时,内部计数器复位。由低变高时,在设定时间内禁止DATAINPUT和I/O CLOCK17DATAINPUTI串行数据输入端。由4位的串行地址输入来选择模拟量输入通道16DATA OUTOA/D转换结果的三态串行输出端。为高时处于高阻抗状态,为低时处于激活状态19EOCO转换结束端。在最后的I/OCLOCK下降沿之后,EOC从高电平变为低电平并保持到转换完成和数据准备传输为止10GND地。GND是内部电路的地回路端。除另有说明外,所有电压测量都相对GND而言18I/O CLOCKI输入/输出时钟端。I/OCLOCK接收串行输入信号并完成以下四个功能:(1)在I/O CLOCK的前8个上升沿,8位输入数据存入输入数据寄存器。(2)在I/OCLOCK的第4个下降沿,被选通的模拟输入电压开始向电容器充电,直到I/OCLOCK的最后一个下降沿为止。(3)将前一次转换数据的其余11位输出到DATA OUT端,在I/OCLOCK的下降沿时数据开始变化。(4)I/OCLOCK的最后一个下降沿,将转换的控制信号传送到内部状态控制位14REF+I正基准电压端。基准电压的正端(通常为Vcc)被加到REF+,最大的输入电压范围由加于本端与REF-端的电压差决定13REF-I负基准电压端。基准电压的低端(通常为地)被加到REF-20Vcc电源
分享给小伙伴们:
阅读:13761
阅读:21226
阅读:17320
阅读:23252
阅读:17315
微信公众号二
微信公众号一当前位置: >>
毕业论文:基于单片机温度检测设计
1.1 测温系统设计目的和意义
温度作为一个物理参量?在我们日常生活中非常重要?并且在 现代化的工业生产中?电流、电压、温度、压力、流量、流速和开关量都是常用
的主要被控参数。例如?在冶金工业、化工生产、电力工程、造纸行业、机械制造和
食品加工等诸多领域中?人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温
度进行检测和控制。
良好的温度检测系统不仅是安全生产的前提?同时较高精度的温度检测还能间接
的实现降低能耗。例如?在一些精密机械加工行业和制药行业等?良好的温度检测就
可以提高产品的合格率?降低生产消耗。 1.2 发展现状 伴随着科技的发展温度传感器已经有许多的类型如?传感器AD590、传感器
DS1820、热敏电阻、热电偶等。但是由于本设计所要实现的是对工业温度
500℃-1500℃?检测进行检测?同时参考其所能实现的精度?该设计采用热电偶?
其具有以下诸多优点。
结构简单?其主体实际上是由两种不同性质的导体或半导体互相绝缘并将一端接
在一起而成的?具有较高的精确度?测量温度范围宽?厂用的热电偶?低温可测到-50℃?
高温可达到1600℃左右?配有特殊材料的热电偶?最低可测到-180℃?最高可达到
2800℃的温度?具有良好的敏感度?使用方便等。
常用热电偶可分为标准热电偶和非标准热电偶两大类。所调用标准热电偶是指国
家标准规定了其热电势与温度的关系、允许误差、并有统一的标准分度表的热电偶?
它有与其配套的显示仪表可供选用。非标准化热电偶在使用范围或数量级上均不及标
准化热电偶?一般也没有统一的分度表?主要用于某些特殊场合的测量。标准化热电
偶我国从日起?热电偶和热电阻全部按IEC国际标准生产?并指定S、
B、E、K、R、J、T七种标准化热电偶为我国统一设计型热电偶。该设计根据设计任
务要求出发?选取K型热电偶为本设计的测温原件。
热电偶的结构形式为了保证热电偶可靠、稳定地工作?对它的结构要求如下。
www.docin.com
组成热电偶的两个热电极的焊接必须牢固?两个热电极彼此之间应很好地绝缘?以防
短路?补偿导线与热电偶自由端的连接要方便可靠?保护套管应能保证热电极与有害
介质充分隔[1][2]。
本设计以热电偶为测温元件经过单片机进行相应的数据处理?能够比较精确的实
现温度的检测。同时也可以进行扩展?实现远距离的串行通信。因此能够较好的适应
对温度要求较高的工业应用场合?同时也可应用在楼宇等温度检测及显示。 1.3 本文主要工作 本文主要阐述了一款基于AT89S52单片机控制?以E型热电偶为温度传感器的温
度仪表的设计。在整个系统的设计过程中为了达到0.5级误差的设计要求?对热电偶
采取电桥补偿法进行冷端补偿?分段折线法进行线性拟合。由AT89S52、HD7279及
仪用仪表放大电路等构成整个系统的硬件组成。同时考虑网络控制在现代工业控制中
的作用?系统同时设计了RS-485通讯。
www.docin.com
第2章 系统的总体设计
按任务书的设计要求?可将整个系统分为四大部分?K型热电偶测温单元、单片
机及其外围硬件电路设计、数据处理及软件设计及系统电源设计。图2.1为整个系统
的结构框图。
框图中温度传感器的作用是对工业现场中的温度参数进行采集?信号处理作用是
对温度传感器的输出信号进行放大、滤波及数模转换?AT89S52单片机的作用是对系
统的相关数据进行处理?显示和键盘的显示数据及输入控制。时钟芯片的作用是为整
个系统体提供时间参数。
整个系统的工作过程中采用温度传感器K型热电偶对工业现场中的温度参数进行
采集?温度传感器的输出信号经过放大、滤波、A/D转换信号处理这一环节?被送入
AT89S52进行数据的相关处理。上位机通过RS-485通讯这一环节对下位机进行相应
的控制?如显示、读取相关时间参数。
系统结构框图
单片机 显示电路
时钟电路 www.docin.com
第3章 K型热电偶测温单元 K型热电偶的概述
K型热电偶作为一种温度传感器?K型热电偶通常和显示仪表?记录仪表和电子调节器配套使
用。K型热电偶可以直接测量各种生产中从0℃到1300℃范围的液体蒸汽和气体介质以及固体的
表面温度。K型热电偶通常由感温元件、安装固定装置和接线盒等主要部件组成。
3.1 热电偶工作原理 将两种不同材料的导体或半导体A和B焊接起来?构成一个闭合回路?如图3.1
所示。当导体A和B的两个执着点1和2之间存在温差时?两者之间便产生电动势?
因而在回路中形成一个大小的电流,这种现象称为热电效应。热电偶就是利用这一效应
来工作的。
实验证明?当电极材料选定后?热电偶的热电动势仅与两个接点的温度有关? 即
d EAB( t1 , t2 ) = SAB×d t
比例系数SAB 称为热电动势率?它是热电偶最重要的特征量。 3.2
K型热电偶的冷端补偿
一 热电偶测温时冷却补偿的必要性
理论上测量是以冷端在零度为标准测量的。所以?使用时必须遵守该条件。如果参考端
温度不是0℃?尽管被测温度不变?热电势(t,tn)将随参考端温度的变化而变化。,然而?
通常测量时仪表是处于室温之下的?由于冷端不为零度?造成热电势差减小?使测量不准?出现
错误。所做的补偿措施就是冷端温度补偿 . ??热电偶测量温度时要求其冷端?测量端为热端?通
过引线与测量电路连接的端称为冷端?的温度保持不变?其热电势大小才与测量温度呈一定的比
例关系。若测量时?冷端的?环境?温度变化?将影响严重测量的准确性。在冷端采取一定措施
热电偶原理图
2 www.docin.com
补偿由于冷端温度变化造成的影响称为热电偶的冷端补偿。 ?
?热点偶的分度表等都是以热电偶参考温度等于0℃为条件的。 因此?一般工程测量
中参考端处于室温或波动的温区?此时要测得真实温度就必须进行修正或采取补偿等
二 常用的补偿方法
在实际应用的过程中冷端补偿的方法有很多种,下面就常用的三种方案进行讨论。
1?热点偶补偿法
在热电偶回路中反向串联一支同型号的热电偶?称为补偿热电偶?并将补偿热电偶
的测量端置于恒定的温度T0处向热电势来补偿工作热电偶的参考端热电势?如图3.2
所示。这里T1等于Tn?T0等于0℃,则可得到完全补偿。当T0不等于0℃时?再利用
上述方法进行修正。此法适合用于多点测量?可应用一个补偿热电偶同多个工作热电
偶采取切换的方法相对接。
热电偶补偿法
把冰屑和清洁的水相混合?放在保温瓶中?并使水面略低于冰屑面?然后把热电
偶的参考端置于其中?在一个大气压的条件下?即可保持冰水保持在0℃?这时热电
偶输出的热电势与分度值一致。实验室中通常采用这种方法。今年来?已生产一种半
导体制冷器件?可恒温在0℃ 。
3?电桥补偿法
在热电偶的正端接入一个直流不平衡电桥?也称冷端补偿器?它的输出端与热电
偶串接?电桥的三个桥臂?Ra,Rb,Rc?由电阻温度系数很小的锰铜丝绕制?使其值不随
温度变化?另一桥臂(Rc)由温度系数较大的铜丝绕制?其阻值在20℃时为Rc等于1?,
此时电桥平衡?a,b两端没有电压输出。当电桥所处的环境温度变化时?电阻Rc的阻
值随之改变。于是电桥将有不平衡电压输出。Rc电阻经过适当的选择?可使电桥的输
出电压特性与配用的热电偶的热电特性相似?同时电位差的方向在超过20℃时与热电 Tn
www.docin.com
偶的热电势方向相同?若低于20℃时与热电偶的热电势方向相反?从而自动地得到补
偿。这种补偿的原理可用如下电势关系描述。
EAB(T,Tn)=EAB(T,T0)- EAB(Tn,T0)
若使电桥的不平衡输出电压随温度的变化值等于EAB(T0 ?Tn)?则显示仪表的示值为?
EAB(T,Tn)+ EAB(Tn,T0)= EAB(T,T0)
这就是被测温度的真实值。如图3.3所示 RdRa
Res Bridge
使用电桥补偿法的注意事项
在使用这种补偿器时?由于所设计的电桥是在20℃输出为零?故必须把显示仪表
的起始点调整到20℃所对应的位置。此外?必须注意?各种冷端温度补偿器只能与相
应型号的热点偶及在所规定的温度范围内配套使用?因为热电偶的输出特性是非线性
的?只在某一温度区内能实现近似的线性。冷端温度补偿器与热电偶连接时?极性切
勿接反?否则会增大温差。 3.3 K型热电偶的放大电路 1?放大电路的作用
热电偶的放大电路主要是将热电偶测量温度所得的电压信号进行放大?以达到下
一步A/D所需要的电压范围?因此需要放大电路有较高的放大系数、稳定性等。一些
简单的应用电路如图。 图
电桥补偿法 www.docin.com
同向比例放大电路 这是一种常见的放大电路?根据本设计中使用环境的需要?本设计采用仪用仪表
放大电路如图3.6所示。
根据上述方案?放大电路的原理图如图3.6所示。U8A?U8B?U10A及相应电阻
构成前置仪用仪表放大器。本级分配的差模电压增益为?其中U8A?U8B构成的差放
分配13?U10A构成的差放分配2?为保证仪用仪表放大器有较好的抗共模干扰能力? 48K
仪用仪表放大器 www.docin.com
应选用对称的电阻参数?既R20=R23?R17/R16=R29/R26。根据“两虚”的概念和增益的
分配有。 13
?3.6? 由于对电路的功耗和分布参数没有特殊?所以可选取参考的要求电阻R22=2K?,
R16=16K?。由上述关系算出?R20=R23=12K??R26=R16=10K???R17=R29=10K??。此时
前置仪用仪表放大器差模电压增益满足设计的要求。为避免输入端开路时放大器出现
饱和状态?在两个输入端到地之间分别串界两个电阻R18?R25。为满足差模输入阻抗
大于107的要求?取R18=R25=20M??。第二级及电阻、电容组成带通滤波器?由于总增益要求?前置级已分配?所以本级通带内的差模电压增益应为?
取R28=48K???则R27=48K??。
此时?总的差模电压增益为。
AVD= AVD1× AVD2×AVD3=23
C1、R8构成高通滤波器?设计要求为fL=0.05HZ。取R8=1M??,则根据fL=1/(2pi×
C1×R8)可算出C1=3.18μF,取C1=3.3μF标称值的电容器?则可满足要求。
同理C2,R10构成低通器?要求上限频率为100HZ.则根据fH=1/(2pi×C2×R10)和R10=48K??,可算出C2=0.03316μF,取C2=0.033μF标称值?则可满足要求。 3.4 K型热电偶的非线性校正 由于热电偶的温度特性有较严重的非线性特性?如不加校正是无法达到0.5级的
显示精度?所以非线性校正环节是直接影响仪表显示准确度的关键环节。
方案一?以函数发生电路对热电偶的非线性校正[1][3]。首先?观察E型热电偶的温
度?毫伏特特性?如图3.8所示。为补偿其非线性?要求在放大器中串入线性化环节?
其特性如图3.9所示。加入线性化组件后?两曲线叠加?热电偶温度t和输出电压之间
就有线性关系以下分函数发生器实现图3.8曲线将曲线分成2段?OA段曲线和AB段
直线?先设计出产生曲线OA的函数发生器?再设计出产生直线AB的函数发生器?
OA与AB相加?即为整条曲线。图3.10为三段线段相加形成一条线性化电路总特性曲www.docin.com
K型热电偶的温度?毫伏特特性
线性化环节特性图
方案二?用改变参考电压来校正热电偶非线性[9]。热电偶非线性校正的原理如图
3.7所示。热电偶产生的热电势经参比端补偿和调起点处理后?经过放大倍数?可调?
的放大器成为输送至7107的VIN+端的信号V0。约为2.5V的基准电压E经两个阻值相
等的电阻R0分压后加至7107的VREFHI端。7107的COM端、VREFLO端相连并接地。7107的VIN-端可接COM端?仪表起点温度为0℃??或接一迁移电压?仪表起点温度不为0℃?。这里?热电偶的非线性校正?只是增加一个阻值适当的电阻R1?使加到7107的VREFHI端上的电压Vr随测量信号而变。这样就可以使仪表在测量范围两端?即起点温度tmin和终点温度tmax?及中间任选温度ta点上无显示误差。ta一般可选为0.5?tmaxtmin??但对K型等热电偶可用试凑ta的方法?使整个测量范围内正负误差绝对值
相等且为最小。设tmin?tmax?ta和热电偶分度号为已知?由分度表可查出对应的电势
?参考为0℃?为emin?emax和ea?放大器的输出电压为
(mineeKVO??
VOmin?0?用迁移VIN的方法将7107的显示温度调到tmin值上。当测量温度t介于
tmin和tmax之间时?7107的参考电压Vr可用下式表示 V
Vt www.docin.com
()1(5.0mineeKSESVr????
5.0/(011RRRS??
由公式?3.10?可知?当t?ta和t?tmax时的Vra和Vrmax分别可用下面式表示。
()1(5.0mineeaKSESVra????
?3.12?)()1(5.0minmaxmaxeeKSESVr????
众所周知?7107的显示值td与V0?Vr和tmin之间成如下的关系。
?3.14? 3.5 本章小结
本章通过对K型热电偶采用电桥法对其进行冷端补偿?采用仪用仪表对其进行放
大、滤波和线性化处理?从而使其达到了本设计的要求。
非线性校正原理图 VIN
R0 www.docin.com
第4章 温度仪表的硬件设计
4.1 单片机AT89S51简介
本设计采用的CPU为AT89S51单片机如图4.1所示?AT89S51是一个低功耗?高性能
CMOS 8位单片机?片内含4k Bytes ISP(In-system programmable)的可反复擦写1000
次的Flash只读程序存储器?器件采用ATMEL公司的高密度、非易失性存储技术制造?
兼容标准MCS-51指令系统及80C51引脚结构?芯片内集成了通用8位中央处理器和ISP
Flash存储单元?功能强大的微型计算机的AT89S51
可为许多嵌入式控制应用系统提供
高性价比的解决方案。
AT89S51是一个低功耗?高性能CMOS 8位单片机?片内含4k Bytes ISP(In-system
programmable)的可反复擦写1000次的Flash只读程序存储器?器件采用ATMEL公司的高
密度、非易失性存储技术制造?兼容标准MCS-51指令系统及80C51引脚结构?芯片内集
成了通用8位中央处理器和ISP Flash存储单元?功能强大的微型计算机的AT89S51可为
许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51有40个引脚?4k Bytes Flash片内程序存储器?128 bytes的随机存取数据
存储器?RAM??32个外部双向输入/输出?I/O?口?5个中断优先级2层中断嵌套中断?
2个16位可编程定时计数器,2个全双工串行通信口?看门狗?WDT?电路?片内时钟振
荡器。 www.docin.com
12位A/D转换器 由放大器输出的信号是不能被单片机直接进行处理的?需要A/D转换器对其进行
转换。本设计采用的是12位A/D转换器TLC2543。
具有11个输入端的12位模数转换器TLC2543是美国德州仪器公司于近几年推出
的一种性能价格比较优的12位A/ D 转换芯片?具有多种封装形式?并具有民用级工
业级、军用级产品。在产品型号、规格、封装形式、适用范围等方面?已形成一个系
列。一九九八年以来开始在我国推广使用。就12位A/ D转换器来说?TCL2543具有
转快、稳定性好、与价格低等优点?相信在我国单片机应用领域将会很快推广。鉴于
51系列单片机是我国单片机应用领域的主流型号?一批与之兼容的单片机(如AT89
C51、GMS97C51等) 于近几年相继推广使用?51系列术语含义可以扩大,我们可以把
与51系列兼容的单片机称为广义51系列或51系列兼容机?可以预计?51系列单片
机的开发应用?在我国的单片机应用领域仍将是主地位?因此?探讨TLC2543与51
系列单片机接口具有实际意义。但是?TLC2543与带有行外设接口(SPI ,Serial
Peripheral Interface) 的微处理器易于接口?而51系列单片机不具有SPI ,因此必须用
软件合成SPI
1?TLC2543的引脚及功能
TLC2543 是12位开关电容逐次逼近模数转换器,有多封装种形式?其中DB、DW
或N 封装的管脚图见图4.2。TLC2543有20根引脚?其它封装形式引脚数及引脚功
能相同。引脚的功能简要分类说明如下。
(1) 控制引脚
CS,15脚?片选端?由高到低有效?由外部输入。
EOC,19脚?转换结束端?向外部输出。
I/O CLOCK,18 脚?控制输入输出的时钟?由外部输入。
(2) 电源引脚
Vcc ?20 脚?正电源端?一般接+5V 。
GND ?10 脚?地。
REF+?14脚?正基准电压端? 一般接+5V 。
REF - ?13 脚?负基准电压端?一般接地。
(3) 控制字输入引脚
DATA T INPUT?17脚?控制字输入端,选择通道及输出数据格式的控制字由此输入。
(4) 模拟输入引脚 1
TLC2543引脚图
www.docin.com
AIN0?AIN10?1?9 脚、11?12脚?11路模拟输入端?输入电压范围?0. 3V?Vcc+
(5) 转换数据输出引脚
DATA OUT?16脚?A/ D 转换结果输出的3态串行输出端。
2?TLC2543的内部寄存器
从编程角度看?TLC2543内部寄存器有输入数据寄存器与输出数据寄存器。输入
数据寄存器存放从DATA IN PUT端移入的控制字。输出数据寄存器存放转换好的数
据? 以供从DATA OUT端移出。
3?控制字的格式
控制字为从DATA INPUT端串行输入TLC2543 芯片内部的8位数据?它告诉
TLC2543 要转换的模拟量通道、转换后的输出数据长度、输出数据的格式。其中高4
位( D7?D4) 决定通道号?对于0通道至10通道?该4位分别为、?、1010 ?
该4位为其它数字时的功能?用于检测校正?本文不作具体介绍。低4位决定输出数
据长度及格式?其中D3、D2决定输出数据长度?TLC2543的输出数据长度8位、12 位、
16 位?但由于TLC2543为12位A/ D转换芯片?经过分析可以看出?8位、16位输
出对TLC2543的应用意义不大?宜定在12位输出?D3、D2两位为00即可。D1决定
输出数据是高位先送出?还是低位先送出?若为高位先送出?该位为0?反之为1。
D0决定输出数据是单极性(二进制) 还是双极性(2 的补码)?若为单极性?该位为0?
举例说明?设采集第6通道、输出数据为12位、高位先送出、输出数据的格式为
二进制?则控制字为:?用十六进制表示即为60H。
4?转换过程
上电后,片选CS必须从高到低?才能开始一次工作周期?此时EOC为高?输入数
据寄存器被置为0?输出数据寄存器的内容是随机的。
开始时?片选CS为高?I/OCLOCK、DATA INPUT 被禁止?DATA OUT呈高阻状
态?EOC为高。使CS变低?I/O CLOCK、DATA IN PUT使能?DATA OUT 脱离高阻
状态。12个时钟信号从I/O CLOCK端依次加入?随着时钟信号的加入?控制字从DATA
INPUT一位一位地在时钟信号的上升沿时被送入TLC2543(高位先送入), 同时上一周
期转换的A/D数据,即输出数据寄存器中的数据从DATA OUT一位一位地移出。
TLC2543收到第4个时钟信号后?通道号也已收到?因此?此时TLC2543开始对选定
通道的模拟量进行采样?并保持到第12个时钟的下降沿。在第12个时钟下降沿?EOC
变低,开始对本次采样的模拟量进行A/D转换,转换时间约需10μs,转换完成EOC变高,
转换的数据在输出数据寄存器中?待下一个工作周期输出。此后?可以进行新的工作www.docin.com
5?TLC2543与单片机的接口
本设计中TLC2543与单片机的接口如图4.3所示?图中TLC2543与单片机之间
只用4 根线?转换结束EOF未接入单片机?这是基于二个工作周期之间的单片机指
令一般大于10μs?转换已经完成,不必判断EOF?也可以通过试验或计算指令执行时
间确定转换是否结束?这样可以省去一根接线。
4.3 显示电路 本设计采用HD7279A?见图4.4?对键盘输入和LED显示进行控制?HD7279A是
一片具有串行接口的可同时驱动8位共阴式数码管?或64只独立LED的智能显示驱
动芯片该芯片同时还可连接多达64键的键盘矩阵单片即可完成LED显示键盘接口的全
一 ?HD7279A的简介。
HD7279A内部含有译码器可直接接受BCD码或16
进制码并同时具有2种译码方式。
此外还具有多种控制指令如消隐闪烁、左移、右移、段
HD7279A具有片选信号可方便地实现多于8位的
显示或多于64键的键盘接口。
二???串行接口?无需外围元件可直接驱动LED?
各位独立控制译码/不译码及消隐和闪烁属性??循环?
左移/?循环?右移指令?具有段寻址指令?方便控制独立的LED?64键键盘控制
器?内含去抖动电路?有DIP和SOIC两种封装形式供选择?
HD7279A应连接共阴极式数码管。无须使用的键盘和数码管可以不连接,省去数
码管或对数码管设置消隐属性均不会影响键盘的使用。
HD7279A的典型应用电路?如图4.5所示?及硬件使用。HD7279A以串行方式
CPU通信,这里使用了单片机的P1口的4根口线: P1.2、P1. 3、P1.4和P1. 5。
HD7279A需要外接RC振荡电路供系统工作,其典型值为R =1.5kΩ , C=15pF ,当单
片机的主频为6MHz时,可以稳定工作。HD7279A的引脚RESET在一般情况下,可以直
HD7279的引脚图 VDD
9www.docin.com
接与正电源连接,若对可靠性要求较高,可以外接复位电路,或直接由CPU控制。
HD7279A上电后,所有的显示为空,所有的显示位的属性为“显示”及“不闪烁”。当
有键按下时,引脚KEY变为低电平,此时如果收到“读键盘”指令,HD7279A将输出
所按下键的代码。键盘代码的定义见表4.1,表4.1中代码以十进制表示。如果有2个
键同时按下,HD7279A只能给出其中一个键的代码,因此,HD7279A 不适合用在需要2
个或2个以上键同时按下的场合。另外,HD7279A的空脚(NC)必须悬空,即不得有任何
外部连接。 4.4 时钟电路 Dallas(如图4.6所示)公司生产的串行时钟芯片DS1302具有实时时钟和静态
RAM?采用串行通信?可以方便地与单片机接口。DS1302是美国Dallas 公司推出的
一种高性能、低功耗的实时时钟芯片?附带31字节静态RAM?采用SPI三线接口与
同步通信?并可采用突发方式一次传送多个字节时钟信号
或RAM数据。实时时钟可提供秒、分、时、日、星期、
月和年?一个月小于31日时可自动调整?包括闰年?有
效至2100年。可采用12h和24h方式计时?采用双电源
?主电源和备用电源?供电?可设置备用电源充电方式?同时提供了对后备电源进行
涓涓电流充电的方式。芯片为8引脚DIP封装[15]。
DS1302时钟芯片的引脚及其功能X1、X2?连接到32.768KHZ晶振?为芯片提供
时钟脉冲?GND?电源地?RST?复位引脚?用于对芯片的操作?SCLK?串行时钟输
HD7279的典型应用电路图
DS1302引脚图
www.docin.com
表4.1 HD7279A引脚及功能 引脚 名称 说明
1?2 VDD 正电源 3
?5?26 NC 无连接?须悬空 4 VSS 接地 6 CS
片选输入端?为低电平时?向芯片发送指令及读键盘数
同步时钟输入端?向芯片发送指令及读取键盘数上升沿
表示数据有效 8
DATA 串行数据输入/输出 9 KEY
按键有效输出端?平时为高电平?当检测到有按键按下
时?此引脚变为低电平 10~16
SG~SA 段g~段a驱动输出
17 DP 小数点驱动输出
18~25 DIG0~DIG7 字位0~字位7驱动输出
27 RC RC振荡器连接端
28 RESET 复位端
入?VCC1、VCC2?主电源与备用电源引脚。
1?DS1302时钟芯片的控制字及其寄存器
DS1302的控制字如表4.2所示。控制字的最高有效为?位7?必须是逻辑1?如
果它为0?则不能把数据写入到DS1302中?位6如果为0?则表示存取日历时钟数据?
为1则表示存取RAM数据?位5~位1指示操作单元的地址?最低有效位?位0?为0?
表示写操作?为1表示进行读操作?控制字总是从最低位开始输出。
表4.2 DS1302的控制字 7
6 5 4 3 2 1 0
1 RAM/CLK A4 A3 A2 A1 A0 RAM/K 在DS1302芯片中?通过把RST输入驱动置高电平来启动所有的数据传送。RSTwww.docin.com
输入有两种功能?首先?RST接通控制逻辑?允许地址/命令序列送入移位寄存器?其
次?RST提供了终止单字节或多字节的传送手段。当RST为高电平时?所有的数据传
送被初始化?允许对DS1302进行操作。如果在传送的过程中置RST为低电平?则会
终止此次数据传送?并且I/O引脚变为高阻态。
在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302?数据
输入从低位即位0开始。同样?在紧跟8位的控制指令字后的下一个SCLK脉冲的下
降沿读出DS1302的数据?读出数据时从低位0位至高位7。
DS1302时钟芯片共有12个寄存器?其中有7个寄存器与日历、时钟相关?存放
的数据位为BCD码形式。此外?DS1302还有年份寄存器、控制寄存器、充电寄存器?
时钟突发寄存器及与RAM相关的寄存器。时钟突发寄存器可一次性顺序读写除充电
寄存器外所有的寄存器的内容。DS1302与RAM相关的寄存器分为两类?一类是RAM
单元?共31个?每个单元的组态为一个8位的字节?其命令控制字为C0H~FDH?其
中奇数为读操作?偶数为写操作?另一类为突发方式下的RAM寄存器?此方式下可
一次性的读写所有的RAM31个字节?命令控制字为FEH?写??FFH?读?。
2?DS1302时钟芯片典型应用电路
如图4.7所示DS1302时钟芯片与单片机相连仅需要3条线?即SCLK、I/O、RST。
VCC2在单电源与电池供电的系统中提供低电源并提供低功率的电池备份。VCC2在双电
源系统中提供主电源?在这种运用方式下VCC1连接到备份电源?以便在没有主电源的
情况下能保存时间信息及数据。DS1302由两者中较大者供电。当VCC2 VCC1+0.2V
时,VCC2给DS1302供电。当VCC2小于VCC1时?DS1302由VCC1供电。 VCC2
4.5 通讯电路 在现代工业自动化系统中?经常用到单片机及微机。由于单片机的机构简单?设
计应用方便?抗干扰及在各种环境下适应能力强。因而被称为工业自动化系统中的前
端处理器?被称之为下位机??常常被设置到现场采集各种数据及信息?同时也可进
行简单的数据处理后送到微机?称之为上位机?。而且单片机?下位机?同时也是一
种控制器?接受微机?上位机?下达的命令?对现场进行相关的自动控制。
单片机从一个I/O引脚逐位传输一系列二进制编码数据?就是串行通信。所谓的图
DS1302时钟芯片典型应用电路
www.docin.com
“串行通信”是指外设和计算机间使用一根信号线?另外需要地线?可能还需要控制
线??数据在一根数据信号线上一位一位地进行传送?每一位数据都占据一个固定的
时间长度。这种通信方式使用的数据线少?在远距离通信中可以节省成本。当然?其
传输的速度比并行传输的速度慢。串行通信的优点在于远程通信和上下位机通信?缺
点在于通信的速度较慢。
51系列单片机是通过自身的串口完成通信的。该串口是一个可编程的全双工串行
通信接口。它可用作异步通信方式?UART??与串行通信的外部设备相连接。单片
机的串行通信需要以下3个方面的支持。
(1) 硬件构成?单片机的串口结构和通信接口连接;
(2) 通信协议?RS-232通信协议;
(3) 收发程序?单片机的数据传输程序;
串行通信接口标准经过使用和发展?目前已经有比较成熟的几种。这几种都是在
RS-232标准的基础上经过发展而形成的。RS-232标准是美国EIA?电子工业联合会?
与BELL等公司一起开发的1969年公布的通信协议。他适用于数据传输速率在0~20
000bit/s范围内的通信。这个标准对串行通信接口有关的问题?如信号线的功能、电气
特性等都做了明确的规定。由于通信设备厂商都生产与RS-232C制式兼容的通信设备?
因此?它作为一种标准?目前已经在通信接口中获得广泛的应用。
RS-232C标准的全称是EIA-RS-232C标准?它规定了串行数据传递的连接电缆、
机械特性、电气特性、信号功能及传递过程的标准。目前在IBM PC机上的COM1 COM2
接口就是RS-232C接口。
1?RS-232C电气特性
RS-232C标准对电器特性、逻辑电平和各种信号线功能都做了规定。对于数据?
逻辑“0”的电平低于-3V?逻辑“1”的电平高于+3V?对控制信号?接通状态?ON?
既信号有效的电平电平高于+3V?断开状态?OFF?即信号无效的电平低于-3V。也就
是当传输电平的绝对值大于3V时?电路可以检查出来?介于-3V~+3V之间的电压无
意义?低于-15V或高于+15V的电压也认为无意义?因此?实际工作时?应保证电平
在±?3?15?V之间。
EIA-RS-232C使用正负电压来表示逻辑状态的?与TTL以高低电平表示逻辑状态
的规定不同。因此,为了能够同计算机接口或同终端的TTL器件连接?必须在
EIA―RS―232C与TTL之间进行电平和逻辑关系的转换。实现这种转换的方法可用
分立元件?也可用集成电路芯片。目前较为广泛集成电路转换芯片,如MC1488、
SN75150芯片可完成TTL电平到EIA电平的转换?而MC1489、SN75154可实现EIAwww.docin.com
电平到TTL电平的转换。MAX232?如图4.8所示?芯片
可以完成两者的双向转换。
与RS-232C相匹配的连接器有DB-25、DB-15和
?其引脚的定义也各不相同。
2?RS-232标准通讯与RS-485标准通讯比较
计算机通信有串行与并行之分。串行又有同步和异步之分。串口通信一般采用
RS-232 标准或RS-485?如图4.9所示?标准两种。而单片机与微机间的通信以RS-232
标准最为常见?且微机对外的两个串口COM1、COM2均是专门为RS-232标准通信
而设计的。虽然RS-232的通信方式比较方便?但是仅能实现短距离通信?仅为10余
米长?。若要实现远距离通信?还有赖于调制解调器或其他的方式?同时RS-232标准
通信口对地是共模信号传输方式?对各种电器的干扰大多也是对地共模方式?虽然传
输电平提高到-12V~+12V?但是抗干扰能力仍不理想。
采用RS-485标准进行通信有以下优点?它可以实现多
点通信方式?而通信距离比RS-232 标准要远得多?可以作
到数百米甚至千米以上?从而可以建立一个小范围的局域
网。RS-485标准采用差模信号输入方式?与地电平关系不
大。它的抗干扰能力比RS-232 标准强得多。即使信号电压
较小的情况下也能获得稳定的传输。若想完成单片机与微机的远程通信?应采用串口
通信方式应为RS-485标准通信方式。
3?单片机与微机电路连接及设计
由于单片机采用RS-485标准通信口?而微机采用的是RS-232 标准?而且单片机
的I/O端口输出的是TTL电平?+5V为“1”?-5V为“0”?与RS-485标准的电平一
致?而与RS-232 标准不符合?工作方式及控制机理也有差别。若想利用微机现成的
COM1、COM2串口来实现RS-485标准通信?就需要有电平的转换电路。对其硬件、
软件进行相应的设计。单片机?下位机?与微机?上位机?的RS-485标准远距离通信
原理如图4.10所示。 单
RS-485传输
单片机?下位机?与微机?上位机?的RS-485标准远距离通信工作原理为?单片1
MAX232的引脚图
单片机与微机的RS-485标准远距离通信原理图
MAX491引脚图 www.docin.com
机将收集到的数据以TTL电平的数据送到RS-485?Ⅰ?中?而RS-485?Ⅰ?将TTL
电平的数据转换成差模信号送出。经RS-485传输线送到RS-485?Ⅱ?中?而RS―485
?Ⅱ?将差模信号转换为共模信号输出并通过电平转换到微机的串口COM中?在微
机显示器中显示出数据来。同理?微机发出指令并通过串口COM输出一共模信号指
令?经电平转换后到RS-485?Ⅱ?中?RS-485?Ⅱ?将输入的共模信号转换成TTL
电平的差模信号输出?并经过RS-485传输线传送到RS-485?Ⅰ??经RS-485?Ⅰ?
将TTL差模信号转换成TTL电平数据信号送到单片机中?由单片机去完成各种控制
指令?这样就完成了单片机与微机串口的远程通信任务。 4.6 系统电源设计 在电子电路及设备中?一般都需要稳定的直流电压供电。本设计中需要±9V、+5V
的稳压直流电源 ?单相交流电经过电源变压器、整流电路、滤波电路和稳压电路就可
以转换为一定幅值的直流电。电源的整体框图如图4.11所示[16][17]。
1?整流电路的设计
本设计采用单相桥式整流电路构成整流电路?如图4.12所示?它由四只二极管组
成?在桥式整流电路中?每只二极管只在变压器副边电压的半个周期通过电流?所以
每只二极管的平均电流只有电阻上的一半?即
与半波整流电路中二极管的平均电流相同。二极管承受的最大反向电压为
(4.2) 考虑到电网电压的波动范围一般为%10??在实际选择二极管时?应至少有10%
余量?选择最大的整流电流IF和最高的反向电压UR分别为
(4.4 ) 电源
直流稳压电源方框图
www.docin.com
D331000μF
由三端稳压电源所要求的最小输入电压可知?U2为12V?电流为1A即可。所以
本设计所选择的二极管的最大反向电压为
0..12?????UURV
最大的整流电流为
所以本设计选择四只二极管的型号为4007?它的最大整流电流为1A?最大反向
电压为50V。
2?变压器的设计 变压器的变比K
(4.7) 因此变压器选用变比为11的副边双绕线的变压器
+5V直流电源原理图
±9直流电源原理图
www.docin.com
3?滤波电路的设计 整流电路输出的电压是单向脉动的电压?其中含有较大的脉动分量?因此必须在
整流电路后加接滤波电路?使脉动电压变成平滑的电压?接近于理想的直流电压?滤
波电路采用并联电容C
可选用电容器为1000μF?耐压为50V的电容。
?稳压器的选择 本设计所需要的是输出为正负的双向的直流电源?因此可利用CW7800系列的稳
压器?该电路能同时输出固定的正负电压?要得到±9V的电压?可选用CW7809的集
成稳压器?按电路图4.11所示的接法?即可得到±9V的精密电源。
5?防震电容的选择 使用集成稳压器是为了提高电源稳压性能和减少输出纹波?可以在集成稳压器后
面加入防震电容?一般电容取值较小?C33 ?C36为0.01μF即可。同时在集成稳压器
前端并联电容C32和C35?它可以用于抵消输入线性较长时的电感效应?以防止电路产
生自激振荡?其容量较小?可以取0.1μF。
通过上述设计即可得到的±9V精密电源,采用同样的方法即可得到+5V精密电源。 4.7 本章小结
本章主要介绍了整个系统的硬件设计其中包括?12位A/D转换芯片TLC2543其
功能是将热电偶传感器的模拟量转换为相应的数字量?AT89S52其功能是处理采集的
温度值并进行相应的处理如显示或传递等?DS1302为系统提供必要的时间值?同时采
用CW系列芯片为整个系统设计了±9V?+5V等稳压源。
www.docin.com
第5章 数据处理及软件设计
5.1 E型热电偶的分段折线化推导 本设计采用的是的分段线性化的方法对E型热电偶进行线性化拟合?其具体的实
现过程是?将E型热电偶的分度表如表5.1所示?使用MATLAB的“plot(x,y)”命令
绘制出?与之相对应的二维曲线图?如图5.1所示。在温度―毫伏曲线图上?截取斜
率近似相等的线段?如图5.2所示。则根据下列公式?
将?0?0???x1,y1?的坐标值带入式?5.1?当中?进行联立 1
111?bxkY??
便可求的斜率k1和常量b1值。依次类推在温度―毫伏曲线上?截取(n-1)条线相应
的就可以得到(n-1)组斜率k1和常量b1值?如表5.2和表5.3所示。
表5.1 E型热电偶分度表
0 10 20 30 40 50 60 70 80 90
0 0.000 0.591 1.192 1.801 2.419 3.047 3.683 4.329 4.983 5.646
100 6.317 6.996 7.683 8.377 9.078 9.787 10.501 11.222 11.949 12.681
200 13.419 14.161 14.909 15.661 16.417 17.178 17.942 18.710 19.481 20.256
300 21.033 21.814 22.597 23.383 24.171 24.961 25.754 26.549 27.345 28.143
400 28.943 29.744 30.546 31.350 32.155 32.960 33.767 34.574 35.382 36.190
500 36.999 37.808 38.617 39.426 40.236 41.045 41.853 42.662 43.470 44.278
600 45.085 45.891 46.697 47.502 48.306 49.109 49.911 50.713 51.513 52.312
700 53.110 53.907 54.703 55.498 56.291 57.083 57.873 58.663 59.451 60.237
800 61.022 61.806 62.588 63.368 64.147 64.924 65.700 66.473 67.245 68.015
900 68.783 69.549 70.313 71.075 71.835 72.593 73.350 74.104 74.857 75.608
―― ―― ―― ―― ―― ―― ―― ―― ―― www.docin.com
MATLAB绘制的E型热电偶温度?毫伏特特性曲线
E型热电偶温度曲线线性化处理(a)
www.docin.com
t/℃mV0.6603
t/℃mV?53.0?
E型热电偶温度曲线线性化处理(b)
E型热电偶温度曲线线性化处理(c)
www.docin.com
表5.2 E型热电偶温度曲线数据处理(a) 截取数据?
x,y? 求得的?k,b?值 截取数据?x,y? 求得的?k,b?值
?0 ? ―― (263.3? (0.077996, -2.33047)
?11.3? ?0.05938,0? (278.9? (0.07601, -1.80732)
?24.8? (0.70) (293.3? (0.07488, -1.49115)
(0.078) (312.5? (0.07999, -2.98998)
?53.0? (0.06328, -0.12114) (339.1? (0.07748, -2.20710)
(0.06472, -0.19840) (357.4? (0.045)
(0.06433, -0.17294) (378.2? (0.08044, -3.22786)
(0.06532, -0.25225) (388.7? (0.08091, -3.40623)
?109.1? (0.06823, -0.51594) (403.5? (0.07895, -2.64375)
?120.1? (0.06926, -0.62928) (418.2? (0.08070, -3.35171)
?131.5? (0.06863, -0.55235) (431.8? (0.08173, -3.78245)
?143.0? (0.06900, -0.60182) (466.0? (0.08022, -3.12898)
?155.852?10.1906?
(0.07200, -1.03091) (485.4? (0.07956, -2.82032)
?168.402?1.1042? (0.07279, -1.15430)
(493.1? (0.08050, -3.27677)
?180.539?11.9722? (0.07152, -0.93953) (509.8? (0.08162, -3.83344)
?196.936?13.1790? (0.07360, -1.31514) (525.3? (0.08074, -3.38390)
?208.408?14.0275?
(0.07397, -1.38786) (540.1? (0.08325, -4.70242)
?234.589?16.0023? (0.07543, -1.69216) (553.8? (0.07846, -2.11598)
?249.299?17.1140? (0.07557, -1.72632) (577.1? (0.00)
www.docin.com
表5.3 E型热电偶温度曲线数据处理(b) 截取数据?
x,y? 求得的?k,b?值 截取数据?x,y? 求得的?k,b?值
(598.5) (0.009) ?886.9? (0.07645, -0.03670)
(628.6) (0.045) ?894.8? (0.073)
(651.4) (0.050) ?911.9? (0.07773, -1.19075)
(669.4) (0.033) ?933.9? (0.083)
(682.9) (0.027) ?943.3? (0.085)
(704.0) (0.008) ?952.0? (0.07684, -0.40314)
(726.4) (0.030) ?964.1? (0.054)
(748.1) (0.045) ?984.3? (0.041)
(761.9) (0.053) ?990.7? (0.084)
(785.9) (0.000) ?.358? (0.095)
(798.5) (0.043) ―― ――
(812.4) (0.016) ―― ――
(831.1) (0.06) ―― ――
(848.3) (0.042) ―― ――
(864.2) (0.079) ―― ――
全部的数据处理利用MATLAB 的“X=A\B”函数进行。下面给出进行数据处理的
例子, www.docin.com
&& format long
&& A=[0 1;11.1199 1]
&& B=[0;0.6603]
&& A=[11..9140 1]
&& B=[0.8]
www.docin.com
经过上述的分段折线化方法对E型热电偶非线性校正后?可以得到较高的精确
度?同时相较于方案二由于是对温度―毫伏曲线进行全部的校正?因此其适用于整个
量程?且不需要很多的数学知识便可解决。 5.2 系统软件设计 1?主程序流程图
整个系统的软件由A/D采集、DS1302时钟程序、HD7279显示程序等几部分组成。
其整个系统的流程图如图5.5所示。
2?键盘、显示子程序流程图 图
主程序流程图 复
键值=59、60
键值=61 www.docin.com
图5.6为HD7279工作流程图。
5.3 本章小结
本章主要介绍了E型热电偶的线性化处理方法―分段折线化的处理方法?采
用MATLAB对E型热电偶的分度表进行曲线拟合?而后在曲线上分段截取线段求取
k,b值。在软件设计中作出了整个系统的软件流程图?同时给出了TLC2543的软件实
HD7279工作流程图 开
束 www.docin.com
该设计针对现代工业现场中经常遇到的温度测量进行设计?采用较为新精准的E
型热电偶为测温元件?可以实现较宽范围的温度的测量。以AT89S52单片机作为CPU?
可以降低整个系统的成本?由于其应用的广泛性?有利于系统的开发和后期的运行维
采用HD7279A作为系统的显示和键盘输入控制芯片?该芯片的功能强大?由于
其只占用了单片机的4个引脚?有利于系统以后的扩展。整个系统附带了时钟芯片
DS1302?可以实现与时间有关的动态显示与温度的定时控制?减轻了CPU的负担?
提高了整个系统的控制精度。
同时由于整个设计过程中?只是进行理论设计?有很多在实际应用中可能要遇到
的问题在这里没有涉及?例如在进行RS-485通信设计过程中通信协议的设计。虽然在
编译器上通过但是在实际运行中可能由于现场的干扰及其它一些不确定的因素而导致
无法正常运行。
此外由于原件在制作过程中有一定的误差存在?从而导致温度拟合曲线在实际应
用中并不是从“零点”开始?因此在实际应用中还要考虑这一问题的存在。
www.docin.com
[1]王魁汉.温度测量技术[M].沈阳:东北大学出版社, 1991? 86.
[2]刘惠彬.
测试技术[M].北京:北京航空航天大学出版社, .
[3]徐同举.新型传感器技术[M].北京:机械工业出版社?.
[4]常玉燕?吕光译.日本电子电路精选[M].上海:电子工业出版社?.
[5]潘天明.半导体光电器件及其应用[M].武汉:冶金工业工业出版社?1989.
[6]陈连春.光电元件应用要决[C].香港:华美科技出版社.1998.
[7]许书务.光感测器界面专题制作[J].台湾?电子科技出版社.
[8][英]W?A?Gambing,张志鹏.光纤传感器原理[M].北京:中国计量出版社. 1991.
[9]陈行禄.
传感器原理[M].北京:航空工业出版社?.
[10]胡长阳.通信电路分析与设计[M].北京:高等教育出版社?.
[11]吕广平,徐笑貌.集成电路应用500例[M].北京:人民邮电出版社?.
[12][美]戴维德?斯图特.运算放大器电路设计手册[J].北京:人民邮电出版社
[13]徐爱卿.单片微型计算机及其应用[M].北京:北京航空学院出版社?1986.
[14]Intel,Microcontroller Handbook,.
[15]Intel ,
Soft ware Handbook,.
[16]Analog Device Corp,Data-Acquisition Databook,.
[17]童师白.模拟电子技术基础[M].北京:人民教育出版社?.
www.docin.com
在毕业论文即将完成之际?首先感谢母校给我这四年来的学习深造的机会?在这
四年里我不仅学到了知识更为重要的是学校教给了我许多做人的道理。
同时也感谢大学四年来辛勤培养我的各位老师?是他们将宝贵的知识无私的灌输给了
我?使我在专业知识的学习上有了很大的进步?为我将来的工作铺垫了前进的基石。
非常感谢我的指导教师―葛洪军老师和李萍老师?整个毕业设计从选题到最终定
稿无不凝结着老师悉心指导?同时老师敏捷的思维?渊博的学识?理论结合实际、学
以致用的学风?以及对科学精益求精的精神和严以律己、宽以待人的崇高品质给我留
下了深刻的印象。
最后?在即将交出我大学四年最后的答卷之际?祝愿学院越办越好?为国家培养
更多人才?祝愿各位老师工作顺利?万事如意?
www.docin.com
部分程序 #include &reg52.h&
#define VOLT
#define CURR
#define TMPT1 3
#define TMPT2 4
#define TMPT3 5
#define BATCAP 6
#define SLP_EN 7
#define WK_EN 8
#define PAGESIZE
#define SELF
#define SLAVE 2
#define MASTER 1
sbit HD7279_CS=P1^7; // HD7279_CS-P2.0
sbit HD7279_CLK=P1^6; // HD7279_CLK-P2.1
sbit HD7279_DATA=P1^5; // HD7279_DATA-- P2.2
sbit HD7279_KEY =P1^4; // HD7279_KEY-P2.3
sbit LastKey=P0^0;
sbit NextKey=P0^1;
sbit SetKey=P0^2;
sbit EN485=P1^0;
sbit LED=P0^7;
sbit SLEEP=P0^0;
unsigned char state_in=0,state_out=0,buf_in[16],buf_out[16];
void HD7279_LongDelay(void)
www.docin.com
for (i=0;i&6;i++);
void HD7279_ShortDelay(void)
void Delay10ms(unsigned char time)
for(i=0;i&i++)
for(j=0;j&931;j++)
void HD7279_SendByte( unsigned char out_byte)
HD7279_CS=0;
HD7279_LongDelay();
for(i=0;i&8;i++)
if(out_byte&0x80) { HD7279_DATA=1; }
else { HD7279_DATA=0; }
HD7279_CLK=1;
HD7279_ShortDelay();
HD7279_CLK=0;
HD7279_ShortDelay();
out_byte=out_byte&&1;
} www.docin.com
HD7279_DATA=0;
void Write7279(unsigned char command, unsigned char dta)
HD7279_SendByte( command );
HD7279_SendByte( dta );
unsigned char GetKey()
unsigned char key=0;
if(!NextKey)
Delay10ms(3);
if(!NextKey) {
Delay10ms(1);
if(!NextKey)return(key);}}
if(!LastKey)
Delay10ms(3);
if(!LastKey) {
Delay10ms(1);
if(!LastKey)return(key);}}
if(!SetKey)
Delay10ms(3);
if(!SetKey) {
Delay10ms(1);
if(!SetKey)return(key);}}
www.docin.com
return(0);
void display1(unsigned int dig )
unsigned char digtil[4]={15,15,15,15};
int temp=0,m=0,j=0;
if(dig&9999)
digtil[3]=11;
for(i=0;i&4;i++)Write+i,digtil[i]);
temp=dig/1000;
digtil[0]=
dig-=temp*1000;
temp=dig/100;
digtil[1]=
dig-=temp*100;
temp=dig/10;
digtil[2]=
dig-=temp*10;
digtil[3]=
if(digtil[0]==0)digtil[0]=15;
if(digtil[1]==0&&digtil[0]==15)digtil[1]=15;
if(digtil[2]==0&&digtil[1]==15)digtil[2]=15;
for(i=0;i&4;i++)Write+i,digtil[i]);
www.docin.com
void display2(float dig )
unsigned char digtil[4]={15,15,15,15};
signed char i=0,j=0;
int temp=0,m=0;
if(dig&9999||dig&0.001)
digtil[3]=11;
for(i=0;i&4;i++)Write+i,digtil[i]);
temp=(int)
for(i=0,j=0;i&5;i++)
temp=(int)temp/10;
if(temp&0)j++;
for(i=0;i&j;i++)dig=dig*10;
temp=dig/1000;
digtil[0]=
dig-=temp*1000;
temp=dig/100;
digtil[1]=
dig-=temp*100;
temp=dig/10;
digtil[2]= www.docin.com
dig-=temp*10;
digtil[3]=
temp=dig*10;
if(temp&5);else digtil[3]++;
if(digtil[3]==10){digtil[3]--;digtil[2]++;}
if(digtil[2]==10){digtil[2]--;digtil[1]++;}
if(digtil[1]==10){digtil[1]--;digtil[0]++;}
if(digtil[0]==10)digtil[0]++;
digtil[j]+=0x80;
for(i=0;i&4;i++)Write+i,digtil[i]);
for(i=0;i&4;i++)Write+i,digtil[i]);
void displays()
Write,10);
Write,10);
Write,10);
Write,10);
void displayw()
Write,12);
Write,11);
Write,13);
Write,14);
void send_data(unsigned char *buf)
unsigned char ecc,i; www.docin.com
while(!TI);
for(i=0;i&15;i++)
ecc=ecc^(*buf);
while(!TI);
while(!TI);
for(j=0;j&10;j++)
dataio[0]=
Delay10ms(5);
if(state_in)
for(i=0;i&15;i++)dataio[i]=buf_in[i];
state_in=0; www.docin.com
if(dataio[0]==func)
p=(float *)&dataio[1];
return(*p);
{Delay10ms(1);
state_in=0;
send(SLAVE,dataio);}
return(10000);
//-------------------------------------------/
float tmp=0;
unsigned char key=0,stat=0;
HD7279_SendByte(0xa4);/*复位 */
displays();
init_serial();
Delay10ms(5);
key=GetKey();
if(key==0)
if(key==2)
if(stat&8)stat=0;
display1(stat);
Delay10ms(20); www.docin.com
else if(key==1)
if(stat&8)stat=8;
display1(stat);
Delay10ms(20);
else if(key==3)
HD7279_SendByte(0xa4);
switch(stat)
{case 0:Write,10);
case 1:tmp=read(1);display2(tmp);
case 2:tmp=read(2);display2(tmp);
case 3:tmp=read(3);display2(tmp);
case 4:tmp=read(4);display2(tmp);
case 5:tmp=read(5);display2(tmp);
case 6:displays();tmp=read(6);display2(tmp);
case 7:displays();tmp=read(7);display2(tmp);
case 8:display1(30);
default :Write,10);
else Delay10ms(5);
displayw();
www.docin.com
系统原理图 EA/VP
Res Bridge
232-TTL电平转换
D32Bridge1
D331000μF
~220VD34Bridge1
www.docin.com
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 在哪输入网络端口 的文章

 

随机推荐