基于单片机的锁相频率合成器.docx

上传人:b****6 文档编号:8484102 上传时间:2023-01-31 格式:DOCX 页数:14 大小:442.87KB
下载 相关 举报
基于单片机的锁相频率合成器.docx_第1页
第1页 / 共14页
基于单片机的锁相频率合成器.docx_第2页
第2页 / 共14页
基于单片机的锁相频率合成器.docx_第3页
第3页 / 共14页
基于单片机的锁相频率合成器.docx_第4页
第4页 / 共14页
基于单片机的锁相频率合成器.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于单片机的锁相频率合成器.docx

《基于单片机的锁相频率合成器.docx》由会员分享,可在线阅读,更多相关《基于单片机的锁相频率合成器.docx(14页珍藏版)》请在冰豆网上搜索。

基于单片机的锁相频率合成器.docx

基于单片机的锁相频率合成器

摘要2

1、引言2

2、设计任务及要求2

2.1设计任务2

2.2设计要求2

3、频率合成的基本原理框图2

4、硬件系统的设计3

4.1原理图3

4.274HC40463

4.2.174HC4046引脚功能介绍3

4.2.274HC4046内部电路原理图4

4.2.374HC4046典型应用5

4.3CD4522引脚功能介绍5

4.4CD4518引脚功能介绍6

4.51602LCD的基本参数及引脚功能7

5、软件系统的设计9

5.1流程图9

5.2程序代码11

6、实训小结16

参考文献16

 

基于单片机控制的频率合成器

摘要

给出一种以单片集成PLL芯片74HC4046为核心,并通过AT89C51单片机对74HC4046进行控制来实现锁相频率合成器的设计方法。

文中在介绍了74HC4046芯片的内部功能结构的基础上,探讨了锁相频率合成器的基本原理和工作特性;给出了基于74HC4046的锁相频率合成器的硬件电路结构和软件程序设计方法。

该设计经仿真测试证明,锁相效果良好,结构精简,性能可靠。

关键词:

74HC4046;AT89C51;频率合成器

1、引言

在现代电子技术的设计与开发过程中,特别是在通信、雷达、航空、航天以及仪器仪表等领域,都需要进一步提高一系列高精度、高稳定度的频率源的频率精度。

这样,一般的振荡器已经无法满足各种应用的发展要求,而晶体振荡器的性能虽然比较好,但其频率单一,或只能在极小的范围内进行微调。

因此,本文提出了一种基于单片机AT89C51控制的利用锁相技术以频率合成器芯片74HC4046为核心,来实现锁相频率合成器的设计方案。

2、设计任务及要求

2.1设计任务

设计一个基于单片机控制的频率合成器

2.2设计要求

1.输入信号为1KHz的方波信号。

2.合成的频率范围为1KHz~999KHz。

3.可设置分频比为1~999。

4.采用LCD显示。

3、频率合成的基本原理框图

4、硬件系统的设计

4.1原理图

4.274HC4046

4.2.174HC4046引脚功能介绍

上图是74HC4046的引脚排列,采用16脚双列直插式,各管脚功能:

1脚相位输出端,环路入锁时为高电平,环路失锁时为低电平。

2脚相位比较器Ⅰ的输出端。

3脚比较信号输入端。

4脚压控振荡器输出端。

5脚禁止端,高电平时禁止,低电平时允许压控振荡器工作。

6、7脚外接振荡电容。

8、16脚电源的负端和正端。

9脚压控振荡器的控制端。

10脚解调输出端,用于FM解调。

11、12脚外接振荡电阻。

13脚相位比较器Ⅱ的输出端。

14脚信号输入端。

15脚内部独立的齐纳稳压管负极。

4.2.274HC4046内部电路原理图

74HC4046工作原理:

输入信号Ui从14脚输入后,经放大器A1进行放大、整形后加到相位比较器Ⅰ、Ⅱ的输入端,开关K拨至2脚,则比较器Ⅰ将从3脚输入的比较信号Uo与输入信号Ui作相位比较,从相位比较器输出的误差电压UΨ则反映出两者的相位差。

UΨ经R3、R4及C2滤波后得到一控制电压Ud加至压控振荡器VCO的输入端9脚,调整VCO的振荡频率f2,使f2迅速逼近信号频率f1。

VCO的输出又经除法器再进入相位比较器Ⅰ,继续与Ui进行相位比较,最后使得f2=f1,两者的相位差为一定值,实现了相位锁定。

若开关K拨至13脚,则相位比较器Ⅱ工作,过程与上述相同,不再赘述。

4.2.374HC4046典型应用

74HC4046是通用的CMOS锁相环集成电路,其特点是电源电压范围宽(为3V-18V),输入阻抗高(约100MΩ),动态功耗小,在中心频率f0为10kHz下功耗仅为600μW,属微功耗器件。

上图是用74HC4046的VCO组成的方波发生器,当其9脚输入端固定接电源时,电路即起基本方波振荡器的作用。

振荡器的充、放电电容C1接在6脚与7脚之间,调节电阻R1阻值即可调整振荡器振荡频率,振荡方波信号从4脚输出。

按图示数值,振荡频率变化范围在20Hz至2kHz。

4.3CD4522引脚功能介绍

 

CF反馈输入端

CP时钟输入端

D0~D3并行数据输入端

INH禁止端

ID置数控制端

Q0~Q3计数器输出端

QZ计数器零输出端

VDD正电源

VSS地

CD4522是可预置数的二一十进制1/N减计数器。

其引脚见上图。

其中D1-D4是预置端,Q1—Q4是计数器输出端,其余控制端的功能如下:

PE(3)=“1”时D1—D4值置进计数器;EN(4)=“0”且CP(6)时,计数器(Q1—Q4)减计数;CF(13)=“1”且计数器(Q1—Q4)减到“0”时,QC(12)=“1”;Cr(10)=“1”时,计数器清零。

单片4522分频器如下图所示:

 

拨盘开关为BCD码开关,如当数据窗口显示“3”时则A和“1”“2”相连;当显示“5”时,则A和“1”“4”相连,其余类推。

4个100K电阻用来保证当拨盘开关为某脚不和A相连,也就是悬空时,为低电平。

工作过程是这样的:

设拨盘开关拨到“N”,当某时刻PE(3)=“1”,则N置到IC内的计数器中,下一个CP来时,计数器减计数变为N-1,一直到第N个CP来时,计数器为0。

这时由于CF(13)=“1”,∴QC(12)=“1”,也即PE(3)=“1”又恢复到开始状态,开始一个新的循环。

很显然,每来个N个CP,QC(12)就会出现一个高电平,也就是QC(12)应是CP的N分频信号。

4.4CD4518引脚功能介绍

CD4518是一个双BCD同步加计数器,由两个相同的同步4级计数器组成。

CD4518引脚功能(管脚功能)如下:

1CP、2CP:

时钟输入端。

1CR、2CR:

清除端。

1EN、2EN:

计数允许控制端。

1Q0~1Q3:

计数器输出端。

2Q0~2Q3:

计数器输出端。

Vdd:

正电源。

Vss:

接地。

CD4518是一个同步加计数器,在一个封装中含有两个可互换二/十进制计数器,其功能引脚分别为1~7和9~{15}.该CD4518计数器是单路系列脉冲输入(1脚或2脚;9脚或10脚),4路BCD码信号输出(3脚~6脚;{11}脚~{14}脚)。

CD4518控制功能:

CD4518有两个时钟输入端CP和EN,若用时钟上升沿触发,信号由CP输入,此时EN端为高电平

(1),若用时钟下降沿触发,信号由EN输入,此时CP端为低吨平(0),同时复位端Cr也保持低电平(0),只有满足了这些条件时,电路才会处于计数状态.否则没办法工作。

将数片CD4518串行级联时,尽管每片CD4518属并行计数,但就整体而言已变成串行计数了。

需要指出,CD4518未设置进位端,但可利用Q4做输出端。

有人误将第一级的Q4端接到第二级的CP端,结果发现计数变成“逢八进一”了。

原因在于Q4是在CP8作用下产生正跳变的,其上升沿不能作进位脉冲,只有其下降沿才是“逢十进一”的进位信号。

正确接法应是将低位的Q4端接高位的EN端,高位计数器的CP端接USS。

4.51602LCD的基本参数及引脚功能

1602LCD主要技术参数:

显示容量:

16×2个字符

芯片工作电压:

4.5—5.5V

工作电流:

2.0mA(5.0V)

模块最佳工作电压:

5.0V

字符尺寸:

2.95×4.35(W×H)mm

引脚功能说明

序列号

属性

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

VL

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

R/W

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

BLA

背光源正极

8

D1

数据

16

BLK

背光源负极

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

5、软件系统的设计

5.1流程图

主程序流程图

键盘扫描流程图

脉冲计数流程图

5.2程序代码

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitP34=P3^4;

sbitlcdrs=P3^7;

sbitlcden=P3^6;

sbitP32=P3^2;

sbitP33=P3^3;

uchardispbuf[3]={0,0,1};

ucharcodetable[]="0123456789";

inti=0,temp;

chartemp_g,temp_s,temp_b;

voiddelay(ucharz)

{

ucharx,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

voidwrite_data(uchardate)

{

lcdrs=1;

P0=date;

delay

(2);

lcden=1;

delay

(2);

lcden=0;

}

voidwrite_com(ucharcom)

{

lcdrs=0;

P0=com;

delay

(2);

lcden=1;

delay

(2);

lcden=0;

}

voidmain()

{

TMOD=0x10;

TH1=(65536-500)/256;

TL1=(65536-500)%256;

ET1=1;

PT1=1;

EX0=1;

EX1=1;

EA=1;

TR1=1;

lcden=0;

write_com(0x38);

write_com(0x0c);

write_com(0x04);

write_com(0x01);

write_com(0x80);

write_data('F');

write_data('r');

write_data('e');

write_data('q');

write_data('u');

write_data('e');

write_data('n');

write_data('c');

write_data('y');

write_data(':

');

write_data('*');

write_com(0xc0+13);

write_data('K');

write_data('H');

write_data('z');

while

(1)

{

if(temp==0)

{

temp=1;

if(i==0)

{

write_com(0x80+10);

write_data('*');

}

else

{

write_com(0x80+10);

write_data('');

}

if(i==1)

{

write_com(0x80+11);

write_data('*');

}

else

{

write_com(0x80+11);

write_data('');

}

if(i==2)

{

write_com(0x80+12);

write_data('*');

}

else

{

write_com(0x80+12);

write_data('');

}

write_com(0xc0+10);

write_data(table[dispbuf[0]]);

write_data(table[dispbuf[1]]);

write_data(table[dispbuf[2]]);

temp_g=dispbuf[2]&0x0f;

temp_s=dispbuf[1]&0x0f;

temp_s=temp_s<<4;

temp_b=dispbuf[0]&0x0f;

P2=temp_b|temp_s;

P1=temp_g;

}

}

}

voidint50ms()interrupt3

{

TR1=0;

TH1=(65536-500)/256;

TL1=(65536-500)%256;

P34=~P34;

TR1=1;

}

voidINEX0()interrupt0

{

delay

(2);

if(P32==0);

{

temp=0;

++i;

if(i>3)

i=0;

}

while(P32==0);

}

voidINEX1()interrupt2

{

delay

(2);

if(P33==0);

{

temp=0;

dispbuf[i]++;

if(dispbuf[i]>9)

dispbuf[i]=0;

}

while(P33==0);

}

6、实训小结

开学第一周我们进行了这学期的第一个实训,基于单片机的频率合成器。

对于这个实训,最开始是对电路图的设计,我们从网上搜集了一些资料,然后结合平时所学,最终将电路图设计完整,经过老师检查没有问题之后我们就开始了软件系统的设计,主要就是写程序。

说到程序这是我们最头疼的事,大都只懂得一些基础的,更深层次的就不行了。

我们也借助了网络,在网上找了一些类似的代码,然后自己再修改一下,不过花了很多心思才弄好了。

最后就是焊接电路板,这可真是一件伟大的工程,主要是需要焊接的线太多了,很容易出现错焊,漏焊,虚焊,短路的情况,所以第一次焊接完后一般都有很多问题,还要对照电路图一个点一个点的仔细检查,功夫不负有心人,最后我们还是成功了。

这次实训收获真的很多,参与了每一个过程,从最初的一脸茫然,到最后的成功喜悦,都是我们大家一起努力的结果。

参考文献

[1]李全利.单片机原理及接口技术.北京:

高等教育出版社,2009

[2]周航慈,朱跃忠.智能仪器原理与设计.北京:

北京航空航天大学出版社,2005

[3]罗杰,谢自美.电子线路设计•实验•测试.北京:

电子工业出版社,2008

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1