正弦信号发生器设计毕业论文.docx
《正弦信号发生器设计毕业论文.docx》由会员分享,可在线阅读,更多相关《正弦信号发生器设计毕业论文.docx(124页珍藏版)》请在冰豆网上搜索。
![正弦信号发生器设计毕业论文.docx](https://file1.bdocx.com/fileroot1/2023-2/6/df9ea263-bd85-4bd6-b008-227cd4a40589/df9ea263-bd85-4bd6-b008-227cd4a405891.gif)
正弦信号发生器设计毕业论文
正弦信号发生器设计毕业论文
1绪论
1.1课题背景
DDS技术目前已成为频率合成技术发展的主流方向,它高度的集成性,对于简化电子系统的设计方案,降低硬件的复杂程度,提高系统的整机性能意义重大。
用这种方法产生线性调频信号及其它复杂波形信号的技术日益受到重视,并得到广泛的应用。
近年来,随着直接数字频率合成技术(directdigitalfrequencysynthesis,简称DDS)的发展,基于DDS技术的合成信号发生器,在正弦信号源的设计与使用中日益广泛.它与以往的射频信号源、锁相信号源和模拟频率合成信号源相比较,其频率分辨率高,指定频率的重复性好,而且易于程序控制.DDS技术的原理主要是通过相位与幅度的对应关系实现的,由于不同的控制字对应相位累加器中不同的相位累加速度,用此速度从正弦幅值表中进行查询,获得指定的幅度序列,最后通过数模转换输出。
1.2系统结构
对一个系统来说,系统结构的好坏是非常重要的。
我本着实现所有要求的功能的基础上,简化系统结构,这样可以降低成本,也可以减少一些电路本身的干扰。
对于本系统我采用了四个模块,即:
键盘模块、控制模块、显示模块、正弦信号发生模块。
各个模块之间的关系如下图。
图1.1系统总框图
根据系统总框图可知CPU是用来处理键盘传来的按键信号,并且控制显示模块和正弦信号产生模块的正常工作的。
本系统的核心是正弦信号产生模块,因它是产生正弦信号的中心,其它器件只是让整个系统更加完善。
2硬件电路设计
2.1系统设计方案
正弦信号发生器待选方案有两个:
方案一:
利用单片机查询正弦表的方法来产生正弦信号。
此方法的优点是电路简单,易实现程控。
缺点是输出信号频率围比较窄,而且输出信号的波形好坏和单片机查询的正弦表有密切关系,既在正弦波的一个周期所查的正弦表次数越多,则正弦波的波形越好。
但是单片机的负担也变大了,计算量将明显提高,则单片机的大部分资源被输出正弦波的工作所占用。
方案二:
利用模拟电路知识中的振荡电路的方法来产生正弦信号。
此方法的优点是输出信号频率围比较宽。
缺点是电路的抗干扰能力比较差,不易实现程控,当输出频率比较高时电路设计比较困难。
方案三:
利用DDS技术来产生正弦信号。
此方法的优点是输出信号的频率围比较宽,电路比较简单,易于实现程控。
缺点是DDS器件价格有点高,一般在一百元以上,而且多数是帖片元件,这对于焊接工艺要求比较高。
由于DDS技术的发展,再加上生活水平的提高,本次设计我采用DDS技术。
2.2方案论证
按照系统功能要求,决定CPU模块采用AT89S52单片机,正弦信号产生模块采用AD8950,显示模块采用LCD,键盘模块采用8279和4×4键盘。
系统除能确保实现要求的功能外,还可以方便地进行其它功能的扩展。
正弦信号发生器系统设计方案框图如图2.1所示。
正弦信号发生器系统硬件电路由单片机、AD9850、LCD显示电路和按键处理电路等组成,它的硬件电路如附录所示。
图2.1设计方案框图
2.3正弦信号发生器的基本原理
根据系统的功能要求,控制系统采用AT89S52单片机,正弦信号发生模块采用AD9850。
AD9850是专业的正弦信号发生器件。
通过单片机对AD9850的控制可以输出不同频率的正弦波。
并且可以通过LCD显示频率值,以便于更好的实现人机界面。
2.4AT89S52的简介
单片微机(Single-ChipMicrocomputer)简称为单片机。
它在一块芯片上集中成了中央处理单元CPU、随机存储器RAM、只读存储器ROM、定时/计数和多功能输入/输出I/O口,如并行口I/O、串行口I/O和转换A/D等。
就其组成而言,一块单片机就是一台计算机。
其典型结构如图2.2所示。
由于它具有体积小、功能强和价格便宜等优点,因而被广泛地应用于产品智能化和工业控制自动化上。
图2.2单片机典型部组成原理图
单片机特点:
a)单片机体积小巧、使用灵活、成本低,易于真正产品化。
组装各种智能式控制设备和仪器,能做到机电仪一体化。
b)面向控制。
能有针对性地解决各种从简单到复杂的各类控制任务,因而能获得最佳的性能价格比。
c)抗干扰能力强,适应温度围宽,在各种恶劣的环境下都能可靠的工作。
这是其它微机集中无法比拟的。
d)可以方便的实现多机、分布式的集散控制,使整个控制系统的效率大大地提高。
e)单片机应用产品的研制周期短,所开发出来的样机就是以后批量生产的产品,可以避免不必要的二次开发过程。
单片机应用:
a)工业方面:
电机控制,工业机器人,过程控制,智能传感器,机电仪一体化等。
b)仪器仪表方面:
智能仪器,医疗仪器,色谱仪,示波器等。
c)家用电器:
高级电子玩具,微波灶,洗衣机,录像机等。
d)电讯方面:
调制解调器,智能通讯设备等。
e)导航与控制方面:
导弹控制,鱼雷制导控制,智能武器装置,航天导航系统等。
f)数据处理方面:
图形终端,彩色与黑白复印机,温式硬盘驱动器,磁带机,打印机等。
g)汽车方面:
点火控制,变速器控制,防滑刹车,排气控制等。
MCS-51系列单片机在我国得到了广泛的应用,是单片机的主流系列,软硬件应用设计资料丰富齐全。
为了提高指令的执行速度和效率,采用了面向控制的结构和指令系统的独立CPU,即选择Atmel公司的AT89S52单片机。
图2.3AT89S52引脚排列
AT89S52是低功耗,高性能,采用CMOS工艺的8位单片机。
其片具有8KB的可在线编程的Flash存储器。
该单片机采用了ATMEL公司的高密度、非易失性存储器技术,与工业标准型AT89S52单片机的握住系统和引脚完全兼容;片的Flash存储器可在线重新编程,或使用通用的非易失性存储器编程器;通用的8位CPU与在线可编程Flash集成在一块芯片上,从而使AT89S52功能更加完善,应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。
AT89S52单片机具有如下特性:
●片存储器包含8KB的Flash,可在线编程,擦写次数不少于1000次;
●具有256字节的片RAM;
●具有可编程的32根I/O口线(P0、P1、P2和P3口);
●具有3个可编程定时器T0,T1和T2;
●含2个数据指针DPTR0和DPTR1;
●中断系统是具有8个中断源、6个中断矢量、2级优先权的中断结构;
●串行通信口是1个全双工的UART串行口;
●2种低功耗节电工作方式为空闲模式和掉电模式;
●具有3级程序锁定位;
●含有1个看门狗定时器;
●具有断电标志POF;
●AT89S52的工作电压为4.0~5.5V;
●全静态工作模式为0~3MHz(AT89S52)和0~16MHz(AT89LS52);
●与MCS-51产品完全兼容。
2.4.1CPU系统
8位CPU,含布尔处理器;
时钟电路;
总线控制逻辑。
2.4.2存储器系统
8K的程序存储器(Flash),可外扩至64K;
256的数据存储器(RAM,可再外扩64K);
特殊功能寄存器SFR。
2.4.3I/O口和其它功能单元
4个并行I/O口;
3个16位定时/计数器;
1个全双工异步串行口;
中断系统(8个中断源、2个优先级)。
2.4.4AT89S52的时钟电路的接法
图2.4AT89S52的时钟电路的接法
如上图所示,左图是部时钟方式,右图是外部时钟方式。
由于AT89S52部有时钟,所以我选择左图的外部时钟方式。
晶振选择12MHz,C1、C2电容选择30pF(5~30pF都可以)。
2.4.5时钟信号
晶振周期为最小的时序单位。
一个时钟周期包含2个晶振周期。
一个机器周期包含12个晶荡周期或6个时钟周期。
如本设计用的是12MHz的晶振频率,则机器周期为1μS,指令周期为1~4μS。
每个机器周期中ALE信号有效两次,具有稳定的频率可以将基作为外部设备的时钟信号。
所以ALE引脚的频率是单片机时钟频率的1/6。
应注意的是,在对片外RAM进行读/写时,ALE信号会出现非周期现象。
2.4.6AT89S52的各个管脚的功能介绍
(1)电源及时钟引脚
Vcc:
电源接入引脚;
Vss:
接地引脚;
XTAL1:
晶体振荡器接入的一个引脚,(采用外部振荡器时,此引脚接地);
XTAL2:
晶体振荡器接入的另一个引脚(采用外部振荡器时,此引脚作为外部振荡信号的输入端);
(2)控制线引脚
RST/VPD:
复位信号输入引脚/备用电源输入引脚;
ALE/PROG:
地址允许信号输出引脚/编程脉冲输入引脚;
EA/VPP:
外有储器选择引脚/片FlashROM编程电压输入引脚;
PSEN:
外部程序存储器信号输出引脚。
(3)并行I/O引脚(32个,分成4个8位口)
P0.0~P0.7:
一般I/O口引脚或数据/低位地址总线复用引脚;
P1.0~P1.7:
一般I/O口引脚和定时器T2定义的引脚;
P2.0~P2.7:
一般I/O口引脚或高位地址总线引脚;
P3.0~P3.7:
一般I/O口引脚或第二功能引脚。
P1.0和P1.1引脚的第二功能
P1.0:
T2(T2的外部计数输入);
P1.1:
T2EX(T2的外部控制);
(1)P3.0~P3.7引脚的第二功能
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(片外数据存储器“读”控制输出);
(2)并行口的负载能力
P0、P1、P2、P3口的输入和输出电平与CMOS电平和TTL电平均兼容。
P0口的每一个位口线可以驱动8个LSTTL负载。
在作为通用I/O口时,由于输出驱动电路是开漏方式,由集电极开路(OC门)电路或漏极开路电路驱动时需外接上拉电阻;当作为地址/数据总线使用时,接口线输出不是开漏的,无在须外接上拉电阻。
P1、P2、P3口的每一位能驱动4个LSTTL负载。
它们的输出劝电路设有部上拉电阻,所以可以方便地由集电极开路(OC门)电路或漏极开路电路所驱动,而无须外接上拉电阻。
由于单片机口线仅能提供几毫安的电流,当作为输出驱动一般晶体管的基极时,应在口与晶体管的基极之间串接限流电阻。
2.4.7AT89S52的复位
当在AT89S52单片机的RST引脚引入高电平并保持2个机器周期时,单片机部就执行复位操作(如果RST引脚持续保持高电平,单片机就处于循环复位状态)。
2.4.7.1复位电路
在实际应用中,复位操作有两种基本形式:
一种是上电复位,另一种是上电与按键均有的复位。
如图2.4所示。
图2.5左图为上电复位,右图为上电与按键均有的复位
上电复位要求接通电源后,单片机自动实现复位操作。
开机瞬间RST引脚获得高电平,随着电容C1的充电,RST引脚的高电平,随着电容C1的充电,RST引脚的高电平将逐渐下降。
RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。
左图上电复位电路的典型的电阻和电容参数为:
晶振频率为12MHz时,C1为10µF,R1为8.2kΩ;晶振频率为6MHz时,C1为22µF,R1为1kΩ。
开机与按键均有效的复位电路可以在单片机运行期间,用按键完成复位操作。
晶振频率为6MHz时,R2为200Ω;晶振频率为12MHz时,R2为400。
2.4.7.2开机复位后的状态
单片机的复位操作使单片机进入初始化状态。
初始化后,程序计数器PC=0000H,所以程序从0000H地址单元开始执行。
单片机启动后,片RAM为随机值,运行中的复位操作不改变片RAM的容。
特殊功能寄存器复位后的状态是确定的。
P0~P3为FFH,SP为07H,SBUF不定,IP、IE和PCON的有效位为0,其余的特殊功能寄存器的状态均为00H。
相应的意义为:
P0~P3=FFH,相当于各接口器已定入1,此时不但可用于输出,也可以用于入;
SP=07H,堆栈指针指向片RAM的07H单元(第一个入栈容将定入08H单元)。
IP、IE、和PCON的有效位为0,各中断源处于低优先级且均被关断,串行通信的波特率不加倍;
PSW=00H,当前工作寄存器为0组。
2.4.8AT89S52的程序存储器配置
程序计数器PC是16位的计数器,所以能寻址64KB的程序存储器地址围,允许用户程序调用或转向64KB的任何存储单元。
地址围为0000H~FFFFH。
但是AT89S52单片机部只有4KB的存储单元。
地址围为0000H~0FFFH。
当EA引脚为高电平时,CPU将首先访问部存储器,当指令地址超过0FFFH时,自动片外ROM去取指令;接低电平时(接地),CPU只能访问外部程序存储器。
程序存储器低端的一些地址被固定地用作特定的入口地址:
0000H:
单片机复位的入口地址;
0003H:
外部中断0的中断服务程序入口地址;
000BH:
定时/计数器0溢出中断服务程序入口地址;
0013H:
外部中断1的中断服务程序入口地址;
001BH:
定时/订数器1溢出中断服务程序入口地址;
0023H:
串行口接口的中断服务程序入口地址;
002BH:
定时/计数器2溢出或T2EX负跳变中断服务程序入口地址。
图2.6程序存储器配置
编程时以上的中断入口地址空间最好不要使用。
2.4.9AT89S52的数据存储器配置
AT89S52片RAM共有256字节,分成工作寄存器区、位址区、通用RAM区和间接寻址RAM区四个部分。
片RAM地址围是00H~FFH。
片外RAM地址空间为64KB,地址围是0000H~FFFFH。
图2.7数据存储器配置
2.4.10AT89S52的中断简介
(1)INT0(P3.2),外部中断请求信号输入引脚。
可由IT0(TCON.0)选择其为低电平有效还是下降沿有效。
当CPU检测到P3.2引脚上出现有效的中断信号时,中断标志IE0(TCON.1)置之不理,向CPU申请中断。
(2)INT1(P3.3),外部中断定请求信号输入引脚。
可由IT1(TCON.2)选择其为低电平有效还是下降沿有效。
当COU检测到P3.3引脚上出现有效的中断信号时,中沁村志IE1(TCON.3)置1,向CPU申请中断。
(3)TF0(TCON.5),片定时/计数器T0溢出中断请求标志。
当定时/计数器T0发生溢出时,置位TF0,并向CPU申请中断。
(4)TF1(TCON.7),片定时/计数器T1溢出中断请求标志。
当定时/计数器T1发生溢出时,置位TF1,并向CPU申请中断。
(5)RI(SCON.0)或TI(SCON.1),串行口中断请求标志。
当串行口接收完一帧串行数据置位RI或当串行口发关完一帧串行数据时置位TI,向CPU早请中断。
(6)TF2(T2CON.7)定时器T2溢出中断标志。
定时器T2溢出时置位标志并向CPU申请中断。
(7)EXF2(T2CON.6)定时器T2外部中断标志。
在捕捉和常数自动重装方式下,当EXEN2=1时,在T2EX端发生的负跳变使EXF2置位。
如此时T2中断被允许,则EXF2=1,使CPU响应中断。
2.4.10.1中断的定义:
CPU正在执行主程序时,单片机外部或部发生的某一事件(如外部设备产生的一个电平的变化,一个脉冲沿的发生或部计数器的计数溢出等)请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转到中断服务处理程序处理所发生的事件。
中断服务处理程序处理完该事件后,再回到原来被中止的地方,继续原来的工作(例如,继续执行被中断的主程序),这称为中断。
CPU处理事件的过程,称为CPU的中断响应过程。
能够实现中断处理功能的部件称为中断系统;产生中断的请求源称为中断请求源。
中断源向CPU提出的处理请求,称为中断请求(或中断申请)。
中断的工作:
保护现场、恢复现场、中断返回。
中断方式的优点是大大地提高了CPU的工作效率。
六个中断请求源:
(1)INT0—外部中断请求0,由引脚INT0输入,中断请求标志为IE0。
(2)INT1—外部中断请求1,由引脚INT1输入,中断请求标志为IE1
(3)定时器/计数器T0溢出中断请求,中断请求标志为TF0。
(4)定时器/计数器T1溢出中断请求,中断请求标志为TF1。
(5)串行口中断请求,中断请求标志为TI或RI。
(6)定时器/计数器T2中断请求,中断请求标志为TF2和EXF2。
标志位分别由特殊功能寄存器TCON、SCON和T2CON的相应位锁存。
TCON是定时/计数器T0和T1控制寄存器,它锁存几个定时/计数器的溢出中断标志及外部中断INT0和INT1的中断标志。
表2.1TCON寄存器中的各位定义
TCON的字节地址=88H复位值=00000000B
可以位寻址
7
6
5
4
3
2
1
0
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
IT0(TCON.0):
外部中断INT0非触发方式控制位。
当IT0=0时,INT0非为电平触发方式。
CPU在每个机器周期的S5P2取样INT0非引脚电平,当取样到低电平时,置IE0=1表示INT0非向CPU请求中断;取样到高电平时,将IE0清0。
必须注意,在电平触发方式下,CPU响应中断时,不能自动清除IE0标志。
也就是说,IE0状态完全由INT0非状态决定。
所以,在中断返回前必须撤除INT0非引脚的低电平。
当IT0=1时,INT0非为边沿触发方式(下降沿有效)。
CPU在每个机器周期的S5P2取样INT0非引脚电平,如果在连续的两面三刀个机器周期检测到INT0非引脚由高电平变为低电平,即第一个周期取样到INT0非=1,第二个周期取样到INT0非=0,则置IE=1,产生中断请求。
在边沿触发方式下,CPU响应中断时,能由硬件自动清除IE0标志。
注意,为保证CPU能检测到负跳变,INT0非的高、低电平时间至少应保持1个机器周期。
IE0(TCON.1):
外部中断INT0非中断请求标志位。
IE0=1时,表示INT0非向CPU请求中断。
IT1(TCON.2):
外部中断INT1非触发方式控制位。
其操作功能与IT0类同。
IE1(TCON.3):
外部中断INT1非中断请求标志位。
IE1=1时,表示INT1非向CPU请求中断。
TF0(TCON.5):
定时/计数器T0溢出中断请求标志位。
在T0启动后就开始由初值加1计数,直到最高位产生溢出由硬件置位TR0,向CPU请求中断。
CPU响应中断时,TF0由硬件自动清0.
TF1(TCON.7):
定时/计数器T1溢出中断请求标志位。
其操作功能与TF0类同。
2.4.10.2中断允许控制
CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器IE控制的。
IE的状态可通过程序由软件设定。
某位设定为1,相应的中断源中断允许;某位跑马场定为0,相应的中断源中断屏蔽。
CPU复位时,IE各位清0,禁止所有中断。
表2.2IE寄存器位的定义
IE的字节地址=A8H复位值=00000000B
可以位寻址
7
6
5
4
3
2
1
0
EA
ET2
ES
ET1
EX1
ET0
EX0
其中:
EA:
中断允许总控制位
0:
CPU屏蔽所有的中断请求(CPU关中断);
1:
CPU开放所有中断(CPU开中断)。
ET2:
定时器/计数器T2的中断允许位
0:
禁止T2中断;
1:
允许T2中断。
ES:
串行口中断允许位
0:
禁止串行口中断;
1:
允许串行口中断。
ET1:
定时器/计数器T1的溢出中断允许位
0:
禁止T1溢出中断;
1:
允许T1溢出中断。
EX1:
外部中断1中断允许位
0:
禁止外部中断1中断;
1:
允许外部中断1中断。
ET0:
定时器/计数器T0的溢出中断允许位
0:
禁止T0溢出中断;
1:
允许T0溢出中断。
EX0:
外部中断0中断允许位。
0:
禁止外部中断0中断;
1:
允许外部中断0中断。
AT89S52复位以后,IE被清0,所有的中断请求被禁止。
CPU对中断源的开放或屏蔽,由片的中断允许寄存器IE控制。
IE的字节地址为A8H,可进行位寻址。
IE对中断的开放和关闭实现两级控制
总的开关中断控制位EA(IE.7位),当EA=0时,所有的中断请求被屏蔽。
当EA=1时,CPU开放中断,但五个中断源的中断请求是否允许,还要由IE中的低5位所对应的5个中断请求允许控制位的状态来决定。
若使某一个中断源被允许中断,除了IE相应的位的被置“1”外,还必须使EA位=1,即CPU开放中断。
改变IE的容,可由位操作指令来实现,即SETBbit;CLRbit。
2.4.10.3中断优先级控制
同一优先级中的中断中请不止一个时,则有中断优先权排队问题。
同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如表:
表2.3中断系统硬件的优先级形式
中断源
中断标志
中断服务程序入口
优先级顺序
外部中断0(INT0)
IE0
0003H
高
定时/计数器0(T0)
TF0
000BH
↓
外部中断1(INT1)
IE1
0013H
↓
定时/计数器1(T1)
TF1
001BH
↓
串行口
RI或TI
0023H
↓
定时/计数器2(T2)
TF2或EXF2
002BH
低
表2.4IP寄存器各位的定义
IP的字节地址=B8H复位值=00000000B
可以位寻址
7
6
5
4
3
2
1
0
PT2
PS
PT1
PX1
PT0
PX0
其中:
PT2:
定时器T2中断优先级控制位。
1:
高优先级中断;
0:
低优先级中断。
PS——串行口中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
PT1——定时器T1中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
PX1——外部中断1中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
PT0——定时器T0中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
PX0——外部中断0中断优先级控制位
1:
高优先级中断;
0:
低优先级中断。
由用户程序置“1”和清“0”,以改变各中断源的中断优先级。
AT89S52单片机的中断优先级处理有三条原则:
(1)CPU同时接收到几个中断时,首先相应优先级别最高的中断请求。
(2)正在进行的中断过程不能被新的同级或低优先级的中断请求所中断。
(3)正在进行的低优先级中断服务,能被高优先级中断请求所中断。
为了实现上述后两条原则,中断系统部设有两个用户不能寻址的优先级状态触发器。
其中一个置1,表示正在相应高优先级的中断,它将阻止断后所有的中断请求。
另一个置1,表示正在相应低优先级中断,它将阻止后来所有的低优先级中断请求。
两个中断优先级,可实现两级中断嵌套。
就是CPU正在执行低优先级中断的服务程序时,可被高优先级中断请求所中断,去执行高优先级中断服务程序,待高优先级中断处理完毕后,再返回低优先级中断服务程序。
一个正在执行的低优先级中断程序能被高优先级的中断源所中断,但不能被另一个低优先级的中断源所中断。
若CPU正在执行高优先级的中断,则不能被任何中断源所中断。
可