聚合新闻服务
手机wap浏览
您现在的位置: 中华文秘网 >> 文章 >> 论文大全 >> 毕业论文 >> 文章正文

分布式温度控制系统的设计与实现

作者:佚名 文章来源:不详 点击数: 更新时间:2007-12-30 21:32:01

温度数据(本设计只用了一路)。通过小键盘实现对温度数据的设定,对于超过此限的温度数据CPU将起动动执行机构做出相应的处理。同时实时显示所采集到的温度值。
1.2设计目的及系统功能
本设计的目的是以单片机为核心设计出一个智能温度控制系统。通过本课题设计,综合运用单片机及接口技术、微机原理、微电子技术,锻炼动手操作能力,综合运用能力,学习论文的写作方法和步骤。
设计的温度控制系统有以下功能及特点:
(1)测温范围:0℃~99℃;
(2)温度显示:采用八个七段段数码管,前四位显示采样温度值,后四位显示温度设定值;
(3)上位机和键盘都可设定温度和温度的上下限,且上位机的权限大于键盘的权限;
(4)温度初始值可进行灵活设定;
(5)系统控制精度不高.


第二章硬件电路设计
硬件是实现本系统的重要基础,硬件电路做的是否合理直接影响系统的稳定性和可靠性。下面对我的硬件系统作具体的介绍。
2.1基本硬件设计思路
本设计用温度传感器将被测温度转换为数字量,无需放大即可与单片机相连。CPU采用AT89S52单片机,它与MCS-51系列单片机完全兼容,同时具有较大的存储空间以及具有在线编程功能,减少了编程时配套工具的使用.键盘/显示通过可编程的键盘显示接口芯片ZLG7290实现温度限值的设定和显示,同时使用具有实时性能的动态显示模块.
2.2基本设计框图
总体设计框图如图1-1所示。说明如下:
(1)DS18B20检测温度,将温度值送CPU(AT89S52)处理;
(2)CPU接受DS18B20传送的温度,并送ZLG7290芯片,由数码管显示;
(3)CPU将接受的温度与设定的最大值、最小值进行比较,如果温度超过所设温度限值,转报警处理程序;
(4)由小键盘控制所需显示路数的温度,并在数码管上显示;
(5)CPU将实时温度与设定的温度进行比较,若设定温度低于实时温度,则开暖风机,若设定温度高于时温度,则开冷风机。

图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单片机产品兼容
8KB的Flash片内程序存储器
1000次擦写周期
全静态操作:0Hz~33Hz
三级加密程序存储器
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位地址/数据复用。在这种模式下,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(定时器/计数器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位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,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.2INT0(外部中断0)
续表2.2
P3.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编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电。
XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:振荡器反相放大器的输出端。
2.3.2存储器组织和特殊功能寄存器
特殊功能寄存器(SFR)的地址空间都有具体的定义。但并不是所有的地址都被定义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据;写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。
定时器2寄存器
寄存器T2CON和T2MOD包含定时器2的控制位和状态位(如表2.3所示),寄存器对RCAP2H和RCAP2L是定时器2的捕捉/自动重载寄存器。
中断寄存器
各中断允许位在IE寄存器中,六个中断源的两个优先级也可在IE中设置。
双数据指针寄存器
表2.3T2CON:定时器/计数器2控制寄存器
T2CON地址:0C8H(可位寻址)复位值:00000000B
TF2EXF2RCLKTCLKEXEN2RT2C/T2CP/TL2
76543210
符号功能
TF2定时器2溢出标志位,必须软件清零,RCLK或TCLK=1时,该位不用置位

EXF2T2外部标志。EXEN2=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的外部事件(引起捕捉/重装的外部信号)允许。当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引脚的负跳变将引起捕捉操作。当CP/RL2=0且EXEN2=1时,T2EX/P1.1引脚的负跳变将引起自动重装载操作。当CP/RL2=0且EXEN2=0时,T2溢出将引起T2的自动重装操作。
为了更有利于访问内部和外部数据存储器,系统提供了两路16位数据指针寄存器:位于SFR中82H~83H的DP0和位于84H~85。特殊寄存器AUXR1中DPS=0选择DP0;DPS=1选择DP1。用户应该在访问数据指针寄存器前先初始化DPS至合理的值。
掉电标志位
掉电标志位(POF)位于特殊寄存器PCON的第四位(PCON.4)。上电期间POF置“1”。POF可以软件控制使用与否,但不受复位影响。
存储器结构
MCS-51器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储器都可以64K寻址。
程序存储器
如果EA引脚接地,程序读取只从外部存储器开始。对于89S52,如果EA接VCC,程序读写先从内部存储器(地址为0000H~1FFFH)开始,接着从外部寻址,寻址地址为:2000H~FFFFH。
数据存储器
AT89S52有256字节片内数据存储器。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高128字节RAM还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。堆栈操作也是间接寻址方式。因此,高128字节数据RAM也可用于堆栈空间。
2.3.3低功耗节电模式
有两种节电模式:空闲模式和掉电模式。
空闲模式
在空闲工作模式下,CPU处于睡眠状态,而所有片上外部设备保持激活状态。这种状态可以通过软件产生。在这种状态下,片上RAM和特殊功能寄存器的内容保持不变。空闲模式可以被任一个中断或硬件复位终止。由硬件复位终止空闲模式只需两个机器周期有效复位信号,在这种情况下,片上硬件禁止访问内部RAM,而可以访问端口引脚。空闲模式被硬件复位终止后,为了防止预想不到的写端口,激活空闲模式的那一条指令的下一条指令不应该是写端口或外部存储器。
掉电模式
在掉电模式下,晶振停止工作,激活掉电模式的指令是最后一条执行指令。片上RAM和特殊功能寄存器保持原值,直到掉电模式终止。掉电模式可以通过硬件复位和外部中断退出。复位重新定义了SFR的值,但不改变片上RAM的值。在VCC未恢复到正常工作电压时,硬件复位不能无效,并且应保持足够长的时间以使晶振重新工作和初始化。
在空闲模式和掉电模式下各引脚的状态如表2.4所示。
表2.4空闲模式和掉电模式下的外部引脚状态
模式程序存储器ALEPSENPORT0PORT1PORT2PORT3
空闲内部11数据数据数据数据
空闲外部11浮空数据数据数据
掉电内部00数据数据数据数据
掉电外部00浮空数据数据数据
2.3.4定时器
AT89S52系列单片机含有3个可编程定时器/计数器(T0、T1、T2)和1个看门狗定时器(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
定时器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/RL2TR2MODE
00116位自动重载
01116位捕捉
1X1波特率发生器
XX0不用
默认在计数工作方式下,寄存器在相关外部输入角T2发生1至0的下降沿时增加1。在这种方式下,每个机器周期的S5P2期间采样外部输入。一个机器周期采样到高电平,而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个周期的S3P1期间,新的计数值出现在寄存器中。因为识别10的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保持不变。
自动重载
当定时器2工作于16位自动重载模式,可对其编程实现向上计数或向下计数。这一功能可以通过特殊寄存器T2MOD(见表2.6)中的DCEN(向下计数允许位)来实现。通过复位,DCEN被置为0,因此,定时器2为向上计数。DCEN设置后,定时器2就可以取决于T2EX向上、向下计数。
表2.6T2MOD-定时器2控制寄存器
T2MOD地址:0C9H(不可位寻址)复位值:XXXXXX00B
------T2OEDCEN
76543210
符号功能
-无定义,预留扩展
T2OE定时器2输出允许位
DCEN置1后,定时器2可配置成向上/向下计数
如图2-2所示,DCEN=0时,定时器2自动计数。通过T2CON中的EXEN2位可以选择两种方式。如果EXEN2=0,定时器2计数,计到0FFFFH后置位TF2溢出标志。计数溢出也使得定时器寄存器重新从RCAP2H和RCAP2L中加载16位值。定时器工作于捕捉模式,RCAP2H和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,并将0FFFFH加载到定时器存储器中。定时器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溢出速率决定,具体如下公式:


定时器可设置成定时器,也可为计数器。在多数应用情况下,一般配置成定时方式(CP/T2=0)。定时器2用于定时器操作与波特率发生器有所不同,它在每一机器周期(1/12晶振周期)都会增加;然而,作为波特率发生器,它在每一机器状态(1/2晶振周期)都会增加。波特率计算公式如下:

图2-3定时器2波特率发生器模式
其中,(RCAP2H,RCAP2L)是RCAP2H和RCAP2L组成的16位无符号整数。定时器2作为波特率发生器,如图2-3所示。图中仅仅在T2CON中RCLK或TCLK=1才有效。特别强调,TH2的翻转并不置位TF2,也不产生中断;EXEN2置位后,T2EX引脚上1~0的下跳变不会使(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所示。每个中断源都可以通过置位或清除特殊寄存器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在计数溢出的那个周期的S2P2被置位,在同一个周期被电路捕捉下来。

图2-4中断源


表2.7中断允许控制寄存器(IE)
EA—ET2ESET1EX1ET0EX0
中断允许控制位=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单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,如图2-6所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。


图2.5内部振荡电路连接图图2.6外部振荡电路连接图

2.4ZLG7290键盘/显示接口芯片
ZLG7290是广州周立功单片机发展有限公司自行设计的数码管显示驱动及键盘扫描管理芯片。一种I2C接口键盘及LED驱动管理器件,提供数据译码和循环、移位、段寻址等控制。能够直接驱动8位共阴式数码管(或64只独立的LED),同时还可以扫描管理多达64只按键,它可采样64个按键或传感器,单片即可完成LED显示、键盘接口的全部功能。ZLG7290的从地址为70H,器件内部通过I2C总线访问的寄存器地址范围为00H~17H,任一寄存器都可按字节直接读写,并支持自动增址功能和地址翻转功能。其中有8只按键还可以作为功能键使用,就像电脑键盘上的“Ctrl”、“Shift”、“Alt”键一样。另外ZLG7290内部还设置有连击计数器,能够使某键按下后不松手而连续有效。采用I2C总线方式,与微控制器的接口仅需两根信号线。该芯片为工业级芯片,抗干扰能力强,在工业测控中已有大量应用。
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个按键或传感器,可检测每个按键的连击次数。其基本功能如下:
键盘去抖动处理
当键被按下和放开时,可能会出现电平状态反复变化,称作键盘抖动。若不作处理会引起按键盘命令错误,所以要进行去抖动处理,以读取稳定的键盘状态为准。
双键互锁处理
当有两个以上按键被同时按下时,ZLG7290只采样优先级高的按键(优先顺序为S1>S2>?…>S64,如同时按下S2和S18时采样到S2)。
连击键处理
当某个按键按下时,输出一次键值后,如果该按键还未释放,该键值连续有效,就像连续压按该键一样,这种功能称为连击。连击次数计数器(RepeatCnt)可区别出单击(某些功能不允许连击,如开/关)或连击。判断连击次数可以检测被按时间,以防止某些功能误操作(如连续按5秒经入参数设置状态)。
功能键处理
功能键能实现2个以上按键同时按下来扩展按键数目或实现特殊功能。如PC机上的“Shift”、“Ctrl”、“Alt”键典型应用图中的S57~S64为功能键。

图2-8系统功能框图即寄存器映象图
显示部分
在每个显示刷新周期,ZLG7290按照扫描位数寄存器(ScanNum)指定的显示位数N,把显示缓存DpRam0~DpRamN的内容按先后循序送入LED驱动器实现动态显示,减少N值可提高每位显示扫描时间的占空比,以提高LED亮度,显示缓存中的内容不受影响。修改闪烁控制寄存器(FlashOnOff)可改变闪烁频率和占空比(亮和灭的时间)。
ZLG7290提供两种控制方式:寄存器映象控制和命令解释控制,如上述对显示部分的控制,寄存器映象控制是指直接访问底层寄存器,实现基本控制功能,这些寄存器须字节操作
命令解释控制是指通过解释命令缓冲区(CmdBuf0~CmdBuf1)中的指令,间接访问底层寄存器实现扩展控制功能。如实现寄存器的位操作;对显示缓存循环,移位;对操作数译码等操作。请参考指令详解部分
2.4.4寄存器详解
系统状态部分
系统寄存器(SystemReg):地址00H,复位值11110000B。系统寄存器保存ZLG7290系统状态,并可对系统运行状态进行配置,其功能分位描述如下:
•KeyAvi(SystemReg.0):置1时表示有效的按键动作(普通键的单击,连击,和功能键状态变化)/INT引脚信号有效(变为低电平);清0表示无按键动作,/INT引脚信号无效(变为高阻态)。有效的按键动作消失后或读Key后,KeyAvi位自动清0。
键盘部分
键值寄存器(Key):地址01H,复位值00H。Key表示被压按键的键值。当Key=0时表示没有键被压按。
连击次数计数器(RepeatCnt)地址02H,复位值00H。RepeatCnt=0时,表示单击键。RepeatCnt大于0时表示键的连击次数。用于区别出单击键或连击键,判断连击次数可以检测被按时间。
功能键寄存器(FunctionKey)地址03H,复位值0FFH。FunctionKey对应位的值=0表示对应功能键被压按(FunctionKey.7~FunctionKey.0对应S64~S57)。
命令接口部分
命令缓冲区(CmdBuf0~CmdBuf1)地址07H~08H复位值00H~00H用于传输指令。
显示部分
闪烁控制寄存器(FlashOnOff):地址0CH,复位值0111B/0111B。高4位表示闪烁时亮的时间,低4位表示闪烁时灭的时间,改变其值同时也改变了闪烁频率,也能改变亮和灭的占空比。FlashOnOff的1个单位相当于150~250ms(亮和灭的时间范围为:1~16,0000B相当1个时间单位)所有象素的闪烁频率和占空比相同。
扫描位数寄存器(ScanNum)地址0DH,复位值7。用于控制最大的扫描显示位数(有效范围为:0~7,对应的显示位数为;1~8),减少扫描位数可提高每位显示扫描时间的占空比,以提高LED亮度。不扫描显示的显示缓存寄存器则保持不变。如ScanNum=3时,只显示DpRam0~DpRam3的内容。
显示缓存寄存器(DpRam0~DpRam7):地址10H~17H,复位值00H~00H。缓存中一位置1表示该像素亮,DpRam7~DpRam0的显示内容对应Dig7~Dig0引脚。
2.4.5通信接口
ZLG7290的I2C接口传输速率可达32kbit/s,容易与处理器接口,并提供键盘中断信号,提高主处理器时间效率。ZLG7290的从地址(slaveaddress)为70H(01110000B)
有效的按键动作(普通键的单击连击和功能键状态变化)都会令系统寄存器(SystemReg)的KeyAvi位置1,/INT引脚信号有效(变为低电平)。用户的键盘处理程序可由/INT引脚低电平中断触发,以提高程序效率。也可以不采样/INT引脚信号节省系统的I/O数,而轮询系统寄存器的KeyAvi位。要注意读键值寄存器会令KeyAvi位清0。并会令/INT引脚信号无效。为确保某个有效的按键动作所有参数寄存器的同步性。可利用I2C通信的自动增址功能连续读RepeatCnt,FunctionKey和Key寄存器,但用户无需太担心寄存器的同步性问题,应为键参数寄存器变化速度较缓慢(典型250ms,最快9ms)
ZLG7290内可通过I2C总线访问的寄存器地址范围为:00H~17H,任一寄存器都可按字节直接读写,也可以通过命令接口间接读写或按位读写,请参考指令详解部分。支持自动增址功能(访问一寄存器后,寄存器子地址(subaddress)自动加一)和地址翻转功能(访问最后一寄存器(子地址=17H)后,寄存器子地址翻转为00H)。ZLG7290的控制和状态查询全部都是通过读/写寄存器实现的。用户只需象读写24C02内的单元一样即可实现对ZLG7290的控制。
2.4.6指令详解
ZLG7290提供两种控制方式:寄存器映象控制和命令解释控制,寄存器映象控制是指直接访问底层寄存器(除通信缓冲区外的寄存器),实现基本控制功能,请参考寄存器详解部分。命令解释控制是指通过解释命令缓冲区(CmdBuf0~CmdBuf1)中的指令,间接访问底层寄存器实现扩展控制功能。如实现寄存器的位操作;对显示缓存循环,移位;对操作数译码等操作。
一个有效的指令由一字节操作码和数个操作数组成,只有操作码的指令称为纯指令,带操作数的指令称为复合指令。一个完整的指令须在一个I2C帧中(起始信号和结束信号间)连续传输到命令缓冲区(CmdBuf0~CmdBuf1)中否则会引起错误。
纯指令
左移指令


该指令使与ScanNum相对应的显示数据和显示属性(闪烁)自右向左移动N位((N3~N0) 1)移动后右边N位无显示。与ScanNum不相关的显示数据和显示属性则不受影响。
右移指令
与左移指令类似,只是移动方向为自左向右,移动后,左边N位((N3~N0) 1)无显示。
循环左移指令

与左移指令类似,不同的是在每移动一位后,原最左位的显示数据和属性转移到最右位。
循环右移指令

与循环左移指令类似,只是移动方向相反。
SystemReg寄存器位寻址指令

当On=1时,第S(S2~S0)位置1,当On=0时,第S位清0。
复合指令
显示像素寻址指令

当On=1时,第S(S5~S0)点像素亮(置1);当On=0时,第S点像素灭(清0)。该指令用于点亮/关闭数码管中某一段,或LED矩阵中某一特定的LED;该指令受ScanNum的内容影响。S6~S0为像素地址,有效范围从00H~3FH,无效的地址不会产生任何作用。像素位地址映象如下表:
像素地址SaSbScSdSeSfSgSh
DpRam000H01H02H03H04H05H06H07H
DpRam108H09H0AH0BH0CH0DH0EHOFH
...
DpRam738H39H3AH3BH3CH3DH3EH3FH

按位下载数据且译码指令

其中A3~A0为显示缓存编号(范围为:0000B~0111B,对应DpRam0~DpRam7,无效的编号不会产生任何作用),DP=1时点亮该位小数点,Flash=1时该位闪烁显示,Flash=0时该位正常显示,D4~D0为要显示的数据,按以下表规则进行译码:


闪烁控制指令

当Fn=1时该位闪烁(n的范围为0~7,对应0~7位)当Fn=0时,该位不闪烁。该指令会改变所有像素的闪烁属性!
2.5数字温度传感器DS18B20
DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。
2.5.1DS18B20的主要特性
适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电
独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯
DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温
DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内
温度范围-55℃~+125℃,在-10~ 85℃时精度为±0.5℃
可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温
在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快
测量结果直接输出数字温度信号,以"一线总线"串行传送给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、配置寄存器。

图2-10DS18B20的内部结构

2.5.4工作过程及时序
DSl820工作过程中的协议如下:
初始化:RoM操作命令;存储器操作命令;处理数据。
初始化
单总线上的所有处理均从初始化开始
ROM操作品令
总线主机检测到DSl820的存在便可以发出ROM操作命令之一这些命令如
下表:
指令代码
ReadROM(读ROM)[33H]
MatchROM(匹配ROM[55H]
SkipROM(跳过ROM][CCH]
SearchROM(搜索ROM)[F0H]
Alarmsearch(告警搜索)[ECH]

存储器操作命令
指令代码
WriteScratchpad(写暂存存储器)[4EH]
ReadScratchpad(读暂存存储器)[BEH]
CopyScratchpad(复制暂存存储器)[48H]
ConvertTemperature(温度变换)[44H]
RecallEPROM(重新调出)[B8H]
ReadPowersupply(读电源)[B4H]

时序
主机使用时间隙(timeslots)来读写DSl820的数据位和写命令字的位
初始化
时序见图2-11,主机总线to时刻发送一复位脉冲(最短为480us的低电平信号),接着在tl时刻释放总线并进入接收状态,DSl820在检测到总线的上升沿之后,等待15-60us接着DS1820在t2时刻发出存在脉冲(低电平持续60-240us),如图中虚线所示:

图2-11

写时间隙
当主机总线to时刻从高拉至低电平时,就产生写时间隙,见图2-12、图2-13,从to时刻开始15us之内应将所需写的位送到总线上,DSl820在to后15-60us间对总线采样。若低电平,写入的位是0,见图2-12;若高电平,写入的位是1,见图2-13。连续写2位间的间隙应大于1us


图2-12图2-13
读时间隙
见图2-14,主机总线to时刻从高拉至低电平时,总线只须保持低电平l7ts。之后在t1时刻将总线拉高,产生读时间隙,读时间隙在t1时刻后t2时刻前有效。tz距to为15捍s,也就是说,tz时刻前主机必须完成读位,并在to后的60尸s~120fzs内释放总线。读位子程序(读得的位到C中)。


图2-14


第三章软件设计
3.1主程序框图























外部中断1服务程序框图:













致谢
毕业设计是对我们在大学几年来的理论知识一个综合测评,是对我们将理论赋注实践的综合能力的考验,是培养我们发现问题、解决问题的能力,是激发我们内在创新意识的途径。而在此次毕业设计中,我学到了许多平时课堂上学不到的东西,比如:单片机系统的开发与可行性分析、电路的设计与制作、器件的选型、程序的设计与调试、系统的调试以及平时没有接触到的在线编程与相关软件等等。在设计过程中我遇到了许多难以解决的问题,通过努力最终一步一步得以解决,感触颇深。通过这次的毕业设计,不仅锻炼了我的动手能力,更培养了我发现问题、解决问题的能力,巩固了我以前学过的专业知识,促进了我的自学能力,使我对即将踏入社会信心倍增。
在这次毕业设计中,由于学校和系里投入了相当大的人力物力,为我们的设计提供了所需要的设备,才使得我的毕业设计能够顺利完成。我的收获离不开张玉老师的精心指导。同时在设计过程当中也得到了严辉老师、夏巍老师、花海安老师以及同学的大力帮助。在此对我的指导老师——张玉表示衷心的感谢!对帮助、教育过我的老师表示崇高的敬意!对在设计过程中相互学习相互促进的同学致以真诚的祝福!

参考文献
何立民,单片机应用系统设计系统配置与接口技术。北京:北京航空航天大学出版社。1999
何立民,MCS-51系列单片机应用系统设计.北京:北京航空航天大学出版社,1990
刘守义,单片及应用技术。西安:西安电子科技大学出版社。2002
潘新民,微型计算机与传感技术。北京:人民邮电出版社。1988
辛友顺等,单片机应用系统设计与实现。福州:福建科学技术出版社。2005
沈德金,MCS-51系列单片机接口电路与应用程序实例.北京:北京航空航天大学出版社,2000
陈嘉庆,工业控制计算机应用100例.北京:微计算机信息编辑部,2002
王幸之,AT89系列单片机原理与接口技术.北京:北京航空航天大学出版社,2004
ATMEL,8-bitMicrocontrollerwith8KBytesIn-SystemProgrammableFlashAT89S52.2001
MicrocontrollerHandbookIntelCorp.,1996
谭浩强,C语言程序设计(第二版)北京清华大学出版社2005
马忠梅,单片机的C语言应用程序设计(第三版)北京:北京航空航天大学出版社,2003
夏路易,电路原理图与电路板设计教程PROTEL99SE北京:北京希望电子出版社
单片机接口技术实用子程序北京:人民邮电出版社
《建筑电气设计手册》中建工出版社
《电路原理图与电路板设计教程》北京希望电子出版社
《集成电路数据手册》电子工业出版
相关设计规范、手册、技术资料、网站等。


附录二毕业设计硬件电路元件清单
元件名称数量
AT89S521片
Zlg72901片
DS18B20(3PIN)1只
MAX2321片
数码管SM4205644只
二极管IN40074只
蜂鸣器1只
三极管85503只
晶振12MHz4MHZ各1个
继电器HRS4H-5V2个
电源底座三脚1只
LED红2只
ISP下载口1个
Max232下载口2个
电阻470Ω4只4.7KΩ3只10KΩ3只47KΩ只1KΩ2只
270Ω8只3.3KΩ8只10KΩ排阻1片
电容12µF2只30pF2只C1046只
4.7µF25V电解电容1只
按键17个
导线若干
电源5V12V各1个


上一页  [1] [2] 

文章录入:admin    责任编辑:admin 
  • 上一篇文章:
  • 下一篇文章:
  • 版权所有:copyright 2007-2008 中华文秘网 备案:京ICP备06039411号
    联系QQ:493831364 MSN:dinhuajj@hotmail.com