基于dac0832单片机的波形信号发生器的设计(编辑修改稿)内容摘要:
相应按键是否已被按下。 重键与连击的处理:实际按键操作中,若无意中同时或先后按下两个以上的键,系统确定哪个键操作是有效的,完全取决设计者的意图。 如视按下时间最长者为有效键,或认为最先按下的键为当前的按键,也可以将最后释放的键看成是输入键。 不过单片机控制系统的资源有限,交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则。 有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,及重键的情形。 为消除重键的影响,编制程序时可以将键的释放作为按键的结束。 等键释放电 平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。 按键防抖动技术:键盘作为向系统提供操作人员的干预命令的接口,以其特定的按键代表着各种确定操作命令。 所以准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。 多数键盘的按键均采用机械弹性开关。 一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。 由于机械触点的弹性作用,一个按键开关闭合及断开的瞬间必然伴随有一连串的抖动。 消除按键盘抖动通常有两种方法:硬件消抖和软件消抖。 通过硬件电路消除按键过程中抖动的影响是一种广为采用的 措施。 这种做法,工作可靠,且节省机时。 硬件消抖是通过在按键输出电路上加一定的硬件线路来消除抖动,一般采用 R—S 触发器或单稳态电路。 软件消抖则是利用延时来跳过抖动过程。 本次设计采用独立位编码键盘加一个四输入与门 的形式 ,如图 33 所示。 哈尔滨工业大学华德应用技术学院毕业设计(论文) 11 12456U37 4 L S 2 1P 3 . 4P 3 . 5P 3 . 6P 3 . 7 P 3 . 2 图 33 键盘连接 显示电路 通过液晶 1602 显示输出的波形、频率,其电路图如下: VSS1VDD2VEE3RS4RW5E6D07D18D29D310D411D512D613D714V C CP2.4P2.5P2.6P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7 图 34 显示电路连接 如上图所示, 1602 的八位数据端接单片机的 P1 口,其三个使能端 RS、RW、 E 分别接单片机的 —。 通过软件控制液晶屏可以显示波形的种 哈尔滨工业大学华德应用技术学院毕业设计(论文) 12 类 以及波形的频率。 D/A 电路 功能:将波形样值的编码转换成模拟值,完成双极性的波形输出。 由一片 0832 和两块 LM324 运放组成。 DAC0832 是一个具有两个输入数据寄存器的 8 位 DAC。 目前生产的 DAC 芯片分为两类,一类芯片内部设置有数据寄存器,不需要外加电路就可以直接与微型计算机接口。 另一类芯片内部没有数据寄存器,输出信号随数据输入线的状态变化而变化,因此不能直接与微型计算机接口,必须通过并行接口与微型计算机接口。 DAC0832 是具有 20 条引线的双列直插式 CMOS 器件,它内部具有两级数据寄 存器,完成 8 位电流 D/A 转换,故不需要外加电路。 0832 是电流输出型,示波器上显示波形,通常需要电压信号,电流信号到电压信号的转换可以由运算放大器LM324 实现,用两片 LM324 可以实现双极性输出。 单片机向 0832 发送数字编码,产生不同的输出。 先利用采样定理对各波形进行抽样,然后把各采样值进行编码,的到的数字量存入各个波形表,执行程序时通过查表方法依次取出,经过 D/A 转换后输出就可以得到波形。 本次设计有 256 个点(正弦波)构成波形的一个周期,则 0832 输出 256 个样值点后,样值点形成运动轨迹,即一个周期。 重复输出 256 个点,成为第二个周期。 利用单片机的晶振控制输出周期的速度,也就是控制了输出的波形的频率。 这样就控制了输出的波形及其频率。 流压转换电路 DAC0832 为电流输出型转换器 ,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。 如图 34 所示为一种用两级运算放大器组成的模拟电压输出电路。 从第一个运放输出为单极性模拟电压,从第二个运放输出为双极性模拟电压。 放大电路元件采用 LM324 , LM324 是四运放集成电路,它采用 14 脚双列直插塑料封装,外形如图所示。 它的内部包含四 组形式完全相同的运算放大器,除电源共用外 ,四组运放相互独立。 每一组运算放大器可用图所示的符号来表示,它有 5 个引出脚,其中 ―+‖、 ―‖为两个信号输入端, ―V+‖、 ―V‖为正、负电源端, ―Vo‖为输出端。 两个信号输入端中, Vi ( )为反相输入 哈尔滨工业大学华德应用技术学院毕业设计(论文) 13 端,表示运放输出端 Vo 的信号与该输入端的相位相反; Vi+( +)为同相输入端,表示运放输出端 Vo 的信号与该输入端的相位相同。 LM324 的引脚排列见图 35。 由于 LM324 四运放电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此被广泛应用在各种电路中。 图 35 流压转换及放大电路 单片机与 DAC0832 的连接 DAC0832 同 CPU 的接口如图 36 所示 .DAC0832 作为微处理器的一个端口,用地址 92H 的选通作为 CS 和 WR1 的控制信号,微处理器的写信号直接来控制 XFER 和 WR2。 CS1W R 12G N D3D I34D I25D I16D I07V R E F8R F B9G N D10I O U T 111I O U T 212D I713D I614D I515D I416X F E R17W R 218I L E ( B Y 1 /B Y 2 )19V C C20U2D A C 0 8 3 2P 2 .0P 0 .0P 0 .1P 0 .2P 0 .3P 0 .4P 0 .5P 0 .6P 0 .7 图 36单片机与 DAC0832的连接 哈尔滨工业大学华德应用技术学院毕业设计(论文) 14 本章小结 本章主要对硬件部分作以详细的介绍,并充分的介绍了单片机的外围电路的各个部分。 让大家充分了解各部分的功能和结构,为以后搭接电路做好充分准备。 硬件部分的搭接,也是对我们大学期间的学习和动手能力的一个考核。 此电路的硬件搭接也较为简单,主要是单片机和 DAC0832 的连接。 哈尔滨工业大学华德应用技术学院毕业设计(论文) 15 第 4 章 软件设计 软件的总体设计 应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。 一个优秀的应用系统的应具有下列特点: (1)根据软件功能要求,将系统软件分成若干个独立的部分。 设计出软件的总体结构,使其结构清晰、流程合理。 (2)要树立结构化程序设计风格,各功能程序模块化、子程序化。 既便于调试、链接,又便于移植、修改。 (3)建立正确的数学模型。 即根据功能要求,描述各个输入和输出变量之间的数学关系,它是关系到系统好坏的重要因素。 (4)为提高软件设计的总体效率,以简明 、直观法对任务进行描述,在编写应用软件之前,应绘制出程序流程图。 (5)要合理分配系统资源,包括 ROM、 RAM、定时数器、中断资源等。 (6)注意在程序的有关位置处写上功能注释,提高程序的可读性。 (7)加强软件抗干扰设计,它是提高系统应用可靠性的有利措施。 本系统的软件包括以下几个程序模块: (1)初始化程序; (2)显示程序; (3)键盘扫描程序与处理程序; (4)定时器 0 服务程序; (5)正弦波发生程序及其服务程序; (6)三角波发生程序; (7)方波发生程序; 哈尔滨工业大学华德应用技术学院毕业设计(论文) 16 频率改变与波形输出 流程图 图 41 为频率改变流程图,图 42 为波形输出流程图 图 41 频率改变流程图 本图主要介绍了 AT89c51 单片机,利用单片机的 定时器端口进行频率的改变,在图中我们可以看出,在给单片机上电的时,单片机等待 口工作,如果 不运行则继续等待,要正常运行就要进行定时功能,在运行过程中如果满足要求则可以进行频率的改变,如果不能满足要求则要重新运行直到满足要求为止。 开始 等待 ()=0 调用延时程序增 加(降低)频率 满足要求。 频率改变结束 N Y N Y 哈尔滨工业大学华德应用技术学院毕业设计(论文) 17 图 42 波形输出流程图 从流程图中我们可以看出 ,波形的输出也是利用 AT89C51 单片机的 口 (外部中断 )来完成波形输出的 ,假设高电平为 1,低电平为 0,当出现高电平时 ,定时器的运行同时受到定时器和外部中断端口的控制 ,当二者同为 1 时 ,T0(T1)启动,当 TR0(TR1)=0 时, T0(T1)停止计数,这样可利用外部中断端检测脉冲信号的上升、下降沿、通过启停定时器,达到测量脉冲波形的变化,输出方 波,正弦波,三角波。 频率程序设计 本设计采用定时器来控制波形频率,通过输出的两点间的延时来实现调频的功能。 当晶振频率为 24M 时,单片机的机器周期就是 微妙。 假设需要 10HZ 的正弦波,由于正弦波的取点个数为 256 个,所以每个等待 按一次,变量Waveform=1 Waveform=0 读取正弦波表 读取方波表 读取三角波表 初始化 ==0 变量等于 2 变量等于 1 波形输出 Y N N N Y Y 哈尔滨工业大学华德应用技术学院毕业设计(论文) 18 点所要的时间为 1/10/256 秒,选用定时 /计数器 T0 的方式 1 实现,设计数器初值为 X: X=65536( 1/10/256*106/) 但是,由于实际程序执行过程中,不光要取 256 个点,还要执行一些与取点相关的程序,所以需要的初值往往要小于 X。 键盘扫描程 序与处理程序 本次设计,键盘部分由 3 个键和一个 4 输入与门组成, 3 个键可以分别控制波形的选择和频率的升降。 为中断入口地址,当 ==0 时,说明有键按下,然后取 P3 口的值和 0Xf0 相与,取出 P3 口的高 4 位,最后使用swatch(),当 P3amp。 0xf0=0xe0 时,说明波形选择键按下,当 P3amp。 0xf0=0xd0时,说明频率升键按下,当 P3amp。 0xf0=0xb0 时,说明频率衰减键按下。 1602 显示程序 如图 34 所示 16x02 即 32 个字符( 16 列 2 行)。 1602 字符型 LCD通常有 14 条引脚线或 16 条引脚线的 LCD,多出来的 2 条线是背光电源线。 液晶显示原理:液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。 液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、 PDA 移动通信工具等众多领域。 本章小结 软件部分是一个难点,软件也是一个电路的灵魂。 主要是 频率改变流程和波形输出流程的程序设计,这一部分主要是考核大家在大学期间 C 语言和汇编语言的掌握程度。 在此期间我查阅了各种资料 和求助了老师和同学的帮助,才能完成软件程序的设计。 哈尔滨工业大学华德应用技术学院毕业设计(论文) 19 第 5 章 系统调试 调试工作可分硬件调试和软件调试两个部分,调试方法如下: 首先,硬件调试主要是先制作硬件电路板,然后用万用表等工具对电路检查,最后应用程序进行功能调试。 硬件调试比较费时,需要细心和耐心,也需要熟练掌握电路原理。 然后,用仿真软件进行软件调试,比如单片机。基于dac0832单片机的波形信号发生器的设计(编辑修改稿)
相关推荐
IF CNT8 = 11111111 THENCNT8 := DD。 当CNT8计数计满时,输入数据D被同步预置给计数器CNT8FULL = 39。 139。 同时使溢出标志信号FULL输出为高电平ELSE CNT8 := CNT8 + 1。 否则继续作加1计数FULL = 39。 039。 且输出溢出标志信号FULL为低电平END IF。 END IF。 END PROCESS P_REG。
在 一起,焊接牢固。 若 VCC脱开未接,传感器只送 ℃ 的温度值。 ( 4)实际应用时,要注意单线的驱动能力,不能挂接过多的 DS18B20,同时还应注意最远接线距离。 另外还应根据实际情况选择其接线拓扑结构。 本设计中,两片 DS18B20 芯片串接在单片机的 口 ,如图 310 所示 : AT89C51 DS18B20 1 DS18B20 2 DS18B20 3 DS18B20 20
std_logic_vector( 3 downto 0 )。 档位选择信号 sss : in std_logic_vector( 4 downto 0 )。 波形选择信号 Data3, Data2, Data1,Data0 : in std_logic_vector(3 downto 0)。 BCD 码输入 p180 : out std_logic。 预留接口 lcd : out
(112) 基于 DSP 的图像去噪实现 6 3. 伽马 (爱尔兰 )噪声 伽马噪声的 PDF 如 下式: 错误 !未找到引用源。 (113) 其中, a0, b 为正整数且 “ !” 表示阶乘。 其密度的均值和方差由下式给出: 错误 ! 未 找 到 引 用 源。 (114) 4. 指数分布 噪声 指数噪声的 PDF 可由下式给出: 错误 !未找到引用源。 (115) 其中 a0。 概
9 读忙标志或地址 0 1 BF 计数器地址 10 写数到 CGRAM 或 DDRAM) 1 0 要写的数据内容 11 从 CGRAM 或 DDRAM 读数 1 1 读出的数据内容 表 3 字符控制命令说明: 通过指令编程来实现 1602 液晶模块的读写操作、屏幕和光标的操作。 (其中 1 为高电平、 0 为低电平) 指令 1:清显示,将指令码 01H 复位到地址 00H 位置。 指令 2
弱光信号,需要光电传感器具有很高的灵敏度。 有两种光电检测器可以选择,包括光电二极管(PIN)和雪崩二极管(APD)。 PIN响应频率高,响应速度快,工作稳定。 APD灵敏度高,响应快,具有小型、不需要高压电源等优点。 而与光电二极管相比,雪崩光电二极管具有灵敏度高、速度快等优点,特别当系统带宽比较大时,能使系统的探测性能获得大的改善[4][5]。 由于信号微弱,持续时间较短