单片机课程设计-设计并实现两路相位可调方波信号发生器资料(2)

2019-01-12 17:27

武汉理工大学《单片机应用实践》课程设计说明书

2.2 AT89C52引脚说明

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。

图2.2 AT89C52的引脚图

其引脚功能如下:

P0 口是一组8 位漏极开路型双向I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口是一个带内部上拉电阻的8 位双向I/O 口, P1口的输出缓冲级可驱

3

武汉理工大学《单片机应用实践》课程设计说明书

动4 个TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与AT89C51 不同之处是,P1.0 和P1.1 还可分别作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)。Flash 编程和程序校验期间,P1口接收低8 位地址。

P2口是一个带有内部上拉电阻的8位双向I/O口,P2口的输出缓冲级可驱动4 个TTL 逻辑门电路。对端口P2口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16 位地数据存储器时,P2口送出高8 位地址数据。在访问8 位地址的外部数据存储器时,P2口输出P2锁存器的内容。Flash编程或校验时,P2口亦接收高位地址和一些控制信号。

P3口是一组带有内部上拉电阻的8 位双向I/O 口。P3口输出缓冲级可驱动4个TTL逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节。一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH 单元的D0 位置位,可禁止ALE 操作。该位置位后,只有一条MOVX 和MOVC指令才能将ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE 禁止位无效。

PSEN程序储存允许输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

4

武汉理工大学《单片机应用实践》课程设计说明书

EA/Vpp外部访问允许。欲使CPU 仅访问外部程序存储器(地址为0000H—FFFFH),EA 端必须保持低电平。需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU 则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V 的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1振荡器反相放大器及内部时钟发生器的输入端。 XTAL2振荡器反相放大器的输出端。

2.3 方案的选择

本次课程设计要求设计并实现两路相位可调方波信号发生器,设计两路相位可调的方波可以分为三部分,即产生原始方波、调频、调相。

相位差的调节原理是通过两个波形的输出产生延迟实现的,延迟的实现可以有两种思路,其中一种方法是用单片机自带的定时器来实现,还有一种方法是利用延时来实现。

上述两种方法各有利弊。如果利用单片机自带的定时器,单片机中定时器是可以产生很精确的定时,这样就可以产生很精准的频率,还可以通过控制定时器的工作来产生延迟输出波形,借此来产生相位差;但是这种方法考虑的方案设计要比较复杂,而且程序的设计也是很复杂的。如果使用延时程序来控制,是很容易产生误差,而且相位调节更有可能调节很不准确;但是方案设计和程序的书写比较简单。

经过以上的细致分析,要想完成本次设计,我们应该选择用定时器来实现频率可调和延时程序来实现相位差可调的方波输出。因此本次课程设计可以实现固定步长值的频率、相位可调。

2.4 设计方案说明

2.4.1设计原理

本次设计要求是两路方波频率和相位可调方波发生器,利用AT89C52来产

5

武汉理工大学《单片机应用实践》课程设计说明书

生相位和频率可调的方波。P2.4, P2.5,P2.6三个端口分别用来调节方波输出的频率增减,相位增,而P0.0,P0.1则是用来输出两路方波信号。P2.4,P2.5,P2.6三个接口接着高电平和按键,而按键另一端则是接地,当按下按键时,原本高电平的接口变为低电平。

(1)选用51单片机中的T0和T1两个定时器,对于两路输出信号P0.0和P0.1分别进行控制,通过定时器的定时计数功能,调整电平变化,产生方波。而CPL命令来是得端口输出循环反向。

(2)采取改变两个定时计数器计数初值的手段,改变方波电平产生的延时时间,从而改变方波频率(本次设计中方波占空比为1)

(3)将P2.4和P2.5设为调频端口,将P2.6设为调相端口。通过更改P0.1端口定时中断中加入输出方波前的独立延时时间,使两个波形之间产生相位差,相位差的步进值为18°。

2.4.2 参数计算

本次设计输出频率为10HZ的方波,步进值为1HZ。两个输出都采用定时方式1产生方波。

通过设计一个标志位,当信号开始变为高电平时,把相应的高电平计数初值赋给T0,当产生T0溢出中断时,把信号变为低电平,同时把低电平相应的计数初值赋给T0,通过标志位的0和1循环,从而产生持续交替的高低电平,一个频率可调的方波就出来了。 1.方波频率的设置:

根据T=1/频率F,得出周期为0.1s,即100ms,则首先产生50ms脉冲,计数初值为:

C=模-[t/MC] (2.1)

带入数据得,初值C=3CB0H 2.频率步进值的设计:

初始脉冲个数为C350H,则根据步进值为1HZ,可得若增加后的频率为11HZ,则首先产生脉冲约为45ms,根据式(2.1),带入计算得初值为5038H。

6

武汉理工大学《单片机应用实践》课程设计说明书

即对于初始脉冲,高8位减少13H,低8位减少88H,并取反,即可得到初始值5038H。同理可得,若使频率减少,相应变化值也应该增加1388H后并取反。 3.相位步进值的设置:

两路方波产生相位差主要是通过更改P0.1端口定时中断中加入输出方波前的独立延时时间。通过延时电路的设计,以及机器周期的计算可知,延时的时长约为 2.5ms,即产生18度的相位差。所以每按下调相按钮时,都会产生相位差,并以18度步进值变化。

3 系统硬件线路设计图

3.1引脚排布

在本次课程设计中,我们进行以下引脚分布: ? P3.4——调整频率步进值+1按键 ? P3.5——调整频率步进值-1按键 ? P3.6——调整相位增加按键

? P0.0——第一路方波输出端(定时中断入口0BH) ? P0.1——第二路方波输出端(定时中断入口1BH) ? T0——控制P0.0的方波输出 ? T1——控制P0.1的方波输出

? XTAL1/XTAL2——接外部晶振,频率为12MHZ

3.2 硬件模块分析

3.2.1 主程序分析

主程序必须是一个死循环系统,才能不断执行该程序。主程序包括系统初始化程序、键盘程序、控制当前的两个波形的频率和相位差程序。

7


单片机课程设计-设计并实现两路相位可调方波信号发生器资料(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:职称英语卫生类AB级近义词汇推荐

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: