




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、河南机电高等专科学校毕业设计论文第1章 绪论多点温度控制系统是比较常见的和典型温度测控系统,温度是塑料大棚生产过程中重要的被控参数之一,在塑料大棚中要根据温度光照等参量惊醒调节。是光合作用和呼吸作用达到一个理想的状态,从而增加蔬菜的产量。因此,对温度的时时测控是达到目的的一种重要的手段。本设计是针对mcs51型at89c51系列单片机在检测和控制方面的应用,分析温度控制系统实际。在设计中,首先介绍了一下在设计中用到的一些重要芯片,如at89c51、ad0809等,使读者在阅读过程中,对各个芯片的具体功能更加清晰;在温度采集电路设计中,以大量的篇幅介绍了温度采集与数据变换过程,并将设计的流程图,
2、并将温度的数据时时的传递到上位机上,使用户可以足不出户就能了解大棚内的温度。第2章 整体方案 本方案采用基于ds18b20分布式多点测温方式实现对整个大棚内温度实施测控,并且采用比较流行的at89s51作为电路的控制核心,使用12位的高精度模数转换器ad574a进行数据转换,控制电路部分采用继电器控制通风机从而实现降温要求。 报警单 片 机数 码 管 显示 执行机构上位机 温 度 采 集 ( 图一) 有多个ds18b20采集数据,从而实现分布式多点测温,再有单片机上传到上位机在上位机上显示温度。该设计结构简单,控制电路可靠,有较强的通用性。所设计的控制系统有以下功能: 温度控制设定波动范围小于
3、1%,测量精度小于1%,控制精度小于2%,超调整量小于4%; 当温度过高时可以通过通风设施实现降温; 实时显示当前温度值; 按键控制:设置复位键、运行键、功能转换键。 越限报警,当越限是上位机按钮颜色有绿变红。当温度回到设定范围时按钮颜色恢复正常。2.1 方案实现利用单片机、delphi和usb测控模块设计一个温度控制系统,灯模拟加热系统,ds18b20进行测温,对温度在一定范围内进行控制,如果超出上限范围将关闭,如果温度低于下限温度将打开模拟加热系统进行加热。打开系统后首先点停止,然后设置上下限温度(上限温度应超过下限温度,当设置上限温度小于下限温度时则会出现警告“您输入的数据错误!”),然
4、后点开始,系统进行工作。例如:设置上限温度为40度,下限温度为35度。点击“开始”报警点为白色;当温度在35度和40度之间时,报警变绿;当温度超过40度时,报警变红。2.2 设计方案及工作原理 利用单片机的18b20测得环境温度,经过单片机处理,不十进制的温度数转化成8位二进制数并发送到p0口,连接usb模块和单片机p0口,让他们同电位,也就是说单片机测得的温度就转化成了usb 模块可以是别的二进制数,经过串口线接口送到上位机,再利用delphi软件编程获得实际温度的十进制数并显示出来。 第3章 硬 件3.1 ds18b20 单总线数字温度计 3.1.1 ds18b20特性 * 独特的单线接口
5、仅需一个端口引脚进行通讯 * 简单的多点分布应用 * 无需外部器件 * 可通过数据线供电 * 零待机功耗 * 测温范围-55+125,以0.5递增。华氏器件-67+257 f,以0.9f 递增 * 温度以9位数字量读出 * 温度数字量转换时间200ms (典型值) * 用户可定义的非易失性温度报警设置 * 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 * 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 3.1.2 ds18b20说明 ds1820 数字温度计以9位数字量的形式反映器件的温度值。ds1820 通过一个单线接口发送或接收信息,因此在中央微处理器和ds18
6、20 之间仅需一条连接线(加上地线)。用于读写和温度转换的电源可以从数据线本身获得,无需外部电源,因为每个ds1820 都有一个独特的片序列号,所以多只ds1820 可以同时连在一根单线总线上,这样就可以把温度传感器放在许多不同的地方。这一特性在hvac 环境控制、探测建筑物、仪器或机器的温度以及过程监测和控制等方面非常有用。 引脚说明 (图二)(图二)的方框图示出了ds1820 的主要部件表2.1的ds18b20详细引脚描述序号 名称 引脚功能描述 1 gnd 地信号 2 dq 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 vdd 可选择的vdd引
7、脚。当工作于寄生电源时,此引脚必须接地。 (表2.1)ds1820 有三个主要数字部件:1)64位激光rom,2)温度传感器,3)非易失性温度报警触发器th 和tl。器件用如下方式从单线通讯线上汲取能量:在信号线处于高电平期间把能量储存在内部电容里,在信号线处于低电平期间消耗电容上的电能工作,直到高电平到来再给寄生电源(电容)充电。ds1820 也可用外部5v电源供电。ds1820 依靠一个单线端口通讯。在单线端口条件下,必须先建立rom 操作协议,才能进行存储器和控制操作。因此,控制器必须首先提供下面5个rom 操作命令之一:1)读rom,2)匹配rom,3)搜索rom,4)跳过rom,5)
8、报警搜索。这些命令对每个器件的激光rom 部分进行操作,在单线总线上挂有多个器件时,可以区分出单个器件,同时可以向总线控制器指明有多少器件或是什么型号的器件。成功执行完一条rom 操作序列后,即可进行存储器和控制操作,控制器可以提供6条存储器和控制操作指令中的任一条。一条控制操作命令指示ds1820 完成一次温度测量。测量结果放在ds1820 的暂存器里,用一条读暂存器内容的存储器操作命令可以把暂存器中数据读出。温度报警触发器th 和tl 各由一个eeprom 字节构成。如果没有对ds1820 使用报警搜索命令,这些寄存器可以做为一般用途的用户存储器使用。可以用一条存储器操作命令对th 和tl
9、 进行写入,对这些寄存器的读出需要通过暂存器。所有数据都是以最低有效位在前的方式进行读写。 3.1.3 寄生电源 寄生电源的方框图见图1。这个电路会在i/o或vdd 引脚处于高电平时“偷”能量。当有特定的时间和电压需求时(见节标题“单线总线系统”),i/o要提供足够的能量。寄生电源有两个好处:1)进行远距离测温时,无需本地电源,2)可以在没有常规电源的条件下读rom。要想使ds1820 能够进行精确的温度转换,i/o线必须在转换期间保证供电。由于ds1820 的工作电流达到1ma,所以仅靠5k上拉电阻提供电源是不行的,当几只ds1820 挂在同一根i/o线上并同时想进行温度转换时,这个问题变得
10、更加尖锐。有两种方法能够使ds1820 在动态转换周期中获得足够的电流供应。第一种方法,当进行温度转换或拷贝到e2 存储器操作时,给i/o线提供一个强上拉。用mosfet 把i/o线直接拉到1上就可以实现,见图2。在发出任何涉及拷贝到e 存储器或启动温度转换的协议之后,必须在最多10s之内把i/o线转换到强上拉。使用寄生电源方式时,vdd 引脚必须接地。 3.1.4 分组测试方法本文以ds18b20与89c52接口进行分组方法说明,假设89c52的p1口可用于扩展的总线根数为4,测温系统共需100个ds18b20,可将100个传感器平均分配,分别挂在4根i/0 线上,若存在传感器数量不能被总线
11、根数整除现象,则可使所有总线上所挂传感器个数差别不超过1,在进行读数时稍作处理就能解决,电源方式采用外部供电方式,由于各ds18b20转换方式是采用同时转换,所以需要电流较大,不能利用信号线供电,否则系统无法正常工作。接线示意图如下图2 所示(同组的ds18b20信号线都挂在p1口的某根总线上)。ds18b20的读写控制须严格按照时序要求进行,其流程如下,首先给所有的ds18b20发送一个复位脉冲,复位结束后同时从各i/o口发送skiprom命令,接着发送转换命令,全部传感器开始转换,转换结束后向各路同时发送match rom命令,接着发送64位序列号,各组分别选中一个ds18b20,然后读取
12、scratch pad数据,最后进行数据转换,将串行读入的数据转换实际的温度值,循环读取25次将所有ds18b20温度数据完全读完,巡检一次的任务完成,流程具体如左图3所示。下面进行单总线方式和分组方式测试(都采用同时转换方式)系统耗时分析,图4-6分别为ds18b20的复位时序、微处理器写一位和读一位的时序3。由图可知:复位时间为:495us-1020us写一位的时间:60us-120us读一位的时间:60us以上读写相临一位时间间隔:1us由于模数转换时间为97.35ms(9位精度),所以总的巡检时间若均按最短时间计算分别为: (1)总线方式: 495us+2*(8*60+7)us+97.
13、35ms+495us+100*(64*60+63+8*60+7+9*60+8)us=552.534ms(2)分组方式495us+2*(8*60+7)us+97.35ms+20(64*60+63+8*60+7+9*60+8)us=189.804ms数制转换和存储时间因为占总的巡检时间比重很小、以及晶振频率无法确定,此处未做计算,由计算结果可知,采用分组方式巡检时间能得到明显降低。3.1.5 ds18b20的使用方法 由于ds18b20采用的是1wire总线协议方式,即在一根数据线实现数据的双向传输,而对at89s51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的
14、协议时序来完成对ds18b20芯片的访问。由于ds18b20是在一根i/o线上读写数据,因此,对读写的数据位有着严格的时序要求。ds18b20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 ds18b20采用外部供电方式,单总线长度也不宜超过80m,否则也会影响到数据的传输。在实际应用中还可以使用一个mosfet将i/o口线直
15、接和电源相连,起到上拉的作用。对ds18b20的设计,需要注意以下问题:(1)对硬件结构简单的单线数字温度传感器ds18b20 进行操作,需要用较为复杂的程序完成。编制程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用ds18b20 的高测温分辨力时,对时序及电气特性参数要求更高。(2)测温电缆线建议采用屏蔽4 芯双绞线,其中一对线接地线与信号线,另一组接vcc和地线,屏蔽层在源端单点接地。ds18b20 在三线制应用时,应将其三线焊接牢固;在两线应用时,应将vcc与gnd接在一起,焊接牢固。若vcc脱开未接,传感器只送85.0 的温度值。(3)实
16、际应用时,要注意单线的驱动能力,不能挂接过多的ds18b20,同时还应注意最远接线距离。另外还应根据实际情况选择其接线拓扑结构。另一种给ds1820 供电的方法是从vdd 引脚接入一个外部电源,见图3。这样做的好处是i/o 线上不需要加强上拉,而且总线控制器不用在温度转换期间总保持高电平。这样在转换期间可以允许在单线总线上进行其他数据往来。另外,在单线总线上可以挂任意多片ds1820。3.1.6 at89s51功能描述:at89s51是一种低功耗、高性能cmos8位微控制器,具有8k 在系统可编程 flash 存储器。使用 atmel 公司高密度非易失性存储器技术制造,与工业 80c51 产品
17、指令和引脚完 全兼容。片上flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 cpu 和在系统可编程flash,使得 at89s52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 at89s51具有以下标准功能: 8k字节flash,256字节ram,32 位 i/o 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器,一个6向量 2级中断结构,全双工串行口,片内晶振及时钟电路。另外,at89s52 可降至 0hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,cpu停止工作,允许ram、定时器/计数器、串口、中断继续工 作
18、。掉电保护方式下,ram内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。端口引脚的第二功能:(1)p3.0 rxd(串行输入口)p3.1 txd(串行输出口);p3.2 into(外中断0);(2)p3.3 int1(外中断1);p3.4 to(定时/计数器0);p3.5 t1(定时/计数器1);(3)p3.6 wr(外部数据存储器写选通);p3.7 rd(外部数据存储器读选通)3.2 单总线目前常用的微机与外设之间进行数据传输的串行总线主要有i2c总线、spi总线和sci总线。其中i2c总线以同步串行2线方式进行通信(一条时钟线,一条数据线),spi总线则以同步串
19、行3线方式进行通信(一条时钟线,一条数据输入线,一条数据输出线),而sci总线是以异步方式进行通信(一条数据输入线,一条数据输出线)的。这些总线至少需要两条或两条以上的信号线。近年来,美国的达拉斯半导体公司(dallas semiconductor)推出了一项特有的单总线(1-wire bus)技术。该技术与上述总线不同,它采用单根信号线,既可传输时钟,又能传输数据,而且数据传输是双向的,因而这种单总线技术具有线路简单,硬件开销少,成本低廉,便于总线扩展和维护等优点。单总线适用于单主机系统,能够控制一个或多个从机设备。主机可以是微控制器,从机可以是单总线器件,它们之间的数据交换只通过一条信号线
20、。当只有一个从机设备时,系统可按单节点系统操作;当有多个从设备时,系统则按多节点系统操作。图3所示是单总线多节点系统的示意图。3.2.1单总线的工作原理顾名思义,单总线即只有一根数据线,系统中的数据交换、控制都由这根线完成。设备(主机或从机)通过一个漏极开路或三态端口连至该数据线,以允许设备在不发送数据时能够释放总线,而让其它设备使用总线,其内部等效电路如图2所示。单总线通常要求外接一个约为4.7k的上拉电阻,这样,当总线闲置时,其状态为高电平。主机和从机之间的通信可通过3个步骤完成,分别为初始化1-wire器件、识别1-wire器件和交换数据。由于它们是主从结构,只有主机呼叫从机时,从机才能
21、应答,因此主机访问1-wire器件都必须严格遵循单总线命令序列,即初始化、rom、命令功能命令。如果出现序列混乱,1-wire器件将不响应主机(搜索rom命令,报警搜索命令除外)。表1是列为命令的说明,而功能命令则根据具体1-wire器件所支持的功能来确定。表 rom命令说明:rom命令说明搜索rom(f0h)识别单总线上所有的1-wire器件的rom编码读rom(33h)(仅适合单节点)直接读1-wire器件的序列号匹配rom(55h)寻找与指定序列号相匹配的1-wi器件跳跃rom(cch)(仅适合单节点)使用该命令可直接访问总线上的从机设备报警搜索rom(ech)(仅少数器件支持)搜索有报
22、警的从机设备(表2.1)3.2.2 信号方式所有的单总线器件都要遵循严格的通信协议,以保证数据的完整性。1-wire协议定义了复位脉冲、应答脉冲、写0、读0和读1时序等几种信号类型。所有的单总线命令序列(初始化,rom命令,功能命令)都是由这些基本的信号类型组成的。在这些信号中,除了应答脉冲外,其它均由主机发出同步信号,并且发送的所有命令和数据都是字节的低位在前。初始化时序包括主机发出的复位脉冲和从机发出的应答脉冲。主机通过拉低单总线至少480s产生tx复位脉冲;然后由主机释放总线,并进入rx接收模式。主机释放总线时,会产生一由低电平跳变为高电平的上升沿,单总线器件检测到该上升沿后,延时156
23、0s,接着单总线器件通过拉低总线60240s来产生应答脉冲。主机接收到从机的以应答脉冲后,说明有单总线器件在线,然后主机就可以开始对从机进行rom命令和功能命令操作。在每一个时序中,总线只能传输一位数据。所有的读、写时序至少需要60s,且每两个独立的时序之间至少需要1s的恢复时间。图中,读、写时序均始于主机拉低总线。在写时序中,主机将在拉低总线15s之内释放总线,并向单总线器件写1;若主机拉低总线后能保持至少60s的低电平,则向单总线器件写0。单总线器件仅在主机发出读时序时才向主机传输数据,所以,当主机向单总线器件发出读数据命令后,必须马上产生读时序,以便单总线器件能传输数据。在主机发出读时序
24、之后,单总线器件才开始在总线上发送0或1。若单总线器件发送1,则总线保持高电平,若发送0,则拉低总线。由于单总线器件发送数据后可保持15s有效时间,因此,主机在读时序期间必须释放总线,且须在15s的采样总线状态,以便接收从机发送的数据。3.2.3 单总线器件通常把挂在单总线上的器件称之为单总线器件,单总线器件内一般都具有控制、收发、存储等电路。为了区分不同的单总线器件,厂家生产单总线器件时都要刻录一个64位的二进制rom代码,以标志其id号。目前,单总线器件主要有数字温度传感器(如ds18b20)、a/d转换器(如ds2450)、门标、身份识别器(如ds1990a)、单总线控制器(如ds1wm
25、)等。这里介绍一种ibutton形式的单总线器件,它是利用瞬间接触来进行数字通信的,这些器件的应用已经渗透到货币交易和高度安全的认证系统之中。ibutton是采用纽扣状不锈钢外壳封装的微型计算机晶片,它具有抗撞击、防水渍、耐腐蚀、抗磁扰、防折叠、价格便宜等特点,能较好的解决传统识别器存在的不足,同时又可满足系统在可靠性、稳定性方面的要求。ibutton主要有三种类型,分别是memory ibutton(存储器);java-powered cryptographic ibutton(加密型);thermochron ibutton(温度型)。存储型ibutton最大存储空间为64kb,可以存储文
26、本或数字照片。加密型ibutton是一种微处理器和高速算法加速器,可以产生大量需要加密和解密的数据信息,它的运行速度非常快,可与internet应用相结合,并可应用于远程鉴定识别。温度型ibutton可以测量温度变化,它内含温度计、时钟、热记录和存储单元等。3.2.4 单总线器件的应用现以单总线器件ibutton在安防系统上的应用为例来进行说明,该安防系统就是利用ibutton来进行门禁识别的。它由主机微控制器、从机(包括ibutton信息读取头和ibutton)、主机通过rs485进行远程通信(或通过microweb连上internet)等三部分组成。微控制器采用microchip公司的pi
27、c16f873芯片,而api8108a语音芯片则用来告诉用户系统信息;ibutton采用ds1990a,信息读取头被读取并同时送到主机微控制器,然后由主机把收到的标识码与原先存储的ibutton标识码进行比较判断,若吻合,则系统按设定要求程序工作,否则,系统给出语音提示。ds1990a与主机微控制器之间的通信软件设计流程通常主机与单总线器件的通信都是通过初始化、写0、写1、读0、读1时序来的完成的,下面给出用汇编语言编写的子程序,需要说明的是,这些程序虽然是针对ibutton所写的,但适用于所有的单总线器件供。reset bsf rb2 ; 主机拉低总线call delay_500us ; 给
28、500s复位脉冲bcf rb2 ; 释放总线call delay_200usbtfsc br1 ; 检测ibutton返回应答脉冲否goto reset ; 否,再给它复位脉冲call delay_500us ; 是,返回returnwrite_0 bsf rb2 ; 对ibutton写0时序子程序call delay_10uscall delay_60usbcf rb2call delay_10usreturnwrite_1 bsf rb2 ; 对ibutton写1时序子程序call delay_10usbcf rb2call delay_60usreturnread_time bsf rb
29、2 ; 对ibutton读数据时序nopnopnopbcf rb2call delay_10usreturn第4章 下位机硬件设计4.1 单片机外围电路因为单片机工作电源为+5v,且底层电路功耗很小。 外围电路设计包括时钟电路各复位电路的设计键盘和显示模块。4.1.1时钟电路在89s51芯片几个内部有一个高增益反相放大器,其输入端为芯片引脚xtal1,其输出端为芯片引脚xtal2,而在芯片的外部,xtal1和xtal2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器。这就是单片机的时钟电路,如下图所示 。 时钟电路产生的振荡脉冲经过触发器进行二分频之后才能作为单片机的时钟脉冲信号电容
30、c1各c2的典型值为30pf,晶振的振荡频率范围是1.2-12mhz.晶体振荡频率愈高,则系统的时钟频率也高。单片机运算速度也就快,但反过来,运行速度快,对储存的速度要求就高,对印刷电版的工艺要求也高。80c51在通常情况下,使用震荡频率为6mhz或12mhz的石英晶体。本系统选用11.0592mhz的石英晶体。4.1.2.复位电路rst是复位信号的输入端,复位信号是高电平有效,其有效时间应持续24个震荡脉冲周期以上,本系统采用按键手动复位:按键手动复位是通过复位端经电阻与vcc电源接通而实现的。它兼具上电复位功能其电路如下图所示: 4.1.3 键盘和显示模块(1)显示在系统运行的过程中,系统
31、要能够显示实时的温度及在设置上、下限是能够显示当前设置。我们考虑以下显示方案。使用传统的数码管显示。数码管具有:低能耗、低损耗、低压、寿命长、耐老化、防晒、防潮、防火、防高低温、对外界环境要求低、易于维护,同时其精度比较高,称重快,精度可靠,操作简单。数码管采用bcd编码显示数字,程序编译容易,资源占用较少。(2)键盘在系统运行过程中,系统需要对控制设置上、下限,因此需要键盘进行设置。我们考虑以下方案。方案:使用矩阵式键盘。矩阵式键盘是指用i/o口线构成的网络按键电路。矩阵式按键电路配置复杂、软件结构较难。但需要的i/o口线较少,适合键盘功能较多的系统。电路如下图:4.2 控制模块温度采集后存
32、储在eeprom里面的上、下限设定值进行比较,得到控制的结果。本系统采用两路继电器来负责上限和下限的控制,实现对实时温度的控制。电路如下图: 第5章 通信的硬件实现5.1 串口通讯电路at89c51有一个全双工的串行通讯口,所以单片机和电脑之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如电脑的串口是rs232电平的,而单片机的串口是ttl电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片max232进行转换,虽然也可以用几个三极管进行模拟转换,但是还是用专用芯片更简单可靠。具体电路如下图:我采用了三线制连接串口,也就是说和电脑的9针串口只连接其中的3根线:第5脚的gnd
33、、第2脚的rxd、第3脚的txd。这是最简单的连接方法,但是对本设计来说已经足够使用了,电路如上图所示。通信线采用交叉接法,即两者信号线对应成为rt,tr。 具体连接电路如下:5.2 rs232九针串口九针引脚定义符号1. 载波检测dcd 2.接收数据 rxd 3.发送数据txd 4.数据终端准备好 dtr 5.信号地sg 6.数据准备好dsr 7.请求发送rts 8.清除发送cts 9.振铃提示ri5.3 74hc164芯片及四位八段数码管74hc164是比较典型的移位寄存器,该移位寄存器有一个数据输入端口、一个时钟信号端口和八个输出端口。这种方法只需要2个mpu 的i/o端口,而且在锁存器
34、件这2个端口还可以干别的事。利用此芯片驱动四位数码管可以节约单片机的i/o口。第6章 软件实现6.1下位机软件实现下位机主程序调用四个子程序,分别是温度采集程序、键盘处理程序、码管显示程序、串口通信程序和温度处理程序。(1)键盘扫描电路及按键处理程序:实现键盘的输入按键的识别及相关处理。(2)温度采集程序:对温度芯片送过来的数据进行处理,进行判断和显示。(3)数码管显示程序:向数码的显示送数,控制系统的显示部分。(4)温度处理程序:对采集到的温度和设置的上、下限进行比较,作出判断,向继电器输出。(5)串口通信程序:设置波特率、奇偶校验位、起始位、停止位将下位机取得温度值6.2温度监控系统上位机
35、软件设计上位机程序见附录第7章 结束语 近年来我国农村的劳动力大量的向城市转移,这无疑给我国传统上的农业生产带来了巨大的挑战农村劳动力短缺,导致不少的土地闲置。为了应对这种刻不容缓的局面实施农业自动化已经成为一种必然,随着科技的发展,一些自动化设备的价格不断的下降这样就使基于我国现有的农业产出能力下引入自动化设备成为可能,作为一个来自农村的学生,在毕业之际,希望通过自己的努力能为这种趋势添砖加瓦,尽自己的一份绵薄之力,并借这次这次设计的机会选择了这个和自己专业有关的农业领域的题目。当然,在这次的设计中遇到了不少的难题,最终在老师和同学的帮助下都一一克服了。尤其是时间操作经验不足导致一些很好的想
36、法都不能实现,有些看起来很简单的问题但在真正的技术实现的时候就很困难,这让我深深的体会到了自己在这方面经验的不足和做技术工作的不易,由此,更加佩服那些长时间的工作在技术一线的人员和我的老师们。看来,做技术工作需要的科学的方法,严谨的作风和吃苦耐劳的精神,这些体会会让我终身受益。参加工作以后,我要把这次的体会贯彻到自己的实际行动中,希望通过自己的努力能成为一名优秀的技术人员。 致 谢首先,应该感谢马老师孜孜不倦的教导和帮助,同时也感谢教研组的老师们,在这次的设计中虽然他们并不是我的指导老师但是还是给与了我不少的帮助和指导。他们这种为人师表和对学生的关爱体现了他们高尚的师德和崇尚的职业操守,他们精
37、于自己的专业,为我在设计中提供了不少的专业上的帮助,同时在研究方法上对我进行了指导。本论文从论文的选题到研究课题的确定,从论文的整理到详细审稿、最后定稿无不倾注了马老师的辛勤汗水。本文是在马老师精心指导下完成的。毕业设计整整持续了两个半月个月的时间,现在终于到完成了。经过这次设计,提高了我的动手能力和理论知识,以及和我对待事情的态度,在此我对曾经帮助我和现在帮助我完成设计的老师们表示我衷心的感谢,感谢他们一直以来对我的帮助和支持。感谢指导老师这段时间以来对我的无私帮助。他们不求回报,热心助人,大公无私,毫不保留的把他们多年来积累的工作经验交给了我,为我付出了太多的时间和汗水!感谢我所有的师傅们
38、对我的无私关怀和帮助!所有这些都将会使我在今后的人生道路上更加信心百倍的挑战自我、挑战人生追求卓越、创造辉煌!最后,再次向马老师致谢,。附录 程序清单:(一)下位机程序温度采集:这是关于ds18b20的读写程序,数据脚p2.2,晶振11.0592mhz,温度传感器18b20汇编程序,采用器件默认的12位转化,最大转化时间750微秒,可以将检测到的温度直接显示到at89c51开发实验板的两个数码管上。单片机内存分配申明!temper_l equ 29h ;用于保存读出温度的低8位temper_h equ 28h ;用于保存读出温度的高8位ds18b20_exist_flag bit 38h ;是
39、否检测到ds18b20标志位dq bit p2.3exist_light bit p0.7 ;指示18b20存在not_exist_light bit p0.0 ;指示18b20不存在a_bit equ 20h ;数码管个位数存放内存位置b_bit equ 21h ;数码管十位数存放内存位置;进行温度显示,这里用两位数码管来显示温度;显示范围00到99度,显示精度为1度;因为12位转化时每一位的精度为0.0625度,我们不要求显示小数所以可以抛弃29h的低4位;将28h中的低4位移入29h中的高4位,这样获得一个新字节,这个字节就是实际测量获得的温度 org 0000h ljmp main o
40、rg 0023h ljmp zd org 0030hmain: mov tmod,#20h mov th1,#0fdh mov tl1,#0fdh setb tr1 clr ti mov scon,#50h mov pcon,#00h mov r6,#30 setb p2.7mai:lcall get_temper ;调用读温度子程序 mov a,temper_l anl a,#11110000b anl temper_h,#00001111b orl a,temper_h swap a lcall hex_bcd mov 53h,b mov 52h,a mov 51h,#0 mov 50h,
41、#0 ;mov c,40h ;将28h中的最低位移入c ;rrc a ;mov c,41h ;rrc a ;mov c,42h ;rrc a ;mov c,43h ;rrc a ;mov 29h,a lcall display ;调用数码管显示子程序串口通信程序: dec r6 cjne r6,#1,zx jb p2.7,lp0 mov r0,#53h lcall qw sjmp jx lp0: mov r0,#52h lcall qw jx: cpl p2.7 mov r6,#100 zx: ljmp mai qw: mov dptr,#tab mov a, r0 movc a,a+dptr
42、 mov sbuf,a jnb ti,$ clr ti rettab: db 48,49,50,51,52,53,54,55,56,57 zd: clr ti reti ; 读出转换后的温度值get_temper: setb dq lcall init_1820 ; 先复位ds18b20 jb ds18b20_exist_flag,tss2 ;clr p1.2 ret 判断ds1820是否存在?若ds18b20不存在则返回tss2: ;clr p1.3 ;ds18b20已经被检测到 ;clr ds18b20_exist_flag mov a,#0cch ;跳过rom匹配 lcall write
43、_18b20 mov a,#44h ;发出温度转换命令 lcall write_18b20;这里通过调用显示子程序实现延时一段时间,等待ad转换结束,12位的话750微秒 lcall delay_750us lcall init_1820 ;准备读温度前先复位 mov a,#0cch ;跳过rom匹配 lcall write_18b20 mov a,#0beh ;发出读温度命令 lcall write_18b20 lcall read_18b20 ;将读出的温度数据保存到35h/36h ;clr p1.4 ret;ds18b20复位初始化子程序;功能:初始化ds18b20,若其正常连接,则p0
44、.7led点亮,若否,则p0.0led点亮;入口参数:无 出口参数:ds18b20_exist_flag (1-存在 0-不存在)init_1820: setb dq nop clr dq mov r1,#3tsr1: mov r0,#107 djnz r0,$ djnz r1,tsr1 ;主机发出延时537微秒的复位低脉冲 setb dq ;然后拉高数据线 nop nop nop mov r0,#25htsr2: jnb dq,tsr3 ;等待ds18b20回应 djnz r0,tsr2 ljmp tsr4tsr3: setb ds18b20_exist_flag;置标志位,表示ds1820
45、存在 clr exist_light ;检查到ds18b20就点亮p0.7led ljmp tsr5tsr4: clr ds18b20_exist_flag;清标志位,表示ds1820不存在 clr not_exist_light ;未检查到ds18b20就点亮p0.0led ljmp tsr7tsr5: mov r0,#117tsr6: djnz r0,tsr6 ;时序要求延时一段时间tsr7: setb dq ret;写ds18b20的子程序(有具体的时序要求);功能:将a中数据低位在前,高位在后发送到dq线上;入口参数:a 出口参数:无write_18b20: mov r2,#8 ;一共
46、8位数据 clr cwr1: clr dq mov r3,#5 djnz r3,$ rrc a mov dq,c mov r3,#21 djnz r3,$ setb dq nop djnz r2,wr1 ;setb dq ret; 读ds18b20的程序,从ds18b20中读出两个字节的温度数据read_18b20: mov r4,#2 ;将温度高位和低位从ds18b20中读出 mov r1,#29h ;低位存入29h(temper_l),高位存入28h(temper_h)re00: mov r2,#8 ;数据一共有8位re01: clr c setb dq nop nop clr dq nop nop nop setb dq mov r3,#8re10: djnz r3,re10 mov c,dq mov r3,#21re20: djnz r3,re20 rrc a djnz r2,re01 mov r1,a dec r1 djnz r4,re00 ret温度显示程序:display:push 00h push 07h push dp
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 应急安全培训公司课件
- 应急与安全管理培训内容课件
- 2025年自考专业(会计)模拟试题附答案详解【轻巧夺冠】
- 买菜合同(标准版)
- 2023年度冶金工业技能鉴定每日一练试卷(培优)附答案详解
- 2024年2月湖南省直机关遴选公务员面试真题带答案详解
- 2025年绿色建筑材料市场推广策略与政策支持下的绿色建筑市场需求预测报告
- 2025年工业互联网平台量子通信技术与数字版权保护的应用预研报告
- 2025年工业互联网平台AR交互技术在人工智能与物联网融合中的应用报告
- 2025年绿色建筑认证体系在绿色建筑绿色建筑社区经济中的应用与发展报告
- 《工会固定资产管理办法》中华全国总工会办公厅印发
- 新生儿耳聋基因筛查与遗传咨询
- 智慧健康养老服务与管理人才培养方案
- GB/T 8923.1-2011涂覆涂料前钢材表面处理表面清洁度的目视评定第1部分:未涂覆过的钢材表面和全面清除原有涂层后的钢材表面的锈蚀等级和处理等级
- TSZUAVIA 009.9-2019 多旋翼无人机系统实验室环境试验方法 第9部分:冲击试验
- ECPR临床应用与进展课件
- 《装配式综合管廊施工及验收标准》
- 罗湖区-空气质量状况及原因分析
- 玉米病害图谱 症状课件
- 2013版电力建设工程概预算定额宣贯讲义
- 伤逝-课件完整版
评论
0/150
提交评论