logo资料库

于AT89C52单片机简易函数信号发生器设计.doc

第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
资料共26页,剩余部分请下载后查看
P0 口
P1 口
P2 口
P3 口
RST
ALE/PROG
PSEN
EA/VPP
XTAL1
XTAL2
数据存储器
DAC0832芯片原理
第五章 总结与展望
参考文献
武汉纺织大学 数计学院 课 程 设 计 基于 AT89C52 单片机的 简易函数信号发生器设计 嵌入式 计科 091 班 胡瑞芸 题 目 专 业 班 级 姓 名 学号 1
目 录 一、函数信号发生器设计 .............................................. 6 1.1 课程设计的目的 .................................................. 6 2.2 课程设计要求 ................................................... 6 二、设计方案 ........................................................ 7 2.1 系统主要功能 ................................................... 7 2.2 系统硬件构成及功能 ............................................. 7 2.2.1 AT89C51 单片机及其说明 ................................... 7 2.2.2 资源分配 .................................................10 2.2.3 D/A 转换模件部件 .........................................11 2.2.4 外部控制模块部件 74LS22 ..................................12 2.2.5 放大部分 ................................................ 12 2.3 系统软件设计及接口电路 ........................................ 13 2.3.1 信号频率数据采集 ........................................ 13 2.3.2 正弦波产生程序 .......................................... 13 2.3.3 三角波产生程序 .......................................... 14 2.3.4 方波产生程序 .............................................14 2.3.5 锯齿波产生程序.......... ................................ 15 2. 3. 6 信号放大模块设计...................................................................................15 2. 3. 7 数模转换模块设计..................................................................................16 三、仿真图及及结果分析...................................................................................................17 4.1 波形发生器的调试与测试.............................................................................17 4.2 仿真结果图.....................................................................................................18 四、总结与展望...................................................20 参考文献 ........................................................... 21 附录一 元器件清单 .................................................. 22 附录二 程序清单 .................................................... 23 附录三 电路原理图...................................................30 2
一、函数信号发生器的设计 设计一个基于单片机的函数信号发生器,该函数信号发生器可以输出三种波形,锯 齿波,三角波,方波。在此基础上进一步实现对方波的频率调节,并用液晶屏分两行显 示波形名称和波形频率。 2.1 课程设计的目的: 1、巩固、加深和扩大单片机应用的知识面,提高综合及灵活运用所学知识解决实 际课题设计的能力。 2、培养针对课题需要,选择和查阅有关手册、图表及文献资料的能力,提高组成 系统、编程、调试的动脑动手能力。 3、通过对课题设计方案的分析、选择、比较,熟悉运用单片机系统开发、软硬件 设计的方法内容及步骤。 4、掌握 DAC0832,TL082,74LS22 的接口电路及使用方法。 5、熟悉掌握函数信号发生器的工作原理。 2.2 课程设计要求: 1、完成硬件和软件的设计,并用 Proteus 仿真,能在 Proteus 中看到输出信号的波 形显示。 2、 提交的设计报告用 Word 写成,包括: (1)硬件电路图和说明; (2)软件流程图和代码; (3)Proteus 的仿真过程及结果分析。 二、设计方案 2.1 系统主要功能 该函数信号发生器可以输出三种波形,有锯齿波,三角波,方波。在此基础上进一 步实现对方波频率调节,并用液晶屏分两行显示波形名称和波形频率。 2.2 系统硬件构成及功能 函数信号发生器的设计总体框图如图所示,主要有单片机 AT89C51,电源,键盘模 块,LCD1602 显示模块构成。 按案件模块:由 3 个开关与 74LS22 组成的系统通过对单片机传输中断信号来实现 波形切换及频率调节。 显示模块:用 LCD1602,分行显示波形类型和波形频率的显示。 电源模块:电源模块有 220V 市变电压经变压,整流,稳压得到+ -5V, + -12V 的电 压,维持系统正常工作。 系统的总体框图如图 1 所示: 3
主 控 器 AT89C51 键 盘 显 示 控 制 显示模块 键盘模块 波 形 输 出模块 电 源 2.2.1 AT89C51 单片机及其说明 图 1 系统总体框图 图 2.PDIP 封装的 AT89C51 引脚图 AT89C51 为 8 位通用微处理器采用工业标准的 C51 内核,在内部功能及管脚排布 上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部接口等功能部件的初始化,会聚调整控制,会 聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。主要管脚有: XTAL1(19 脚)和 XTAL2(18 脚)为振荡器输入输出端口,外接 12MHz 晶振。 RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚) 和 VSS(20 脚)为供电端口,分别接+5V 电源的正负端。P0~P3 为可编程通用 I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(32~39 脚)被定义为 N1 功 能控制端口,分别与 N1 的相应功能管脚相连接,13 脚定义为 IR 输入端,10 脚 和 11 脚定义为 I2C 总线控制端口,分别连接 N1 的 SDAS(18 脚)和 SCLS(19 脚)端口,12 脚、27 脚及 28 脚定义为握手信号功能端口,连接主板 CPU 的相 应功能端,用于当前制式的检测及会聚调整状态进入的控制功能。 4
P0 口 P0 口是一组 8 位漏极开路型双向 I/O 口, 也即地址/数据总线复用口。作为 输出口用时,每位能吸收电流的 方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位) 和数据总线复用,在访问期间激活内部上拉电阻。 在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校 验时,要求外接上拉电阻。 P1 口 P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸 收或输出电流)4 个 TTL 逻辑 门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输 入口。作输入口使用时,因为内部存在上拉 电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。 参见表 1。 Flash 编程和程序校验期间,P1 接收低 8 位地址。 P2 口 P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动 (吸收或输出电流)4 个 TTL 逻辑 门电路。对端口 P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可 作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低 时会输出一个电流(IIL)。 在 访 问 外 部 程 序 存 储 器 或 16 位 地 址 的 外 部 数 据 存 储 器 ( 例 如 执 行 MOVX @DPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存 储器(如执行 MOVX @RI 指令)时,P2 口输出 P2 锁存器的内容。 Flash 编程或校验时,P2 亦接收高位地址和一些控制信号。 P3 口 P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动 (吸收或输出电流)4 个 TTL 逻 辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。 此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。 P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能 P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。 RST 复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单 片机复位。 ALE/PROG 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于 锁存地址的低 8 位字 5
节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此 它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将 跳过一个 ALE 脉冲。 对 Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。 如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位, 可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片 机执行外部程序时,应设置 ALE 禁止位无效。 PSEN 程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当 AT89C51 由 外部程序存储器取指令(或数 据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访 问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP 外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000H—FFFFH), EA 端必须保持低电平(接 地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。 如 EA 端为高电平(接 Vcc 端),CPU 则执行内部程序存储器中的指令。 Flash 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须是 该器件是使用 12V 编程电压 Vpp。 XTAL1 振荡器反相放大器的及内部时钟发生器的输入端。 XTAL2 振荡器反相放大器的输出端。 特殊功能寄存器 在 AT89C52 片 内 存 储 器 中 , 80H-FFH 共 128 个 单 元 为 特 殊 功 能 寄 存 器 (SFE),SFR 的地址空间映象如表 2 所示。 并非所有的地址都被定义,从 80H—FFH 共 128 个字节只有一部分被定义, 还有相当一部分没有定义。对没有定义的 单元读写将是无效的,读出的数值将不确定,而写入的数据也将丢失。 不应将数据“1”写入未定义的单元,由于这些单元在将来的产品中可能赋予新 的功能,在这种情况下,复位后这些单 元数值总是“0”。 AT89C52 除了与 AT89C51 所有的定时/计数器 0 和定时/计数器 1 外,还增加 了一个定时/计数器 2。定时/计数器 2 的控 制和状态位位于 T2CON(参见表 3)T2MOD(参见表 4),寄存器对(RCAO2H、 RCAP2L)是定时器 2 在 16 位捕获方式或 16 位 自动重装载方式下的捕获/自动重装载寄存器。 6
数据存储器 AT89C52 有 256 个字节的内部 RAM,80H-FFH 高 128 个字节与特殊功能 寄存器(SFR)地址是重叠的,也就是高 128 字节的 RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。 当一条指令访问 7FH 以上的内部地址单元时,指令中使用的寻址方式是不同 的,也即寻址方式决定是访问高 128 字节 RAM 还是访问特殊功能寄存器。如果指令是直接寻址方式则为访问特殊功能 寄存器。 例如,下面的直接寻址指令访问特殊功能寄存器 0A0H(即 P2 口)地址单元。 MOV 0A0H,#data 间接寻址指令访问高 128 字节 RAM,例如,下面的间接寻址指令中,R0 的 内容为 0A0H,则访问数据字节地址为 0A0H, 而不是 P2 口(0A0H)。 MOV @R0,#data 堆栈操作也是间接寻址方式,所以,高 128 位数据 RAM 亦可作为堆栈区使 用。 ·定时器 0 和定时器 1: 3.2.2 资源分配 晶振采用 12MHZ。P1 口的 P1.0-P1.4 分别与四个按键连接,分别控制波形切换、频 率加、频率减,占空比加,占空比减。 P2 口与 DAC0832 的 D0-D7 数据输入端相连。 P3 口用来控制 DAC0832 的输入寄存器选择信号 CS。 3.2.3 D/A 转换模块部件 DAC0832 芯片原理 管脚功能介绍(如图 6 所示) 7 6 5 4 16 15 14 13 1 17 lsbDI0 DI1 DI2 DI3 DI4 DI5 DI6 msbDI7 CS Xfer 0 2 c c V Iout1 Iout2 Rfb Vref ILE WR2 WR1 11 12 9 8 19 18 2 DAC0832图 3 DAC0832 管脚图 U2 DI7~DI0:8 位的数据输入端,DI7 为最高位。 ILE:数据锁存允许控制信号输入线,高电平有效。 7
CS:选片信号输入线(选通数据锁存器),低电平有效。 WR1:数据锁存器写选选通输入线,负脉冲有效,由 ILE、CS、WR1 的逻辑组合 产生 LE1,当 LE1 为高电平时,数据锁存器状态随输入数据线变化,LE1 的负跳变时将 输入数据锁存。 XFER:数据传输控制信号输入线,低电平有效,负脉冲有效。 WR2:DAC 寄存器选通输入线,负脉冲有效,由 WR2、XFER 的逻辑组合产生 LE2, 当 LE2 为高电平时,DAC 寄存器的输出随寄存器的输入而变化,LE2 的负跳变时将数 据锁存器的内容打入 DAC 寄存器并开始 D/A 转换。 IOUT1:模拟电流输出端 1,当 DAC 寄存器中数据全为 1 时,输出电流最大,当 DAC 寄存器中数据全为 0 时,输出电流为 0。 IOUT2:模拟电流输出端 2, IOUT2 与 IOUT1 的和为一个常数,即 IOUT1+IOUT2 =常数。 RFB:反馈电阻引出端,DAC0832 内部已经有反馈电阻,所以 RFB 端可以直接接 到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输 入端之间。 VREF:参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定 0 至 255 的数字量转化出来的模拟量电压值的幅度,VREF 范围为(+10~-10)V。VREF 端与 D/A 内部 T 形电阻网络相连。 Vcc:芯片供电电压,范围为(+5~+15)V。 AGND:模拟量地,即模拟电路接地端。 DGND:数字量地。 3.2.4 外部控制模块部件 74LS22 图 4 8
分享到:
收藏