单片机度采集系统设计_第1页
单片机度采集系统设计_第2页
单片机度采集系统设计_第3页
单片机度采集系统设计_第4页
单片机度采集系统设计_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、安徽科技学院 工学院 毕业设计(论文)目录一.绪论31.1引言31.2单片机控制温度采集系统的现状和成果4二. 总体设计52.1设计思路52.2 串行通信的相关知识6三硬件设计83.1单片机的选择83.1.1 at89s52 具有以下标准功能83.1.2 at89s52的注意事项83.1.3 at89s52的引脚及说明93.2 ds18b20的介绍113.2.1 ds18b20芯片简介113.2.2 ds18b20内部结构113.2.3 ds18b20控制方法133.2.4 ds18b20的通信协议143.2.5 内部时钟电路的设计153.2.6 复位电路15四软件设计184.1 单片机软件设

2、计概述184.2 流程图19附件22基于单片机控制主、从机串行通信的温度采集系统设计摘要:随着科技的进步,温度测量与控制在工业、农业、国防等行业有着广泛的应用。利用单片机技术控制的温度测控系统以其体积小,可靠性高而被广泛应用;而由单片机控制的主从机串行通信系统则可以实现远距离多点位的温度采集。测量控制的作用是从生产现场中获取各种参数,运用科学计算的方法,综合各种先进技术,使每个生产环节都能够得到有效的控制,不但保证了生产的规范化、提高产品质量、降低成本,还确保了生产安全。所以,测量控制技术已经被应用于炼油、化工、冶金、电力、电子、轻工、纺织以及工农业生产等行业。 关键词:单片机,主从机,主从机

3、,串行通信,温度采集一.绪论1.1引言在现代化的工业生产中,电流、电压、温度、压力、流量、流速和开关量都是常用的主要被控参数。例如:在冶金工业、化工生产、电力工程、造纸行业、机械制造和食品加工等诸多领域中,人们都需要对各类加热炉、热处理炉、反应炉和锅炉中的温度进行检测和控制。采用51系列单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。单片机诞生于20世纪70年代末,经历了scm、mcu、soc三大阶段。单片机作为微型计算机的一个重要分支,应用面很广,发展很快。自单片机诞生至今,已发展为上百种系列的近千个

4、机种。目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着cmos化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展(1)第一阶段(1976-1978):单片机的控索阶段。以intel公司的mcs 48为代表。mcs 48的推出是在工控领域的控索,参与这一控索的公司还有motorola 、zilog等,都取得了满意的效果。这就是scm的诞生年代,“单机片”一词即由此而来。 (2)第二阶段(1978-1982)单片机的完善阶段。intel公司在mcs 48 基础上推出了完善的、典型的单片机系列mcs 51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。 完善的

5、外部总线。mcs-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有很多机通信功能的串行通信接口。 cpu外围功能单元的集中管理模式。 体现工控特性的位地址空间及位操作方式。 指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。(3)第三阶段(1982-1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。intel公司推出的mcs 96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着mcs 51系列的广应用,许多电气厂商竞相使用80c51为内核,将许

6、多测控系统中使用的电路技术、接口技术、多通道a/d转换部件、可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征。 (4)第四阶段(1990):微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小、功能将列强。在单片机家族中,80c51系列是其中的佼佼者,加之intel公司将其mcs 51系列中的80c51内核使用权以专利互换或出售形式转让给全世界许多著名ic制造厂商,如philips、 nec、atme

7、l、amd、华邦等,这些公司都在保持与80c51单片机兼容的基础上改善了80c51的许多特性。这样,80c51就变成有众多制造厂商支持的、发展出上百品种的大家族。80c51单片机已成为单片机发展的主流。专家认为,虽然世界上的mcu品种繁多,功能各异,开发装置也互不兼容,但是客观发展表明,80c51可能最终形成事实上的标准mcu芯片。1.2单片机控制温度采集系统的现状和成果随着现代工业的逐步发展,在工业生产中,温度是一个非常重要的过程变量。例如:在冶金工业、化工工业、电力工业、机械加工和食品加工等许多领域,都需要对各种加热炉、热处理炉、反应炉和锅炉的温度进行控制。然而,用常规的控制方法,潜力是有

8、限的,难以满足较高的性能要求。采用单片机来对它们进行控制不仅具有控制方便、简单和灵活性大的优点,而且可以大幅度提高被测温度的技术指标,从而能够大大提高产品的质量和数量。因此,单片机对温度的控制问题是一个工业生产中经常会遇到的控制问题。随着科技的进步,各式各样的温度采集产品充斥着市场,根据不同的需求被不同的用户所选用。(1)基于at89s52的智能温度采集系统该系统的核心控制器件为at89s52、ds18b20传感器。由于ds18b20所采集的环境温度,可以直接输出数字信号,无须经过转换,就可以直接被at89s52单片机处理。且系统的高低温报警采用了发光二极管和蜂鸣器作为报警元件。在一般的系统中

9、,高低温报警装置仅有发光二极管或仅有蜂鸣器。但出于系统的安全性考虑,两个发光二极管分别在温度过高或过低的时候被点亮,充当“指示灯”的报警角色,而不管是温度过高还是过低,蜂鸣器都会报警。这样形成的双重报警,使系统更加可靠,就算蜂鸣器或光二极管中有元件被损坏,还是具有报警功能。(2)多点温度传感无线采集系统的研究一种基于labview 的由pc机控制的无线温度采集系统的设计方法由数字温度传感器与单片机组成温度采集模块,用编解码芯片与无线收发电路来实现对温度数据的无线发送与接收,利用labview 提供的串行通信功能实现pc机与接收端单片机之间的通信可实现对单个温度采集点或多个温度采集点的循环采集,

10、显示和保存采集到的温度数据,具有配置灵活,准确率高等特点。,由温度无线采集与显示、无线接收、前端处理单元及pc机中的labew 控制平台组成无线采集与显示模块实现温度采集、显示并发送数据,单片机ar89c2051控制数字温度传感器ds18b20采集温度,并通过数码管显示温度值,经由编码芯片pt2262所组成的电路无线发送六位二进制温度数值;无线接收模块由解码芯片pt2272与外围电路组成,实现无线信号接收并解码出对应的二进制数值;前端处模块主要由单片机at89c52和串行通信芯片max232组成,实现对解码出来的数据的读取与处理,控制接收模块的地址码及实现与pc机之间的通信;pc机运行labv

11、iew 编写的控制操作平台,进行采集点与采集次数设置,然后将设置好的参数通过max232串口通信送给单片机at89c52,控制接收模块上的地址码,接收相应采集点的数据并完成采集,单片机at89c52将采集到的数据通过max232串口通信传送给pc机,实现对采集数据显示和存储。(3)基于嵌入式和ds18b20的温度采集系统利用mcu、温度传感器、flash,片和usb控制芯片设计一个基于嵌入式usb主机的温度采集系统该系统能将采集到的温度数据存储在自己的flash芯片中,能将数据通过usb接口存储到usb移动存储设备中,同时还能够作为pc机的一个外设,通过usb接口连接到pc机上,直接在pc软件

12、上进行温度数据的分析和处理重点论述了温度采集系统的设计与实现。随着电子技术的发展,还将有新的的产品出现。为日常生活带来更多的便利。二. 总体设计2.1设计思路由理论知识可知,所设计的这种温度计的功能是传统的物理温度计无法完成的。在分析之后决定采用以单片机at89c52为核心的系统进行设计。主要设计思路如下图2-1所示:主机传感器 ds18b20从机 1#从机 2#显示显示图2-12.2 串行通信的相关知识一般说来,系统中单片机之间的通信方式有两种。一种是并行方式,一种是串行方式。并行方式是指将每个数据的各位同时传输。硬件上多利用单片机的id 口和公用ram 蒜片共同完成。并行方式传输速度快,但

13、是传输距离短,而且控制线路比较夏杂,主从式多机系统一般不采用这种方式 串行方式是将每个数据的各位串行传输。大部分单片机都有串行传输端口,串行通信电路封装在单片机芯片内,这使硬件设计非常简单,而且传输距离较长,传输速度适中。主从式多机系统多采用此种通信方式在一个比较复杂的系统中,由于任务多,一台单片机不能完成所有的任务,这便需要多台单片机共同来实现整个系统的功能多台单片机的组成形式有多种,其中主从式为较好的一种如下图2-2所示:主 机从机 1#从机 2#从机 n#图2-2 主从式多机系统的结构框图双机数据交换如图2-3所示。单片机一般都具有串行传输端口,如果仅为两个单片机之间的串行通信,只要如图

14、2-3所示,将一台单片机的串行输入口(rxd)和串行输出口(txd)与另一台单片机的txd口和砌rxd口交叉相连即可但对于主从式多机系统就没有这么简单多机系统的通信连接方式有环式、星式、总线式几种。上面两图中各个从机完成系统分配给它们的任务,主机则从各个从机中得 rxd txd 单片机1#rxd txd 单片机2#图2-3 串行连接示意图到系统中各个部分的信息,并控制从机完成各种任务这样,主从机之同便需要进行大量的数据交换,这需要依靠靠系统的通信部分完成。三硬件设计3.1单片机的选择由单片机是温度采集系统的核心部分。整个系统中的温度采集、数据交换和处理都要受控于处理器,考虑到设备应具备低功耗、

15、高可靠性和便携性等因素。我选择使用51系列单片机at89s52作为控制单元。at89s52 是一种低功耗、高性能 cmos8 位微控制器,具有8k 在系统可编程 flash 存储器。使用 atmel 公司高密度非易失性存储器技术制造,与工业 80c51 产品指令和引脚完全兼容。片上 flash 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 cpu 和在系统可编程 flash,使得 at89s52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。3.1.1 at89s52 具有以下标准功能:(1)与mcs-51单片机产品兼容;(2)8k 字节 flash;(

16、3)256 字节ram;(4)32 位 i/o 口线;(5)看门狗定时器;(6)2 个数据指针;(7)三个 16 位定时器/计数器;(8)一个 6 向量 2 级中断结构;(9)全双工串行口,片内晶振及时钟电路;(10)空闲模式下,cpu停止工作,允许 ram、定时器/计数器、串口、中断继续工作;(11)掉电保护方式下,ram 内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 3.1.2 at89s52的注意事项(1)89s52的看门狗必须由程序激活后才开始工作。所以必须保证cpu有可靠的上电复位。否则,看门狗也无法工作。(2)看门狗使用的是cpu的晶振。在晶振停振的

17、时候看门狗也无效。 3.1.3 at89s52的引脚及说明图3-1如图3-1所示: vcc:供电电压。gnd:接地。rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。ale/prog:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在flash编程期间,此引脚用于输入编程脉冲。在平时,ale端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ale脉冲。如想禁止ale的输出可在sfr8eh地址上置0。此时,ale只有在执行movx,movc指令

18、是ale才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ale禁止,置位无效。psen:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次psen有效。但在访问外部数据存储器时,这两次有效的psen信号将不出现。ea/vpp:当/ea保持低电平时,则在此期间外部程序存储器(0000h-ffffh),不管是否有内部程序存储器。注意加密方式1时,/ea将内部锁定为reset;当/ea端保持高电平时,此间内部程序存储器。在flash编程期间,此引脚也用于施加12v编程电源(vpp)。xtal1:反向振荡放大器的输入及内部时钟工作电路的输入。xtal2:来自反向振荡器的

19、输出。p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在flash编程和校验时,p1口作为第八位地址接收。p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”

20、时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。p2口在flash编程和校验时接收高八位地址信号和控制信号。p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。p3口也可作为at89s51的一些特殊功能口,如下所示。p3口各位的第二功能:p3.0 rxd(串行输入口)p3.1txd(串行输出口)p3.2 int0(外部中断0)p3.3 int1(外部中断1)p3.4 t0(计时器0外

21、部输入)p3.5 t1(计时器1外部输入)p3.6 wr(外部数据存储器写选通)p3.7 rd(外部数据存储器读选通)3.2 ds18b20的介绍3.2.1 ds18b20芯片简介ds18b20是美国dallas半导体器件公司推出的单总线数字化智能集成温度传感器。单总线(1-wire)是dallas公司的一项专有技术,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省i/o口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。与其它温度传感器相比,ds18b20具有以下特性:独特的单线接口方式,在与微处理器连接时仅需要一条接口线即可实现微处理器与ds18b20的双向通

22、信。ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的信号线上,实现多点测温。ds18b20在使用中不需要任何外围元件。测温范围-55+125,固有测温分辨率0625。测量结果以912位数字量方式串行传送。3.2.2 ds18b20内部结构ds18b20内部结构主要由四部分组成:64位光刻rom,温度传感器,非挥发的温度报警触发器th和tl,高速暂存器。64位光刻rom是出厂前被光刻好的,它可以看作是该ds18b20的地址序列号。ds18b20的管脚排列如图3-2所示: 图3-2 ds18b20引脚分布图 引脚功能如下:nc:空引脚,悬空不使用;vdd:可选电源脚,电源电压范围

23、35.5v。工作于寄生电源时,此引脚应接地;dq:数据输入/输出脚,漏极开路,常态下高电平。dsl8820的核心功能部件是它的数字温度传感器,其分辨率可配置为9、10、11和12位,出厂默认设置为12位分辨率,对应的温度值分辨率分别为0.5、0.25、0.125和0.0625。温度信息的低位、高位字节内容中,还包括了符号位s(是正温度还是负温度)和二进制小数部分,具体形式为:低位字节:msb232221202-12-2lsb2-32-4高位字节:msbsssss26lsb2524是12位分辨率的情况,如果配置为低的分辨率,则其中无意义位为0。实测温度和数字输出的对应关系如表1所示表1实测温度和

24、数字输出的对应关系温度/数字输出(二进制)数字输出(十六进制)+1250000 0111 1101 000007d0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000a2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000fff8h-10.1251111 1111 0101 1110ff5eh-25.06251111 1110 0110 1111ff6fh-551111

25、 1100 1001 0000fc90h在dsl8b20完成温度变换之后,温度值与储存在th和tl内的告警触发值进行比较。由于是8位寄存器,所以912位在比较时忽略。th或tl的最高位直接对应于16位温度寄存器的符号位。如果温度测量的结果高于th或低于tl,那么器件内告警标志将置位,每次温度测量都会更新此标志。只要告警标志置位,dsl8b20就将响应告警搜索命令,这也就允许单线上多个dsl8b20同时进行温度测量,即使某处温度越限,也可以识别出正在告警的器件3.2.3 ds18b20控制方法 ds18b20有六条控制命令,如表2所示:指 令 约定代码 操 作 说 明 温度转换 44h 启动ds

26、18b20进行温度转换 读暂存器 beh 读暂存器9个字节内容 写暂存器 4eh 将数据写入暂存器的th、tl字节 复制暂存器 48h 把暂存器的th、tl字节写到e2ram中 重新调e2ram b8h 把e2ram中的th、tl字节写到暂存器th、tl字节 读电源供电方式 b4h 启动ds18b20发送电源供电方式的信号给主cpu 表2 控制命令3.2.4 ds18b20的通信协议ds18b20器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲,应答脉冲时隙;写0,写1时隙;读0,读1时隙。与ds18b20的通信,是通过操作时隙完成单总线上的数据传输。发送所有

27、的命令和数据时,都是字节的低位在前,高位在后。(1)复位和答应脉冲时序每个通信周期起始于微控制器发出的复位脉冲,其后紧跟ds18b20发出的应答脉冲,在写时隙期间,主机向ds18b20器件写入数据,而在读时隙期间,主机读入来自ds18b20的数据。在每一个时隙,总线只能传输一位数据。时序图见下图3-3。(2)写时隙当主机将单总线dq从逻辑高拉到逻辑低时,即启动一个写时隙,所有的写时隙必须在60120us完成,且在每个循环之间至少需要1us的恢复时间。写0 和写1时隙如图所示。在写0时隙期间,微控制器在整个时隙中将总线拉低;而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之释放总线。

28、 图3-3 复位和应答脉冲时隙 图3-4 读写时序(3)读时隙ds18b20器件仅在主机发出读时隙时,才向主机传输数据。所以在主机发出读数据命令后,必须马上产生读时隙,以便ds18b20能够传输数据。所有的读时隙至少需要60us,且在两次独立的读时隙之间,至少需要1us的恢复时间。每个读时隙都由主机发起,至少拉低总线1us。在主机发起读时隙之后,ds18b20器件才开始在总线上发送0或1,若ds18b20发送1,则保持总线为高电平。若发送为0,则拉低总线当发送0时,ds18b20在该时隙结束后,释放总线,由上拉电阻将总线拉回至高电平状态。ds18b20发出的数据,在起始时隙之后保持有效时间为1

29、5us。因而主机在读时隙期间,必须释放总线。并且在时隙起始后的15us之内采样总线的状态。时序图见图3-4。3.2.5 内部时钟电路的设计利用芯片内部的振荡电路,在xtal1,xtal2引脚上外接定时元件,内部的振荡电路便产生自激振荡。最常用的内部时钟方式是采用外接晶体(在频率稳定性要求不高而希望尽可能廉价时,可选择陶瓷谐振器)和电容组成的并联谐振回路,振荡晶体可在1.2mhz12mhz之间选择。电容值无严格要求,但电容的取值对振荡频率输出的稳定性、大小、振荡电路起振速度有少许影响,cx1,cx2可在20pf100pf之间取值。在设计印刷电路板时,晶体或陶瓷谐振器和电容应尽可能靠近单片机芯片安

30、装,以减少寄生电容,更好地保证振荡器稳定和可靠地工作。振荡晶体我们选12mhz,cx1和cx2我们选30pf,如图3-6所示。3.2.6 复位电路每个单片机或系统要想能够稳定持久的运行就必须有复位电路,复位电路分为以下两种如图3-5: rst单片机gndrst单片机gndrr 图3-5复位电路的核心就是如前所述的必须保证rst引脚上出现10ms以上稳定的高电平,这样就能实现可靠地复位。我选择的则是第二种。因此本单片机控制系统的复位电路如图3-6。图3-6四软件设计由于器件的功能性、经济性等原因,系统的硬件电路不可能完全实现设计者所期望实现的系统的全部功能,许多功能仍依赖于软件设计来实现。利用软

31、件对温度采集系统进行设计,不但使融合处理变为可能,而且可以提高系统的可靠性、灵活性,并能大大地降低系统的成本。可以说系统能否正常可靠地工作,除了硬件的合理设计外,与功能完善的软件设计是分不开的。本系统的软件是用单片机的汇编语言编制的,执行速度快,实时性强。4.1 单片机软件设计概述单片机的程序设计有其自身的特点。首先,单片机的系统程序与应用程序密不可分,系统程序与应用程序必须放在一起考虑。其次,在单片机系统中,硬件与软件紧密结合,软件直接操作硬件,硬件设计的优劣直接影响到软件设计的难易和质量。第三,在很多时候,在付出额外占用cpu时间的代价的条件下,软件可以替代硬件的某些功能。在程序设计时,往

32、往存在着时间与空间的矛盾。在一些程序编译器中,有时间优化和空间优化的选项,但时间优化与空间优化不能同时存在。编译器在处理优化时实际是采用了时间换取空间或者空间换取时间的策略。在设计程序时,我们也可以采取这样的策略提高系统的性能。比如,目前程序存储器的容量己不是设计的关键因素,我们可以利用存储器的空间实现程序响应速度的加快。 除了有自身的特点外,单片机的程序设计同样具有一般软件设计的特点。首先,应该有一个合理的算法,以合理的资源耗费实现预定的功能。其次,设计的软件应有较好的可读性、可维护性、可移植性。做到这一点往往需要使用高级语言,采用结构化的设计思想。基于信息融合的汽车防盗系统得软件设计按如下

33、的步骤进行:(1)分析问题,明确所要解决的问题的要求。(2)确定算法。根据问题的要求和指令系统的特点,决定系统程序算法。算法是进行程序设计的依据,它决定了程序的正确性和程序的质量。(3)制定程序框图。根据所选择的算法,制定出运算的步骤和顺序,把运算过程划成程序的流程图。4.2 流程图(1)主从机流程图 系统初始化 是检测p2.0是否有变化否检测p2.1是否有变化给p2.0输入新值tb8=1,发送从机1地址是给p2.1输入新值tb8=1,发送从机2地址t1=1?发送是否完毕否t1=1?发送是否完毕是是tb8=0与从机1通信tb8=0与从机2通信是是否t1=1?发送是否完毕否t1=1?发送是否完毕

34、 系统初始化后,系统立即对p2.0和p2.1口进行检测,如果二者都没变化,则在此进行循环检测,如果二者被检测到了就会按序传送地址到从机1和从机2,当从机接到地址后会自动检测数据是否接收完成,如果接收完成,则与传感器进行通信,反之,在此继续循环。(2)中断流程图中断程序是保护现场ri=1?输入数据否判断sm2值选择从机1否是是选择从机2判断sm2值输入地址准备接收否否是输入地址准备接收送端口显示送端口显示出 栈(3)单片机实现温度转换读取温度数值程序流程开始初始化ds18b20否应答脉冲发起skip rom的命令发起convert t的命令延时1s等待温度转换完成初始化ds18b20否应答脉冲是

35、发起read scratchpad命令读取第一二字节即为温度数据附件:电路原理图 程序:主程序:at89s52-a1程序(主机) org 00h jmp start org 23h ; uarti中断开始地址 jmp uartistart: mov tomd,#00100000b ;定时器1在方式2下工作 anl fcon,#01111111b mov th1,#0f3h setb tr1 ;启动定时器1 mov scon,#11010000b ;uart在方式3下工作 mov 1e,#10010000b setb sm2 ;设sm=1 mov 30h,#0ffh mov 31h,#0ffh

36、mov 32h,#0ffhloop: mov a, p1 cjne a, 30h,uart1 ;判断是否变化 jmp loop1loop1: mov a,p2 cjne a, 31h,uarti2 jmp loopuart1: mov 30h,a setb tb8 ;设tb8=1 mov sbuf,#01hwart1: jbc ti,l1 jmp wart1l1: clr tb8 ;tb8清零 mov sbuf,30hwait2: jbc ti, loop jmp wart2uart2: mov 31h,a setb tr8 mov sbuf,#02hwait3: jbc ti,l3 ;发送完

37、毕否 jmp wait3l3: clr tb8 mov buf,31hwait4: jbc ti, loop jmp wart4uartr1 push acc push psw jbc ri,l5jmp returnl5: jb sm2,l6 ; mov a,sbuf mov 33h,a ;p0显示低四位 mov a,32h cjne a,#01h,l8 mov a,33h mov p0,a setb sm2 ;sm=1,准备接受地址 mov 32h,#0ffhjmp returnl8: cjne a,#02h, return mov a,33h ;p0显示高四位swap a, mov p0,

38、 a setb sm2 mov 32h, #0ffhjmp returnl6: mov a, sbuf cjne a,#01h,l7 mov 32h,a clr sm2 jmp returnl7: cjne a,#02h, return mov 32h,aclr sm2return: pop psw ;取回psw pop acc retiendat89s52-a2程序(从机1):org 00h jmp start org 23h ; uarti中断开始地址jmp uartistart: mov tomd,#00100000b ;定时器1在方式2下工作 anl fcon,#01111111bmo

39、v th1,#0f3h setb tr1 ;启动定时器1 mov scon,#11010000b ;uart在方式3下工作 mov 1e,#10010000b setb sm2 ;设sm=1 mov 30h,#0ffh ;p1输入开关初值loop: mov a, p1 cjne a, 30h,uart1 ;判断是否变化 jmp loopuart: orl a, 0f0h mov 30h,a setb tr8mov subf,#01hwait1: jbc ti,l1 jmp wart1l1: clr tb8 ;tb8清零 mov sbuf,30hwait2: jbc ti, loopjmp wa

40、rt2uartri: push acc push psw jbc ri,l5jmp returnl5: jb sm2,l6 ; mov a,sbuf mov p2,a mov a,32h setb sm2 ;sm2=1;备接受地址jmp returnl6: mov a,sbuf cjne a,#01h,rturn clr sm2rturn: pop psw pop acc retiendat89s52-a3程序(从机2): org 00h jmp start org 23h ; uarti中断开始地址 jmp uartistart: mov tomd,#00100000b ;定时器1在方式2下

41、工作 anl fcon,#01111111b mov th1,#0f3h setb tr1 ;启动定时器1 mov scon,#11010000b ;uart在方式3下工作 mov 1e,#10010000b setb sm2 ;设sm2=1 mov 30h,#0ffhloop: mov a, p1 cjne a, 30h,uart1 ;判断是否变化 jmp loopuart1: orl a,#0fh swap a mov 30h,a setb tb8 mov sbuf ,#02hwait1: jbc ti, l1 jmp wait1l1: clr tb8 ;tb8清零 mov sbuf,30

42、hwait2: jbc ti, loopjmp wart2uartri: push acc push psw jbc ri,l5jmp returnl5: jb sm2,l6 ; mov a,sbuf mov p2,a setb sm2 ;sm2=1;备接受地址jmp returnl6: mov a,sbuf cjne a,#01h,rturn clr sm2rturn: pop psw pop acc retiend传感器ds18b20程序 ds18b20初始化程序:ds18init: setb p3.3nopclr 3.3mov r1,#3dely1 : mov r0,#107 djnz

43、r0,$djnz r1,dely1setb p2nopnopmov r0,#25hdely2: jnp p2, dely3djnz r0, dely2ljmp dely4dely3: setb flag1ljmp dely5dely4 clrljmp dely7dely5: mov r0,#117dely6: djnz r0, dely6dely7: setb p2retds18b20子程序:writeds18: mov r2,#8 clc cw1: lcr p3.3 mov r3,#5 djnz r3,$ rrc a mov p3.3,cmov r3,#21djnz r3,$setb p3.3 nopdjnz r2,w1setb p3.3ret结论:通过对以上的阅读,应该了解单片机串行控制温度采集系统设计的原理 ,这类温度采集系统是现在市场需求的主流,在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论