分布式温度控制系统的设计与实现_第1页
分布式温度控制系统的设计与实现_第2页
分布式温度控制系统的设计与实现_第3页
分布式温度控制系统的设计与实现_第4页
分布式温度控制系统的设计与实现_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、分布式温度控制系统的设计与实现 目录第一章绪论-11.1问题的提出-21.2课题相关的背景知识1.2设计目的及系统功能3第二章硬件电路设计32.1基本硬件设计思路32.2基本设计框图42.3at89s52单片机42.3.1主要性能:52.3.1引脚排列及功能52.3.2存储器组织和特殊功能寄存器72.3.3低功耗节电模式92.3.4定时器102.3.5中断132.3.6时钟152.4zlg7290键盘/显示接口芯片152.4.1zlg7290特点162.4.2引脚及说明162.4.3功能描述172.4.4寄存器详解192.4.5通信接口202.4.6指令详解202.5数字温度传感器ds18b2

2、0232.5.1ds18b20的主要特性232.5.2引脚及其说明242.5.3内部结构242.5.4工作过程及时序24第三章软件设计273.1主程序框图-27致谢31参考文献32附录一电路原理图-33附录二毕业设计硬件电路元件清单34第一章绪论自从1976年intel公司推出第一批单片机以来,80年代单片机技术进入快速发展时期,近年来,随着大规模集成电路的发展,单片机继续朝快速、高性能方向发展,从4位、8位单片机发展到16位、32位单片机。单片机主要用于控制,它的应用领域遍及各行各业,大到航天飞机,小至日常生活中的冰箱、彩电,单片机都可以大显其能。单片机在国内的三大领域中应用得十分广泛:第一

3、是家用电器业,例如全自动洗衣机、智能玩具;第二是通讯业,包括电话、手机和bp机等等;第三是仪器仪表和计算机外设制造,例如软盘、硬盘、收银机、电表。除了上述传统领域外,汽车、电子工业在国外也是单片机应用十分广泛的一个领域。它成本低、集成度高、功耗低、控制功能多能灵活的组装成各种智能控制装置,由它构成的智能仪表解决了长期以来测量仪器中的误差的修正、线性处理等问题。单片机将微处理器、存储器、定时/计数器、i/o接口电路等集成在一个芯片上的大规模集成电路,本身即是一个小型化的微机系统。单片机技术与传感与测量技术、信号与系统分析技术、电路设计技术、可编程逻辑应用技术、微机接口技术、数据库技术以及数据结构

4、、计算机操作系统、汇编语言程序设计、高级语言程序设计、软件工程、数据网络通信、数字信号处理、自动控制、误差分析、仪器仪表结构设计和制造工艺等的结合,使得单片机的应用非常广泛。同时,单片机具有较强的管理功能。采用单片机对整个测量电路进行管理和控制,使得整个系统智能化、功耗低、使用电子元件较少、内部配线少、成本低,制造、安装、调试及维修方便。目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能ic卡,民用豪华轿车的安全保障系统,录象机、摄象机、全自动洗衣机的

5、控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。1.1问题的提出分布式温度控制系统广泛应用在使用了中央空调的大型商场、厂房、办公大楼等大型建筑内。本课题主要针对分布在建筑物内有关各处的结点控制单元,用温度传感器对环境温度实施实时监测,利用单片机实施对冷(热)风机开关的最佳控制;各结点控制单元可将有关信息上传给中央处理单元(计算机),也可接收中央处理单元发来的控制命令;必要时可由中央处理单元直接控制冷(热)水机组的启、停。监测过程中温度传感器采样所得到的信号送给单片机处理;控制过程中,利用单片机控制电路发送出ttl电平,转换强电开关量信号

6、实现对各风机开关的控制。本课题研究主要解决的问题为分布式计算机控制结构设计、多单片机串行通信、温度的采集与处理、弱电控制强电以及设计制作成本等。本设计是以基于单片机at89s52设计的实时温度采集仪,采用ds18b20可以采集多路温 1 2 涓嬩竴椤? 度数据(本设计只用了一路)。通过小键盘实现对温度数据的设定,对于超过此限的温度数据cpu将起动动执行机构做出相应的处理。同时实时显示所采集到的温度值。1.2设计目的及系统功能本设计的目的是以单片机为核心设计出一个智能温度控制系统。通过本课题设计,综合运用单片机及接口技术、微机原理、微电子技术,锻炼动手操作能力,综合运用能力,学习论文的写作方法和

7、步骤。设计的温度控制系统有以下功能及特点:(1)测温范围:099;(2)温度显示:采用八个七段段数码管,前四位显示采样温度值,后四位显示温度设定值;(3)上位机和键盘都可设定温度和温度的上下限,且上位机的权限大于键盘的权限;(4)温度初始值可进行灵活设定;(5)系统控制精度不高.第二章硬件电路设计硬件是实现本系统的重要基础,硬件电路做的是否合理直接影响系统的稳定性和可靠性。下面对我的硬件系统作具体的介绍。2.1基本硬件设计思路本设计用温度传感器将被测温度转换为数字量,无需放大即可与单片机相连。cpu采用at89s52单片机,它与mcs-51系列单片机完全兼容,同时具有较大的存储空间以及具有在线

8、编程功能,减少了编程时配套工具的使用.键盘/显示通过可编程的键盘显示接口芯片zlg7290实现温度限值的设定和显示,同时使用具有实时性能的动态显示模块.2.2基本设计框图总体设计框图如图1-1所示。说明如下:(1)ds18b20检测温度,将温度值送cpu(at89s52)处理;(2)cpu接受ds18b20传送的温度,并送zlg7290芯片,由数码管显示;(3)cpu将接受的温度与设定的最大值、最小值进行比较,如果温度超过所设温度限值,转报警处理程序;(4)由小键盘控制所需显示路数的温度,并在数码管上显示;(5)cpu将实时温度与设定的温度进行比较,若设定温度低于实时温度,则开暖风机,若设定温

9、度高于时温度,则开冷风机。图1-1基本设计框图2.3at89s52单片机at89s52是一个低功耗,高性能,采用cmos工艺的8位单片机,其片内含8kb的可在线编程(isp:in-systemprogrammable)的flash的可反复擦写1000次的flash只读程序存储器,该器件采用atmell公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和ispflash存储单元,从而使其功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制应用系统中有着广泛的应用前景。2.3.1主要性能:与mcs-51单片机产品兼容8

10、kb的flash片内程序存储器1000次擦写周期全静态操作:0hz33hz三级加密程序存储器32个可编程i/o口线三个16位定时器/计数器八个中断源全双工uart串行通道低功耗空闲和掉电模式掉电后中断可唤醒看门狗定时器双数据指针掉电标识符图2-1at89s52引脚排列图2.3.1引脚排列及功能at89s52具有pdip、plcc和tqfp3种封装形式。其pdip封装的引脚排列如图2-1所示。vcc:电源gnd:地p0口:p0口是一个8位漏极开路的双向i/o口。作为输出口,每位能驱动8个ttl逻辑电平。对p0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,p0口也被作为低8位地

11、址/数据复用。在这种模式下,p0具有内部上拉电阻.在flash编程时,p0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。p1口:p1口是一个具有内部上拉电阻的8位双向i/o口,p1输出缓冲器能驱动4个ttl逻辑电平。对p1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。此外,p1.0和p1.2分别作定时器/计数器2的外部计数输入(p1.0/t2)和时器/计数器2的触发输入(p1.1/t2ex),具体如表2.1所示。表2.1p1口的替代功能引脚号第二功能p1.0t2(定时器

12、/计数器t2的外部计数输入),时钟输出p1.1t2ex(定时器/计数器t2的捕捉/重载触发信号和方向控制)p1.5mosi(在系统编程用)p1.6miso(在系统编程用)p1.7sck(在系统编程用)在flash编程和校验时,p1口接收低8位地址字节。p2口:p2口是一个具有内部上拉电阻的8位双向i/o口,p2输出缓冲器能驱动4个ttl逻辑电平。对p2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行movxdptr)时,p2口送出高八位地址。在

13、这种应用中,p2口使用很强的内部上拉发送1。在使用8位地址(如movxri)访问外部数据存储器时,p2口输出p2锁存器的内容。在flash编程和校验时,p2口也接收高8位地址字节和一些控制信号。p3口:p3口是一个具有内部上拉电阻的8位双向i/o口,p2输出缓冲器能驱动4个ttl逻辑电平。对p3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(iil)。p3口亦作为at89s52特殊功能(第二功能)使用,如表2.2所示。表2.2p3口的替代功能引脚号第二功能p3.0rxd(串行输入)p3.1txd(串行输出)p3.2

14、int0(外部中断0)续表2.2p3.3int1(外部中断0)p3.4t0(定时器0外部输入)p3.5t1(定时器1外部输入)p3.6wr(外部数据存储器写选通)p3.7rd(外部数据存储器写选通)在flash编程和校验时,p3口也接收一些控制rst:复位输入。晶振工作时,rst脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,rst脚输出96个晶振周期的高电平。特殊寄存器auxr(地址8eh)上的disrto位可以使此功能无效。disrto默认状态下,复位高电平有效。ale/prog:地址锁存控制信号(ale)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引

15、脚(prog)也用作编程输入脉冲。在一般情况下,ale以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ale脉冲将会跳过。如果需要,通过将地址为8eh的sfr的第0位置“1”,ale操作将无效。这一位置“1”,ale仅在执行movx或movc指令时有效。否则,ale将被微弱拉高。这个ale使能标志位(地址为8eh的sfr的第0位)的设置对微控制器处于外部执行模式下无效。psen:外部程序存储器选通信号(psen)是外部程序存储器选通信号。当at89s52从外部程序存储器执行外部代码时,psen在每个机器周期被激活两次,而在访问外部数

16、据存储器时,psen将不被激活。ea/vpp:访问外部程序存储器控制信号。为使能从0000h到ffffh的外部程序存储器读取指令,ea必须接gnd。为了执行内部程序指令,ea应该接vcc。在flash编程期间,ea也接收12伏vpp电。xtal1:振荡器反相放大器和内部时钟发生电路的输入端。xtal2:振荡器反相放大器的输出端。2.3.2存储器组织和特殊功能寄存器特殊功能寄存器(sfr)的地址空间都有具体的定义。但并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能

17、被赋予新的功能,复位后,这些位都为“0”。定时器2寄存器寄存器t2con和t2mod包含定时器2的控制位和状态位(如表2.3所示),寄存器对rcap2h和rcap2l是定时器2的捕捉/自动重载寄存器。中断寄存器各中断允许位在ie寄存器中,六个中断源的两个优先级也可在ie中设置。双数据指针寄存器表2.3t2con:定时器/计数器2控制寄存器t2con地址:0c8h(可位寻址)复位值:00000000btf2exf2rclktclkexen2rt2c/t2cp/tl276543210符号功能tf2定时器2溢出标志位,必须软件清零,rclk或tclk=1时,该位不用置位exf2t2外部标志。exen

18、2=1时,t23ex/p1.1引脚上的负跳变将引起t2的捕捉/重装操作,此时exf2=1。在t2中断允许的条件下,exf2=1将引起中断。exf2位只能用软件清除。在t2的向上/向下计数模式下(dcen=1),exf2的置位将不引起中断。rclk接收时钟允许。当rclk=1时,t2的溢出脉冲可用做串行口的接收时钟信号,适用于串行模式1和3。当rclk=0时,t1的溢出脉冲用做串行口接收时钟信号。tclk发送时钟允许。当tclk=1时,t2的溢出脉冲可用做串行口的发送时钟信号,适用于模式1和3。当tclk=0时,t1的溢出脉冲可用做串行口的发送时钟信号。exen2t2的外部事件(引起捕捉/重装的

19、外部信号)允许。当exen2=1时,如果t2没有作串行时钟输出(即rclk tclk=0),则在t2ex/p1.1引脚的负跳变将引起t2的捕捉/重装操作。当exen2=0时,t2ex/p1.1的负跳变不起作用。rt2t2的启动/停止控制。当tr2=1时,t2为外部计数方式(p1.0脚的输入脉冲的下降沿触发计数)。当tr2=0时,t2为定时器c/t2t2的计数/定时方式的选择。当c/t2=1时,t2为外部计数方式(p1.0脚的输入脉冲的下降沿触发计数)。当c/t2=0时,t2为定时器。cp/rl2捕捉/重装载选择。当cp/rl2=1且exen2=1时,t2ex/p1.1引脚的负跳变将引起捕捉操作

20、。当cp/rl2=0且exen2=1时,t2ex/p1.1引脚的负跳变将引起自动重装载操作。当cp/rl2=0且exen2=0时,t2溢出将引起t2的自动重装操作。为了更有利于访问内部和外部数据存储器,系统提供了两路16位数据指针寄存器:位于sfr中82h83h的dp0和位于84h85。特殊寄存器auxr1中dps0选择dp0;dps=1选择dp1。用户应该在访问数据指针寄存器前先初始化dps至合理的值。掉电标志位掉电标志位(pof)位于特殊寄存器pcon的第四位(pcon.4)。上电期间pof置“1”。pof可以软件控制使用与否,但不受复位影响。存储器结构mcs-51器件有单独的程序存储器和

21、数据存储器。外部程序存储器和数据存储器都可以64k寻址。程序存储器如果ea引脚接地,程序读取只从外部存储器开始。对于89s52,如果ea接vcc,程序读写先从内部存储器(地址为0000h1fffh)开始,接着从外部寻址,寻址地址为:2000hffffh。数据存储器at89s52有256字节片内数据存储器。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7fh的地址时,寻址方式决定cpu访问高128字节ram还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(sfr)。堆栈操作也是间接寻址方式。因此,高128字节数据ra

22、m也可用于堆栈空间。2.3.3低功耗节电模式有两种节电模式:空闲模式和掉电模式。空闲模式在空闲工作模式下,cpu处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上ram和特殊功能寄存器的内容保持不变。空闲模式可以被任一个中断或硬件复位终止。由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部ram,而可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。掉电模式在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上ram和特殊

23、功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。复位重新定义了sfr的值,但不改变片上ram的值。在vcc未恢复到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工作和初始化。在空闲模式和掉电模式下各引脚的状态如表2.4所示。表2.4空闲模式和掉电模式下的外部引脚状态模式程序存储器alepsenport0port1port2port3空闲内部11数据数据数据数据空闲外部11浮空数据数据数据掉电内部00数据数据数据数据掉电外部00浮空数据数据数据2.3.4定时器at89s52系列单片机含有3个可编程定时器/计数器(t0、t1、t2)和1个看门狗定

24、时器(wdt)。狗定时器wdt是一种需要软件控制的复位方式。wdt由13位计数器和特殊功能寄存器中的看门狗定时器复位存储器(wdtrst)构成。wdt在默认情况下无法工作;为了激活wdt,户用必须往wdtrst寄存器(地址:0a6h)中依次写入01eh和0e1h。当wdt激活后,晶振工作,wdt在每个机器周期都会增加。wdt计时周期依赖于外部时钟频率。除了复位(硬件复位或wdt溢出复位),没有办法停止wdt工作。当wdt溢出,它将驱动rsr引脚一个高个电平输出。定时器0和定时器1在at89s52中,定时器0和定时器1的操作与at89c51、at89c52和mcs-51系列单片机一样。定时器2定

25、时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。其工作方式由特殊寄存器t2con中的c/t2位选择(如表2.5所示)。定时器2有三种工作模式:捕捉方式、自动重载(向下或向上计数)和波特率发生器。如表3所示,工作模式由t2con中的相关位选择。定时器2有2个8位寄存器:th2和tl2。在定时工作方式中,每个机器周期,tl2寄存器都会加1。由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。表2.5定时器2工作模式rclk tclkcp/rl2tr2mode00116位自动重载01116位捕捉1x1波特率发生器xx0不用默认在计数工作方式下,寄存器在相

26、关外部输入角t2发生1至0的下降沿时增加1。在这种方式下,每个机器周期的s5p2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个周期的s3p1期间,新的计数值出现在寄存器中。因为识别10的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。自动重载当定时器2工作于16位自动重载模式,可对其编程实现向上计数或向下计数。这一功能可以通过特殊寄存器t2mod(见表2.6)中的dcen(向下计数允许位)来实现。通过复位,dcen被置为

27、0,因此,定时器2为向上计数。dcen设置后,定时器2就可以取决于t2ex向上、向下计数。表2.6t2mod-定时器2控制寄存器t2mod地址:0c9h(不可位寻址)复位值:xxxxxx00b-t2oedcen76543210符号功能-无定义,预留扩展t2oe定时器2输出允许位dcen置1后,定时器2可配置成向上/向下计数如图2-2所示,dcen=0时,定时器2自动计数。通过t2con中的exen2位可以选择两种方式。如果exen2=0,定时器2计数,计到0ffffh后置位tf2溢出标志。计数溢出也使得定时器寄存器重新从rcap2h和rcap2l中加载16位值。定时器工作于捕捉模式,rcap2

28、h和rcap2l的值可以由软件预设。如果exen2=1,计数溢出或在外部t2ex(p1.1)引脚上的1到0的下跳变都会触发16位重载。这个跳变也置位exf2中断标志位。如图2-2所示,置位dcen,允许定时器2向上或向下计数。在这种模式下,t2ex引脚控制着计数的方向。t2ex上的一个逻辑1使得定时器2向上计数。定时器计0ffffh溢出,并置位tf2。定时器的溢出也使得rcap2h和rcap2l中的16位值分别加载到定时器存储器th2和tl2中。t2ex上的一个逻辑0使得定时器2向下计数。当th2和tl2分别等于rcap2h和rcap2l中的值的时候,计数器下溢。计数器下溢,置位tf2,并将0

29、ffffh加载到定时器存储器中。定时器2上溢或下溢,外部中断标志位exf2被锁死。在这种工作模式下,exf2不能触发中断。图2-2定时器2重载模式(dcen=0)波特率发生器通过设置t2con(见表2.4)中的tclk或rclk可选择定时器2作为波特率发生器。如果定时器2作为发送或接收波特率发生器,定时器1可用作它用,发送和接收的波特率可以不同。如图2.3所示,设置rclk和(或)tclk可以使定时器2工作于波特率产生模式。波特率产生工作模式与自动重载模式相似,因此,th2的翻转使得定时器2寄存器重载被软件预置16位值的rcap2h和rcap2l中的值。模式1和模式3的波特率由定时器2溢出速率

30、决定,具体如下公式:定时器可设置成定时器,也可为计数器。在多数应用情况下,一般配置成定时方式(cp/t2=0)。定时器2用于定时器操作与波特率发生器有所不同,它在每一机器周期(1/12晶振周期)都会增加;然而,作为波特率发生器,它在每一机器状态(1/2晶振周期)都会增加。波特率计算公式如下:图2-3定时器2波特率发生器模式其中,(rcap2h,rcap2l)是rcap2h和rcap2l组成的16位无符号整数。定时器2作为波特率发生器,如图2-3所示。图中仅仅在t2con中rclk或tclk1才有效。特别强调,th2的翻转并不置位tf2,也不产生中断;exen2置位后,t2ex引脚上10的下跳变

31、不会使(rcap2h,rcap2l)重载到(th2,tl2)中。因此,定时器2作为波特率发生器,t2ex也还可以作为一个额外的外部中断。定时器2处于波特率产生模式,tr2=1,定时器2正常工作。th2或tl2不应该读写。在这种模式下,定时器在每一状态都会增加,读或写就不会准确。寄存器rcap2可以读,但不能写,因为写可能和重载交迭,造成写和重载错误。在读写定时器2或rcap2寄存器时,应该关闭定时器(tr2清0)。2.3.5中断at89s52有6个中断源:两个外部中断(int0和int1),三个定时中断(定时器0、1、2)和一个串行中断。如图2-4所示。每个中断源都可以通过置位或清除特殊寄存器

32、ie中的相关中断允许控制位分别使得中断源有效或无效。ie还包括一个中断允许总控制位ea,它能一次禁止所有中断。如表2.7所示,ie.6位是不可用的。对于at89s52,ie.5位也是不能用的。用户软件不应给这些位写1。它们为at89系列新产品预留。定时器2可以被寄存器t2con中的tf2和exf2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是tf2或exf2激活中断,标志位也必须由软件清0。定时器0和定时器1标志位tf0和tf1在计数溢出的那个周期的s5p2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2的标志位tf2在计数溢出的

33、那个周期的s2p2被置位,在同一个周期被电路捕捉下来。图2-4中断源表2.7中断允许控制寄存器(ie)eaet2eset1ex1et0ex0中断允许控制位=1,允许中断中断允许控制位=0,禁止中断续表2.7符号位地址功能eaie.7中断总允许控制位。ea=0,中断禁止;ea=1,各中断由各自的控制位设定ie.6预留et2ie.5定时器2中断允许控制位esie.4串行口中断允许控制位et1ie.3定时器1中断允许控制位ex1ie.2外部中断1允许控制位et0ie.1定时器0中断允许控制位ex0ie.0外部中断1允许控制位2.3.6时钟如图2-5所示,at89s52单片机有一个用于构成内部振荡器的

34、反相放大器,xtal1和xtal2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,xtal2可以不接,而从xtal1接入,如图2-6所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。图2.5内部振荡电路连接图图2.6外部振荡电路连接图2.4zlg7290键盘/显示接口芯片zlg7290是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描管理芯片。一种i2c接口键盘及led驱动管理器件,提供数据译码和循环、移位、段寻址等

35、控制。能够直接驱动8位共阴式数码管(或64只独立的led),同时还可以扫描管理多达64只按键,它可采样64个按键或传感器,单片即可完成led显示、键盘接口的全部功能。zlg7290的从地址为70h,器件内部通过i2c总线访问的寄存器地址范围为00h17h,任一寄存器都可按字节直接读写,并支持自动增址功能和地址翻转功能。其中有8只按键还可以作为功能键使用,就像电脑键盘上的“ctrl”、“shift”、“alt”键一样。另外zlg7290内部还设置有连击计数器,能够使某键按下后不松手而连续有效。采用i2c总线方式,与微控制器的接口仅需两根信号线。该芯片为工业级芯片,抗干扰能力强,在工业测控中已有大

36、量应用。2.4.1zlg7290特点i2c串行接口,提供键盘中断信号,方便与处理器接口;可驱动8位共阴数码管或64只独立led和64个按键;可控扫描位数,可控任一数码管闪烁;提供数据译码和循环,移位,段寻址等控制;8个功能键,可检测任一键的连击次数;无需外接元件即直接驱led,可扩展驱动电流和驱动电压;提供工业级器件,多种封装形式pdip24,so24.2.4.2引脚及说明采用24引脚封装引脚图如图2-7所示其引脚功能分述如下:图2-7zlg7290引脚图引脚说明如下表:2.4.3功能描述键盘部分zlg7290可采样64个按键或传感器,可检测每个按键的连击次数。其基本功能如下:键盘去抖动处理当

37、键被按下和放开时,可能会出现电平状态反复变化,称作键盘抖动。若不作处理会引起按键盘命令错误,所以要进行去抖动处理,以读取稳定的键盘状态为准。双键互锁处理当有两个以上按键被同时按下时,zlg7290只采样优先级高的按键(优先顺序为s1s2?s64,如同时按下s2和s18时采样到s2)。连击键处理当某个按键按下时,输出一次键值后,如果该按键还未释放,该键值连续有效,就像连续压按该键一样,这种功能称为连击。连击次数计数器(repeatcnt)可区别出单击(某些功能不允许连击,如开/关)或连击。判断连击次数可以检测被按时间,以防止某些功能误操作(如连续按5秒经入参数设置状态)。功能键处理功能键能实现2

38、个以上按键同时按下来扩展按键数目或实现特殊功能。如pc机上的“shift”、“ctrl”、“alt”键典型应用图中的s57s64为功能键。图2-8系统功能框图即寄存器映象图显示部分在每个显示刷新周期,zlg7290按照扫描位数寄存器(scannum)指定的显示位数n,把显示缓存dpram0dpramn的内容按先后循序送入led驱动器实现动态显示,减少n值可提高每位显示扫描时间的占空比,以提高led亮度,显示缓存中的内容不受影响。修改闪烁控制寄存器(flashonoff)可改变闪烁频率和占空比(亮和灭的时间)。zlg7290提供两种控制方式:寄存器映象控制和命令解释控制,如上述对显示部分的控制,

39、寄存器映象控制是指直接访问底层寄存器,实现基本控制功能,这些寄存器须字节操作命令解释控制是指通过解释命令缓冲区(cmdbuf0cmdbuf1)中的指令,间接访问底层寄存器实现扩展控制功能。如实现寄存器的位操作;对显示缓存循环,移位;对操作数译码等操作。请参考指令详解部分2.4.4寄存器详解系统状态部分系统寄存器(systemreg):地址00h,复位值11110000b。系统寄存器保存zlg7290系统状态,并可对系统运行状态进行配置,其功能分位描述如下:keyavi(systemreg.0):置1时表示有效的按键动作(普通键的单击,连击,和功能键状态变化)/int引脚信号有效(变为低电平);

40、清0表示无按键动作,/int引脚信号无效(变为高阻态)。有效的按键动作消失后或读key后,keyavi位自动清0。键盘部分键值寄存器(key):地址01h,复位值00h。key表示被压按键的键值。当key=0时表示没有键被压按。连击次数计数器(repeatcnt)地址02h,复位值00h。repeatcnt=0时,表示单击键。repeatcnt大于0时表示键的连击次数。用于区别出单击键或连击键,判断连击次数可以检测被按时间。功能键寄存器(functionkey)地址03h,复位值0ffh。functionkey对应位的值=0表示对应功能键被压按(functionkey.7functionkey

41、.0对应s64s57)。命令接口部分命令缓冲区(cmdbuf0cmdbuf1)地址07h08h复位值00h00h用于传输指令。显示部分闪烁控制寄存器(flashonoff):地址0ch,复位值0111b/0111b。高4位表示闪烁时亮的时间,低4位表示闪烁时灭的时间,改变其值同时也改变了闪烁频率,也能改变亮和灭的占空比。flashonoff的1个单位相当于150250ms(亮和灭的时间范围为:116,0000b相当1个时间单位)所有象素的闪烁频率和占空比相同。扫描位数寄存器(scannum)地址0dh,复位值7。用于控制最大的扫描显示位数(有效范围为:07,对应的显示位数为;18),减少扫描位

42、数可提高每位显示扫描时间的占空比,以提高led亮度。不扫描显示的显示缓存寄存器则保持不变。如scannum3时,只显示dpram0dpram3的内容。显示缓存寄存器(dpram0dpram7):地址10h17h,复位值00h00h。缓存中一位置1表示该像素亮,dpram7dpram0的显示内容对应dig7dig0引脚。2.4.5通信接口zlg7290的i2c接口传输速率可达32kbit/s,容易与处理器接口,并提供键盘中断信号,提高主处理器时间效率。zlg7290的从地址(slaveaddress)为70h(01110000b)有效的按键动作(普通键的单击连击和功能键状态变化)都会令系统寄存器

43、(systemreg)的keyavi位置1,/int引脚信号有效(变为低电平)。用户的键盘处理程序可由/int引脚低电平中断触发,以提高程序效率。也可以不采样/int引脚信号节省系统的i/o数,而轮询系统寄存器的keyavi位。要注意读键值寄存器会令keyavi位清0。并会令/int引脚信号无效。为确保某个有效的按键动作所有参数寄存器的同步性。可利用i2c通信的自动增址功能连续读repeatcnt,functionkey和key寄存器,但用户无需太担心寄存器的同步性问题,应为键参数寄存器变化速度较缓慢(典型250ms,最快9ms)zlg7290内可通过i2c总线访问的寄存器地址范围为:00h1

44、7h,任一寄存器都可按字节直接读写,也可以通过命令接口间接读写或按位读写,请参考指令详解部分。支持自动增址功能(访问一寄存器后,寄存器子地址(subaddress)自动加一)和地址翻转功能(访问最后一寄存器(子地址17h)后,寄存器子地址翻转为00h)。zlg7290的控制和状态查询全部都是通过读/写寄存器实现的。用户只需象读写24c02内的单元一样即可实现对zlg7290的控制。2.4.6指令详解zlg7290提供两种控制方式:寄存器映象控制和命令解释控制,寄存器映象控制是指直接访问底层寄存器(除通信缓冲区外的寄存器),实现基本控制功能,请参考寄存器详解部分。命令解释控制是指通过解释命令缓冲

45、区(cmdbuf0cmdbuf1)中的指令,间接访问底层寄存器实现扩展控制功能。如实现寄存器的位操作;对显示缓存循环,移位;对操作数译码等操作。一个有效的指令由一字节操作码和数个操作数组成,只有操作码的指令称为纯指令,带操作数的指令称为复合指令。一个完整的指令须在一个i2c帧中(起始信号和结束信号间)连续传输到命令缓冲区(cmdbuf0cmdbuf1)中否则会引起错误。纯指令左移指令该指令使与scannum相对应的显示数据和显示属性(闪烁)自右向左移动n位(n3n0) 1)移动后右边n位无显示。与scannum不相关的显示数据和显示属性则不受影响。右移指令与左移指令类似,只是移动方向为自左向右

46、,移动后,左边n位(n3n0) 1)无显示。循环左移指令与左移指令类似,不同的是在每移动一位后,原最左位的显示数据和属性转移到最右位。循环右移指令与循环左移指令类似,只是移动方向相反。systemreg寄存器位寻址指令当on1时,第s(s2s0)位置1,当on0时,第s位清0。复合指令显示像素寻址指令当on1时,第s(s5s0)点像素亮(置1);当on0时,第s点像素灭(清0)。该指令用于点亮/关闭数码管中某一段,或led矩阵中某一特定的led;该指令受scannum的内容影响。s6s0为像素地址,有效范围从00h3fh,无效的地址不会产生任何作用。像素位地址映象如下表:像素地址sasbscs

47、dsesfsgshdpram000h01h02h03h04h05h06h07hdpram108h09h0ah0bh0ch0dh0ehofh.dpram738h39h3ah3bh3ch3dh3eh3fh按位下载数据且译码指令其中a3a0为显示缓存编号(范围为:0000b0111b,对应dpram0dpram7,无效的编号不会产生任何作用),dp=1时点亮该位小数点,flash=1时该位闪烁显示,flash=0时该位正常显示,d4d0为要显示的数据,按以下表规则进行译码:闪烁控制指令当fn=1时该位闪烁(n的范围为07,对应07位)当fn=0时,该位不闪烁。该指令会改变所有像素的闪烁属性!2.5数

48、字温度传感器ds18b20ds18b20是dallas公司生产的一线式数字温度传感器,具有3引脚to92小体积封装形式;温度测量范围为55125,可编程为9位12位a/d转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个ds18b20可以并联到3根或2根线上,cpu只需一根端口线就能与诸多ds18b20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使ds18b20非常适用于远距离多点温度检测系统。2.5.1ds18b20的主要特性适应电压范围更宽,电压范围:3.05.5v,在寄生电源方

49、式下可由数据线供电独特的单线接口方式,ds18b20在与微处理器连接时仅需要一条口线即可实现微处理器与ds18b20的双向通讯ds18b20支持多点组网功能,多个ds18b20可以并联在唯一的三线上,实现组网多点测温ds18b20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内温度范围55125,在-10 85时精度为0.5可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快测量结果直接输出数

50、字温度信号,以”一线总线”串行传送给cpu,同时可传送crc校验码,具有极强的抗干扰纠错能力负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。图2-9ds18b20的外形及引脚排列2.5.2引脚及其说明ds18b20的外形及引脚排列如图2-9所示,其引脚说明如下:序号名称引脚功能描述1gnd地信号2dq数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源3vdd可选择的vdd引脚。当工作于寄生电源时,此引脚必须接地。2.5.3内部结构ds18b20内部结构如图2-10所示,主要由4部分组成:64位rom、温度传感器、非挥发的温度报警触发器th和tl、

51、配置寄存器。图2-10ds18b20的内部结构2.5.4工作过程及时序dsl820工作过程中的协议如下:初始化:rom操作命令;存储器操作命令;处理数据。初始化单总线上的所有处理均从初始化开始rom操作品令总线主机检测到dsl820的存在便可以发出rom操作命令之一这些命令如下表:指令代码readrom(读rom)33hmatchrom(匹配rom55hskiprom(跳过romcchsearchrom(搜索rom)f0halarmsearch(告警搜索)ech存储器操作命令指令代码writescratchpad(写暂存存储器)4ehreadscratchpad(读暂存存储器)behcopyscratchpad(复制暂存存储器)48hconverttemperature(温度变换)44hrecalleprom(重新调出)b8hreadpowersupply(读电源)b4h时序主机使用时间隙(timeslots)来读写dsl820的数据位和写命令字的位初始化时序见图2-11,主机总线to时刻发送一复位脉冲(最短为480us的低电平信号),接着在tl时刻释放总线并进入接收状态,dsl820在检测到总线的上升沿之后,等待15-60us接着ds1820在t2时刻发出存在脉冲(低电平持续60-240us),如图中虚线所示:图

温馨提示

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

评论

0/150

提交评论