数字化无线温度传感器的分析与设计

中央广播电视大学 毕业设计(论文) 毕业设计(论文)评审表

题目 数字化无线温度传感器的分析与设计





教育层次





省级电大









指导教师

教 学 点

题 目
摘要

数字化无线温度传感器的分析与设计

集成化智能传感器概念的提出仅仅十余年,但近年发展很快,国外刊物上关于新型集 成化智能传感器研制的报道很多,国内一些著名高校和研究所也在开展此类工作。和经典 的传感器相比,集成化智能传感器具有体积小、成本低、功耗小、速度快、可靠性高、精 密度高以及功能强大等优点。集成化智能传感器的优点使它成为目前传感器研究的热点和 传感器发展的主要方向,必将主宰下个世纪的传感器市场。 文本的数字化无线温度传感器具有集成化、 智能化的特点, 它由温度测量 (发射部分) 、 温度处理(接收部分)和温度值显示(上位机)三部分构成。温度测量采用一线制数字温 度传感器 DS18B20,其体积小,集成度高自带 A/D,功耗低。处理器选用低功耗单片机

PIC16F74。温度传输采用超低功耗发射接收模块 PTR4000,以 I2C 方式与处理器通讯。 PTR4000 在测量点接受传感器的数据并把数据以无线方式传输出去,接收部分通过接受模 块(PTR4000)接收数据,并进行数字滤波,同时将接收到的数据以异步串行通信方式传 给上位机。

关键词

PIC16F74

低功耗

无线

数字化

I2C 总线

The design of

the temperature transducer of wireless

digitize

Abstract
The integration turns the submission of the brain sensor, transducer notion only more than ten years,but the recent years shape is very quick .The sensor,transducer of the sum , classic compare,the integration turns the sensor,transducer of brain to have the solid , , measure sterigma,cost low,the work consumes the sterigma,partial velocity quick,the , reliability higher-,the accuracy higher-and the function strong etc.merit.The integration . . turns the merit of the sensor,transducer of brain to make it become the hot spot of the , sensor,transducer researcn and the cardinal direction of the sensor,transducer shape , currently,will dominate the sensor,transducer market place of the next age necessarily. , , . The textual temperature transducer, temperature sensor of digitize wireless has , namely the integration turn,the brain turn of characteristics,it is measure(the emission , fraction)by the gradient of temeprature, gradient of temeprature treating(the reception the , fraction) sum gradient of temeprature is worth three fraction constituent s of display(the place of honor machine).The gradient of temeprature survey adoption is a glimmer of to . make the numerical temperature transducer,temperature sensor DSl8B20.The low work , . of the treater application consumes the single sheet machine PIC16F74.The gradient of . temeprature transmission adopts the super and low work to consume the emission reception shuttering cake PTR4000 , with the mode and treater

telecommunications.PTR4000 at measure the data of the dot reception sensor,transducer . , amalgamation the data the transmission goes out by wireless,receiving the fraction to pass , to accept the shuttering cake(PTR4000)receive data,the data that will receive passes the , place of honor machine with the nonsynchronous string row correspondence method at the same time.

Keywords:PICl6F74 :

low_Power Wireless

Digital

I2C

目 录
摘 要 Abstract 第一章 选题背景…………………………………………………………………………… 1.1 分析内容 ………………………………………………………………………… 1.2 国内、国外现状及发展情况 ………………………………………………… 1.3 来源及意义 ……………………………………………………………………… 第二章 方案论证 ………………………………………………………………………… 2.1 总体方案设计 …………………………………………………………………… 2.2 传感器方案 ……………………………………………………………………… 2.3 微处理器方案 …………………………………………………………………… 2.4 射频模块方案 …………………………………………………………………… 2.5 串行通讯方案 ………………………………………………………………… 第三章 硬件原理与实现 ………………………………………………………………… 3.1 PIC 系列单片机 ………………………………………………………………… 3.1.1 PIC 系列微控制器硬件结构特点………………………………………… 3.1.2 PIC 系列微控制器技术性能特点………………………………………… 3.1.3 PIC16F74 单片机 ……………………………………………………… 3.2 温度传感器 DS18B20 ………………………………………………………… 3.3 无线模块 PTR4000 ……………………………………………………………… 3.4 串行接口 ………………………………………………………………………… 第四章 技术要点…………………………………………………………………………… 4.1 低功耗设计 ……………………………………………………………………… 4.1.1 实现低功耗的措施………………………………………………………… 4.1.2 嵌入式系统中的零功耗设计……………………………………………… 4.1.3 本设计中的低功耗技术…………………………………………………… 4.2 软件抗干扰技术 ………………………………………………………………… 4.2.1 软件出错对系统的伤害…………………………………………………… 4.2.2 数字滤波方法……………………………………………………………… 4.2.3 软件冗余技术……………………………………………………………… 4.3 I2C 总线技术 …………………………………………………………………… 第五章 软件设计 ………………………………………………………………………… 5.1 温度采集程序的实现 …………………………………………………………… 5.2 PTR4000 的软件编程 …………………………………………………………… 5.3 上位机界面设计 ………………………………………………………………… 5.4 工作流程 ………………………………………………………………………… 结束语……………………………………………………………………………………… 致 谢……………………………………………………………………………………… 参考文献…………………………………………………………………………………… 附录 A 程序流程图………………………………………………………………………… 附录 B 硬件外观图………………………………………………………………………… 附录 C 程序清单…………………………………………………………………………… 附录 D 硬件原理图…………………………………………………………………………

陕西广播电视大学机械制造及其自动化专业毕业设计

第一章 选题背景

1.1 分析内容
本课题的研究涉及两方面内容, 其一是无线通讯技术, 其二是数字化传感器技术。 再将这两方面结合到一起的同时, 研究低功耗的设计方法及无线传输中仰制噪音的滤 波算法。 在以单片机为核心的控制硬件电路设计上, 采用及筛选低功耗的电子元件与集成 电路,进行低功耗线路设计和线路板优化;在软件控制上采用降低功耗的休眠技术及 采样周期优化,以期达到最大限度地降低计量仪表功耗,延长电池寿命。 本设计中的测温范围在 O℃~100℃之间,测温精度为±0.2℃,要求静态功耗电 流小于 10 ? A ,动态功耗电流小于 8mA,无线传输距离大于 10 米,传输速率为 19.2Kbps. 本设计中利用无线技术和数字化集成温度传感器技术, 研制数字化无线集成温度 传感器,以确保热量表一体化,解决现有热量表需有线测量回水温度带来的可靠性、 安全性差等诸多问题。

1.2 国内、国外现状及发展情况
目前集成化智能传感器技术发展非常迅速, 然而由于我国国有资金和技术等方面 的不足,在此方面的研究上同国外的差距还很大。 ’ 集成化智能传感器研制是较新的发展方向,具有广阔的市场空间,它主要利用集 成电路的工艺和微机械加工技术取得研究进展; 但比国外集成电路的主流工艺要落后 到两代以上。 如果我国把集成智能传感器的研制和生产作为半导体工艺的主要发展方 向之一,就可以在现有的集成电路工艺和微机械加工的优势的基础上另辟蹊径,使集 成智能传感器的研制与生产具有一定功能模块化能力, 为传感器产业的集成化智能化 发展积累新的技术经验, 并拓展应用领域的广泛性, 使其成为未来传感器发展的主流。 电子自动化产业的迅速发展与进步促使传感器技术、 特别是集成智能传感器技术日 趋活跃起来,近年来随着半导体技术的迅猛发展,国外一些著名的公司和高等院校正 在大力开展有关集成智能传感器的研制,国内一些著名的高校和研究所也积极跟进, 集成化智能传感器技术取得了令人瞩目的发展。 大规模集成电路技术和微机械加工技术的迅猛发展,为传感器向集成化、智能化 方向发展奠定了基础,集成智能传感器在应用领域成为传感器发展的新趋势。 集成智能传感器采用微机械加工技术和大规模集成电路工艺技术, 利用硅作为基 本材料来制作敏感元件、信号调制电路,以及微处理器单元,并把它们集成在一块芯
1

陕西广播电视大学机械制造及其自动化专业毕业设计

片上。这样,使智能传感器达到了微型化和结构一体化,从而提高了精度和稳定性。 目前,市场上的集成智能传感器已经成为研究热点,其发展方向主要有以下几个 方面: (1)向微型化发展; (2)应用新的物理现象、化学反应、生物效应作为传感器原理; (3)使用新型材料; (4)向微功耗及无源化发展; (5)采用新的加工技术(如化学微腐技术、微机械加工技术); (6)向高可靠性、宽温度范围发展。 一 集成智能传感器四大热点: 由于集成智能传感器可以很容易对非线性的传递函数进行校正, 得到一个线性度 非常好的输出结果,从而消除了非线性传递对传感器应用的制约,所以一些科研工作 者正在对这些稳定性好、精确度高、灵敏度高的转换机理或材料进行研究。 比如,谐振式传感器具有高稳定性、高精度、准数字化输出等许多优点,但传统 的传感器频率信号检测需要较复杂的设备,限制了谐振式传感器的应用和发展,现在 利用同一硅片上集成的智能检测电路,可以迅速提取频率信号,使得谐振式微机械传 感器成为国际上传感器领域的一个研究热点。 2.数据融合理论 数据融合是集成智能传感器理论的重要领域,也是各国研究的热点,数据融合技 术,简言之,即对多个传感器或多源信息进行综合处理,从而得到更为准确、可靠的 结论。对于多个传感器组成的阵列,数据融合技术能够充分发挥各个传感器的特点, 利用其互补性、冗余性,提高测量信息的精度和可靠性,延长系统的使用寿命。 数据融合是一种数据综合和处理技术,是许多传统学科和新技术的集成和应用, 如通信、模式识别、决策论、不确定性理论、信号处理、估计理论、最优化技术、计 算机科学、 人工智能和神经网络等。 近年来, 不少学者又将遗传算法、 小波分析技术、 虚拟技术引入数据融合技术中。 3.CMOS 工艺兼容 目前,国外在研究二次集成技术的同时,集成智能传感器在工艺上的研究热点集 中在研制与 CMOS 工艺兼容的各种传感器结构及制造工艺流程,探求在制造工艺和微 机械加工技术上有所突破。 利用 CMOS 工艺兼容的集成湿度传感器将敏感电容和处理电路集成在一块硅片 上,通过 Coventor 模拟得到全量程总的敏感湿敏电容变化值,同时提高了可靠性并 降低了成本,随着微机械加工技术的逐步发展,使得以 CMOS 工艺技术制造的集成湿 度传感器已经成为当前研究的热点。图像传感器在 CMOS 工艺兼容基础上使得其动态 1.物理转化机理

2

陕西广播电视大学机械制造及其自动化专业毕业设计

范围扩展技术有所进步。 4.传感器的微型化 集成智能传感器的微型化决不仅仅是尺寸上的缩微与减少,而是一种具有新机 理、新结构、新作用和新功能的高科技微型系统,并在智能程度上与先进科技融合。 其微型化主要基于以下发展趋势:尺寸上的缩微和性质上的增强性;各要素的集成化 和用途上的多样化;功能上的系统化、智能化和结构上的复合性。 本设计中的无线温度传感器为正在研究中的科研项目, 暂时只用各种器件临时组 合,如果方案进入成熟阶段,可将其集成在一块芯片上,实现其微型化。

1.3 来源及意义
现代信息技术的三大基础是信息采集(即传感器技术)、 信息传输(通信技术)和信 息处理(计算机技术)。传感器属于信息技术的前沿尖端产品,尤其是温度传感器被广 泛用于工农业生产、科学研究和生活等领域,数量高居各种传感器之首。近百年来, 温度传感器的发展大致经历了以下三个阶段; (1)传统的分立式温度传感器(含敏感元 件);(2)模拟集成温度传感器/控制器;(3)智能温度传感器。目前,国际上新型温 度传感器正从模拟式向数字式、由集成化向智能化、网络化的方向发展。 进入 2 1 世纪后,智能温度传感器正朝着高精度、多功能、总线标准化、高可靠 性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速 发展。 随着国家对城镇供热采暖采用热量计量的不断推广, 热量表项目将成为一项高科 技、高效益的投资项目,将带动起一个年产值几百亿的新兴产业群,并且它的持续发 展期在 1 5 年以上。在国家有关政策的引导下,目前,全国各地正在进行供热分户改 造,未来几年内,国家将逐步实行按甩热量分户计量收费,届时将会催生一个非常庞 大的实时在线供热表市场。因此,户用热量计是给暖商品化必不可少的工具,也是建 筑节能的一项重要措,随着供暖事业的发展必将得到普遍应用。无线温度传感器作为 热表的一部分,用来测量回水温度。 本设计中的无线温度传感器是测量回水温度的部件, 以解决目前国内外热量表生 产单位普遍采用的有线采集回水温度带来的施工安装不便及可靠性低这一突出的共 性问题。 以适应我国民用计量仪表使用的实际现状, 达到节约能源和供需平衡的目的。

3

陕西广播电视大学机械制造及其自动化专业毕业设计

第二章 方案论证
2.1 总体方案设计
数字化无线温度传感器的设计应包含两个部分:一部分是温度测量(发射)电路, 一部分是温度处理(接收)电路。温度测量部分由传感器、MCU、和无线发射模块 构成。温度处理部分由无线接收模块、MCU、与上位机通讯的接口电路构成。其系 统原理框图如下所示:

温 度 传 感 器

图1

温度测量部分原理框图



12C

I/O

发射模块

12C

收 模 块

USART

上位机

图2

温度处理部分原理框图

2.2 传感器方案
温度传感器的种类很多,选择的空间就很广阔,可以使用热电偶,热电阻等测温 元件,也可以选用集成温度传感器。 方案一:采用 AD590 作为传感器。AD590 是 AD 公司利用 PN 结正向电流与温度的 关系制成的电流输出型两端温度传感器。这种器件在被测温度一定时,相当于一个恒

4

陕西广播电视大学机械制造及其自动化专业毕业设计

流源。该器件具有良好的线性和互换性,测量精度高,并具有消除电源波动的特性。 即使电源在 5-15V 之间变化,其电流只是在 l ? A 以下作微小变化。但是 AD590 是集 成模拟传感器,需要进行 A/D 转换才能与控制器连接。 方案二:选用单线数字温度传感器 DSl8B20,它与其他传感器相比有以下几个 优点: (1)单总线,节省 I/O 口线; (2)数字化,内部自带 A/D,编程方便; (3)集成度高,外围硬件电路简单; (4)精度高,测温分辨率可达 0.0625℃; 本设计中选用 DS18B20 作为温度传感器。

2.3 微处理器方案
方案一: 主机采用以 89C51 系列单片机为核心的微控制器完成对无线发射接收模 块的控制,实现对数据的采集。由于受单片机指令运行速度的影响,影响到它的数据 采集能力,而且它不具有低功耗状态,不能满足低功耗的要求。 方案二:以高速数字信号处理器(DSP)TMS320F240 为中央处理单元,配以极少的 外围电路构成了检测器的核心控制部件。本方案的主要优点: ①速度快, 执行速度达到 20MIPS, 几乎所有的指令可以在 50ns 的单周期内完成, 如此高的性能非常适合实时数据采集。 ②硬件结构简单,具有丰富的可编程多路复用 I/O 引脚,能实现对温度传感器、 键盘显示接口、输出打印接口的编程功能。 ③软件编程灵活,可采用 C 语言与汇编语言混合编程。 但其价格昂贵,功能强大,用在此处属于大材小用。 方案三:以 PIC 系列单片机作为中央处理单元,本方案具有前两个方案无法取代 的优点: 1) 选型灵活,PIC 系列从低到高有几十个型号,可以满足各种需要。 2) 精简指令使其执行效率大为提高。 3) 睡眠和低功耗模式。虽然 PIC 在这方面已不能与新型的 TI—MSP430 相比, 但在大多数应用场合还是能满足需要的。 基于低功耗的设计要求,本设计中采用,PIC 系列单片机作为中央处理单元。

2.4 射频模块方案
方案一:采用 PTR2000 作为无线收发模块,其集成度相对较高,外围硬件电路简 单,收发一体,但因为是无线通信,在通信过程中易受干扰,误码率高。

5

陕西广播电视大学机械制造及其自动化专业毕业设计

方案二:采用 PTR4000 作为无线收发模块,它含有 CRC 硬件校验,当 PTR4000 接收到数据与摄制的本机地址一致且 CRC 效验正确时, 才把接收到的数据以中断方式 传给 CPU,误码率低,与 PTR2000 相比较,其可靠性高。本设计中采用 PTR4000 作为 无线收发模块。

2.5 串行通讯方案
方案一:采用 RS-422A 标准规定了差分平衡的电气接口,它采用平衡驱动和差分 接收的方法。这相当于两个单端驱动器,输入同一信号时,其中一个驱动器的输出永 远是另一个驱动器的反向信号。 方案二:采用 RS-485 接口,它是 RS--422A 的变型,它与 RS--422A 的区别在于: RS--422A 为全双工,采用两对平衡差分信号线;而 RS--485 为半双工,采用一对平 衡差分信号线。RS--485 对于多站互连是十分方便的。RS-485 标准允许最多并联 32 台驱动器和 32 台接收器。总线两端接匹配电阻(100Ω左右),驱动器负载为 54Ω。 驱动器输出电平在-1.5V 以下时为逻辑“l",在+1.5V 以上时为逻辑“O’。接收器输 ’ 入电平在-0.2V 以下时为逻辑“l",在+0.2V 以上时为逻辑“0’。RS-485 传输速率 ’ 最高为 10Mbit/s,最大电缆长度为 1200 米。 方案三:采用 RS--232C 接口。它是异步串行通讯中应用最广泛的标准总线,它 包括了按位串行传输的电气和机械方面的规定。 适用于数据终端设备和数据通讯设备 之间的接口。 本设计中采用 RS--232C 接口进行异步通讯即可满足要求。

6

陕西广播电视大学机械制造及其自动化专业毕业设计

第三章硬件原理与实现

3.1PIC 系列单片机
在微控制器(Microcontroller)应用领域日益广泛的今天,各个领域的应用也向 微控制器厂商提出了更高要求,希望速度更快、功耗更低、体积更小、价格更廉以及 组成系统时所需要的外围器件更少; 随着越来越多的各种非电子工程技术人员的应用 需求,他们想把微控制器作为嵌入式部件应用到自己熟悉的领域,还提出简单易学用 的要求,用户的需求就是商家的市场和动力,老的半导体厂商顺应潮流不断推出新品 种,新的半导体厂商则后来居上,把越来越多的外围接口器件集成到片内,功能越来 越强、性能越来越高。迄今为止,至少有 35 家半导体厂商的微控制器进入中国市场。 应该说,每一个厂商的微控制器能在市场上占有一定份额,肯定有它存在的道理,即 各个不同公司的芯片有它自己的特点才能吸引住有特定要求的部分用户。 在这众多的五彩缤纷的微控制器中, 美国 Microchip 技术公司的 PIC 系列微控制 器 则 异 军 突 起 , 独 树 一 帜 。 它 率 先 推 出 采 用 精 简 指 令 集 计 算 机 RISC(Reduced Instruction Set Computer)、哈佛(Harvard)双总线和两级指令流水线结构的高 性能价格比的 8 位嵌入式控制器(Embedded Controller)。其高速度(每条指令最快 可达 160ns) 、低电压(最低工作电压可为 2V) 、低功耗(3V,32kHz 时 15?A) 、较大 的输入输出电流直接驱动 LED(灌电流可达 25mA) 、一次性编程 OTP(One Time Programmable)芯片的低价位(最低的不到 6 元人民币) 、小体积(8 引脚) 、指令简 单易学易用等,都体现了微控制器工业发展的新趋势。该公司推出了三个不同层次系 列、几十种产品来满足不同的产品设计需要,这三个系列微控制器的每一种型号的芯 片都含有片内程序存储器,而且它们的指令系统向上兼容,用户可以根据需要选择具 有各种不同外围接口功能、不同封装形式和不同电压范围的芯片;该公司还可以提供 完整的可兼容的开发工具套件和世界范围的现场应用支持, 所以这个系列的微控制器 在市场上极具强劲的竞争力,在全球都可以看到 PIC 微控制器从办公自动化设备、消 耗电子产品、电讯通信、智能仪器仪表、到汽车电子、金融电子、工业控制等不同领 域的广泛应用。PIC 系列微控制器在世界微控制器市场份额排名逐年上升,在 8 位微 控制器市场,已从 1990 年的第 20 位提高到 1996 年的第 5 位,以至成为一种新的 8 位微控制器的世界标准和最有影响力的主流嵌入式控制器。

3.1.1 PIC 系列微控制器硬件结构特点
1.精简指令集计算机(RISC-like---Reduced Instruction Set Computer-like)结构 Microchip 技术公司具有先进的类 RISC 结构的 PIC 系列微控制器的简洁性, 8 为

7

陕西广播电视大学机械制造及其自动化专业毕业设计

位微计算机市场设立了一种事实上的新的性能标准。为了达到独一无二的高速性能, PIC 微控制器采用了小型机设计结构。先进的类 RISC 结构体现在每一条高效率和功 能强大的指令上。三个系列微控器的指令都是单字的宽字位指令:低档、中档和高档 系列的指令位数分别为 12、14 和 16 位,且分别只有 33、35 和 58 条指令,它们向上 兼容其指令系统除了程序分支指令是单字双周期指令外,其它指令都是单周期、单字 指令,在这些指令中,没有功能相交叉的指令,使所有的指令具有简洁性;而一般 CISC(Complex Instruction Set Computer)结构的微控制器通常有 50 到 110 条多字 节多周期的指令。单字节指令提高了软件编码的效率和减少了所需要的程序存储单 元,使系统具有高处理性能和突出性能。另外,由于所用指令数较少和较简洁,编程 任务和调试相对就比较容易,而且学习和实现都非常快。在相同情况上,PIC 微控制 器所需要的编码比一般要少一半,其指令的高效率又可使编码开发时间节约 30%。 (1) 指令流水线结构可以在一个周期内同时完成一条指令的执行和下一条指令 的取指。最大限度地提高了每个内部时钟周期的效率。 (2) 高速的指令执行时间,在 20MHz 时钟情况下达到 200ns,在 25MHz 时可达到 160ns。在单周期内可以对 I/O 口的任一位直接进行位操作。 程序分支指令 CALL、 GOTO 和在 PCL 上的操作需要两个周期的执行时间, 20MHz 在 的情况下为 400ns。 (3) 由于采用宽字指令,在相同情况下,程序量大为减少,形成的代码是一般微 控制器的一半。 2. 哈佛(Harvard)双总线结构 其存储结构是基于哈佛双总线概念, 数据的指令传输总线完全分开以避免出现典 型的普通 CISC 设计中经常出现的处理瓶劲问题。 传统的冯·诺依曼结构的计算机是在同一个存储空间取指令和数据(即普林斯顿 结构),两者不能同时进行,故限制了工作带宽。而在哈佛结构的计算机中,指令和 数据空间是完全分开的。一个用于指令,一个用于数据。由于可以对程序和数据同时 进行访问,所以提高了数据吞吐率。正因为在 PIC 系列微控制器中采用了哈佛双总线 结构,所以与常见的微控制器不同的一点是:程序和数据总线可以采用不同的宽度。 数据总线都是 8 位的,但低档、中档和高档系列的指令总线位数分别为 12、14 和 16 位。图 3 是表示两种不同结构的示意图。
CPU 程序存储 CPU 程序和数据存储 数据存储

冯.诺依曼结构 哈佛结构

图3

两种不同结构的示意图

3.两级指令流水线结构 PIC 系列微控制器的取指和执行采用指令流水线结构(见图 4),当一条指令被执 行时允许下一条指令同时被取出,使得在每个时钟周期可以获得最高效率。 在大多数在大多数微控制器中,取指和指令执行都是顺序进行的。而在指令流水
8

陕西广播电视大学机械制造及其自动化专业毕业设计

线结构中,取指和指令执行在时间上是相互重叠的,所以才可能实现单周期指令。 只有涉及到改变程序计数器 PC Progran Counter) ( 值的程序分支指令 (例如 GOTO、 CALL 或对 PC 写操作)等才需要两个周期。 周期 0 周期 1 周期 2 周期 3 周期 4
取指 1 执行 1 取指 2 执行 2 取指 3 执行 3 取指 4 执行 4

图 4 指令流水线结构示意图 PIC 的结构特点还体现在寄存器组上(见图 5)。所有的寄存器,包括 I/0 口、定 时器和程序计数器等都是采用 RAM 结构形式, 而且都只需要一个周期就可以完成访问 和操作。而大多数其它微控制器都有需要两个以上的周期才能改变寄存器的内容。

INSD TMRO A L U PCL STATUS FSR
W 寄存器

PORTA 其他专用寄存器 通用寄存器 GPR

图5

寄存器组示意图

3.1.2 PIC 系列微控制器技术性能特点
1 高速度 由于 PIC 系列控制器所用的宽字单周期指令、哈佛双总线和 PISC 结构,其数据 吞吐率最高可达 6MIPS(即每秒钟可执行 600 万条指令),这几乎是其它大多数 8 位微 控制器速度的 4 倍。 2 实时执行 对时间要求苛刻的应用,例如电机控制、高速 I/O 或串行数据位流操作等,PIC 系列微控制器可以提供一种新的低成本的解决方案。 利用 PIC 高性能算法处理能力的 实时性可以取代低效率的存储操作和精确度不高的查表法。 设计师还可以用 PIC 微控制器,通过对其编程来取代那些低档的门阵列、PLD、 胶合(G1ue Logic)逻辑和多芯片状态机等设计来进一步开发其高性能价格比的优点, PIC 微控制器除了其价格优势外,设计师还可以得到多方面的可编程灵活性、强有力 的控制器功能和节约空间的诸多好处。 3 低功耗 由于采用全静态 CMOS 设计,电源操作能耗很低,但非常可靠。因为片内有上电
9

陕西广播电视大学机械制造及其自动化专业毕业设计

复位电路、监视定时器电路和 RC 振荡器电路选择等,所以就不需要增加价格较高的 片外支持的功能元器件,从而降低了系统成本和系统功耗。PIC 的小晶片尺寸加上 MICROCHIP 先进的 CMOS 技术使芯片具有很宽的性能范围以及低工作电流(典型值:在 3V,32kHz 时工作电流为 15?A)和极小的待命状态电流(休眠方式 3V 工作情况下小于 1?A)。低电流特性应用于长寿命电池供电的系统是很理想的。 4 用户可选择振荡器 片内集成带有 RC 振荡器的监视定时器,而且引进了“用户可选择振荡器"的新设 计概念,它允许用户在 4 种从直流到 20MHZ(200ns)频率范围内选择一种振荡形式让 芯片执行指令, 以优化系统的功耗。 4 种振荡方式是: 型—低成本的 RC 振荡器, 这 RC XT 型一标准的石英晶体振荡器, 型一高速石英晶体振荡器和 LP 型—低功耗低频石 HS 英晶体振荡器。 5 程序代码加密保护 具有程度代码加密保护功能,可通过对片内 EPROM 保密设置进行加密。 6 功能强大的 I/O 性能 PIC 系列微控制器的一个特点就是其输入输出功能十分强大。芯片可以在一个指 令周期内(200ns)对任何寄存器(包括 I/O 寄存器)中的任何一位完成位置 I、位清零 和位测试功能。所以 PIC 系列芯片与外部电路和接口效率非常高,可以用来作为高速 I/O 控制器。PIC 的 I/O 口有多种功能,通过软件配置,每 2 个引脚都可以对输入 和输出分别分时多路复用,或者可以被编程呈高阻状态,例如可以支持用普通总线进 行多片配置。数据输入线允许有 25mA 的倒灌电流,可以直接驱动 LED。 7 可编程的特殊外围接口性 (1)双 lO 位/20KHZ,8 位/80KHZ 的 PWM(脉宽调制)接口; (2)可多达 8 个通道 8 位、26?s SAR A/D 转换器; (3)16 通道 16 位单斜率积分 A/D 转换器; (4)双 5mV 典型偏置的比较器; (5)8 位 D/A 转换器; (6)内部集成的温度传感器; (7)内部集成的基准电压源; (8)内部集成的振荡器; (9)32*4 点阵多路复用的 LCD 驱动器; (10)8/9 位通用异步串行接收发送器 USART(串行通信接口); (11)用电池供电的实时时钟; (12)双 1 6 位 200ns 捕捉寄存器; (13)双 1 6 位 200ns 比较输出接口; (14)并行从动(SLAVE)端口; (15)64 字节 EEPROM 数据存储器。 8 中断特性 PIC16CXX 和 PIC17CXX 有中断功能。根据要求可以选用多个不同数目的内容和外 部中断源。中断控制可以进行全局控制和分别控制。外围接口的中断优先级用软件确 定。可以用几个不同的中断源激活处理从休眠状态中苏醒。有固定的中断开销时间, 同步中断是 3 个周期(Tcy)。

3.1.3PIC16F74 单片机

10

陕西广播电视大学机械制造及其自动化专业毕业设计

3.1.3.1 特点 一、高性能 RISC 结构 CPU ·精简指令集,仅 35 条单字节指令,易学易用 ·除地址分支跳转指令(GOTO、CALL)为双周期指令,其余皆为单周期指令 ·执行速度 时钟振荡 指令周期 40HZ 1MHZ 4MHZ 101VIHZ 20MHZ ·八级硬件堆栈 ·多种硬件中断 ·直接、间接、相对三种寻址方式 二、功能部件特性 ·带 8 位 A/D 转换输入 ·高驱动电流,I/O 脚可直接驱动数码管(LED)显示 -每个 I/O 引脚最大拉电流 25MA -每个 I/O 引脚最大灌电流 20MA ·双向可独立编程设置 I/0 引脚 ·8 位定时器/计数器 TMR0,带 8 位预分频 ·有 1~2 路捕抓输入/比较输出/PWM 输出(CCP) ·16 位定时器/计数器 TMRl,睡眠中仍可计数 ·8 位定时器/计数器 TMR2,带有 8 位的周期寄存器及预分频和后分频 ·并行口操作 ·同步串行 I2C/SPI 总线操作 ·同步通讯接 SCI/USART 操作 ·flagsh 存储器。 三、微控制器特性 . ·内置上电复位电路(POR) ·上电定时器,保障工作电压的稳定建立 ·振荡定时器,保障振荡的稳定建立 ·断电复位锁定 ·内置自振式(RC 振荡)看门狗 ·程序保密位,可防程序代码的非法拷贝 ·四种可选振荡方式 一低成本阻容:RC
11

100us 4us 1us 400ns 200ns

陕西广播电视大学机械制造及其自动化专业毕业设计

一标准晶体/陶瓷:XT 一高速晶体/陶瓷:HS 一低频晶体:LP 四、CMOS 工艺特性 ·低功耗 <2MA@5V,4MHZ <15UA@3V,32KHZ <1UA 低功耗 Sleep 模式下 ·全静态设计 ·宽工作电压:2.OV~6.OV ·宽工作温度范围: 一商用级:O℃~+70℃ 一工业级:一 40℃~+85℃ 一汽车级:一 40℃~+125℃ PIC16F74 是片内带 A/D 的芯片所以它在测量仪器表、工业控制、汽车电子、家 用电器及通讯等众多方面应用广泛。 而它所拥有的高性能, CCP 模块、 如 并行口、 12C /SPI、SCI 通讯等等使它能适合于各种应用要求。 3.1.3.2 管脚说明

图 6 PICl6F74 的管脚图 表1
引脚名

管脚功能
I/O 特性 电平 功能

OSCI/CLKIN
OSC2/CLKOUT

输入 输出

COMS

振荡输入脚 震荡输出脚

12

陕西广播电视大学机械制造及其自动化专业毕业设计
MCLR RAO/ANO RA1/AN1 RA2/AN2 RA3/AN3/VREF RA4/TOCK1 RA5/AN4/SS 输入 I/O I/O I/O I/O I/O I/O 斯密特输入 TTL TTL TTL TTL 斯密特输入 TTL 复位输入脚,低电平有效 PORTA 数字 I/O 口,双向可编程,并可做 A/D 输入 A/D 输入通道 0 A/D 输入通道 1 A/D 输入通道 2 A/D 输入通道 3 可作为 TMRO 外部时钟输入 亦可作 A/D 输入通道 4,或同步串行口的从属器选择输入 PORTB 口,双向可编程,弱上位,外部中断输入 RBO/INT RB1 RB2 RB3 RB4 RB5 RB6 RB7 RCO/T10SI/T1CK1 RC1/T10ST/CCP2 RC2/CCP1 RC3/SCK/SCL RC4/SDI/SDA RC5/SD0 RC6/TX/CK RC7/RX/DT RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O TTL/斯密特 TTL TTL TTL TTL TTL TTL TTL PORTC 口,双向可编程 斯密特输入 斯密特输入 斯密特输入 斯密特输入 斯密特输入 斯密特输入 斯密特输入 斯密特输入 斯密特/TTL 斯密特/TTL 斯密特/TTL 斯密特/TTL 斯密特/TTL 斯密特/TTL 斯密特/TTL 斯密特/TTL PORTE 口,双向可编程,亦可作为并行楼的控制线或 A/D 输入 REO/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 VSS VDD NC I/O I/O I/O 斯密特/TTL 斯密特/TTL 斯密特/TTL RD:并行口读信号线或 A/D 输入通道 5 WR:并行口写信号线或 A/D 输入通道 6 CS:并行口片选线或/D 输入通道 7 地 电源 未用 亦可作为 TIMER1 震荡输入、TIMER1 的时钟输入 亦可作为 TIMER1 震荡输入、CCP2 输入输出 亦可作为 CCP1 输入输出 亦可作为同步串行通讯时钟 亦可作为 SPI 通讯之数据输入线或 I2C 数据线 亦可作为 SPI 通讯之数据输出 亦可作为异步发送线或 SCI 同步传输的时钟线 亦可作为异步发送线或 SCI 同步传输的数据线 PORTD 口,双向可编程,亦可作为并行口,作为并行口是 TTL 输入,作为一般 I/O 口时为斯密特输入 具有电平变化中断功能 具有电平变化中断功能 具有电平变化中断功能 具有电平变化中断功能

3.1.3.3 工作寄存器 一、中断控制寄存器 INTCON GIE PEIE TOIE INTE RBIE TOIF INTF RBIF
13

陕西广播电视大学机械制造及其自动化专业毕业设计

RBIF:PORTB 口中断标志位,需由软件清零 1=RB<7:4>有电平变化、 0=RB<7:4>无电平变化 INTF:外部 INF 中断标志位,需由软件清零 1=INT 脚上有中断触发信号 0=INT 脚上无中断触发信号 TOIF:TIMERO 溢出中断位,需由软件清零 1=TIMERO 溢出中断 0=TIHERO 未发生溢出 RBIE:PORTB 中断使能位 1=使能 PORTB 中断 0=屏蔽 PORTB 中断 INTE:中断使能位 l=使能 INT 中断 0=屏蔽 INT 中断 TOIE:TIMERO 中断使能位 1=使能 TIMERO 中断 0=屏蔽 TIMERO 中断 PEIE:外设中断使能位 1=使能所有未屏蔽的外设中断 0=屏蔽所有外设中断 GIE:中断总使能位 1=使能所有未屏蔽中断 0=屏蔽所有中断 二、 数据存储器的组织结构 由于数据存储器被集成在片内,可以直接用内部总线传送信息,所以它们都是以 寄存器方式工作和寻址。由于包括 I/0 端口在内的 80 个寻址的 8 位寄存器组成的寄 存器组,通过 8 位的片内数据总线与算术逻辑运算单元 ALU 相连。 寄存器组可以分成两大类:通用寄存器和专用寄存器。通用寄存器用于指令执行 中存放数据或控制信息;专用寄存器 SFR(Special Function Register)包括定时器、 寄存器、程序计算器 PC(Program Counter)、状态寄存器 SATAUS、I/0 寄存器(端口) 和(寄存器)组选择寄存器 FSR(File Select Register)等。 另外还有用于 I/O 口配制和预分频选择的专用寄存器。 (1)通用寄存器组通过(寄存器)组选择寄存器 FSR 可对寄存器组进行直接或 间接访问。 (2)专用寄存器 它又可分成两类:一类用于 CPU 核心操作,另一类用于控制

14

陕西广播电视大学机械制造及其自动化专业毕业设计

外围功能芯片操作。 三、状态寄存器 STATUS(F3) 状态寄存器是一个 8 位寄存器,实际上在这个系列中目前只用了 7 位。这个寄存 器用于提供当前 ALU 指令操作结果所引起的算术状态、 复位状态和适当程序存储器大 于 512 个字时的页面地址预选等变化的信息位。状态寄存器各位安排如下所示: PA2 PAl PAO TO PD Z DC C 其各位功能如下所示: (1)C(D0)---(Carry/Borrow)进位/借位标志位 对加法指令 ADDWF 和 ADDLW,加法运算结果的最高有效位产生进位时,该位被置 1 元进位时清零。但对减法指令 SUBWF,减法运算结果产生借位时,该位被清零,而 无借位时被置 l。这一点与大多数微处理机的情况不一样。 对循环移位指令 RRF 和 RLF,该位将与源寄存器的数据一起循环移位。 (2)DC(D)---(Di gi t Carry/Borrow)半进位/借位标志位 对加法指令 ADDWF 和 ADDLW,运算结果中的低 4 位向高 4 位有进位,被置 l,无 进位清零。对减法指令的借位极性能则刚好相反。 (3)Z(D2)---(Zero)全零标志位 当算术运算或逻辑运算的结果为 O 时,该位被置 l,否则为 O。 (4)PD(D3)---(Power Down)低功耗标志位 芯片上电后或执行 CLRWDT 指令后,该位被置 l;当执行 SLEEP 指令后,该位被 清零。 (5)TO(D4)---(Time Out)定时时间到标志位 芯片上电后或执行 CLRWDT 和 SLEEP 指令后,该位被置 l;当监视定时器 WDT 定时 时间到时,该位被清零。 (6)PAl、PAO(D6、D5)---(Program Page Pre-select)程序存储器页面地址预选位, 对不同型号的芯片它们的定义不一样。 对 PIC16C56/57,片内有 4 页(2K 个字)程序存储器,需要 2 位页面预选地址,故 PAl 和 PAO 两位都作为页面预选地址。当这两位分别为 00、01、10 和平共处 l 时, 就分别选中 O、l、2 和 3 页程序存储器,其对应的地址范围是 000h---1FFh、 200h---3FFh、400h---5FFh 和 600h---7FFh。 (7)PA2(D7)---保留位未用 四、选择寄存器 ORTION 选择寄存器 OPTION 不属于数据存储器,是一个用来设置 TMRO/WDT 预分频值、外 部 INT 中断和 TMRO 存放各种控制位的只写寄存器,本身是一个 8 位寄存器,但是只 用了其中的低 6 位。

15

陕西广播电视大学机械制造及其自动化专业毕业设计

OPTION 寄存器的设置是通过执行 ORTION 指令,把工作寄存器 W 中的数据加载到 OPTION 寄存器中。复位操作将使 OPTION 寄存器低 6 位全部为“l"。 选择寄存器 OPTION —— —— TOCS TOSE PSA PS2 PS PSO 其中各位意见如下: (1)PS2、PS1、PS0(D2、D1、D0)---(Perscaler)预分频位
PS2 0 0 0 0 PS1 PS0 TMRO 分辨率 WDT 分辨率 0 0 1 1 0 1 0 1 1:2 1:4 1:8 1:16 1:1 1:2 1:4 1:8 PS2 1 1 1 1 PS1 PS0 TMRO 分辨率 WDT 分辨率 0 0 1 1 0 1 0 1 1:32 1:64 1:128 1:256 1:16 1:32 1:64 1:128

(2)PSA(D3)---(Perscaler Assignment)预分频器分配位 PSA=O PSA=I 预分频器指定分配为 TMRO 用; 预分频器指定分配为 WDT 用。

(3)TOSE(D4)---(TMRO source edge select)TMRO 源触发沿选择位 TOSE=O 当 TOCK1 引脚上出现上升沿对计数器加 l; TOSE=I 当 TOCK1 引脚上出现下降沿肘计数器加 l. (4)TOSE(D5)---(TMRO clock source)TMRO 时钟信号源选择位 TOSE=0 用内部指令周期时钟(CLKOUT) TOSE=1 用 TOCKl 引脚上外部输入的脉冲。 (5)D7、D6 位---保留位未用 五、 间接寻址 INDF 和 FSR 寄存器 INDF 间址寄存器不是一个物理寄存器,它被用来协同寄存器 FSR 实现间接寻址 操作,实际有效地址是寄存器 FSR 的内容。对 INDF 寄存器本身进行间接寻址访问, 将读出 FSR 寄存器的内容。 FSR 寄存器在 PIC16C57 中是 7 位寄存器,其低 5 位用来存储选择 32 个数据存储 单元的地址 00h---1Fh.在 PICl6C57 中, 由于片内有 128 个存储单元, 分成 4 个 “体”, 每个“体"有 32 个单元。FSR 的高位 D6 和 D5 用来选择不同的体.而体 Bankl、Bank2、 Bank3 的低位地址的 l 6 个寄存器都被跌射到 BankO,即 4 个体的低位地址的 16 个逻 辑地址的寄存器共用 16 个物理寄存器,这就是说只能对 80 个物理寄存器进行访问。 其关系如下:

16

陕西广播电视大学机械制造及其自动化专业毕业设计

FSR

D6 0 0 1 1

D5 0 1 0 1

存储体 Bank0 Bank1 Bank2 Bank3

逻辑地址 00h~1Fh 20h~3Fh 40h~5Fh 60h~7Fh

物理寄存器地址 00h~1Fh 00h~1Fh 00h~1Fh 00h~1Fh 10h~1Fh 30h~3Fh 50h~5Fh 70h~7Fh

六、程序计数器 PC 程序计数器 PC 可以产生最多对 2K*12 位片内 EPROM/OTP ROM 存储单元进行寻址 的地址信号。PICl6C57/58 芯片的程序计数器 PC 宽度为 11 位,堆栈宽度为 11 位。 芯片复位后,程序计数器 PC 的所有位都被置“1"。除了以下几种情况指令执行的结 果会改变 PC 本身的地址值外,其他情况都随着指令的执行会自动加 l。 (1)“GOTO"无条件转移指令可以直接改变 PC 的低 9 位地址(D8---D0)值。当程序 计数器的计数值大于 512 个字时,PC 的高 2 位 D10 和 D9 将用状态寄存器 STATUS 中的 页面选择位 PA1 和 PAO(D6 和 D5 位)来加载作为高位地址。由此“GOTO"’可以跳到任 意单元。 (2)“CALL"调用指令可直接把低位装入 PC,同时对第 9 位清零。PC 的值加 l 后 指向返回的地址,再把断点地址压栈保护。当程序计数器大于 512 个字时,PC 的高 2 位 D10t 和 D9 将用状态寄存器 STATUS 中的页面选择位 PA1 和 PAO(D6 和 D5 位)来加载作 为高位地址。 (3)“RETLW',返回指令的功能是把堆栈栈顶的数据(即断口地址)送入程序计数 器 PC,以确保正确保证返回调用的主程序。 (4)如果任何一条指令中 PC 被作为目标操作数,那么计算的 8 位结果将被送入 PC 的低 8 位,PC 的低 8 位,PC 的第 9 位将被清零。PC 的高 2 位 D10 和 D9 交用状态寄 存器 STATUS 中的页面选择位 PA1 和 PAO(D6 和 D5 位)来加载作为高位地址。 七、工作寄存器 W W 寄存器是一个 8 位的用于 ALU 运算的工作寄存器,相当于一般微处理机中的 A 累加器,但它是一个不可寻址的寄存器。 八、I/O 端口控制寄存器 TRISX 这是一个只写寄存器。通过执行 TRIS f 指令可以用工作寄存器 W 的内容对输出驱 动控制寄存器加载。当写入 TRIS 寄存器的位为“l"时,该位就为输入口,加在相应 的输出驱动器上将使之呈高阻状态;为“O"时,即为输出口,将可使输出数据锁存在 被选中的引脚上。

3.2 温度传感器 DS18B20 一、DS18B20 的特点
DS18B20 是 DALLAS 公司生产的一线式数字温度传感器,具有 3 引脚 TO-92 小体 积封装形式;温度测量范围为-55℃~+125℃,可编程为 9 位~l 2 位 A/D 转换精度,
17

陕西广播电视大学机械制造及其自动化专业毕业设计

测温分辨率可达低值 0.5℃,被测温度用符号扩展的 l 6 位数字量方式串行输出;其 工作电源既可在远端引入,也可采用寄生电源方式产生;多个 DSl8B20 可以并联到 3 根或 2 根线上,CPU 只需一根端口线就能与诸多 DS18B20 通信,占用微处理器的端口 较少,可节省大量的引线和逻辑电路。以上特点使 DS18B20 非常适用于远距离多点温 度检测系统。 二、DS18B20 的内部结构 DS18B20 内部结构如图 7 所示,主要由 4 部分组成:64 位 ROM、温度传感器、非 挥发的温度报警触发器 TH 和 TL、配置寄存器。DSl8B20 的管脚排列如图 8 所示,DQ 为数字信号输入/输出端;GND 为电源地;VDD 为外接供电电源输入端(在寄生电源接 线方式时接地)。 ROM 中的 64 位序列号是出厂前被光刻好的,它可以看作是该 DS18B20 的地址序 列码,每个 DS18B20 的 64 位序列号均不相同。64 位 ROM 的排的循环冗余校验码 (CRC=X8+X5+X4+1)。ROM 的作用是使每一个 DS18B20 都各不相同,这样就可以实现一 根总线上挂接多个 DS18B20 的目的。

DQ 64位ROM和一线端口

存储和控制逻辑 INTERNAL VDD 温度传感器 高速 暂存器 高温触发器TH 低温触发器TL 配置寄存器 8位CRC生成器

VDD

供电 方式选择

图 7 DS18B20 的内部结构

18

陕西广播电视大学机械制造及其自动化专业毕业设计

DALLAS DS18B20
1 2 3

1

2

3

DS18B20 T0-92封装底视图 NC NC VDD VQ 1 2 3 4 8 7 6 5 NC NC NC GND

DS18B20Z8脚SOIC封装 GND DQ VDS

图 8 DSl8B20 的管脚排列 三、引脚说明 表 2: 16 脚 SSOP PR35 符号 说明 9 8 7 四、测温操作 DS18B20 通过一种片上温度测量技术来测量温度。图 9 示出了温度测量电路的方 框图。 1 2 3 GND DQ VDD 接地 数据输入/输出脚。对于单线操作:漏极开路 VDD

斜坡累加器
LSB置位/清O

预置 低温度系数振荡器 计数器

比较 预置

=0

增加

温度寄存器

高温度系数振荡器

计数器
=0

停止

图 9 温度传感器测量电路 DS18B20 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数
19

陕西广播电视大学机械制造及其自动化专业毕业设计

器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。 计数器 被预置到对应于-55℃的一个值。如果计数器在门周期结束前到达 O,则温度寄存器 (同样被预置到-55℃)的值增加,表明所测温度大于-55℃。 同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器 电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到 O,如果门周期 仍未结束,将重复这一过程。 斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨 力。这是通过改变计数器对温度每增加一度所需计数的的值来实现的。因此,要想获 得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。 五、CRC 发生器 DS18B20 中有 8 位 CRC 存储在 64 位 ROM 的最高有效字节中。总线控制器可以用 64 位 ROM 中的前 56 位计算出一个 CRC 值,再用这个和存储在 DSl820 中的值进行比 较,以确定 ROM 数据是否被总线控制器接收无误。CRC 计算等式如下: CRC=X8+X5+X4+1 DS18BV20 同样用上面的公式产生一个 8 位 CRC 值,把这个值提供给总线控制器 用来校验传输的数据。在任何使用 CRC 进行数据传输校验的情况下,总线控制器必须 用上面的公式计算出一个 CRC 值,和存储在 DS18B20 的 64 位 ROM 中的值或 DS1820 内部计算出的 8 位 CRC 值(当读暂存器时,做为第 9 个字节读出来)进行比较。CRC 值 的比较以及是否进行下一步操作完全由总线控制器决定。当在 DS1820 中存储的或由 其计算的 CRC 值和总线控制器计算的值不相符时,DS1820 内部并没有一个能阻止命 令序列进行的电路。 单线 CRC 可以用一个由移位寄存器和 XOR 门构成的多项式发生器来产生,见图 l 0.
单线CRC码 XOR <MSB> XOR LSB 输入

XOR

图 1 O 单线 CRC 移位寄存器的各位都被初始化为 0。然后从系列编号的最低有效位开始,一次一 位移入寄存器,8 位系列编码都进入以后,序列号再进入,48 位序列号都进入后,移 位寄存器中就存储了 CRC 值。移入 8 位 CRC 会使移位寄存器复 O。 六、4DSl8820 与单片机的典型接口设计 图 5 以 MCS 一 5 l 系列单片机为例,画出了 DS18B20 与微处理器的典型连接。图 11 中 DS18B20 采用寄生电源方式,其 VDD 和 GND 端均接地。

20

陕西广播电视大学机械制造及其自动化专业毕业设计

RC4 PIC16F74

图 11DSl8B20 与微处理器的典型连接图

3.3 无线模块 PTR4000
一、特点 PTR4000 具有全球开放的 2.4GHz 频段,125 个频道,能满足多频及跳频需要,其 最高速率为 1Mbps,具有高数据吞吐量,内置硬件 CRC 纠检错,发射功率、工作频率 等所有工作参数全部通过软件设置完成,其供电压为 1.9-3.6V,能满足低功耗的设 计要求。 一、基本电气特性 表3 参数 工作频率 调制方式 稳频方式 最大发射功率 接收灵敏度 最高通信速率 工作电压 发射电流(峰值) 接收电流(峰值) 掉电模式功耗 二、引脚说明 数值 2400MHZ~2524MHZ GMSK PLL OdB -90Db l000Kbit/s 1.9~3.6v 10mA 18mA luA

21

陕西广播电视大学机械制造及其自动化专业毕业设计
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

DATA GND CLK1 GND DR1 CS DOUT2 GND CLK2 GND DR2 CE PWR GND VDD VDD

图 12 PTR4000 的管脚图 表4 管脚 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 名称 DATA GND CLK1 GND DR1 CS DOUT2GND GND CLK2 GND DR2 CE PWR GND VDD VDD 功能 通道 l 数据输入/输出脚,接单片机 I/O 电源地 通道 1 时钟 电源地 通道 1 中断输出 工作模式选择,选择芯片为配置模式还是发者/接收模式 通道 2 数据输入/输出脚,接单片机 I/O 电源地 通道 2 时钟 电源地 通道 2 中断输出 使能,使芯片进入工作模式 Powredown 模式 电源地 Vcc,正电源 1.9-3.6v 输入 Vcc,正电源 1.9-3.6v 输入 I I O I I O I I O I O 方向 I/O

四、硬件接口 l、编程配置接口 该接口由 CE、CS、PWR 组成,控制 PTR4000 的四种工作模式:配置模式,发射/接收 模式,待机模式,掉电模式。配置数据由 DATA、CLKI 输入,各种模式的控制见表 5: 模式 工作模式(发射/接收) 配置模式 待机模式 掉电模式 PWR 1 1 1 0
22

CE 1 0 0 X

CS 0 1 0 X

陕西广播电视大学机械制造及其自动化专业毕业设计

说明: (1)待机模式下功耗约为 12uA,此时发射/接收电路均关闭,只有时钟电路工作 (2)掉电模式下功耗约为 l uA,此时所有电路关闭,进入最省电状态 (3)在待机和掉电模式下 PTR4000 均不能接收、发射数据 2、通道 l 接口 CLKl、DATA、DRl 为三线多功能接口: (1)在配置模式下, 单片机通过通道 l 的 CLKl、 DATA 线配置 PTR4000 的工作参数; (2)在发射模式下,单片机通过通道 l 的 CLKl、DATA 发送数据; (3)在接收模式下,当接收到与本机地址一致时,通过 DRl 输出中断指示(高有 效),单片机通过 CLKl、DATA 接受数据。 3、通道 2 接口 保留未用 五、PTR4000 的配置 PTR4000 上电以后首先必须单片机对其进行配置;单片机首先将按照模式控制真 值表将 PTR4000 设为配置模式;然后单片机通过通道 l 的 CLKl、DATA 将 15byte 的配 置数据送入 PTR4000 模块,完成配置(见表 6) 位的位置 119:112 功 能 配 置 111:104 103:64 63:24 23:18 17 16 15 基 本 配 置 14 13 12:10 9:8 7:1 0 位数 8 8 40 40 6 1 1 1 1 1 3 2 7 1 名称 DATA2-W DATA1-W ADDR2 ADDR1 ADDR-W CRC-L CRC-EN RX2-EN CM REDR-SB XO-F RF-PWP RF-CH# RXEN 功能 通道 2 的数据长度 通道 1 的数据长度 通道 2 的地址 通道 1 的地址 地址的位数 选择 8 位或 16 位的 CRC CRC 使能 允许通道 2 通信模式 通信速率设置 晶振频率设置 发射功率设置 频点设置 发射/接收选择

配置字一共为 120bit,在 CLK1 的上升沿开始最高位(MSB)移入 PTR4000.在 CS 下降沿后,模块内部更新所有内部设置,即新的配置字在 CS 的下降沿后开始生效。 上电后第一次配置时必须将 120bit 配置字全部移入; 而后当仅需要 lbit 即可完成收 /发模式的切换。 六、PTR4000 与单片机的接口

23

陕西广播电视大学机械制造及其自动化专业毕业设计

图 13 与单片机的接口电路

3.4 串行接口
为实现系统与上位机之间的串行通信,在硬件结构上采用了单电源转换芯片 ICL232,ICL232 是一个双组驱动/接收器,它内含一个电容性电压发生器,可在单 5V 电源供电时提供 EIA/TIA-232-E 电平,如图 l 4 所示。
VCC U5
16

VCC

C1+

1

C7 10u +
+9V 2 6

C8 10u

+

V+ V-

C1C2+

3 4

C9 10u +

接上位机

RIN TOUT

15 13 14 8 7

VSS RI1 TO1 RI2 TO2
ICL232

C2RO1 TI1 RO2 TI2

5 12 11 9 10

C10 10u

+

RXD TXD

图 14 串行接口电路 该芯片的第 2 脚输出大约+9V 左右的电压,该条件在基准电压的获取上将使用。

24

陕西广播电视大学机械制造及其自动化专业毕业设计

第四章技术要点

4.1 低功耗设计
本设计属于嵌入式系统,是由电池来供给电能的,因此低能耗的设计是非常重要 的。减少电能消耗不仅能延长电池的寿命、降低用户更换电池的次数,而且能带来提 高系统性能与降低系统开销的好处,甚至能起到保护环境的作用。在此处阐明了与能 耗有关的几个参数和几种实现低能耗的措施, 简要的介绍了何立民教授提出的理想低 功耗设计思想——零功耗设计,讲述了本设计中是如何实现低功耗的。

4.1.1 实现低功耗的措施
为了满足低能耗这一特性,必须在设计的每一部分及每一阶段减少能量消耗。首 先,先描述一下本系统设计依据的一个能量等式: P=V2???C+Pstatic (1)

式中,V2???C 是动态能量消耗,大体上是由设计者控制的;Pstatic 与集成电路的 静态电流有关,取决于硬模的特性、温度及供给的电压:V 为电压;?是操作频率:C 是电容负载。从分析式(1)可看出,能量消耗与电压有平方的关系。因此,只需轻微 降低电压就可以显著地减少能量消耗。同样,电能消耗与操作频率成比例,当操作频 率逐渐向 O 逼近时,能量消耗的动态部分也向 O 靠近。正是由于这个原因,选择处理 器的速度最好与相应的应用所需要的速度相当。 否则如果采用的频率太高将造成极大 的浪费,电池的寿命也将大大的缩短。与此同时,CPU 时钟速度的良好管理也能节省 不少的能量。 如果为了适应一个敏感性进程而把你的 CPU 的时钟固定在一个很高的值 上,当系统执行另一个敏感性不强的进程时将损失大量的能量。最后,电容及元件的 选择对电能的消耗也有影响。 综上所述,可引入以下 4 个主要的优化措施。 1、动态电源管理 动态电源管理(Dynamic Power Management,DMP)技术有选择的把闲置的系统成 分置于低能状态,从而有效地利用电能。DPM 是建立在假设系统及成分的工作负载各 不相同,且工作负载的变化能准确地被预测出来的基础上的。一个电源管理系统包含 一个电源管理者(Power Manager),它能够基于对工作负载的观察来完成控制策略。 该策略可采用不同方法来实现,如计数器、硬件控制器或软件控制。 2、动态电压缩放 动态电压缩放(Dynamic Voltage Scaling,DVS)就是允许电压调节历程(Voltage

25

陕西广播电视大学机械制造及其自动化专业毕业设计

Scheduler Routine)在运行时改变 CPU 的操作电压。 电压调节历程首先分析系统状态, 然后决定最佳的目标电压。 另一个减少能耗的渠道是降低时钟频率。虽然这种方法可减少电能消耗,但并不 能显著地改变能量消耗,因为能量消耗与执行时间成正比。在降低电压的同时改变时 钟频率可改变 CPU 的单操作耗能量,减少完成特定数量工作所需的能量。 3、低能耗硬件设计 前面两种技术主要着眼于提高系统能源的利用率, 即动态电源管理和动态电压缩 放只能改进系统的使用。我们有必要在这个基础上,采用特定的方法来实现系统硬件 和软件的节能设计。首先,介绍硬件的节能设计方法。可采用现成的产品,如附带

MMTTM 的 166MHZ 和 266MHZ 低能耗奔腾处理器。在奔腾处理器家族中这些处理器耗能
量少,它们为嵌入式系统设计提供了简化而低开销的热管理方案,当核心电压为 1.9V,I/O 电压为 2.5V,系统在 266MHZ 时的最大电能消耗仅仅是 7.6W。 除了处理器外,我们还需要一些数字逻辑来将处理器与其他子系统组合在一起。 现代 CMOS 离散逻辑家庭拥有很低的动态电能消耗和几乎可忽略的静态消耗与速度不 可两全其美。74VHC 系列是个不错的选择。它不仅耗能少,而且能满足一般的微处理 器的应用. 4、低能耗软件设计 在嵌入式系统的设计中,人们往往会认为只有硬件消耗能量。然而,这就好比我 们假设在开车时只有汽车消耗汽油,而不是司机。在基于微处理器、微控制器的系统 中,软件起到了应到硬件活动的主导作用。也就是说,软件对系统的能量消耗有很大 的影响。直到最近,还没有有效的且精确的方法可用来评估软件设计对能量消耗所起 的效应,我们就无法对软件进行优,进而减少电能消耗。 引起 CPU 电能消耗的众多因素中,至少有两个受软件的影响极大。在嵌入式系统 的软件设计中,我们主要考虑这两个因素:存储系统与系统总线。由存储系统引起的 能耗可引入代码压缩来解决。至于由系统总线引起的能耗,可根据与每一总线相连接 的模块数及总线路径的长度,在一个指令处理系统中的总线一般具有较高的装载容 量。在这些总线上的转换动作,在很大程度上依赖于软件。指令总线上的转换是由将 要执行的操作指令的顺序决定的。与此类似,地址总线上的转换是由数据和指令存取 的顺序决定的。这两个效果可在编译时计算出来。但在编译时对数据相关的转换进行 预测就要难得多,因为程序的输入数据多数是在执行时才给出的。

4.1.2 嵌入式系统中的零功耗设计
一、 零功耗系统设计的基本概念 一个电子系统要运行就会有功耗。如果系统运行时没有任何功耗浪费,那么它的

1.系统中的理想功耗

26

陕西广播电视大学机械制造及其自动化专业毕业设计

功耗就是系统的理想功耗。 在一个嵌入式应用系统中, 由于普遍存在 CPU 高速运行功能和有限任务处理要求 的巨大差异,会形成系统在时间与空间上巨大的无效操作。如果在系统运行中,所有 时间、空间上的无效操作都没有功耗,那么系统便处于理想功耗运行之下。 2.应用系统中的有效操作时空占空比 如果将系统运行中,所有时间、空间上的有效操作和无效操作采用时空占空比来 量化描述,那么,有效操作占空比定义为:有效操作与系统全部运行操作之比。在一 个具体应用系统中,有效操作的时空占空比有:宏观时域占空比、宏观区域占空比、 微观时域占空比和微观区域占空比。 3.高谐小量时空占空比与零功耗设计 在嵌入式应用系统中,CPU 高速处理能力与实际任务操作状态以及系统中的微观 静、动态的巨大差异,导致大量无谓等待状态,形成有效操作的时、空占空比现象。 上述 4 类占空比现象,在许多嵌入式应用系统中都会存在,而且这 4 类占空比形成乘 积效应。经研究计算可发现一个惊人的现状,即在一个嵌入式应尉系统中,有效操作 只是全部运行操作的高谐小量。这一特点是嵌入式系统零功耗设计的基础。零功耗系 统按照有效操作时空占空比实行精细的功耗管理,非有效操作期间没有功耗,从而使 系统功耗与原来相比达到趋于零的效果。 在不少实际的嵌入式应用系统中, 虽然有效操作时空占空比不会是但一般都会有 O.1%的量级。如果能按照系统有效操作时空占空比实施精细的功耗管理,使无效操 作期间没有功耗,就可实现系统的零功耗。 零功耗是一个工程概念。零功耗系统是指该系统中没有任何功耗浪费。因此,零 功耗系统设计的基本要求如下: (1) (2) (3) 系统中所有的电路单元都具有功耗管理功能,即该电路单元在非有效操作期 间都能被关断(没有功耗)。 系统具有按有效操作时空占空比实施精细功耗管理的能力,能做到“多干多 吃、少干少吃、不干不吃、谁干谁吃“的系统功耗分配。 对于系统无法企及的微观有效操作时空占空比的功耗管理,要求由电路静、动 特性来满足功耗分配,即电路动态过程有功耗,电路静态时没有功耗。 二、零功耗系统设计的技术基础 零功耗系统设计的核心技术, 是按系统中有效操作时空占空比来实现按需分配的 功耗管理。不仅实现宏观有效操作时空占空比的功耗管理,还要实现微观有效操作时 空占空比的功耗管理。因此,实现零功耗管理必须有相应的技术基础,这就是 CMOS 工艺的电路基础、嵌入式系统实时的智能化控制以及具有功耗管理功能的外围器件。 这些技术基础可以满足零功耗系统设计的三个基本要求。 三、零功耗系统设计基本内容 按照最大静态化设计的基本原则, 零功耗系统设计必须有最小量有效操作时空占

27

陕西广播电视大学机械制造及其自动化专业毕业设计

空比的任务规划,设计出相应的硬件支持电路,并实现按有效操作时空占空比的功耗 管理软件支持。因此,零功耗系统设计贯穿了应用系统设计的全过程。 四、零功耗系统与最小功耗系统设计 . 零功耗系统是基于功耗管理的低功耗系统, 但只有零功耗系统设计并不能实现系 统的最小功耗。因为在实际系统中,有效操作时系统的功耗过大以及非有效操作时系 统的功耗远不为零,都会影响实际系统的最小功耗水平;而降低系统有效操作和非有 效操作时空中的功耗水平,属于传统的低功耗设计技术。它是根据电路功耗特性参数 来实现满足低功耗设计要求, 在很多情况下并没有功耗管理的参与。 例如, 根据 CMOS 电路动态功耗特性,其动态功耗与供电电压、变换频率、负载电容等参数有关。降低 系统供电电压,降低时钟频率,减少硬件电路设计制作时的分布电容等,这样可以减 少有效操作电路中的功耗水平;减少 CMOS 电路的静态泄漏电流的措施,则可降低非 有效操作时空电路上的功耗。只有充分实施了传统的低功耗设计和零功耗设计,才能 获得系统的最小功耗。 综上所述,零功耗系统是一种工程概念。在这种系统中没有功耗浪费,所必需的 系统功耗为传统电路功耗的高谐小量。零功耗系统设计是基于 CMOS 数字电路静、动 态功耗特性的最大静态化的功耗管理设计。在嵌入式应用系统中,按系统有效操作的 时空占空比,实现按需供给的功耗管理能最有效地、大幅度地降低系统功耗。对系统 实现低功耗设计与零功耗设计可实现系统的最小功耗一微功耗。 系统的微功耗以及便 携化,使系统供电变得十分灵活与多样化,从而使传统的系统电源设计转向系统供电 设计。

4.1.3 本设计中的低功耗技术
本设计的低功耗设计贯穿整个设计的方方面面。首先是 CPU 的选择上,PIC 系列 的 CPU 具有较宽的操作电压(2.O~5.5V),四种可选振荡方式:低成本阻容(RC), 标准晶体/陶瓷(XT),高速晶体/陶瓷(HS),低频晶体(LP)。在选择合适的电压和晶 振的情况下,其功耗可以降到微安级(如 SLEEP 模式下,功耗只为 1?A,工作电压为 3.0V,工作频率为 32kHz 时,功耗为 15?A);其外围器件减少,功耗自然可以降低; 即使使用了较高的晶振频率,由于 CPU 内部有一个特殊功能寄存器 DIVM 可以对时钟 分频,从而达到节电目的。PIC 系列单片机有睡眠方式,在空闲时可以设置为低功耗 工作方式,非空闲时,用看门狗、中断等方式唤醒。 在其他元器件的选用上,尽量采用低功耗器件,如无线收发模块选用超低功耗无 线收发模块 PTR4000,其最大工作电流仅为 18mA,在掉电模式下仅为 1uA. 采用及筛选低功率的电子元 总之, PIC 单片机为核心的控制硬件电路设计上, 在 件与集成电路,进行低功耗线路设计和线路板优化;在软件控制上采用降低功耗的休 眠技术及采样周期优化,以期达到最大限度地降低计量仪表功耗,延长电池寿命。

28

陕西广播电视大学机械制造及其自动化专业毕业设计

4.2 软件抗干扰技术 4.2.1 软件出错对系统的危害
1. 数据采集不可靠 在数据采集通道,尽管我们采取了一些必要的抗干扰措施,但在数据传输过程中 仍然会有一些干扰入侵系统。 2. 控制失灵 一般情况下,控制状态的输出时通过微机控制系统的输出通道实现的。由于控制 信号的输出功率较大,不易直接受到外界干扰。但是在微机的控制系统中,控制状态 的输出常常取决于某些条件状态的输入和条件状态的逻辑处理结果,而在这些环节 中,由于干扰的侵入,可能造成条件状态偏差,失误,导致输出控制误差加大,甚至 控制失灵。 3. 程序运行失常 微型计算机系统引入强干扰后,程序计数器 PC 的值可能别改变,因此会破坏程 序的正常运行, 被干扰后的 PC 值是随机的, 这将引起程序执行一些毫无意义的指令, 最终可能导致程序的“死循环” 。

4.2.2 数字滤波方法
数字滤波是提高数据采集系统可靠性最有效地方法, 因此在微型控制系统中一般 都要进行数字滤波。所谓数字滤波,就是通过一定的计算或判断程序减少干扰在由于 信号中的比重。故实质上它是一种程序滤波。数字滤波克服了模拟滤波的不足,它与 模拟滤波相比,有以下几个优点: (1)数字滤波是用程序实现的,不需要增加硬件设备,所以可靠性高,稳定性好 (2)数字滤波可以对频率低的信号实现滤波,克服了模拟滤波的缺陷; (3)数字滤波可根据信号的不同,采用不同的滤波方法或滤波参数,具有灵活方便, 功能强的特点。 数字滤波的方法很多,常用的有以下几种: 1. 程序判断滤波法 经验说明,许多物理量的变化都需要一定的时间,相邻两次采样值之间的变化 有一定的限度。程序判断滤波的方法,便产生经验,确定出相邻两次采样信号之间可 能出现的最大偏差。若超过此偏差值,则表明此输入信号是干扰信号,应该去掉;如 小于此偏差,可将信号作为本次采样值。 程序判断滤波根据滤波方法的不同,可分为限幅滤波和限速滤波两种。

29

陕西广播电视大学机械制造及其自动化专业毕业设计

(1) 限幅滤波法 限幅滤波的做法是把两次相邻的采样值相减,求出其增值(以绝对值表示)然后 与两次采样允许的最大差值(由被控对象的实际情况而决定)△Y 进行比较,若小于 或等于△Y,则取本次采样值;若大于△Y,则仍取上次采样值作为本次采样值,即 Y ( K ) ? Y ( K ? 1) ≤ △Y ,则 Y(K)=Y(K) ,取本次采样值。 Y ( K ) ? Y ( K ? 1) ﹥△Y, 则 Y(K)=Y(K-1),取上次采样值。 其中, Y(K)是第 K 次采样值; Y(K-1)是第 K-1 次采样值; △Y 是相邻两次采样值, 所允许的最大偏差,其大小取决于采样周期 T 及 Y 值的动态影响。这种程序滤波的方 法,主要用于变化比较缓慢的参数,如温度。使用时关键问题是最大允许误差△Y 的 选取;△太大,各种干扰信号将乘机而入,率变低,通常可根据经验数据获得,必要 时,也可以由实验室得出。 (2) 限速滤波法 限速滤波是用三次采样值决定采样结果,其方法是,当 Y(2)-Y(1)>△Y 时,再 采样一次,取得 Y(3) ,然后根据 Y(3)-Y(2)与△Y 的大小关系决定本次采样值。具 体判别式如下; 设顺序采样时刻 t1,t2,t3 所采集的参数分别为 Y(1,),Y(2),Y(3),那么 当 Y (2) ? Y (1) ≤ △Y 时, 取 Y(2)输入计算机; 当 Y (2) ? Y (1) >△Y 时,不采用,但仍然保留,继续采样取得 Y(3) ; 当 Y (3) ? Y (2) ≤ △Y 时,取 Y(3)输入计算机 当 Y (3) ? Y (2) >△Y 时,取 Y(2)=
Y (2) + Y (3) 输入计算机。 2

限速滤波是一种折中的方法,既照顾了采样的实用性,又顾及了采样变化的连续 性。但这种方法也是有明显的缺点;第一是△Y 的确定不够灵活,必须根据现场的情 况不断地更新新值;第二是不能反应采样点数 N>3 时各采样值受干扰情况。因此它 的应用受到一定的限制。 2. 中值滤波法 这种滤波法是将被测参数连续采样 N 次(一般 N 取奇数) ,然后把采样值按大小 顺序排列,再取中间值作为本次的采样值。 中值滤波对于去掉偶然因素引起的波动或采样器不稳定而造成的误差所引起的 脉动干扰比较有效。若变量变化比较缓慢,采用中值滤波效果比较好,但对于快速变 化的参数,如流量,则不宜采用。
3. 算术平均值滤波法

这种滤波法就是在一个采样周期内,对信号 x 的 N 次测量进行算术平均,作为 时刻 K 的输出 x (k),即

30

陕西广播电视大学机械制造及其自动化专业毕业设计

x (k)=

1 N

N

∑x
i =1

i

其中 N 为采样次数,x i 为第 i 次采样值。 显然,N 越大,平滑度越高,但是灵敏度越低,N 的值应视具体情况而定。一般 流量信号取 N=10,压力信号取 N=5,温度、成分等缓慢变化的信号取 N=2 或 N=1. 算术平均值发适用于一般的具有随机干扰信号的滤波。它特别适合于信号本身在 某一数值范围附近做上下波动情况,如流量、液位等信号的测量。
4.

加权平均值滤波法 算术平均值对于 N 次以内多有的采样值来说, 所占比例是相同的, 亦即取每次采

样值的 1/N。有时为了提高滤波效果,将采样值取不同的比例,然后在相加,此方法 成为加权平均值法,即:

y (k)= ∑ C Ix
i =0
并且:

n ?1

n ?i

∑C
i =0
5.

n ?1

i

=1

其中 C 0 ,C 1 ,K,C N ?1 为各次采样值得系数,它体现了各次采样值在平均值中所占 的比、比例。它可根据具体情况而定,通常采样次数越靠后,取得比例越大。 滑动平均值滤波法 不管是算术平均值滤波法还是加权平均值滤波法,都需要连续采样 N 个数据, 这种方法适合于有脉动干扰的场合。但是由于必须采样 N 次,需要时间较长,故检 测速度慢。为了克服这一缺点,可采用滑动平均值滤波法,即依次存放 N 次采样值, 每采进一个新数据,就将最早采集的那个数据丢掉,然后求包含新值在内的 N 个数 据的算术平均值或加权平均值。
6.

惯性滤波法 前面讲的几种滤波法基本上属于静态滤波,主要适用于变化过程比较快的参

数,如压力、流量等。但对于慢速随机变量采用短时间内连续采样求平均值的方法, 其滤波效果往往不够理想。为了提高滤波效果,可以仿照模拟滤波器,用数字形式实 现低通滤波。
7、复合数字滤波

复合滤波就是那两种以上的滤波方法结合来使用。 例如把中值滤波的思想与算术
31

陕西广播电视大学机械制造及其自动化专业毕业设计

平均值的方法结合起来,就是一种常用的复合滤波法。具体方法是首先将采样值按大 小排队,去掉最大和最小的,然后再把剩下的取平均值。这样显然比单纯的平均值滤 波的效果要好。

4.2.3 软件冗余技术
软件冗余可分为数据冗余和程序冗余。 1. 数据冗余 RAM 中的数据因干扰而被破坏是经常发生的现象。 RAM 中存放的数据通常包括 系统的有关参数或常数、状态标志、中间变量和计算结果。这些内容一旦遭到破坏, 系统将不能正常运行。所以要解决 RAM 的数据保护问题。 RAM 数据冗余就是将要保护的原始数据在另外的两个区域同时存放,建立两个 备份,当原始数据被破坏时用备份数据去修复。备份数据的存放地址应远离原始数据 的存放地址以免被同时破坏。数据区也不要靠近栈区,以防止万一堆栈溢出而冲掉数 据。 下面介绍一种用备份数据块进行比较表决的方法。 在定时终端服务中设计一段数 据块比较程序,对 RAM 中原始数据块与两个备份数据块的数据逐一进行比较。如果 三个数据相同,则进行下一数据的比较,如果被比较的数据只有两个相同,则认为相 同的数据是正确的,并以此更新第三个相异的数据,继续比较。如果三个数据都不相 同,就进行数据出错报警,进行人工干预。显然,在数据修改时,备份数据要同时修 改。在修改数据时不能进行比较表决。 2、程序冗余 当 CPU 受到干扰后,往往将一些操作数当作指令码来执行,引起程序混乱。当 程序弹飞到某一单字节指令上时,便自动轨道。当程序弹飞到某一双节指令上时,有 可能落到其操作数上,从而继续出错。当程序弹飞到某一三节指令上时,因它有两个 操作数,继续出错机会更大。因此我们应多采用单字节指令,并在关键的地方人为的 插入一些单字节指令(NOP)或将有效单字节指令重复书写,这便是软件冗余。 在一些对程序流向起决定作用的指令前应插入两条 NOP 指令,以保证弹飞的程 序纳入正确轨道。在某些对系统工作状态重要的指令前也可以插入两条 NOP 指令, 以保证其正确执行。 软件冗余技术可以减少程序弹飞的次数,使其很快纳入程序轨道,但是会降低系 统的效率。在绝大多数情况下,CPU 还不至于忙到不能多执行几条指令的程序,故 这种方法还是被广泛应用。

4.3 I 2 C 总线技术
I 2 C 总线协议是目前的串行通讯协议中最重要的一种协议, 在许多方面已大量应 用。
32

陕西广播电视大学机械制造及其自动化专业毕业设计

I 2 C 总线是荷兰飞利浦(PHILIPS)公司开发的一种双向二线制同步串行多主机 总线。它为产品设计人员及有关设备制造商,特别是便携式设备制造商提供了一种高 效、实用、可靠的串行总线体系结构。I 2 C 总线当然不仅仅是一种内部连接总线。从 某种角度来讲,它就是一种串行通讯协议,以避免可能产生的通讯混乱、数据的丢失 和通讯阻塞。在总线上加减器件应该不影响系统正常工作,否则就无法对系统进行灵 活配置。同时,也必须解决哪一个器件在什么时候控制总线,如果不同时钟速度的器 件连接到总线上,必须能确定总线的时钟。以上这些要求就组成了 I 2 C 总线协议的 主要内容。 I 2 C 总线只需要两根线 (串行时钟线和串行数据线) 即可在连接于总线上的器件 之间传送信息。这种总线的主要特性如下: (1) 总线只有两根线:串行时钟线和串行数据线; (2) 每个连到总线上的器件都可由软件以唯一的地址寻址, 并建立简单的主/从关系, 主器件既可作为发送器,也可作为接收器; (3)它是一个真正的多主总线,有竞争检测和仲裁电路; (4)同时发送而不破坏总线上的数据; (5)同步时钟允许器件通过总线以不同的波特率进行通讯; (6)同步时钟可以作为停止和重新启动串行口发送的握手方式; (7)连接到同一总线的器件数只受 400pF 的最大总线电容的限制; I 2 C 总线极大的方便了系统设计者,无需设计总线接口。因为总线接口已经集成 在片内了,从而使设计时间大为缩短,并且从系统中移去或增加集成电路芯片对总线 上的其它集成电路芯片没有影响 I 2 C 总线的简单结构便于产品改型或升级,改型或 升级时只须从总线上取消或增加相应的集电路芯片即可。 组成 I 2 -C 总线的串行数据线 SDA 和串行时钟线 SCL 必须经过上拉电阻 Rp 接到 正电源上,连接到总路线上的器件 SDA 和 SCL 都有为双向 I/O 口线,总线空闲时皆 为高电平。总线上数据传送最高速率可达 100Kbit/s。 I 2 -C 总线上可以实现多主双向同步数据传送,所有主器件都可以同步时钟,但 由于 SCL 的“线与”结构,一旦一个主器件时钟跳变为低电平,将使 SAL 线保持为 低电平直至时钟达到高电平,因此 SAL 线上时钟低电平期间由各器件中时钟最长的 低电平时间决定,而时钟高电平时间有高电平最短的时间决定。为了使多主数传送能 够正确实现,I 2 -C 总线中带有竞争检测和仲裁电路。总线竞争中的仲裁及处理由内 容硬件电路业完成。当两个主器件发送数据相同时不会出现总线竞争;当两个主器件 发送数据不同时才出现总线竞争。其竞争过程如图 15 所示。当某一时刻主器件 1 发 送高电平而主器件 2 发送低电平,此时由于 SDA 的“线与”作用,主器件 1 发送的 高电平在 SDA 线上反映的主器件 2 的低电平状态,这个低电平状态通过硬件系统反 馈到数据寄存器中,与原有状态比较不同而退出竞争。
33

陕西广播电视大学机械制造及其自动化专业毕业设计

图 15 单总线竞争的仲裁过程 I C 总线可以构成多主数据传送系统,但只有带 CPU 的器件可以成为主器件。
2

主器件发送时钟、启动位及数据工作方式,从器件则接收时钟及数据工作方式。接收 或发送则根据数据的传送方向决定。I 2 C 主线上数据传动时的启动、结束和有效状 态都由 SDA、SCL 的电平状态决定,在 I 2 C 总线规程中启动和停止条件规定如下: 启动条件:在 SCL 为高电平时,SDA 出现一个下降沿则启动 I 2 C 总线。 停止条件:在 SCL 为高电平时,SDA 出现一个上升沿则停止使用 I 2 C 总线。 除了启动和停止状态,在其余状态下,SCL 的高电平都对应于 SDA 的稳定数据 状态。 每一个被传送的数位由 SDA 上的高、低电平表示,对于每一个被传送的数据位 都在 SCL 线上产生一个时钟脉冲。在时钟脉冲为高电平期间,SDA 线上数据必须稳 定,否则被认为是控制信号。SDA 只能在时钟脉冲 SCL 位低电平期间改变。启动条 件后总线为“忙” ,在结束信号过后的一定时间总线被认为是“空闲”的。在启动和 停止条件之间所传送的数据不受限制,但每个字节必须为 8 位。首先传送最高位,采 用串行传送方式,但在每个字节之后必须跟一个响应。主器件收发每个字节后产生一 个时钟应答脉冲,在这期间,发送器必须保证 SDA 为高,由接收器 SDA 拉低,称为 应答信号(ACD) 。主器件为接收器时,在接收了最后一个字节之后不发应答信号, 也称为非应答信号(NOT ACD) 。当从器不能接收另外的字节时也会出现这种情况。 总线中每个器件都有自己唯一确定的地址, 启动条件后主机发送的第一个字节就 是被读写的从器件的地址,其中第 8 位为方向位, “0” (W)表示主器件发送, “1” (R)表示主器件接收。总线上每个器件在启动后都把自己的地址与前 7 位相比较, 如相同则器件被选中,产生应答,并根据读写位决定在数据传送中是接收还是发送。 如图 2-17 所示,无论是主发、主收还是从发、从收都是由主器件控制。在主发送方 式下,有主器件发出启动信号 S,接着从发器件的 7 位地址 SLA 和表明主器件发送 的方向为 0W,即这个字节为 SLA+W。被寻址的从器件在收到这个字节后,返回一 个应答信号 A。当全部数据都发送或接收完毕后,主器件应发送停止信号 P。

34

陕西广播电视大学机械制造及其自动化专业毕业设计

在数据的传送过程中,总线上可能出现的正常、非正常状态都能实时地由硬件 系统以代码的形式出现在状态寄存器 SISTA 中,总共有 26 个状态,占据 SISA 的高 5 位。 “发送完启动信号”的状态码为 08H; “发送定 SLA+W 并收到响应位”的状态 码为 18H: “发送完 SIDAT 的收据字节并收到响应位(ACK) ”的状态码为 28H 等。 总线上所有的非正常状态也有相应的状态码, 如主器件发送完 SLA+W 后未收到从器 件的应答信号时,其状态码为 20H 而不是 18H。由于总线的工作状态全部归结为 26 个状码态,因此 SISTA 时 I2C 总线软件运行的重要依据。

35

陕西广播电视大学机械制造及其自动化专业毕业设计

第五章软件设计
本设计的软件分为三部分:一部分是温度测量部分的软件设计;另一部分是主机 软件设计;最后是上位机界面。 温度测量部分的软件包括整个系统的初始化、对温度传感器的数据采集、向主机 发送数据;主机部分的软件包括初始化、数据接收、与上位机的串行通讯。PTR4000 的配置与上面类似,只是配置成接收模式;与上位机进行通讯是利用一个调试串行口 的小程序。

5.1 温度采集程序的实现
DS18B20 中的温度传感器完成对温度的测量,用 16 位符号扩展的二进制补码读 数形式提供,以 0.0625℃/LSB 形式表达,其中 S 为单位符号。例如+125℃的数字输 出位 07D0H, +25.0625℃的数字输出位 0191H, -25.0625℃的数字输出为 FF6FH, -55℃ 的数字输出为 FC90H。 高低温报警触发器 TH 和 TL、配置寄存器均有一个字节的 EEPROM 组成,使用 一个存储器功能命令可对 TH、 或配置寄存器写入。 TL 其中配置 寄存器的格式如下: 温度值低字节: 23 22 21 20 2 -1 温度值高字节: S MSBLSB 0 R1 R0 1 1 1 1 1 S S S S 22 25 24 2 -2 2 -3 2 -4

R1、R0 决定温度装换的精度位数:R1R0=“00” ,9 位精度,最大转换时间为 93.75ms;R1R0=“01” ,10 位精度,最大转换时间为 187.5 ms;R1R0=“10” ,11 位 精度,最大转换时间为 375 ms;R1R0=“11” ,12 位精度,最大转换时间为 750 ms; 未编程时默认为 12 位精度。 高速暂存器是一个 9 字节的存储器。开始两个字节包含被测温度的数字量信息; 第 3、4、5 字节分别是 TH、TL、配置寄存器的临时拷贝,每一次上电复位时被刷新; 第 6、7、8 字节未用,表现为全逻辑 1;第 9 字节读出的是前面所有 8 个字节的 CRC 码,可用来保证通信正确。 DSI8B20 的一线工作协议流程是: 初始化→ROM 操作指令→存储器操作指令→ 数据传输。其工作时序包括初始化时序、写时序和读时序,如图 16(a) (c)所 (b) 示
36

陕西广播电视大学机械制造及其自动化专业毕业设计

(a)初始化时序

(b)写时序

(c)读时序 图 16 DSI8B20 命令设置(表 7)
命令 说明 协 议 温度转换命令 开 Convert T 始温度转换 存储器命令 Read Scrat chpad Write Schratchpad 读取暂存器和 CRC 字节 把字节写入暂存器的地址 2 和 3(TH 和 TL 温度报警触发) Copy Schratchpad 把暂存器内容拷贝到非易失 性存储器中 (仅指地址 2 和 3) Recall E 2 把非易失性存储器中的值召 回暂存器(温度报警触发) B8h <读温度忙状态> 48h BEh 4Eh <读数据直到 9 字节> <写两个的字节到地址 2 和 3> <读拷贝状态> 2 44h <读温度忙状态> 1 单线总线发出协议后 备 注

DSI8B20 的工序时序图

温度传感器的温度采集是通过表 7 和表 5 条指令实现的。

37

陕西广播电视大学机械制造及其自动化专业毕业设计

温度采集程序: DAI820: MOVLW TEMBUFF ; ;在每一个测得的温度值中,把高位字节即温度的正负 ;存在缓存的低字节中,把低位字节即温度值的绝对值存在缓存的高位字节中 MOVWF FSR MOVLW MOVWF LOOP: CALL CALL CALL CALL MOVF CONVERT DELAY22 DELAY22 GET_TEMP ; ; ; ; .7 TEMBYTE

TEM_DATAH,W;[说明]:在接收模块中,为方便与 PC 机通讯时,先写入的 MOVWF INCF MOVF MOVWF INCF DECFSZ GOTO RETLW INDF FSR,F INDF FSR,F LOOP O ; ; ; ; ; ; ;

是“+”“-”号,而做此赋值 、

TEM_DATAL,W

TEMBYTE,F

;-----------------------------------------------------------------------GET_TEMP: CALL MOVLW MOVWF CALL MOVLW MOVWF CALL CALL MOVF MOVWF INI OXCC TEM_COMD WR1820 OXBE WR1820 RE1820 TEM_DATAL ;读取温度寄存器的温度值 ; ;把命令写入 DS1820 ;读 DS1820 测得的温度值 ; ; TEM_COMD ;WRITE ROM

TEM_DATA,W

38

陕西广播电视大学机械制造及其自动化专业毕业设计

CALL MOVF MOVWF RETLW CONVERT: CALL MOVLW MOVWF CALL MOVWF MOVVWF CALL RETLW INI:

RE1820 TEM_DATA,W TEM_DATAH O INI OCCH WR1820 44H WR1820 O ;

;再读 DS1820 测得的温度值的正负值 ; ;

;针对在线的所有 DS1820 写 ROM 操作命令 ; ; ;启动 DS1820 做 A/D 转换 ; ;

TEM_COMD

TEM_COMD

BSF STATUS,RPO;SELECT BANK1 BCF STATUS,RP1 MOVLW MOVWF BSF RC,4 NOP BCF RC,4 MOVWF COUNT DEL0: NOP DECFSZ COUNT,1 GOTO MOVLW MOVWF MOVLW MOVWF DEL0 OX10 TRISC D′30′ COUNT BSF STSTUS,RP0;SELECT BANK1 0 TRISC ;RD,0 ;RD,0 ;DELAY ImS,复位脉冲

BCF STATUS,RP0;SELECT BANK0 ;寄生电源模式

MOVLW D′250′

BCF STATUS,RP0;SELECT BANK0

39

陕西广播电视大学机械制造及其自动化专业毕业设计

DEL1; DECFSZ COUNT,F GOTO BTFCS GOTO DEL2: MOVLW MOVWF DEL3: DECFSZ GOTO BTFSS GOTO RETLW WR1820: BCF STATUS,RPO ;SELECT BANKO BCF STATUS,RP1 MOVLW MOVWF WR0: BSF MOVLW MOVWF BCF RC,4 NOP NOP MOVLW MOVWF WR1; DECFSZ GOTO BTFSC BTFSS COUNT,1 WR1 TEM_COMD,0 ;RD,0 TEM_COMD,0
40

DEL1 RC,4 INI D′80′ COUNT COUNT,1 DEL3 RC,4 DEL0 O ;RD,0 ;NO ;YES,FINISHED INITIALATION ;RD0 INPUT HIGH?? ;RD,0 ;RD0 INPUT LOW ? ;NO,DS1820 HADN′T RESPONSED ;YES,TRANSMIT 240?S 先导脉冲

.8 COUNT3

;8 BITS DATA

STATUS,RP0;SELECT .0 TRISC

BANK1

BCF STATUS, RP0;SELECT ;RD,0

BANK0

.2 COUNT ;DELAY 6?S

BSF RC,4

陕西广播电视大学机械制造及其自动化专业毕业设计

BCF RC,4 MOVLW MOWF WR2: DECFSZ GOTO BSF RC,4 MOVLW MOVWF DECFSZ GOTO RETLW RE1820: 0

;RD,0

RRF TEM_COMD,1 D′20′ COUNT COUNT,1 WR2 ;RD,0 BANK1 OX10 TRISC BANK0 COUNT3,1 WR0

BSF STATUS, RP0;SELECT

BCF STATUS, RP0;SELECT

BCF STATUS, RP0; MOVLW MOVWF REO: BCF STATUS, RP0; MOVLW MOVWF BCF MOVLW MOVWF RE1: DECFSZ GOTO BSF MOVLW MOVWF NOP COUNT,1 RE1 OX10 TRISC ; ; ; ; ; ;
41

.8 COUNT3

.0 TRISC ; .2 COUNT ; ; ; ; STATUS,RP0 ;

BCF RC,4

STATUS,RP0

BCF STATUS, RP0

陕西广播电视大学机械制造及其自动化专业毕业设计

BTFSS BTFSC

RC,4 ; RC, 4 ;

;RD,0 ;RD,0 ; ; ; ; ; ; ; ; ;RD,0 ;

;

BCF STSTUS,C BSF STATUS,C RRF TEM_DATA,1 MOVLW MOVWF RE2: DECFSZ COUNT,1 GOTO GOTO RETLW RE2 RE0 0 DECFSZ COUNT3,1 BSF RC,4 D′20′ COUNT

5.2RTR4000 的软件编程
PTR4000 软件编程可分位配置编程、发射编程和接收编程: 1.配置编程 (1) 上电以后 MCU 首先配置 PTR4000 模块。先将 CS、CE 设为配置模式,MCU 通过 CLKI、DATA 将数据移入 PTR4000(CLKI 由 MCU 提供) ,MSB 首先移入: (2)全部配置 120bit 配置数据均移入后,由 MCU 将 CS、CE 设为工作模式,此时 PTR4000J 将刷新内部配置并使得新配置立即生效。在掉电和待机模式后,配制内容 仍然有效。配置数据只有当电源撤除后才会丢失。 2、接收编程 (1) MCU 首先通过配置模式将 PTR4000 设为接收模式; (2) MCU 设定 CE=1,PTR4000 进入工作模式; (3) 当 PTR4000 接收到数据与设置的本机地址一致且 CRC 效验正确时,通过 DRI 输出高电平(DRI 可由 MCU 查询或触发 MCU 中断) ; (4) MCU 可通过 CLK1、DATA 读取到的数据(数据长度由配置内容决定) ,CLK1 的时 钟由 MCU 提供,当 MCU 读出最后 1bit 数据后,DRI 变为低。 3、发射编程 (1) MCU 首先通过配置模式将 PTR4000 设为发射模式; (2) MCU 设定 CE=1,PTR4000 进入工作模式; (3) MCU 将接收点的地址和数据顺序通过 CLK1,DATA 送入 PTR4000,注意地址和数
42

陕西广播电视大学机械制造及其自动化专业毕业设计

据的 bits 位数应该和配置不一致; (4) CE=0.PTR4000 启动内部处理并将数据发送出去; (5) 全部数据发送完成后,PTR4000 进入待机模式。 配置 PTR4000 的程序: COLLOCATE_PTR: NOP MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF NOP BCF RC,1 NOP BSF RB,1 NOP BCF RC,3 NOP BCF RC,2 CALL MOVLW BSF RC,1 15 ;RD,5 ;RD,6 ;DATA=0 ;Min(Td)=50VS ;CS=1,进入配置模式 DEL50NS ;RD,4 ;CLK1=0 ;PWR=1 ;RD,6 ;CS=0 ;Min(Tce2data)=5VS TRISC FSR OX00 INDF TRISB FSR OX34 INDF ;RD,7 ;CE=0

BCF RC,0

;15 COLLOCATING BYTES

MOVWF COLLOCATEBYTE MOVLW COLLOCATEBUFF MOVWF FSR COLLOCATE_PTR1: MOVLW MOVWF MOVF MOVWF INCF .8 BIT INDF,W BUFF FSR,F
43

;A BYTE HAS 8 BITS ;配置字送 W ;W 送入 BUFF

陕西广播电视大学机械制造及其自动化专业毕业设计

COLLOCATE_PTR2: BCF RC,3 BTFSC BSF RC,2 BTFSS ;RD,4 ,RD,5 ;CLK1=0 ;BUFF 7=0? ;NO,RD5 OUTPUT HIGH ;YES,RD5 OUTPUT LOE BUFF,7

BUFF,7 ;RD,5

BCF RC,2 CALL

DEL500NS ;RD,4

;SEDUP TIME ;CLK1=1 ;HOLD TIME

BSF RC,3 CALL CALL

DEL500NS DEL500NS

RLF BUFF,F DECFSZ BIT,F GOTO COLLOCATE_PTR

DECFSZ COLLOCATEBYTE,F GOTO COLLOCATE_PTR1 ;CS=0,配置完成

BCF RC,1 RETLW 0

5.3

上位机界面设计
与上位机进行通讯是利用一个调试串行口的小程序实现的。接收部分的 CPU 把

处理过的温度值转化为 ASCⅡ码的形式,再传给上机位,上位机直接接受 ASCⅡ码 值,显示出来的就是温度值。上位机界面如下图所示(图 17) :

44

陕西广播电视大学机械制造及其自动化专业毕业设计

5.4 工作流程
本系统是这样实现无限温度采集的:发射模块的单片机上的电复位后,配置其 端口的输入输出状态,此时应是 PTR 处于非掉电状态,然后开始组织配置数据,设 置 CE=0,CS=1,将 120 位的配置数据传入 PTR4000,传送完毕后设置 CS=0,完成配 置,再设置 PWR=1,CE=1,调用测温子程序,测量 5 个温度值,温度值经组织后传 入 PTR4000,置 CE=0,延时 100us,等待发射完毕,置 PWR=0,将 PTR 设置为掉电 模式,然后将 PIC 的所有 I/0 口设置为输入状态,最后进入 SLEEP 模式,等待 WDT 唤醒,然后重复次发射过程。接收模块的单片机上电复位后,也是配置其端口的输 入输出状态,此时应是 PTR 处于非掉电状态,然后开始组织配置数据,设置 CE=0, CS=1,将 120 位的配置数据传入 PTR4000,传送完毕后设置 CS=0,完成 PTR 配置, 然后配置串口,能使串行中断和全局中断,再设置 CE=1,PTR4000 处于接收状态, 等待 DR1 的电平发生变化后,接受数据即完成数据处理、数字滤波,并把采集来的 温度值转换为 ASCⅡ码传给上位机。
45

陕西广播电视大学机械制造及其自动化专业毕业设计

结束语
本设计中的数字化无线温度传感器具有性能可靠、功耗极低、结构简洁、使用安 全等一系列优点。其测温范围在 0℃~100℃之间,传感器采用具有 12 位转换精度的 单线温度传感器 DS18B20,测温精度可达±0.0625℃,射频模块选用 PTR4000,无线 传输距离大于 50 米,静态功耗电流小于 3?A,这些指标大大高于设计指标的要求。 本设计涉及到无线通讯、数字化传感器、低功耗的设计等多项技术。在以 PIC 单片机为核心的控制硬件电路设计,采用及筛选低功耗的电子元件与集成电路,进行 低功耗线路设计和线路板优化; 在软件控制上采用降低功耗的休眠技术及采样周期优 化,以期达到最大限度的降低计量仪表功耗,延长电池寿命。 本设计中还有一些问题尚待深入研究, 如在无线传输过程中我们还可以进行加密 算法的研究, 现在已经得到应用的滚动编解码的软件实现技术将是一种非常适合本设 计的加密算法。在低功耗设计方面,本文提出了一种理想功耗的设计方案——零功耗 设计。当然,这只是一种理想化的方案,目前还没有一个实际的系统可以做到,但是 我们可以在此理论的指导下,尽量使的功耗设计更低。

46

陕西广播电视大学机械制造及其自动化专业毕业设计





本设计论文是在老师的悉心指导下完成的, 我所取得的每一点进步都渗透着老师 的心血。王老师严谨求实、一丝不苟的工作作风,使我深受启迪并将激励着我在以后 的工作和学习中奋发向上。在老师精心的指导下,我学会了很多的专业知识,他刻苦 钻研的精神更是深深的影响了我。在我即将毕业之际,我对老师表示衷心的感谢! 最后,衷心感谢给予我帮助和支持的各位老师和所有的同学们!

47

陕西广播电视大学机械制造及其自动化专业毕业设计

参考文献
1、沙占友.《智能化无线温度传感器的原理与应用》 .机械工业出版社 2、张明峰. 《PIC 单片机原理与应用》 3、 《无线温度传感器的设计》.选自《传感器技术》 4、王道宪. 《Microchip PIC 系列单片机原理,应用与开发》 .国防工业出版社 5、何立民. 《单片机应用技术选编 10》 .北京航空航天大学出版社 6、许海燕,卢伟,杨晨晖,吴芸. 《低功耗嵌入式系统的设计》 .福建厦门大学计算机科学系 7、何立民. 《嵌入式应用中的零功耗设计》 .北京航空航天大学 8、沙占友. 《智能温度传感器的发展趋势》 .石家庄河北科技大学电子信息工程系 9、马云峰,陈子夫,李培全. 《数字温度传感器 DS18B20 的原理与应用》 .(山东潍坊 学院自动化系) 10、李景友,侯莹. 《多通道温度循环监测仪》 1l、 胡生清, 幸国全. AD590 温度传感器的非线性补偿及应用[J]. 传感器技术, 54—55. 12、刘振全.集成温度传感器 AD590 及其应用.传感器世界.03-0035-03 13、凌振宝,王君,张瑞鹏,马心璐.集成温度传感器的原理与应用.传感器世界.2002.9.20 14、吕爱琴,陈吉忠,朱明华.无线传感器网络技术中的关键性问题.传感器世界. 1006-883X(2004)07-0014-05 15、夏熙梅,尚雅琴,冉颜中等.射频识别技术及其应用.工业技术经济.VOL.19, NO.5,2000 16、李昀,韩月秋.采用标准单元法的 ASIC 设计实例.军事通信技术.VOL.21.NO.3.Sep, 2000. 17、 李建中.从掩膜 ASIC 到可编程 ASIC 设计.军事通信技术.VOL.2 1.NO.3.Sep.2000 18、王风军,姜兰.数字温度传感器 DS1620 及其应用.电侧与仪表.1998.10 19、郑喜凤,王瑞光等.采用数字温度传感器 DS1620 构成的温度监控系统.电子技 术.1996 年第 6 期 20、魏俊奇,魏超.传感器的数字化到数字传感器。电子产品世界.1996 年 6 月 P32 21、孟宪元,朱正中.可编程专用集成电路(ASIC)的发展.电子科技导报.1994.7 22、贾振国,于德荣,许林·数字温度传感器的应用.东北水利水电.1999 年 23、方祖枚.PIC 单片机应用中几个问题的探讨.电子技术.1995 年第 12 期。 24、李晓强,高丽红.兼容 SPI 接口的低功耗数字温度传感器 ADT7301.及其接口技术.国外电 子元器件.2004 年 8 月 25、黄智伟,朱荣辉,朱卫华.无线数字温度传感器的设计.传感器技术.2002 年第 2l 卷第 9 期. 26、张进明.PIC 单片机应用系统的低功耗设计.1998 年 2 月 27、王风军,姜兰.数字温度传感器 DS1620 及其应用.电侧与仪表.1998.10 28、梁鹃,宋慧滨.ASIC 设计的方法和 CAD 工具.电子器件.VOL.19.NO.1.March,1996 29、凌振宝.一种多点温度检测的方法.仪表技术与传感器.2002,(12):34 30、毋昌明,辛肖明.无线数据传输系统的设计.北京理工大学学报.VOL.14.NO.1 2001: 20(10):

48

陕西广播电视大学机械制造及其自动化专业毕业设计

附录 A 程序流程图
PIC上 电 复 位 配 置 PIC各 端 口 PWR=1 使 PTR处 于 非 掉 电 状 态
组织配置数据

PIC上 电 复 位 配 置 PIC各 端 口 PWR=1 使 PTR处 于 非 掉 电 状 态
组织配置数据

CE-0,CS=1 将 配 置 数 据 传 入 PTR4000 置 CS=0 完 成 对 PTR4000的 配 置 在 次 设 置 PIC的 各端口状态 配置串口 使能串行中断及全局中断

CE-0,CS=1 将 配 置 数 据 传 入 PTR4000 置 CS=0 完 成 对 PTR4000的 配 置 PWR=1,CE=1 PTR4000处 于 工 作 模 式 调用测温子程序 ( 同 时 测 量 5个 温 度 值 )
组织温度值

CE=1 PTR4000处 于 接 收 模 式

将所有温度值植入 PTR4000 CE=0 PTR4000发 射 数 据

DR1=1? 延 时 100?S,待 发 射 完 毕

接收数据
处理温度值,同时将所有温度值按各 个位进行比较,取出更可靠的值

PWR=0 PTR4000进 入 掉 电 模 式 设 置 PIC所 有 I/O脚 为 输 入 态 PIC组 转 为 SLEEP模 式
WDT时 间 到 , 唤 醒 PIC

接收部分流程图

发射部分流程图

图 18 发射及接收部分的程序流程图

49

陕西广播电视大学机械制造及其自动化专业毕业设计

附录 B 硬件外观图

图 19 温度测量部分外观图

图 20 主机部分外观图
50

陕西广播电视大学机械制造及其自动化专业毕业设计

附录 C 程序清单
一、发射部分程序 ;******************************** ;发射程序 SEND.ASM ;******************************** #INCLUIDE<P16F74.INC> ;******************************** RB EQU 6 RC EQU 7 ;PORTC 7 6 5 4 3 2 1 0 : 1820 CE CS DATA CLKl ; ;PORTB 7 6 5 4 3 2 l O ; DRl DOUT2 CLK2 DR2 PWR CBLOCK OX20 COUNT COUNT1 COUNT3 BIT BUFF TEM_DATA TEM_DATAL TEM_DATAH TEMBYTE TEM_COMN PTRBYTE BUILDSHOCKORD: .14 TEMBUFF: .10 COLLOCATEBUFF ;EQUOX2C BYTES COLLOCATEBYTE;EQU 0X2B ENDC ORG OX000 GOTO MAIN ;******************************* DS1820: MOVLW TEMBUFF MOVWF FSR MOVLW .5
51

MOVWF TEMBYTE LOOP: CALL CONVERT ; CALL DELAY22 ; CALL DELAY22 ; CALL GET_TEMP; MOVF TEM_DATAH,W MOVWF INDF INCF FSR,F MOVF TEM_DATAL,W; MOVWF INDF; INCF FSR,F; DECFSZ TEMBYTE,F; GOTO LOOP; RETLW 0 ;--------------------------------GET_TEMP: CALL INI MOVLW OXCC MOVWF TEM_COMD CALL WR1820 MOVLW 0XBE MOVWF TEM_COMD CALL WR1820 CALL RE1820 MOVF TEM_DATAH,W MOVWF TEM_DATAL CALL RE1820 MOVF TEM_DATA,W MOVWF TEM_DATAH RETLW 0 ;--------------------------------CONVERT: CALL INI MOVLW 0CCH MOVWF TEM_COMD VALL WR1820 MOVLW 44H MOVWF TEM_COMD CALL WR1820 RETLW 0

陕西广播电视大学机械制造及其自动化专业毕业设计

;------------------------------INI: BSF STATUS,RPO BCF STATUS,RPl MOVLW OXEO MOVWF TRISC BCF STATUS,RPO BSF RC,4 NOP BCF RC,4 MOVLW D’250’ MOVWF COUNT DELO: NOP DECFSZ COUNT,1 GOTO DELO BSF STATUS,RPO MOVLW OXFO MOVWF TRISC BCF STATUS,RPO MOVLW D,30’ MOWF COUNT DELl: DECFSZ CUNT,F GOTO DELl BTFSC RC,4 GOTO INI DEL2: MOVLW D’200’ MOVWF COUNT DEL3: DECFSZ COUNT,l GOTO DEL3 BTFSS RC,4 GOTO DELO RETLW 0 ;--------------------------------WRl820: BCF STATUS, RPO;SELECT BANK0 BCF STATUS,RPl MOVLW .8 ;8 BITS DATA MOVWF COUNT3 WR0:
52

BSF MOVLW MOVWF BCF BCF NOP NOP MOVLW MOVLW WR1:

STATUS,RPO ;SELECT BANKl OXEO TRISC STATUS,RPO;SELECT BANKO RC,4 ;RD,0

.2 COUNT

DECFSZ COUNT,1 GOTO WR1 BTFSC TEM_COMD,0 BSF RC,4 ;RD,0 BTFSS TEM_COMD,0 BCF RC,4 ;RD,0 RRF TEM_COMD,1 MOVLW D’20’ MOVWF COUNT WR2: DECFSZ COUNT.1 GOTO WR2 BSF RC,4 ;RD,0 BSF STATUS,RPO;SELECT BANKl MOVLW 0XF0 MOVWF TRISC BCF STATUS, RPO;SELECT BANK0 DECFSZ COUNT,1 GOTO WR0 RETLW 0 ;--------------------------------REl820: BCF STATUS,RPO MOVLW .8 MOVWF COUNT3 REO: BSF STATUS,RPO MOVLW OXEO MOVWF TRISC BCF STATUS,RPO BCF RC,4 MOVLW .2 MOVWF COUNT

陕西广播电视大学机械制造及其自动化专业毕业设计

REl: DECFSZ GOTOREl MOVLW MOVWF BCF

COUNT,1 STATUS,RPO OXFO TRISC STATUS,RPO

NOP BTFSS RC,4;RD,0 BCF STATUS,C BTFSC RC,4 ;RD,0 BSF STATUS,C RRF TEM_DATA,1 MOVLW D’20’ MOVWF COUNT RE2: DECFSZ C 伽,l GOTO RE2 DECFSZ COUNT3,l GOTO REO BSF RC,4 ;RD,0 RETLW O ;================================= READY_TRANSMITTOPTR: MOVLW BUILDSHOCKWORD MOVWF FSR MOVLW .4 MOVWF COUNT READY_TRANSMITTOPTRl: MOVLW OXCC MOVWF INDF INCF FSR,F DECFSZ COUNT,F GOTO READY_TRANSMITTOPTR1 MOVF TEMBUFF,W MOVWF INDF INCF FSR,F MOVF TEMBUFF+l,W MOVWF INDF INCF FSR,F MOVFTEMBUFF+2,W MOVWF INDF INCF FSR,F
53

MOVF TEMBUFF+3,W MOVWF INDF INCF FSR,F MOVF TEMBUFF+4,W MOVWF INDF INCF FSR,F MOVF TEMBUFF+5,W MOVWF INDF INCF FSR,F MOVF TEMBUFF+6,W MOVWF INDF INCF FSR,F MOVF TEMBUFF+7,W MOVWF INDF INCF FSR,F MOVF TEMBUFF+8,W MOVWF INDF INCF FSR,F MOVF TEMBUFF+9,W MOVWF INDF RETLW 0 ;================================ TRANSMITOPTR: BCF RC,2;CS=0 NOP BSF RC,3;CE=1 MOVLW .14 MOVWF PTRBYTE MOVLW BUILDSHOCKWORD MOVWF FSR TRANSMIT_TO_PTRl: MOVF INDF,W MOVWF BUFF INCF FSR,F MOVLW .8 MOVWF BIT TRANSMIT_TO_PTR2: BTFSS BUFF,7 BCF RC,l ;DATA=O BTFSC BUFF,7 BSF RC,l RLF BUFF,F CALL DOSPICLOCK DECFSZ BIT,F

陕西广播电视大学机械制造及其自动化专业毕业设计

GOTO TRANSMIT_TO_PTR2 DECFSZ PTRBYTE,F GOTO TRANSMIT_TO_PTR1 BCF RC,3 NOP BCF RC,1 RETLW 0 ;================================= DOSPI CLOCK: BSF RC,O;CLK1=1 NOP NOP BCF RC,0 RETLW 0 ;---------延时程序---------------DELAY9S: ;19.456805S MOVLW .50 MOVWF COUNT DELAY9OVS1: MOVLW 0XFE MOVWF COUNT3 DELAY9OVS2: MOVLW 0XFE MOVWF COUNT1 DELAY9OVS3: DECFSZ COUNT1 GOTO DELAY90VS3 DECFSZ COUNT3 GOTO DELAY90VS2 DECFSZ COUNT GOTO DELAY90VS1 RETLW 0 ;-------------------------------DELAY22: MOVLW D’200’ MOVWF COUNT DEL32: MOVLW D’250’ MOVWF COUNT3 DFL42: NOP DECFSZ COUNT3,1 GOTO DEL42 DECFSZ COUNT,1

GOTO DEL32 RETLW 0 ;=======COLLOCATING PTR4000======== COLLOCATE_DATA: BCF STATUS,RPO MOVLW COLLOCATEBUFF MOVWF FSR MOVLW OX50 MOVWF INDF INCF FSR,F MOVLW 0X50 MOVWF INDF MOVLW .2 MOVWF COUNT L1: MOVLW .4 MOVWF COUNT3 INCF FSR,F MOVLW OX00 MOVWF INDF L2: INCF FSR,F MOVLW OXCC MOVWF INDF DECFSZ COUNT3,F GOTO L2 DECFSZ COUNT,F GOTO F1 INCF FSR,F MOVLW 0X83 MOVWF INDF INCF FSR,F MOVLW 0X6F MOVWF INDF INCF FSR,F MOVLW 0X04 MOVWF INDF RETLW 0 ;-----------配置 PTR4000----------COLLOCATE_PTR: BCF RC,3 ;CE=0 NOP BCF RC,2 ;CE=1 MOVLW .15 ;15COLLOCATING BYTES

54

陕西广播电视大学机械制造及其自动化专业毕业设计

MOVWF COLLOCATEBYTE MOVLW COLLOCATEBUFF MOVWF FSR COLLOCATE_PTR1: MOVLW .8 MOVWF BIT MOVF INDF,W MOVWF BUFF INCF FSR,F COLLOCATE_PTR2: BTFSC BUFF,7 BSF RC,1 ;RD,5 OUTPTU HIGH BTFSS BUFF,7 OUTPTU LOW BCF RC,1 NOP RLF BUFF,F CALL DOSPICLOCK DECFSZ BIT,F GOTO COLLOCATE_PTR2 DECFSZ COLLOCATEBYTE,F GOTO COLLOCATE_PTR1

BCF

RC,2

;CS=0,配置完成

RETLW 0 ;$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ MAIN: BSF STATUS,RPO MOVLW 0XFD MOVWF TRISB MOVLW 0XF0 MOVWF TRISC BCF STATUS,RPO ;1 BSF RB,1 ;PWR=1,2 CALL COLLOCATE_DAYA ;3 CALL COLLOCATE_PTR ;4 WAIT: BSF RC,3 ;CE=1,5 CALL DS1820 ;6 CALL READY_TRANSMITTOPTR CALL TRANSMITOPTR CALL DELAL9S ;8 GOTO WAIT ;9 END

55

陕西广播电视大学机械制造及其自动化专业毕业设计

二、接收程序: ;******************************* 接收程序 RECEIVE.ASM :******************************* #INCLUDE<P16F74.INC> ;******************************** RB EQU 6 RC EQU 7 CBLOCK,OX20 COUNT3 COUNT4 COUNT BIT BUFF TEMP FSR_TEMPl FSR_TEMP2 TXPTR TX COUNT SUB_TEMDATA XIAOSHUDIANWEI_FLAG W_TEMP STATUS_TEMP PCH_TEMP FSR_TEMP ZHENGFUSHU_FLAG TEMBUFF: .1 4 SENDBUFF: .3 5 ENDC COLLOCATEBUFF EQU 0X33; :15 COLLOCATEBYTE EQU 0X32 ORG GOTO OX000 MAIN

MOVWF STATUSTEMP; MOVF PCLATH,W MOVWF PCH_TEMP MOVF FSR,W MOVWF FSR_TEMP BSF STATUS,RPO BTFSS PIE1,TXIE GOTO ENDOFINT: BCF STATUS,RPO BTFSS PIRI,TXIF GOTO ENDOFINT :到此,确认为串行发送中断 MOVLW SENDBUFF; MOVWF FSR ; MOVF TXPTR,W ; ADDWF FSR,F ; MOVF INDF,W ; MOVWF TXREG ; INCF TXPTR,F ; DECFSZ TXCOUNT,F ; GOTO ENDOFINT; BSF STATUS,RPO BCF PIE1,TXlE TXIF BCF STATUS,RPO GOTO ENDOFINT; ENDOFINT: CLRF STATUS MOVF FSR_TEMP,W MOVWF FSR MOVF PCH_TMP,F MOVWF PCLATH MOVF STATUS_TEMP,W MOVWF STATUS SWAPF W_EMP,F SWAPF W_EMP,W RETFIE ;================================ RECEIVEDATA: MOVLW,TEMBUFF MOVWF FSR RECEIVEDATAO:

;********************************* ; 与 PC 机通讯时所需要的中断程序 ; 中断服务程序 ;+++++++++++++++++++++++++++++++++ ORG OX004 ;保护现场 MOVWF W_TEMP MOVF STATUS,W CLRF STATUS ;SELECT ANKO

56

陕西广播电视大学机械制造及其自动化专业毕业设计

MOVLW .8 MOVWF BIT RECEIVEIDATA1: RLF TEMP BSF RC,3;CLKI=1 NOP NOP BTFSC RC,2 BSF TEMP,0 BTFSS RC,2 BCF TEMP,0 BCF RC,3;CLKI=0 NOP DECFSZ BIT,F GOTO RECEIVEDATA1 NOP MOVF TEMP,INDF INCF FSR,F BTFSC RB,5 GOTO RECEIVEDATAO RETLW 0 ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& COLLOCATE_DATA: MOVLW COLLOCATEBUFF MOVWF FSR MOVLW OX50 ; MOVWF INDF INCF FSR,F MOVLW OX50 MOVWF INDF MOVLW .2 MOVWF COUNT L1: MOVLW .4 MOVWF COUNT4 I NCF FSR,F MOVLW OX00 MOVWF INDF L2: INCF FSR,F MOVLW OXCC MOVWF INDF DECFSZ COUNT4,F GOTO L2

DECFSZ COUNT,F GOTO Ll INCF FSR,F MOVLW 0X83 MOVWF INDF INCF FSR,F MOVLW OX6F MOVWF INDF INCF FSR,F MOVLW OX05 MOVWF INDF RETLW O ;------配置 PTR4000--------------COLLOCATE_PTR: BCF RC,O NOP BSF RC,1 MOVLW .1 5 MOVWF COLLOCATEBYTE MOVLW COLLOCATEBUFF MOVWF FSR COLLOCATE_PTR1: MOVLW .8 MOVWF BIT MOVF INDF,W MOVWF BUFF INCF FSR,F COLLOCATE_PTR2: BTFSC BUFF,7 BSF Re,2 :RD,5 OUTPUT HIGH BTFSS BUFF,7 OUTPUT LOW BCF RC,2 :RD,5 NOP RLF BUFF,F CALL DOSPICLOCK DECFSZ BIT,F GOTO COLLOCATE_PTR2 DECFSZ COLLOCATEBYTEF,F GOTO COLLOCATE_PTR 1 BCF RC,l :CS=0 RETLW O ;--------------------------------

57

陕西广播电视大学机械制造及其自动化专业毕业设计

SEND_DATA: BCF STATUS,RPO MOVF TXCOUNT,W STATUS,Z;TXCOUNT=O, RETURN MOVLW .5 MOVWF COUNT MOVLW SENDBUFF MOVWF FSR MOVF FSR,W MOVWF FSR_TEMP2 MOVLW TEMBUFF MOVWF FSR : LLLO: MOVF INDF,W :判断”+”\”-” MOVWF BUFF INCF FSR,F MOVF FSR,W MOVWF FSR_TEMP1 . BTFSC BUFF,O GOTO FUHAOCHULI MOVF FSR_TEMP2,W MOVWF FSR MOVLW OX2B MOVWF INDF INCF FSR,F MOVF FSR,W MOVWF FSR_TEMP2 BCF ZHENGFUSHU_FLAG,0 GOTO LLL 1 FUHAOCHULI: MOVF FSR_TEMP2,W ’ MOVWF FSR MOVLW OX2D MOVWF INDF INCF FSR,F MOVF FSR,W MOVWF FSR_TEMP2 BSF ZHENGFUSHU_FLAG,0 LLL 1: MOVF FSR_TEMP l,W MOVWF FSR MOVF INDF,W

MOVWF SUB_TEMDATA : INCF FSR,F MOVF FSR,W MOVWF FSR_TEMPl BSF XIAOSHUDIANWEI_FLAG,0 BTFSS SUB_TEMDATA,0 BCF XIAOSHUDIANWEI_FLAG,0 BTFSS ZHENGFUSHU_FLAG,O GOTO DEALDATA;ZHENGFUSHU_FLAG.0=0 FUEENDUZHI: MOVF SUB_TEMDATA,W SUBLW .0; ZHENGFUSHU_FLAG.0=1, 为负,求补码 MOVWF SUB_TEMDATA DEALDATA: BCF STATUS,C ;CLEAR STATUS RRF SUB_TEMDATA,F MOVLW .100 SUBWF SUB_TEMDATA,W BTFSC STATUS,Z GOTO TEM1OO BTFSC STATUS,C GOTO SBU_TEMDATADAYU100 SUB_TEMDATADAYU100: CLRF STATUS MOVLW .10 SUBWF SUB_TEMDATA,W BTFSC STATUS,Z GOTO TEM10 BTFSS STATUS,C GOTOTEMXIAOYU10 MOVLW .20 SUBWF SUB_TEMDATA,W BTFSC STATUS,Z;SUB_TEMDATA=20? GOTO TEM20; SUB_TEMDATA=20 BTFSS STATUS,C; GOTO TEMXIAOYU20; SUB_TEMDATA<20 ;大于 20 处理 MOVLW .30;与 30 进行比较 SUBWF SUB_TEMDATA,W BTFSC STATUS,Z; SUB_TEMDATA=30? GOTO TEM30 ; SUB_TEMDATA=30 BTFSS STAUS,C; GOT0 TEMXIAOYU30; SUB_TEMDATA<30 ;大于 30 处理

58

陕西广播电视大学机械制造及其自动化专业毕业设计

MOVLW SUBWF BTFSC GOTO BTFSS GOTO MOVLW SUBWF BTFSC GOTO BTFSS GOTO MOVLW SUBWF BTFSC GOTO BTFSS GOTO MOVLW SUBWF BTFSC GOTO BTFSS GOTO MOVLW SUBWF BTFSC GOTO BTFSS GOTO M0VLW SUBWF BTFSC GOTO BTFSS GOTO MOVLW MOVWF INCF MOVLW SUBWF ADDLW MOVWF INCF

.40 SUB_TEMDATA,W STATUS,Z TEM40 STATUS,C TEMXIAOYU40 .50 SUB TEMDATA,W STATUS,Z TEM50 STATUS,C TEMXIAOYU50 .60 SUB_TEMDATA,W STATUS,Z TEM60 STATUS,C TEMXIAOYU60 .70 SUB_TEMDATA,W STATUS,Z TEM70 STATUS,C TEMXIAOYU70 .80 SUB_TEMDATA,W STATUS,Z TEM80 STATUS,C TEMXIAOYU80 .90 SUB_TEMDATA,W STATUS,Z TEM90 . STATUS,C TEMXIAOYU90 ’9’ SENDBUFF+COUNT4 COUNT4,F .90 SUB_TEMDATA,W .48; SENDBUFF+COUNT4 COUNT4,F

CALL XIAOSHUDIAN TEM100: GOTO LLL3 ;--------------------------------SBU_ TEMDATADAYU100: GOT0 LLL3 ;--------------------------------TEM90: MOVFFSR_TEMP2,W MOVWF FSR MOVLW ,9’ MOVWF INDF INCF FSR,F MOVLW ’O' MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;--------------------------------TEMXIAOYU90: MOVF FSR_TEMP2,W MOVWF FSR MOVLW '8’ MOVWF INDF INCF FSR,F MOVLW .80 SUBWF SUB_TEMDATA,W ADDLW .48 MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;-------------------------------TEM80: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ’8’ MOVWF INDF INCF FSR,F MOVLW ‘0’ MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOT0 LLL3
59

陕西广播电视大学机械制造及其自动化专业毕业设计

;-------------------------------TEMXIAOYU80: MOVF FSU_TEMP2,W MOVWF FSR MOVLW ’7’ MOVWF INDF INCF FSR,F MOVLW .70 SUBWF SUB_TEMDATA,W ADDLW .48 MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;--------------------------------TEM70: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ‘7’ MOVWF INDF INCF FSR,F MOVLW ’0’ MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;--------------------------------TEMXIAOYU70: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ‘6' MOVWF INDF INCF FSR,F MOVLW .60 SUBWF SUB_TEMDATA,W ADD 堋 .48 MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;--------------------------------TEM60: MOVF FSR_TEMP2,W MOVWF FSR

MOVLW ’6’ MOVWF INDF INCF FSR,F MOVLW ,0, MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;-------------------------------TEMXIAOYU60: MOVFFSR_TEMP2,W MOVWF FSR MOVLW ’5’ MOVWF INDF INCF FSR,F MOVLW .50 SUBWF SUB_TEMDATA,W ADDLW .48 MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOT0 LLL3 ;--------------------------------TEM50: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ,5' MOVWF INDF INCF FSR,F MOVLW ,0' MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOT0 LLL3 ;--------------------------------TEMXIAOYU50: MOVF FSR_TEMP2,W MOVWF FSR MOVLW '4' MOVWF INDF INCF FSR,F MOVLW .40 SUBWF SUB_TEMDATA,W ADDLW .48

60

陕西广播电视大学机械制造及其自动化专业毕业设计

MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;--------------------------------TEM40: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ,4’ MOVWF INDF INCF FSR,F MOVLW ,0, MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;-------------------------------TEMXIAOYU40: MOVF FSR_TEMP2,W MOVWF FSR MOVLW '3, MOVWF INDF INCF FSR,F MOVLW .3 O SUBWF SUB_TEMDATA,W ADDLW .48 MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;-------------------------------TEM30: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ,3, INCF FSR,F MOVLW ’0’ MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;--------------------------------TEMXIAOYU30: MOVF FSR_TEMP2,W

MOVWF FSR MOVLW ’2’ MOVWF INDF INCF FSR,F MOVLW .20 SUBWF SUB_TEMDATA,W ADDLW .48 MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;-------------------------------TEM20: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ,2, INCFFSR,F MOVLW ’0’ MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;--------------------------------TEMXIAOYU20: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ’l, MOVWF INDF INCF FSR,F MOVLW .10 SUBWF SUB_TEMDATA,W ADDLW .48 MOVWF INDF INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;-------------------------------TEM10: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ,l’ INCF FSR,F MOVLW '0’ MOVWF INDF

61

陕西广播电视大学机械制造及其自动化专业毕业设计

INCF FSR,F CALL XIAOSHUDIAN GOTO LLL3 ;-------------------------------TEMXIAOYU10: MOVF FSR_TEMP2,W MOVWF FSR MOVLW ’’ MOVWF INDF INCF FSR,F MOVLW .0 SUBWF SUB_TEMDATA,W ADDLW .48 MOVWF INDF INCF FSR,F INCF COUNT4,F CALL XIAOSHUDIAN ;------------------------------LLL3: MOVLW OXOD MOVWF INDF INCF FSR,F MOVLW OXOA MOVWF INDF INCF FSR,F MOVF FSR,W MOVWF FSR_TEMP2 MOVF FSR_TEMP1,W MOVWF FSR DECFSZ COUNT,F GOTO LLLO : MOVLW .3 5 : MOVWF TXCOUNT : CLRF TXPTR : BSF STATUS,RPO;SELECT BANK1 BSF PIE1,TXIE ;开启发送中断, TXIE 被置位后将立即产生一次中断 BCF STATUS,RPO;SELECTBANK0 RETURN ;********************************* XIAOSHUDIAN: CLRF STATUS MOVLW ‘.’ MOVWF INDF

INCF FSR,F MOVLW .1 XORWF XIAOSHUDIANWEI_FLAG,W BTFSS STATUS,Z GOT0 LLL2 MOVLW '5’ MOVWF INDF INCF FSR,F RETLW O LLL2: MOVLW ,O’ MOVWF INDF INCF FSR,F RETLW 0 ;-----------延时子程序----------DELAY20S: MOVLW .2000 MOVWF COUNT DELAY90VS1: MOVLW .10000 MOVWF COUNT 3 DEUW90VS2: DECFSZ COUNT3 , GOTO DELAY90VS2 DECFSZ COUNT GOTO DELAY90VS1 RETLW 0 ;================================= DOSPICLOCK: BSF RC,3 ;CLKI=1 NOP NOP BCF RC,3 RETLW 0 ;+++++++++++++++++++++++++++++++++ MAIN: BSF STATUS,RPO MOVLW 0XFD MOVWF TRISB MOVLW OXFO MOVWF TRISC BCF STATUS,RPO BSF RB,l;PWR=1 CALL COLLOCATE_DATA

62

陕西广播电视大学机械制造及其自动化专业毕业设计

CALL COLLOCATE_PTR BSF STATUS,RPO MOVLW 0XF4 MOVWF TRISC BCF STATUS,RPO CLRF PIRI CLRF INTCON CLRF PIEI;CLEAR ALL PIEI’S BITS MOVLW B’10000000’ MOVWF RCSTA BANKSEL TXSTA MOVLW B’00100100’ MOVWF TXSTA MOVLW .25 ;4MHZ,BRGH=1,9600BPS

MOVWF CLRF CLRF BSF BSF INTERUPTION WAIT: BSF BTFSS GOTO CALL CALL GOTO END

SPBRG STATUS TXCOUNT

A COUNT

INTCON,PEIE INTCON,GIE

RC,0 RB,5 WAIT RECEIVEDATA SEND_DATA WAIT

63

陕西广播电视大学机械制造及其自动化专业毕业设计

附录 D 硬件原理图

图 21

硬件设计总原理图
64


相关文档

数字化无线温度传感器的分析与设计设计
数字化无线温度传感器的设计与实现
数字化无线温度传感器的分析与设计毕业设计
数字化无线温度传感器与无线数据采集系统的设计与实现
无线温度传感器课程设计
无线温度传感器设计
智能无线温度传感器的设计
数字化无线温度传感器与无线数据采集系统的设计
基于无线数字温度传感器的多点温度测量系统设计
低功耗无线温度传感器的设计与实现
电脑版