8.1数字频率计的设计
在电子技术与计算机技术的应用中,经常会用到频率的测量,利用单片机的定时/计数器功能,加上一些简单的外围电路,就能够很方便地设计出一个低频信号频率计。
8.1.1系统组成与设计方案
本系统以89C51单片机为核心,扩展8279显示接口芯片、晶体振荡器(6MHz)、显示驱动电路和共阴极的数码管,组成数字频率计系统。
利用单片机中的T0、T1两个定时/计数器分别对闸门时间和被测信号进行同步计数。当单片机上电复位时,开始定时及计数工作。定时时间一到,计数器T1中的计数值即为被测信号fx的频率;单片机输出T1的计数值送8279显示接口芯片,在LED显示器上将被测信号fx的频率进行数码显示。
由于89C51单片机内部的两个定时/计数器都是16位的,最大计数范围为216=65536。在本系统中,闸门时间为1s,则所测信号的最高频率为65536Hz。为实现频率较高信号的测量,一种是采用分频器对被测信号进行分频后测量;另一种是采用单片机内部计数器计数溢出中断技术对被测信号进行计数。在本系统中,测量信号的频率范围大多为低频信号,为简化系统电路采用定时器溢出中断技术对被测信号进行频率测量。
频率计程序采用中断结构方式。
8.1.3频率计程序设计
显示接口芯片8279的命令口和数据口地址为7F00H和7F01H;选用定时器T0定时,中断入口地址为000BH;计数器T1计数,中断入口地址为001BH。程序如下:
ORG 001BH
INC COUNT
RET
ORG 0100H
PORT EQU 7F00H;8279 数据口地址
COUNT EQU 24H;计数器T1 溢出中断存储单元
TTM EQU 23H;定时器T0 中断次数存储单元
ZAN0 EQU 20H;数据暂存单元
ZAN1 EQU 21H
ZAN2 EQU 22H
XIAN0 EQU 25H;显示缓存单元
XIAN1 EQU 26H
XIAN2 EQU 27H
START:MOV A,#00H
MOV Rl,#20H
MOV R7,0AH
RAM:MOV @Rl,A;清内存
INC Rl
DJNZ R7,RAM
MOV SP,#70H;设堆栈指针
MOV DPTR,#PORT+1;8279 显示RAM 全部清零
MOV A,#0D1H
MOVX @DPTR,A
MOV A,#2AH;送分频命令
MOVX @DPTR,A
MOV A,#00H;设置键盘/显示方式8 字符显示,左边输入
MOVX @DPTR,A
MOV COUNT,#00H
MOV TMOD,#51H;定时器0 定时,T1 计数,工作在方式1
MOV TL0,#0B0H;置T0 时间常数,每0.1 秒中断一次
MOV TH0,#3CH
MOV TL1,#00H;置T1 计数初值
MOV TH1,#00H
MOV TTM,#10;设置定时器T0 中断次数,100×10= 1 s
SETB TR0
SETB TR1
SETE ET0
SETB ET1
SETB PT1
SETB EA;启动定时计数
DISPLAY:
MOV DPTR,#PORT+1;写显示级冲RAM 命令
MOV A,#90H
MOVX @DPTR,A
MOV R7,#03H;03 表示显存字节数
MOV Rl,#XIAN0;显示存储单元首地址
MOV DPTR,#PORT;8279 数据端口地址
DL0:MOV A,@Rl;从单元取数值送ACC
MOV R2,A;存入R2 中
ANL A,#0FH;获取高半字节
ACALL TABLE
MOVX @DPTR,A;送入缓冲区
MOV A,R2
SWAP A
ANL A,#0FH;获取低半字节
ACALL TABLE
MOVX @DPTR,A;送入缓冲区
INC R1;地址加1
DJNZ R7,DL0;字节都显示完了吗? 未完则继续
LJMP DISPLAY
TABLE:INC A;取相应段显码
MOVC A,@A+PC
RET
DB 3FH,06H,5BH,4FH,66H
DB 6DH,7DH,07H,7FH,6FH
T0INT:MOV TL0,#0B0H;重新送初值
MOV TH0,#3CH
DJNZ TTM,TORET;到1 秒了吗? 没有则退出到TORET
CLR EA;关中断
MOV ZAN0,TL1;读T1 计数值,送暂存单元
MOV ZAN1,TH1
MOV ZAN2,COUNT
BINTOBCD:MOV R0,#ZAN0;二进制数据转换为十进制数据
MOV Rl,#XIAN0;显示缓存首地址
MOV R7,#03H;待转换的二进制字节数
BMBCD:MOV A,R0;入口:R0 中的数据为待转换数据的首地址
MOV R5,A;出口:R1 中的数据为转换完数据的首地址
MOV A,Rl
MOV R6,A
MOV A,R7
MOV R3,A
INC R3
CLR A
CLBCD:MOV @R1,A
INC R1
DJNZ R3,CLBCD
MOV A,R7
MOV B,#08H
MUL AB
MOV R3,A
LP0:MOV A,R5
MOV R0,A
MOV A,R7
MOV R2,A
CLR C
LP1:MOV A,@R0
RLC A
MOV @R0,A
INC R0
DJNZ R2,LP1
MOV A,R6
MOV R1,A
MOV A,R7
MOV R2,A
INC R2
LP2:MOV A,@Rl
ADDC A,@RI
DA A
MOV @R1,A
INC R1
DJNZ R2,LP2
DJNZ R3,LP0
MOV A,R6
MOV R1,A
MOV TTM,#10;重新设置T0 中断次数
MOV COUNT,#00H;计数器T2 清零
MOV TH1,#00H
MOV TLI,#00H
SETB EA;开中断
TORET:RETI;中断返回
END
8.2糖化试验器的设计
糖化试验器是啤酒生产中不可缺少的设备之一。目前国产糖化试验器大多采用简单的人工控制方法,其精度低、误差大,难以保证所要求的测试精度。智能型糖化试验器可使协定法糖化试验和哈同值的测定在自动控制中进行,同时它可作为恒温器使用,其恒温时间及温度值可自行设定。
8.2.1系统的硬件组成
它是以89C51单片微机系统为中心,扩展了一片8255作为输入/输出接口,并由信号输入通道(温度传感器、运算放大器、A/D变换器)及执行信号输出通道等组成。为了提高系统抗干扰能力,设计了MAX691组成的微处理器监控电路。
8.2.1.1微机基本系统
微处理机是采用美国ATMEL公司生产的8位单片机89C51。它是一种低功耗、高性能、含有4KB块擦写(Flash)可编程(擦除只读存储器PEROM,又称闪存)的8位CMOS单片机。该器件与国际工业标准80C51指令系统和引脚完全兼容。89C51为PEROM型,它编程后无需紫外线擦除,可直接对其重新编程。
8.2.1.2温度传感器
温度传感器采用二端式集成温度电流传感器AD590,它具有体积小、线性度好、性能稳定等优点。测量温度范围-55℃~+150℃。线性电流输出1μA/K,电源电压范围4V~30V。当电压在5V~10V之间电压稳定度为1%时,所产生的误差只有±0.01℃。
AD590的输出量是电流,为把电流转换成电压,通常将AD5901μA/K的输出电流通过1kΩ电阻转换为1mV/K的输出电压。AD590测量的是绝对温度,绝对温度和摄氏温度之间的关系为:K=℃+273.2。
为了读出摄氏温度,必须使AD590的输出偏值为273.2mV。通过R1将AD590的输出电流转换成1mV/K的输出电压。又通过R2、R3及R4对MC1403提供的2.5V基准电压进行分压,从而获得273.2mV的偏置,使放大器的输入电压为:V=1mV/℃。
8.2.1.3运算放大器
运算放大器采用仪器用放大器AD620,它具有精度高(最大非线性为40ppm,最大失调电压为50μV,最大失调漂移为0.6μV/℃)、低价格、使用方便等优点。它只需外接一个电阻,便可得到1~1000内的任意增益。工作电源电压范围为±2.3V~±18V。AD620的增益是用电阻Rg决定的。由增益公式:
G=1+49.4(kΩ)Rg
可得:
Rg=49.4(kΩ)G-1
本设计中选择G=10,则Rg=5.49kΩ,调试时为了获得准确的偏置电压,先将AD590放置在0℃冰水中,调节电位器R3使放大器的输出电压V0=0V,然后把传感器放入100℃沸水中,调节电位器Rg,使V0=1000mV。
8.2.1.4A/D转换器
A/D转换器采用双积分312位的MC14433。MC14433为CMOS集成电路,具有功耗低、输入阻抗高、外接元件少等优点。由于是双积分调零式转换,故抗干扰能力强,精度高。所选工作频率为66kHz,对应的工作周期T约为15μs,完成一次A/D转换约为16000个工作周期,故转换时间tA/D:
tA/D=16000×T=16000×15μs=240ms
本电路选择量程为1.999V,基准电压为2V。
MC14433在每一次A/D转换周期之后,都由EOC端发出一个宽度为T/2的正脉冲信号,DU端每收到一个正脉冲信号则将芯片内部计数器中的转换结果送到数据锁存器,从而扫描输出新的数据。
8.2.1.5执行信号输出通道
本系统采用脉冲宽度调制的控制方法。
89C51的P3.3口输出控温信号,输出高电平时双向硅导通,加热管通电;输出低电平时,双向可控截止,加热管断电。脉冲宽度与控制周期的比值反映了系统的输出控制量。控制信号通过光耦可控硅直接控制双向功率可控硅的门极,从而控制加热管的平均加热功率。
电路中光耦可控硅采用的是MOC3061。该器件是红外LED加上带过零检测的光敏晶闸管组的复合元件。它集光电隔离、过零检测、过零触发功能于一体,工作温度为-40℃~+100℃。RG为功率可控硅的门极电阻,接上RG可提高抗干扰能力,一般取值270Ω~470Ω。R2、R分别是输入、输出限流电阻,R1和C1为阻容吸收电路。
MOC3061的可靠触发电流IFT为5~15mA。电路的工作原理是只有在正向输入电流的作用下,同时输出端(4,6脚)之间电压为零或接近零时,光敏双向可控硅才能触发导通。
8.2.1.6微处理器监控电路
在微机系统中为了保证系统稳定可靠的运行,为了解决电压不稳和软件受干扰跑飞等问题,采用了MAX691微处理器监控系统。它具有两个功能:
(1)在微处理器上电、掉电及低电压供电时产生一个复位输出。MAX691使处理器在上电时处于一个明确的状态(初始状态),这样可以防止微处理器在上电、掉电及低电压供电时错误地执行机器代码。当上电或电源电压VCC降得低于复位电压门限4.65V时,MAX691对CPU进行复位。同时LOW一端变低电平。
(2)受监控的微处理器若在暂停周期内未触发芯片内部的Watchdog电路,芯片将产生一个复位输出。设计中选取暂停周期为1.6s。看门狗定时器输入端WDI保持低电平或高电平的时间若超过暂停周期且WDI不呈三态状态,则MAX691会连续发出复位脉冲使CPU复位,同时WDO一端变低电平,直到WDI跳变正常为止。所以CPU需每隔固定时间(小于暂停周期)使WDI跳变一次。当受到干扰程序跑飞时,WDI端在1.6s内得不到翻转,则监控电路产生复位信号,复位后通过修复程序找到跑飞点,使程序继续运行。
8.2.2系统的控制方法
8.2.2.1控制策略
无论是经典控制理论还是现代控制理论,都是建立在系统的数学模型基础上的。而在实际工业控制过程中,经常遇到难以获得准确数学模型的非线性复杂工业对象控制过程(如控温过程),这给上述理论的实际应用带来了很大困难。与经典控制相比较,模糊控制则有不依赖于被控对象数学模型的优点,它便于利用人的经验知识,鲁棒性好,简单实用。
在糖化试验器温度控制系统的设计中,应用了模糊控制理论,采用了分温度区段作多种控制决策的控制方法,保证了良好的控制特性。
水温的控制过程离不开升温、恒温、降温三个基本状态。根据水温的升温曲线,采用分区控制策略。在远离控制点时,采用全功率加热的方法,尽量提高升温速度而又不影响控制品质。在靠近模糊控制区时,采用比例控制方法,使控制量与温度误差成比例,从而减缓升温势头,平滑接近给定值。在进入模糊控制区时,采用模糊控制方法,以此来提高和保证系统的控制品质。
8.2.2.2模糊控制方法
本系统采用二维模糊控制器,双输入单输出。输入量是采样时得到的温度误差值e,以及相应的温度误差的变化v。输出量是以两个输入量为因子,经模糊控制推理决策出的控制量u。首先要将精确量转换为模糊量,并用模糊语言表示,E、V及U被规定为下列模糊子集:
V={NB,NM,NS,Z0,PS;PM,PB}
E={N,Z0,PS;PM,PB}
U={Z0,PS;PM,PB}
其中符号PB、PM、PS、Z0、N、NS、NM和NB分别表示“正大”、“正中”、“正小”、“零”、“负”、“负小”、“负中”和“负大”。根据设备的具体情况.列出E、V、U的变化范围和对应关系,再引用操作者的手动控制经验和控制原理,经过多次试验建立相应的模糊控制规则,将其列成表格式规则。
用查表法在控制表中找到相应的控制量,再经过非模糊控制处理,将模糊量转换为精确值加到控制系统中去。