基于单片机的相位差在线检测文档格式.docx
《基于单片机的相位差在线检测文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的相位差在线检测文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
由于滤波器参数可以根据用户对滤波器性能的要求任意设计,参数精度可得到严格保证,也没有因元件老化而影响精度的问题,因此可以使滤波环节给相位测量精度造成的影响减到最小。
2.3方案三
基于单片机的相位差在线测量
使用单片机组建相位差检测系统,利用单片机内部时钟及定时/计数器,、快速的测定,可广泛应用于各种实时系统之中。
方案选定:
对于方案一:
相位差测量方法的测量误差主要来自于对模拟信号的处理过程中,如模拟滤波器在滤除干扰的同时由于元件参数的离散性,测量元件受环境的影响以及元件老化带来的影响都会引入测量误差;
又如信号经过比较器时由于比较器门限电压的存在而造成测量误差,这些误差都很难准确估量,也很难消除。
传统的相位差测量方法无法应用于要求精度高。
对于方案二:
这种方法测量相位差的关键在于如何实现信号的乘法。
传统的模拟乘法器存在非线性和不尽如人意的带宽限制。
采用数字乘法器在把模拟信号转换成数字信号之后,仍然进行时域上的操作,显得有些舍本逐末。
对于方案三:
本相位差测量方法充分利用了MCS-51系列单片机内部精确的时钟源及校正电路,能进行在线检测、显示,大大提高了相位差的测试精度和速度。
所以综上所述,我们选用方案三。
3.AT89S51单片机概述
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过几代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压低功耗。
对交通灯控制系统的设计,首先应对交通灯的核心控制芯片的基本结构和特征以及主要引脚有比较详细的了解。
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,片内含4kbytes的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。
它集Flash程序存储器,既可在线编程(ISP)也可用传统方法进行编程及通用8位微处理器于单片芯片中,ATMEL公司的功能强大,低价位AT89S51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。
下图是MCS-51系列单片机的内部结构示意图。
图2.1MCS-51系列单片机的内部结构示意图
3.1AT89S51单片机的主要性能参数
·
与MCS-51产品指令系统完全兼容
4k字节在系统编程(ISP)Flash闪速存储器
1000次擦写周期
4.0-5.5V的工作电压范围
全静态工作模式:
0Hz-33MHz
三级程序加密锁
128×
8字节内部RAM
32个可编程I/O口线
2个16位定时/计数器
6个中断源
全双工串行UART通道
低功耗空闲和掉电模式
看门狗(WDT)及双数据指针
掉电标识和快速编程特性
灵活的在系统编程(ISP字节或页写模式)
3.2AT89S51单片机的主要引脚
下图是AT89S51单片机的引脚图。
图2.2AT89S51单片机的引脚图
VCC:
电源电压
GND:
地
P0口:
P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口。
作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:
Pl是一个带内部上拉电阻的8位双向I/O口,Pl的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“l”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
Flash编程和程序校验期间,Pl接收低8位地址。
表2.1具有第二功能的P1口引脚
端口引脚
第二功能
P1.5
MOSI(用于ISP编程)
P1.6
P1.7
P2口:
P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX@Ri指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中P2寄存器的内容),在整个访问期间不改变。
Flash编程或校验时,P2亦接收高位地址和其它控制信号。
P3口:
P3口是一组带有内部上拉电阻的8位双向I/0口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“l”时,它们被内部上拉电阻拉高并可作为输入端口。
作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。
P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能,如下表所示:
表2.2具有第二功能的P3口引脚
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
/INT0(外中断0)
P3.3
/INT1(外中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时/计数器1外部输入)
P3.6
/WR(外部数据存储器写选通)
P3.7
/RD(外部数据存储器读选通)
P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
RST:
复位输入。
当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
WDT溢出将使该引脚输出高电平,设置SFRAUXR的DISRT0位(地址8EH)可打开或关闭该功能。
DISRT0位缺省为RESET输出高电平打开状态。
ALE/
:
当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲。
对F1ash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。
如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。
该位置位后,只有一条M0VX和M0VC指令ALE才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。
程序储存允许(
)输出是外部程序存储器的读选通信号,当AT89S51由外部程序存储器取指令(或数据)时,每个机器周期两次
有效,即输出两个脉冲。
当访问外部数据存储器,没有两次有效的
信号。
/VPP:
外部访问允许。
欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。
需注意的是:
如果加密位LB1被编程,复位时内部会锁存EA端状态。
如EA端为高电平(接VCC端),CPU则执行内部程序存储器中的指令。
F1ash存储器编程时,该引脚加上+12V的编程电压Vpp。
XTAL1:
振荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
振荡器反相放大器的输出端。
4.基于单片机的相位差在线监测
测量原理
基于单片机系统的相位差测量电路如图1所示。
待测信号V1,V2经过前置处理和整形后,经过相位差检测电路,输出结果直接送入单片机进行处理,标准正弦信号由ICL8038产生,用于对待测信号V1,V2的相位差进行校正,提高精度。
4.1前置处理模块
前置处理模块主要是对信号进行滤波,滤除干扰并进行适当的放大,它与整形模块一同构成信号预处理电路,输出TTL电平,为相位差的检测作好准备。
4.2信号整形
信号经过带通滤波器滤掉高频干扰和低频漂移信号并进行线性放大后,变为一波形正规、幅值适当的正弦信号,然后经过滞回比较器及晶体三极管整形成TTL电平。
采用滞回比较器,能够提高电路的抗干扰能力,本系统将滞回比较器的阈值电压设为0.4V,能够有效滤除放大后幅值小于0.4V的干扰信号,并得到与输入信号同频率、占空比为50%的方波。
电路如图2所示。
4.3相位差检测电路
由两个J-K触发器组成的边沿触发型相位差检测电路如图3所示。
F1的输出Q1和
分别接F2的J2和K2,所以F2在CLK2端受下跳沿触发后,建立的状态与F1相同;
F2的输出Q2和
分别接F1的K1和J1所以F1在CLK1端受下跳沿触发后,建立的状态与F2相反。
根据上述特点,并考虑到F1和F2是下跳沿触发的J-K触发器,可画出Q1和Q的输出波形以及经过与非门后的输出脉冲波形,如图4所示。
图4(c)中实线波形对应
虚线波形对应
由图4可见,输出电压平均值
与相位差
成线性关系
4.4校正电路
标准正弦信号由ICL8038产生,经反相后分成两路信号,即标准相位差为180∀,用于对待测信号V1,V2的相位差进行校正,提高精度。
4.5信号的采集、处理及显示
信号从P3.3和P3.5输入,从P3.5输入的信号用于测量方波的频率时作用,而P3.3信号时用于测量正脉冲信号宽度时作用。
设计思路
对于测量频率:
采用定时闸门计数方法测量脉冲频率。
设定时器/计数器0为定时方式,提供100MS的基准闸门时间TR。
在10TR期间,定时器/计数器1对外部脉冲进行计数,所获得的计数值M即为被测脉冲信号的频率。
设定时器/计数器参数设定
定时器/计数器0用来提供100MS的基准闸门时间,单片机时钟振荡器频率
为6MHZ,定时器/计数器1对外部脉冲进行计数。
定时器/计数器0采用方式1,定时器状态由内部TR0控制启停;
定时器/计数器1采用方式1,计数器状态由内部TR1控制启停。
因此TMOD=01010001B=51H.
T0的计数初值为
式中,
,
则
程序见附录1
对于测量脉冲宽度:
由外部引脚
控制计数器定时计数的启动,停止,高电平时启动计数,低电平时停止计数。
当
为高电平时,计数器中的计数值N为12分频的时钟频率
的周期数,则脉冲宽度
定时器/计数器的控制字
本程序中选用T1,方式1,外部
控制启/停(GATE=1),及定时器方式(
)故TMOD=1001
B.令TMOD=90H
计算公式
附录一
MAIN:
SJMPMSFC;
跳转到MSFC
MOVR4,#64H
SSS:
MOVTMOD,#01H;
设定T0状态字
MOVTL0,#0CH;
计数器TH,TL0装入初值
MOVTH0,#0FEH
SETBTR0;
开始计时
SSS1:
JBCTF0,SSS2
SJMPSSS1
SSS2:
DJNZR4,SSS
CLRTR0
SJMPSTW;
跳转到STW
SJMPMAIN
MSFC:
MOVTMOD,#51H;
设T0,T1控制字
MOVR0,#0AH;
100MS定时的10倍扩展
MOVTL1,#00H;
T1计数器清零
MOVTH1,#00H
MOVTL0,#0B0H;
T0计数器装入计数初值
MOVTH0,#3CH
SETBP3.5;
置T1引脚为输入方式
JBP3.5$;
等待为低电平
动T0计数
SETBTR1;
启动T1计数
WAIT:
JBCTF0,SECC;
查询100MS定时时间,定时时间到,转SECC
SJMPWAIT;
100MS定时未到,等待
SECC:
MOVTL0,#0B0H;
重装计数初值
MOVTH0,#3CH
DJNZR0,WITH;
查询1S定时到,为转到WAIT
CLRTR1;
1S定时到,停止T1计数
CLRTR0;
停止T0计数
MOV31H,TH1;
将T1计数值M送入31H,30H
MOV30H,TL1
MOVR3,0AH;
给R3赋初值
MOVA,31H
MOVB,R3
DIVAB;
AB中两无符号相除,结果商在A,余数在B
MOV50H,A;
把A中的数送入50H单元
MOV51H,B
MOVA,30H
MOV52H,A
MOV53H,B
IOLED4:
MOVR1,#50H;
给R1赋初值
MOVR2,#0FEH;
给R2赋初值
DISC:
MOVA,R2;
基址赋值
MOVP2,A
MOVA,@R1
MOVDPTR,#TAB;
段码表首址入DPTR
MOVCA,@A+DPTR;
查找相应的段选码
MOVP0,A
LCALLDELAY;
调用延时程序
INCR1
MOVA,R2
JNBP2.3,DEND
RLA
MOVR2,A
AJMPDISC
DEND:
RET
DELAY:
MOVR7,#64H
EE:
MOVR6,#0AH
SS:
DJNZR6,SS
DJNZR7,EE
RET;
子程序返回
STW:
MOVTMOD,#90H;
设T1控制字
MOVTL1,#00H;
计数器清零
MOVTH1,#00H
MOV31H,#00H;
31H,30H清零
MOV30H,#00H
SETBP3.3;
置P3.3输入方式
STLPO:
MOVC,P3.3;
读
引脚入CY
JCSTLP0;
等待外部引脚变成低电平
置
启停允许
STLP1:
查询
状态是否变成高电平
JNCSTLP1;
未变高电平则等待
STLP2:
MOVC,P3.3;
状态是否变成低电平
JCSTLP2;
未变低电平则等待
变为低电平测量结束,关闭TR1
计数值N放入内存31H,30H单元
IOLED5:
DISC1:
LCALLDELAY1;
JNBP2.3,DEND1
AJMPDISC1
DEND1:
DELAY1:
EE1:
SS1:
DJNZR6,SS1
DJNZR7,EE1
RET
TAB:
3FH,06H,5BH,4FH,66H,6DH,7DH,07H
7FH,6FH,77H,7CH,39H,5EH,79H,71H
参考文献
1胡汉才.单片机原理及其接口技术.清华大学出版社.1996。
2沙占友,王彦朋,孟志永.单片机外围电路设计.电子工业出版社.2003。
3童诗白,华成英.第三版.模拟电子技术基础.北京高等教育出社.2001。
4康华光,陈大钦.第四版.电子技术基础.北京高等教育出版.2001。
5黄继昌,张海贵,郭继忠.实用单元电路及其应用.人民邮电出版社.2002。
6谢宜仁.单片机实用技术问答.人民邮电出版社.2003。
7武雅莉,王鹊.利用8031单片机在线检测相位差.现代电子技术.1995。
8廖常初,唐昆明.微机相位差测量方法与提高测量精度的措施.自动化与表仪器仪.2005。
9张西芹,康书英.采用微机测量同频交变信号间相位差的新方法.电力情报.1996。
10谭小平,肖运红.用单片机组成相位差计及在物理试验中的应用.江汉学报.1996。
10李索文.相位差测量的一种简明方法.淮北煤师院学报.2002。
11李兆钧,王红理.测量小相位差的一种方法.大学物理试验.1999。
12张毅刚,付平,王丽.采用数字相关法测量相位差.计量学报.2000。
14邓新浦,卢启中,孙仲康.数字式相位差测量方法及精度分析.国防科技大报.2002