波形发生器_课程设计说明书(编辑修改稿)内容摘要:

: DAC 寄存器选通输入线,负脉冲(脉宽应大于 500ns)有效。 由 WRXFER 的逻辑组合产生 LE2,当 LE2 为高电平时, DAC 寄存器的输出随寄存器的输入而变化, LE2的负跳变时将数据锁存器的内容打入 DAC寄存器并开始 D/A转换。 IOUT1:电流输出端 1,其值随 DAC 寄存器的内容线性变化; IOUT2:电流输出端 2,其值与 IOUT1 值之和为一常数; Rfb:反馈信号输入线,改变 Rfb 端外接电阻值可调整转换满量程精度; Vcc:电源输入端, Vcc 的范围为 +5V~ +15V; VREF:基准电压输入线, VREF 的范围为 10V~ +10V; AGND:模拟信号地 DGND:数字信号地 DAC0832 的工作方式: 根据对 DAC0832 的数据锁存器和 DAC 寄存器的不同的控制方式, DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。 键盘输入电路 键盘在单片机应用系统中能实现向单片机输入数据、传送命令等功能,是人工干预单片机的主要手段。 在键闭合测试,检查是否有键闭合去抖动。 当测试到有键闭合后,需进行去抖动处理。 由于按键闭合时的机械弹性作用,按键闭合时不会马上稳定接通,按键断开时也不会马上断开,由此在按键闭合与断开的瞬间,会出现电压抖动。 键盘抖动的时间一 般为 5~ 10ms,抖动现象会引起 CPU 对一次键操作进行多次处理,从而可能产生错误,因而必须设法消除抖动的不良后果。 通过去抖动处理,可以得到按键闭合与断开的稳定状态。 去抖动的方法有硬件与软件两种:硬件方法是加去抖动电路,如可通过 RS 触发器实现硬件去抖动;软件方法是在第一次检测到键盘按下后,执行一段 10ms 的延迟子程序后再确认该键是否确实按下,躲过抖动,待信号稳定之后,再进行键扫描。 通常多采用软件方法。 按照键盘与单片机的连接方式可分为独立式键盘与矩阵式键盘。 独立式键盘相互独立,每个按键占用一根 I/O 口线,每根 I/O 口在线的按键工作状态不会影响其它按键的工作状态。 这种按键软件程序简单,但占用 I/O 口线较多(一根口线只能接一个键),适用于键盘应用数量较少的系统中,由于本系统设置的按键较少,因此采用的是独立式键盘。 电压放大电路 DAC0832 的输出电压比较小。 因此,要将该电压信号在示波器中显示出来,需要有一个放大器将此电信号放大到所需范围之内。 由于放大电路的增益是可调 的,故运用运算放大电路能将电压信号放大到所要求的范围。 第 三章 系统软件设计 软件设计概述 系统软件由主程序和产生波形的子程序组成, 软件设计主要是产生各种波形的子程序的编程,通过编程可得到各种波形。 周期的改变可采用插入延时子程序的方法来实现。 软件原理流程图如下。 图 软件原理流程框图 主程序流程 系统软件由主程序和产生波形的子程序组成,软件设计重点是设计各种波形的子程序的程序,通过编程可得到各种波形。 波形周期的改变可采用插入延时子程序的方法来实现。 主程序开始后通过读取按钮状态,判别是哪种波形需求,然后调开始 初始化 延时子程序 波形产生程序 键盘处理子程序 结束 用相应的子程序,输出相应的波形。 利用 8 位 D/A 转换器 DAC0832,可以将 8 位数字量转换成模拟量输出。 数字量输入的范围为 0~255,对应的模拟量输出的范围在 VREF到 VREF+之间。 根据这一特性,可以利用单片机的并行口输出的数字量,产生常用的波形。 波形的选择 利用 8 位 D/A 转换器 DAC0808,可以将 8 位数字量转换成模拟量输出。 数字量输入的范围为 0~255,对应的模拟量输出的范围在 VREF到 VREF+之间。 根据这一特性,可以利用单片机的并行口输出的数字量,产生常用的波形。 单片机是通过用户键盘输入,选择希望输出的信号波形。 本系统中,对用户输入的功能键对应的 波形如下规定: 1:得到的输出波形为正弦波。 2:得到的输出波形为方波。 3:得到的输出波形为三角波。 利用单片机控制实现波形输出的程序流程图如图所示 图 按键波形选择程序流程图 三角波流程 三角波产生是通过 P0 口将 00H 送入寄存器 A 中, DAC0832 输出 A 中的内容, Y Y Y 开始 Key1 按下 Key1 按下 输出三角波 输出方波 输出正弦波 Key2 按下 N N N 通过 A 中数值的加 1 递升,同时延时,当 A 中的内容为 0FF 时, A 中的内容减 1递减,从而循环产生三角波。 程序流程图如图 所示: 图 程序流程图 方波流程 方波产生是通过 P0 口将 00H 输出给 DAC0832,输出对应模拟量,然后读取 P2 口的状态,取反后作为延时常量,延时时间到,将 FFH 输出时,同样输出对应模拟量,再延时,从而得到方波。 流程图如图 所示: 开始 给 A 设置初值 执行循环语句 A 自增 A 满了吗。 A 为初值吗。 否 是 否 是。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。