自动化与仪器仪表ZIDONGHUAYUYIQIYIBIAO2003年第3期(总第107期)文章编号:1001—9227(2003)03—0046—03基于单片机控制的数字移相器设计邹立华赵巍。(杭州商学院信息与电子工程学院,310035)(。哈尔滨工程大学自动化学院,150000)摘要:本文介绍了一种基于单片机控制的数字移相器,其采用环形队列实现信号波形的任意相位移相,且保持波形的幅度、频率不变。文中对其软、硬件的设计作了较为详细的阐述。关键词:单片机倍频环形队列ABSTPACT:Thepaperintroducesvariouswavesa曲aseshiftercontrolledbySCMAT89C51.ItaconstantcallrealizephaseshiftofThedesignofthewiththemethodofloopalil,ament,andholdamplitudeandfrequencyhardwareandsoftwareismentionedindetailinthearticle.KE、n^/ORDS:SCMFrequencymultiplicationLoopalignment中图分类号:TP268.1文献标识码:B出信号)与锁相环的输入信号6相一致时,锁相环芯片0概述移相电路常用于同步检测器的数据处理中。目前资料上有很多移相电路,其实现方法多种多样,大致可分为模拟式和数字式移相器两类。模拟式移相器的电路较为复杂、线性差、测试精度低;数字式移相器大多以标准逻辑器件按传统数字系统设计方法设计而成,其缺点为功耗大、可靠性低。本文介绍的基于单片机控制的数字移相器,采用环形队列实现信号波形的任意相位移相,并且保持波形的幅度、频率不变。其测试精度高,失真度小。系统原理方框图如图1所示。ul锁存输出的信号频率为fo。假如输人信号频率‘=50Hz,则输出频率fo=36kHz。具体电路如图2所示。该倍频信号的波形如图3所示,主要有两方面的用途,一是控制A/D转换的采样点数及采样的时间间隔(即一个周期采样720个点)。二是控制D/A输出数据的时间间隔,从而达到输入信号频率与输出信号频率一致。1.2单片机系统主电路本电路主要由单片机AT89C51、键盘/显示电路、模数转换器AD574A、数模转换器DAC0832、6116存储器等构成,具体电路如图5所示(键盘/显示电路和6116存储器等图中未画出)。键盘主要用来实现移相的具体数值(度)的设置,功能键包括设置键、数字键(“十”、“一”)、复位键、运行键等五个键,最多可置720个0(720×0.5度=360度),因此可达到0—360度的相移。根据任意设定的相位数值,把相位及数据存储到队列(如图4所示)中的相应位置置0。显示用四位数码管实现.最低位为小数位,其余3位为整数位,可显示范围为0.5—360度。A/D实现对波形数据(幅度)的采集、转换。A/D每采集一个点。就存入存储器的队列中。同样D/A借助单片机先从队列中读人一个数据,再由倍频信号fo来控制D/A输出数据的时间间隔,D/A的第一周期输出从“输出1”口输出,以后则从“输出2”口输出,对采集的720个数据循环输出,因此达到了移相的目的。另外,因n/AG0832模/数芯片输出的波形存在毛丛厂匝互叶寸皿I壁垒H图1系统原理方框图气副!匮幽警H!尘鲎堡卜2…1系统硬件电路设计本系统的硬件电路主要由输入信号倍频电路、AT89C51单片机、A/D转换器、D/A转换器、6116存储器及键盘/显示等电路构成。I.【输入信号倍频电路倍频电路由锁相环CCA046及双BCD同步加法计数器4518组成。4518作分频器用,实现720分频,其中,u3:A实现9分频,u2实现80分频。倍频电路中锁相环的输人信号是经过电压比较电路把工频信号变换成的方波信号。当分频器的输出信号(U2:A的6脚输46万方数据 图2输入信号倍频电路的电容就可以使这些毛刺基本消失,得到较平滑的波形。2系统软件设计整个系统软件的执行过程为:首先,通过键盘设置移相的数值,同时在显示器上显示出移相的度数;其次,启动A/D把转换结果存人队列,在A/D的转换过程中,D/A从队列中读出相应数据后D/A输出;第三,D/A不断循环输出,实现连续的移相后的工频信号。系统软件流程框图如图6所示。图3倍频信号波形图采图4相位及数据存储队列根据芯片实际情况.若等待^/D转换过程中可以完戚D/A输出的全部操作,建议将D/A输出在等待A/D转换的过程中完成。圈6系统软件流程框图u7:83结束语该数字移相器可对任意波形信号(如正弦波、三角(下转第49页)图5单片机系统主电路刺,需要进行滤波,通过实验。在其输出端加一个1000p万方数据 if(hand—fk==1){audio(adress);//语音提示子程序delay(10);serial—send(handoff);//发送AT挂机指令,hand—off[]={‘a’,一t,‘h’,CR}flag=O:量牵篓量囊一(口)主程序{int{埘目动拨号程序serial—send(handoff);J++;//取下一个电话号码if(j>10)//判断号码是否取完break;图3系统程序框图voiddall(char”P,char”a){serial—send(dial);//发送AT拨号指令,dial(]={‘a’,一t,‘d’,‘*’}serial—send(phonecndc);//发送电话号码delay(10);//延时子程序s,'rial—reveive(a);//接收ZXGMl8返回值结束语voidauto~alarm()本系统通过移动通讯模块实现向外界报警的功能,克服了现行的报警器因电话线中断而失去报警功能的缺点,在家庭和金融业有着广泛的应用前景。另外,该系统还可以通过短信息的形式向机主报告系统的状态,机主也可以通过短信息的形式向系统下达命令,从而改变系统的状态,或控制其他的家用电器,这正是我们下一步研究的目标。参考文献1马忠梅单片机的c语言应用程序设计.北京:北京航空航天大学出版社,1991.12陈静,范宣志,童名文AT89C51单片机在超发电计量仪中的应用.自动化与仪器仪表,102(4):28~33,2002i=0,j=1;while(flag==1)∥flag为拨号标志//读x5045中{x5045.read(phonecode,j);预存的电话号码dail(phonecode,receive—data);if(receive—deta[0]==‘0’)//判断呼叫是否成功{while(hand—flag==0)//hand—flag是摘机标志special—delay(5);序,可改变hand—flagi++://特殊延时子程If(i>4)七七女女专七七专七七七七七七七七七七七七七七七七七七七七七七七七七七七电七七七七七七七七七七七七七(上接第47页)波、锯齿波、方波等波形)进行任意相位的移相,具有测量精度高、跟踪速度快的特点,根据设定要求移相后所获得的输出波形与输入信号波形的幅度、频率逼近,即输出移棚后波形的失真度较小。fqCr1L艚.MCS一51系列单片机应用系统设计北京:北京航参考文献空航天大学出版社,19902万心平.张厥盛,郏继禹著锁相技术.西安:西安电子科技大学出版社,19894q万方数据