欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    智能温度测量仪课程设计报告.doc

    • 资源ID:4226679       资源大小:406KB        全文页数:30页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    智能温度测量仪课程设计报告.doc

    课程设计报告智能温度测量仪专 业: 班 级: 学生姓名: 学 号: 指导教师: 完成时间: 文献综述 -智能温度测量仪摘要:本文主要介绍了智能温度测量仪的设计,包括硬件和软件的设计。先对该测量仪进行概括性介绍,然后介绍该测量仪在硬件设计上的主要器件:“Pt100热电阻”、AT89C51单片机和LCD显示器以及描述测量仪的总体结构原理。在本设计中,是以铂电阻PT100作为温度传感器,采用恒流测温的方法,通过单片机进行控制,用放大器、A/D转换器进行温度信号的采集。总体来说,该设计是切实可行的。关键词:温度;Pt100热电阻;AT89C51单片机;LCD显示器。Abstract: This paper describes the design of the intelligent temperature measuring instrument, including hardware and software design. Be the first general description of the measuring instrument, and then describes the hardware design of the measuring instrument's main device: "Pt100 thermal resistance", AT89C51 microcontroller and LCD display, and describe the principle of measuring the overall structure. In this design, as is the PT100 platinum resistance temperature sensor, temperature measurement using constant current method, through the microcontroller to control, amplifier, A / D converter for temperature signal acquisition. Overall, the design is feasible.Key words: temperature; Pt100 thermal resistance; AT89C51 microcontroller; LCD monitor.引言:温度是日常生活、工业、医学、环境保护、化工、石油等领域最常遇到的一个物理量,也是工业控制中主要的被控参数之一。对温度的测量与控制在现代工业中也是运用的越来越广泛。而传感器主要用于测量和控制系统,它的性能好坏直接影响系统的性能。因此,不仅必须掌握各类传感器的结构、原理及其性能指标,还必须懂得传感器经过适当的接口电路调整才能满足信号的处理、显示和控制的要求,而且只有通过对传感器应用实例的原理和智能传感器实例的分析了解,才能将传感器和信息通信与信息处理结合起来,适应传感器的生产、研制、开发和应用。另一方面,传感器的被测信号来自于各个应用领域,每个领域都为了改革生产力、提高工效和时效,各自都在开发研制适合应用的传感器,于是种类繁多的新型传感器及传感器系统不断涌现。温度传感器是其中重要的一类传器。其发展速度之快,以及其应用之广。并且还有很大潜力为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本文利用单片机结合温度传感器技术而开发设计了这一温度测量系统。文中将传感器理论与单片机实际应用有机结合,详细地讲述了利用热电阻作为温度传感器来测量实时的温度,以及实现热电转换的原理过程。 本设计系统包括温度传感器,信号放大电路,A/D转换模块,数据处理与控制模块,温度显示五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度测量与显示,完成了课题所有要求。Pt100温度传感器温度传感器从使用的角度大致可分为接触式和非接触式两大类,前者是让温度传感器直接与待测物体接触,而后者是使温度传感器与待测物体离开一定的距离,检测从待测物体放射出的红外线,达到测温的目的。在接触式和非接触式两大类温度传感器中,相比运用多的是接触式传感器,非接触式传感器一般在比较特殊的场合才使用,目前得到广泛使用的接触式温度传感器主要有热电式传感器,其中将温度变化转换为电阻变化的称为热电阻传感器,将温度变化转换为热电势变化的称为热电偶传感器。热电阻传感器可分为金属热电阻式和半导体热电阻式两大类,前者简称热电阻,后者简称热敏电阻。常用的热电阻材料有铂、铜、镍、铁等,它具有高温度系数、高电阻率、化学、物理性能稳定、良好的线性输出特性等,常用的热电阻如PT100、PT1000等。近年来各半导体厂商陆续开发了数字式的温度传感器,如DALLAS公司DS18B20,MAXIM公司的MAX6576、MAX6577,ADI公司的AD7416等,这些芯片的显著优点是与单片机的接口简单,如DS18B20该温度传感器为单总线技术,MAXIM公司的2种温度传感器一个为频率输出,一个为周期输出,其本质均为数字输出,而ADI公司的AD7416的数字接口则为近年也比较流行的I2C总线,这些本身都带数字接口的温度传感器芯片给用户带来了极大的方便,但这类器件的最大缺点是测温的范围太窄,一般只有-55+125,而且温度的测量精度都不高,好的才±0.5,一般有±2左右,因此在高精度的场合不太满足用户的需要。热电偶是目前接触式测温中应用也十分广泛的热电式传感器,它具有结构简单、制造方便、测温范围宽、热惯性小、准确度高、输出信号便于远传等优点。常用的热电偶材料有铂铑-铂、铱铑-铱、镍铁-镍铜、铜-康铜等,各种不同材料的热电偶使用在不同的测温范围场合。热电偶的使用误差主要来自于分度误差、延伸导线误差、动态误差以及使用的仪表误差等。非接触式温度传感器主要是被测物体通过热辐射能量来反映物体温度的高低,这种测温方法可避免与高温被测体接触,测温不破坏温度场,测温范围宽,精度高,反应速度快,既可测近距离小目标的温度,又可测远距离大面积目标的温度。目前运用受限的主要原因一是价格相对较贵,二是非接触式温度传感器的输出同样存在非线性的问题,而且其输出受与被测量物体的距离、环境温度等多种其它因素的影响。本设计的要求是采用“PT100”热电阻,测温范围是-200+600,精度0.5%,具体的型号选为WZP型铂电阻。AT89C51单片机随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。LCD显示器 液晶显示器是一种采用了液晶控制透光度技术来实现色彩的显示器。和CRT显示器相比,LCD的优点是很明显的。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。对于画面稳定、无闪烁感的液晶显示器,刷新率不高但图像也很稳定。LCD显示器还通过液晶控制透光度的技术原理让底板整体发光,所以它做到了真正的完全平面。 从液晶显示器的结构来看,采用的LCD显示屏都是由不同部分组成的分层结构。LCD由两块玻璃板构成,厚约1mm,其间由包含有液晶材料的5m均匀间隔隔开。因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,而在液晶显示屏背面有一块背光板(或称匀光板)和反光膜,背光板是由荧光物质组成的可以发射光线,其作用主要是提供均匀的背景光源。 对于液晶显示器来说,亮度往往和他的背板光源有关。背板光源越亮,整个液晶显示器的亮度也会随之提高。而在早期的液晶显示器中,因为只使用2个冷光源灯管,往往会造成亮度不均匀等现象,同时明亮度也不尽人意。一直到后来使用4个冷光源灯管产品的推出,才有很大的改善。信号反应时间也就是液晶显示器的液晶单元响应延迟。实际上就是指的液晶单元从一种分子排列状态转变成另外一种分子排列状态所需要的时间,响应时间愈小愈好,它反应了液晶显示器各像素点对输入信号反应的速度,即屏幕由暗转亮或由亮转暗的速度。响应时间越小则使用者在看运动画面时不会出现尾影拖拽的感觉。有些厂商会通过将液晶体内的导电离子浓度降低来实现信号的快速响应,但其色彩饱和度、亮度、对比度就会产生相应的降低,甚至产生偏色的现象。这样信号反应时间上去了,但却牺牲了液晶显示器的显示效果。有些厂商采用的是在显示电路中加入了一片IC图像输出控制芯片,专门对显示信号进行处理的方法来实现的。IC芯片可以根据VGA输出显卡信号频率,调整信号响应时间。由于没有改变液晶体的物理性质,因此对其亮度、对比度、色彩饱和度都没有影响,这也是为什么华硕、三星、LG等技术型厂商的液晶产品画面效果更好的原因,但是这种方法的制造成本也相对较高。系统总体设计介绍测温的模拟电路是把当前PT100热电阻传感器的电阻值,转换为容易测量的电压值,经过放大器放大信号后送给A/D转换器把模拟电压转为数字信号后传给单片机AT89C51,单片机再根据公式换算把测量得的温度传感器的电阻值转换为温度值,并将数据送出到LCD显示器进行显示。本设计系统主要包括温度信号采集单元,单片机数据处理单元,温度显示单元。其中温度信号的数据采集单元部分包括温度传感器、温度信号的获取电路(采样)、放大电路、A/D转换电路。系统的总结构框图如图1-1所示。 1-1 系统的总结构框图 本温度测量系统设计,是采用PT100温度传感器经过放大和A/D转换器送到单片机进行控制温度显示。另外本系统还可以通过外接电路扩展实现温度报警功能,从而更好的实现温度现场的实时控制。经过多次的修改和调试测量,本设计基本符合设计要求,由于受人为因素和软硬件的限制,系统难免不了带来一些误差,但通过调节和精确计算可以减小误差。通过本次温度测量系统的设计,我对温度测量控制有了进一步的熟悉和更深入的学习。在整个设计的过程中,本设计的重点和难点是:怎样将PT100热电阻的非电量信号转换为单片机单片机能识别的电量信号,其中的信号如何放大及放大倍数的确定等等。 课程设计报告 硬件设计PT100传感器特性和测温原理 电阻式温度传感器(RTD, Resistance Temperature Detector)是指一种物 质材料作成的电阻,它会随温度的改变而改变电阻值。 PT100温度传感器是一种以铂(Pt)做成的电阻式温度传感器,属于正电阻系 数,其电阻阻值与温度的关系可以近似用下式表示: 在0600范围内: Rt =R0 (1+At+Bt2) 在-2000范围内: Rt =R0 (1+At+Bt2+C(t-100)t3) 式中A、B、C 为常数, A=3.96847×10-3; B=-5.847×10-7; C=-4.22×10-12;由于它的电阻温度关系的线性度非常好,因此在测量较小范围内其电阻和温度变化的关系式如下:R=Ro(1+T) 其中=0.00392, Ro为100(在0的电阻值),T为华氏温度,因此铂做成的电阻式温度传感器,又称为PT100。PT100温度传感器的测量范围广:-200+600,偏差小,响应时间短,还具有抗振动、稳定性好、准确度高、耐高压等优点,其得到了广泛的应用,本设计即采用PT100作为温度传感器。主要技术指标:1. 测温范围:-200600摄氏度;2. 测温精度:0.5摄氏度;3. 稳定性:0.5摄氏度 Pt100是电阻式温度传感器,测温的本质其实是测量传感器的电阻,通常是将电阻的变化转换成电压或电流等模拟信号,然后再将模拟信号转换成数字信号,再由处理器换算出相应温度。采用Pt100 测量温度一般有两种方法:1、设计一个恒流源通过Pt100 热电阻,通过检测Pt100 上电压的变化来换算出温度;测温原理:通过运放U1A将基准电压4.096V转换为恒流源,电流流过Pt100时在其上产生压降,再通过运放U1B将该微弱压降信号放大(图中放大倍数为10),即输出期望的电压信号,该信号可直接连AD转换芯片。根据虚地概念“工作于线性范围内的理想运放的两个输入端同电位”,运放U1A的“+”端和“-”端电位V+V-4.096V;假设运放U1A的输出脚1对地电压为Vo,根据虚断概念,(0-V-)/R1+(Vo-V-)/RPt1000,因此电阻Pt100上的压降VPt100Vo-V-V-*RPt100/R1,因V-和R1均不变,因此图1虚线框内的电路等效为一个恒流源流过一个Pt100电阻,电流大小为V- /R1,Pt100上的压降仅和其自身变化的电阻值有关。设计及调试注意点: 1. 等效恒流源输出的电流不能太大,以不超过1mA为准,以免电流大使得Pt100电阻自身发热造成测量温度不准确,试验证明,电流大于1.5mA将会有较明显的影响。2. 运放采用单一5V供电,如果测量的温度波动比较大,将运放的供电改为±15V双电源供电会有较大改善。3. 电阻R2、R3的电阻值取得足够大,以增大运放的U1B的输入阻抗。 图1恒流源式测温电路由于封装问题,实际原理图如下:方案二:采用惠斯顿电桥,电桥的四个电阻中三个是恒定的,另一个用Pt100 热电阻,当Pt100电阻值变化时,测试端产生一个电势差,由此电势差换算出温度。 测温原理:电路采用TL431和电位器VR1调节产生4.096V的参考电源;采用R1、R2、VR2、Pt100构成测量电桥(其中R1R2,VR2为100精密电阻),当Pt100的电阻值和VR2的电阻值不相等时,电桥输出一个mV级的压差信号,这个压差信号经过运放LM324放大后输出期望大小的电压信号,该信号可直接连AD转换芯片。差动放大电路中R3R4、 R5R6、放大倍数R5/R3,运放采用单一5V供电。 设计及调试注意点: 1. 同幅度调整R1和R2的电阻值可以改变电桥输出的压差大小; 2. 改变R5/R3的比值即可改变电压信号的放大倍数,以便满足设计者对温度范围的要求 3. 放大电路必须接成负反馈方式,否则放大电路不能正常工作。4. VR2也可为电位器,调节电位器阻值大小可以改变温度的零点设定,例如Pt100的零点温度为0,即0时电阻为100,当电位器阻值调至109.885时,温度的零点就被设定在了25。测量电位器的阻值时须在没有接入电路时调节,这是因为接入电路后测量的电阻值发生了改变。5. 理论上,运放输出的电压为输入压差信号×放大倍数,但实际在电路工作时测量输出电压与输入压差信号并非这样的关系,压差信号比理论值小很多,实际输出信号为4.096*(RPt100/(R1+RPt100)- RVR2/(R1+RVR2) (1)式中电阻值以电路工作时量取的为准。 6. 电桥的正电源必须接稳定的参考基准,因为如果直接VCC的话,当网压波动造成VCC发生波动时,运放输出的信号也会发生改变,此时再到以VCC未发生波动时建立的温度-电阻表中去查表求值时就不正确了,这可以根据式(1)进行计算得知。 图2三线制接法桥式测温电路放大电路的设计本次放大电路我选用的是LM358,其内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。LM358特性(FEATURES): · 内部频率补偿 · 直流电压增益高(约100DB) · 单位增益频带宽(约1MHZ) · 电源电压范围宽:单电源(330V);双电源(±1.5 一±15V) · 低功耗电流,适合于电池供电 LM358· 低输入偏流 · 低输入失调电压和失调电流 · 共模输入电压范围宽,包括接地 · 差模输入电压范围宽,等于电源电压范围 · 输出电压摆幅大(0 至VCC-1.5V)信号调理电路调理电路的作用是将来自于现场传感器的信号变换成前向通道中A/D转换器能识别的信号,作为本系统,由于温度传感器是热电阻PT100,因此调理电路完成的是怎样将与温度有关的电阻信号变换成能被A/D转换器接受的电压信号。A/D转换器的选择与设计电路在我们所测控的信号中均是连续变化的物理量,通常需要用计算机对这些信号进行处理,则需要将其转换成数字量,A/D转换器就是为了将连续变化的模拟量转换成计算机能接受的数字量。根据A/D转换器的工作原理,常用的A/D转换器可分为两种,双积分式A/D转换器和逐次逼近式A/D转换器。1. 双积分A/D转换器工作原理双积分A/D转换器采用间接测量的方法,它将被测电压转换成时间常数T,双积分A/D转换器由电子开关,积分器,比较器,计数器和控制逻辑等部分组成。所谓双积分就是进行一次A/D转换需要两次积分。电路先对被测的输入电压Vx进行固定时间(T0)的正向积分,然后控制逻辑将积分器的输入端通过电子开关接参考电压Vr,由于参考电压与输入电压反向且参考电压值是恒定的,所以反向积分的斜率是固定的,从反向积分开始到结束,对参考电压进行反向积分的时间T,正比于输入电压。输入电压越大反向积分时间越长,用高频标准脉冲计数测此时间,即可得到相应于输入电压的数字量。特点:可以有效的消除干扰和电源噪声,转换精度高,但是转换速度慢。2. 逐次逼近型A/D转换器工作原理逐次逼近型A/D转换器由D/A转换环节,比较环节和控制逻辑等几部分组成。其转换原理为:A/D转换器将一待转换的模拟输入电压Ui与一个预先设定的电压Ui(预定的电压由逐次逼近型A/D转换器中的D/A输出获得)电压相比较,根据预设的电压Ui是大于还是小于待转换成的模拟输入电压Uin来决定当前转换的数字量是“0” 还是“1”,据此逐位比较,以便使转换结果(相应的数字量)逐渐与模拟输入电压相对应的数字量接近。 在本设计系统中,为了将模拟量温度转换成数字量,采用德州仪器公司生产的4通道12位串行输出采样模数转换器ADS7841。具体连线如下图所示:单片机控制电路本设计是采用AT89C51单片机作为主控电路,AT89C51单片机是Atmel公司的产品,与Intel 公司的MCS51系列兼容。在AT89C51单片机内部有作为程序存储器的Flash存储器,其容量为4KB,可以承受不低于1000次的反复擦写,调试比较方便。其中P1口为A/D转换器的通信端口,P2口为按键控制,P0口为LCD的数据端口,具体电路图如下:按键和显示电路本次设计使用4x4矩阵键盘,将其行线以及列线接到单片机的P2口,其中列线接上拉电阻然后在通过异或逻辑门在接至单片机的P2.0到P2.3口。具体连线如下图所示:显示电路本次设计使用LCD12864来显示温度采集结果,其中将LCD的数据口接入单片机的P0口,具体接线如下图所示: 软件设计系统软件设计说明进行微机测量控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个测量对象的实际需要设计应用程序。因此,软件设计在微机测量控制系统设计中占重要地位。对于本系统,软件设计更为重要。在单片机测量控制系统中,大体上可分为数据处理、过程控制两个基本类型。数据处理包括:数据的采集、数字滤波、标度变换等。过程控制程序主要是使单片机按一定的方法进行计算,然后再输出,以便达到测量控制目的。软件设计主要是对温度进行采集、显示,通过按键操作,进行时间的设置与修改。因此,整个软件可分为温度采集子程序、时钟读取程序、按键子程序、显示子程序、及系统主程序。软件的有关算法1、最小二乘理论获取温度电阻公式 根据误差理论,我们要获得较高精度的温度测量值,办法一般有2个,要么采用查表法,要么建立高精度的数学模型。如果用查表法,主要有2个问题,如果要提高测量精度,则需要建立大量的表格,而且得提前做大量得试验来进行多点校正,还有一个问题是程序的通用性差,这台仪器上校正好得数据可能在另一台上不合适。而采用已知的分度表,建立数学模型,然后通过工程量(标度)变换,通过测量A/D转换的结果后计算得到。这里我们考虑第2种方法的优点,首先采用分段的方法,将测量范围分段,然后查出该段的数学模型的各个系数,然后计算出温度值,这里,由于时间的关系,我们对整个测量范围分了3段,分别为049、5070、71100,利用分度表进行离线的数学拟合,得到各段的数学模型系数。同时,可通过再将标度值代入可粗略估计在各个测量段内的最大误差值。 我们通过最小二乘法进行线性拟合,得到如下的数学模型为: T1=2.5772R-257.7708 0-49 T2=2.6366R-267.01 5070 T3=2.7206R-281.90 71100上述3个数学模型中,最大的理论误差值都小于0.5,能够满足精度要求,实际上如果有足够的时间,我们完全可以分得再细一些,这样理论的误差将会变得更小。2、标度变换公式的获取根据上述的线性拟合结果:T=A·R-B,这里的A、B是上述不同温度段的系数,而R值由于在输出为0V时,实际上有个对应于100欧姆的偏置电路,因此根据R-R0=U/I,而I=2.500V/1.500K,而AD/U/G=4096/4.900V,这里的AD值为A/D转换得结果G为放大器的增益,本设计中的二级放大器放大的倍数为80倍。将上述条件代入得:T=A·(4.9·AD/4096/G/I+100)-B软件的流程图 开始系统初始化PT100温度数据采集处理读到的数据送LCD显示结束 开始初始化函数A/D转换器进行A/D转换将转换后的电压转换为温度返回 图1 系统总流程图 图2 温度转换程序流程图 开始系统初始化调用温度子程序调用显示子程序调用扫描按键程序 开始将温度数据写入到LCD读取温度值显示温度值返回 图3 显示流程图 图4 主函数流程图主程序ADS7841驱动程序#include <iom64v.h>#include <macros.h>#include "delay.h"#include "ads7841.h"#include "LCD1602.h"/-ADS7841控制字节-#define control_byte 0b10011000/bit val description/bit7 1 start,恒为1/bit6,5,4 001 选择CH0为+IN/bit4 1 选择为单端输入/bit2 X 外部MODE接GND,该位无作用,恒为12位/bit1,0 00 转换期间ADC为掉电模式void port_init(void) PORTA = 0xFF;/将所有端口初始化为输入,打开上拉 DDRA = 0x00; PORTB = 0xFF; DDRB = 0x00; PORTC = 0xFF; DDRC = 0x00; PORTD = 0xFF; DDRD = 0x00; PORTE = 0xFF; DDRE = 0x00; PORTF = 0xFF; DDRF = 0x00; PORTG = 0xFF; DDRG = 0x00;void main() unsigned int result; unsigned char i,array4,table="0123456789" port_init(); /端口初始化 LCD1602_init(); /1602液晶初始化 ads7841_init(); /ADS7841初始化 LCD_write_string(0x80,"result:"); while(1) ads7841_start(); /启动ADS7841,即拉低CS delay_nus(10); result=ads7841_W_R(control_byte); /发送控制字,并得到转换数据 result&=0b0000111111111111; /屏蔽掉高四位 delay_nus(10); ads7841_finish(); /停止ADS7841,即拉高CS for(i=0;i<4;i+) /以下均为显示部分 arrayi=result%10;/ esult/=10; for(i=0;i<4;i+) LCD_write_onechar(0x87+i,tablearray3-i); delay_nms(300);#ifndef _ads7841_h#define _ads7841_hdefine DCLK PD0#define DCLK_ddr DDRD#define DCLK_port PORTD#define DCLK_pin PIND#define CS PD1#define CS_ddr DDRD#define CS_port PORTD#define CS_pin PIND#define DIN PD2#define DIN_ddr DDRD#define DIN_port PORTD#define DIN_pin PIND#define BUSY PD3#define BUSY_ddr DDRD#define BUSY_port PORTD#define BUSY_pin PIND#define DOUT PD4#define DOUT_ddr DDRD#define DOUT_port PORTD#define DOUT_pin PINDdefine ads7841_start() CS_port&=(1<<CS) /启运ADS7841#define ads7841_finish() CS_port|=(1<<CS) /停止ADS7841void ads7841_init(void);unsigned int ads7841_W_R(unsigned char byte);#endif#include <iom64v.h>#include <macros.h>#include "delay.h"#include "ads7841.h"/* * 函数名称:ads7841_init()* * 函数功能:初始化ADS7841端口* * 备 注:无*/void ads7841_init(void)DCLK_port&=(1<<DCLK); /时钟端初始化为输出低电平DCLK_ddr|=(1<<DCLK);CS_port|=(1<<CS); /片选端初始化为输出高电平CS_ddr|=(1<<CS); /即不选中ADS7841DIN_port&=(1<<DIN); /数据输入端初始化为输出低电平DIN_ddr|=(1<<DIN);BUSY_port|=(1<<BUSY); /忙信号初始化为输入,打开上拉BUSY_ddr&=(1<<BUSY);DOUT_port|=(1<<DOUT); /数据输出初始化为输入,打开上拉DOUT_ddr&=(1<<DOUT);/* * 函数名称:ads7841_W_R* * 函数功能:向ADS7841写入控制字节,读出转换好的数* * 输入参数:unsigned char byte : 控制字节 unsigned int result: AD转换好的数* * 备 注:数据从高位到低位写入,从高位到低位读出*/unsigned int ads7841_W_R(unsigned char byte)unsigned char i,temp;unsigned int result=0;for(i=0;i<8;i+) /8位数据计数 DCLK_port&=(1<<DCLK); /拉低时钟端 if(byte&0x80) /当前位是否是1 DIN_port|=(1<<DIN); /当前位是1,拉高数据端 else DIN_port&=(1<<DIN); /当前位是0,拉低数据端 delay_nus(10); /调整时钟和脉冲宽度 DCLK_port|=(1<<DCLK); /时钟上升沿 delay_nus(10); byte<<=1; /数据左移1位,为送出新数据位做准备 delay_nus(10);DCLK_port&=(1<<DCLK); /拉低时钟端delay_nus(10);i=BUSY_pin; /读BUSY的状态delay_nus(10);if(i&(1<<BUSY) /如果为高则说明转换完成,应将其读出/-以下先读出高八位- for(i=1;i<=8;i+) result<<=1; /保存读入的数据位 DCLK_port|=(1<<DCLK); /时钟上升沿 delay_nus(10); DCLK_port&=(1<<DCLK); /拉低时钟端 elay_nus(10); if(DOUT_pin&(1<<DOUT) result|=0x01; else result&=0xfe; /-以下读出低四位- for(i=1;i<=4;i+) temp<<=1; /保存读入的数据位 DCLK_port|=(1<<DCLK); /时钟上升沿 delay_nus(10); DCLK_port&=(1<<DCLK); /拉低时钟端 delay_nus(10); if(DOUT_pin&(1<<DOUT) temp|=0x01; else temp&=0xfe; for(i=1;i<=4;i+) /再给ADS7841四个时钟 DCLK_port|=(1<<DCLK); /时钟上升沿 delay_nus(10); /调整时钟和脉冲宽度 DCLK_port&=(1<<DCLK); /拉低时钟端 delay_nus(10); /调整时钟和脉冲宽度 result=(result<<4)+temp; /将结果合成,返回return result;LCD驱动程序lcdwc(GYPOS&0x1f)|0x80); /先送Y地址 if(GYPOS>=32) /再送X地址 lcdwc(G

    注意事项

    本文(智能温度测量仪课程设计报告.doc)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开