基于单片机的波形发生器的设计内容摘要:
LSB 1 1 1 1 1 1 1 1 +( 127/128) Vref 1 0 0 0 0 0 0 1 +( 1/128) Vref 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 ( 1/128) Vref 0 0 0 0 0 0 0 1 ( 127/128) Vref 0 0 0 0 0 0 0 0 ( 128/128) Vref 另一片 DAC0832( IC3)的参考电压接到 +5V 电源上,它和两个单运算放大器( IC5 和 IC6)组成的单极 性 D/A转换电路,其输出电压加到前一片 DAC0832的参考电压端 Vref。 当此片 DAC0832 输入 0~255 数字时,输出为 0~+5V,从而调节前一片 DAV0832 的输出电压为 — 5~+5V,达到改变输出波形幅值的目的。 这两片DAC0832 都结成单缓冲器输入方式。 3. 5 电源部分的设计 直流稳压电源一般由电源变压器、整流、滤波和稳压电路等四个部分组成。 电源变压器是将电网 220V 的交流电压变为所需要的电压值送入整流电路,整流电路再将交流电压变成脉动的直流电压。 由于此脉动的直流电压还含有较大的纹波,必须通过滤波 电路加以滤除。 滤波电路将脉动的直流电压的纹波滤除后得到平滑的直流电压。 稳压电路的作用是当电网电压波动,负载和温度变化时,能维持输出直流电压的稳定。 本课题通过 780 781 7912 稳压器将直流电压分别转换为 +5V、 +12V、 12V直流电压,然后直接和电路系统的电源接口相接。 其电路图 7所示 第 16 页 共 48 页 图 5 7805 稳压电源器的接口电路 图 6 7812 稳压电源器的接口电路 图 7 7912 稳压电源器的接口电路 3. 6 晶振电路的设计 为什么要用晶振电路。 单片机工作,是一条一条的从 ROM 中取指 令,然后一步一步地执行。 单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。 一个机器周期包括 12个时钟周期。 第 17 页 共 48 页 因为没有晶振,就没有时钟周期,没有时钟周期,就没有机器周期,没有机器周期,就无法执行程序代码,单片机就无法工作。 由此可见,若想单片机正常工作,必须得有晶振电路。 单片机的晶振电路是一种典型电路,晶振频率一般选择在 4MHz— 12MHz 之间,外接两个晶振电容,该电容的典型值为 30pf。 其图 8所示。 图 8 单片机的晶振电路 3. 7 复位电路设计 单片机的复位电路就和计算机的重启是一 样的概念。 一般的复位只需要 8us的时间。 如何进行复位。 电路图 9 所示 第 18 页 共 48 页 图 9 复位电路 只需要在单片机的 RST 引脚上加上高电平,时间不少于 8us 就可以了。 复位电路也是单片机系统的典型外围电路,如上图所示。 3. 8 输入电路键盘的接口设计 在单片机控制系统中,为了实现人对系统的操纵控制及向系统输入参数,都需要为系统设置按键或键盘,实现简单的人机会话。 键盘是一组(通常多于 8个)按键的集合。 键盘所使用的按键一般都是具有一对常开触点的按键开关,平时不按键时,触点处于断开(开路)状态,当按下按键时,触点才处于闭合 (短路)状态,而当按键被松开后,触点又处于断开状态。 第 19 页 共 48 页 根据键盘上闭合键的识别方法不同,键盘可分为非编码键盘和编码键盘两种。 非编码键盘上,闭合键的识别采用软件实现;编码键盘上,闭合键的识别则由专门的硬件译码器产生按键的编号(即键码),并产生一个脉冲信号,以通知CPU 接受键码。 编码键盘使用较为方便,易于编程,但硬件电路较为复杂,因此在单片机的控制系统中应用较少。 而非编码键盘几乎不需要附加什么硬件电路,因此在实际单片机控制系统中较多采用。 从键盘的结构来分,键盘可分为独立式和矩阵式两类。 当系统操作比较简单,所需键 盘较少时,可采用独立式非编码键盘;而当系统操作比较复杂,需要数量较多的按键时,可采用矩阵式非编码键盘。 在本课题设计中,采用的是独立式键盘。 其电路图 10所示。 图 10 键盘与单片机接口电路 输出波形种类、幅值和频率的设定由键盘输入。 由于单片机的 PI 口不作它用,可用它扩展一个 4 行 *4 列键盘。 键盘的 4 根行线接到单片机的 ~口线, 4 根列线接 ~ 口线。 16 个按键分别定义为数字 0~9 和功能键Enter(确认键 )、 Clear(清除键 )、 Wave(波形选择键 )、 Frequenency(改 变频率键 )、Amplitude(改变幅值键 )和(小数点键)。 3. 9 显示电路的设计 当前输出波形的种类、幅值和频率需要显示出来。 由于单片机的串行不作它用,可用它接 8 片串入并出移位寄存器来扩展 8 位 7 段 LED 显示器, L1~L4 用于第 20 页 共 48 页 显示输出波形的频率; L5~L7 用于显示输出波形的幅值, L6 的小数点接 +5V,常亮,则可显示 到 ; L8用于显示波形的种类, 1表示正弦波, 2表示方波, 3表示三角波, 4表示锯齿波,见下图。 图 11 显示电路 3. 10 运算放大器电路的设计 将得到的模拟信号量分别进 行放大,以利于对系统的信号量进行观察、读取等研究。 由于信号从 D/A 转换器出来的模拟信号量是比较微弱的,因而需要对所得到的信号量进行放大 3. 11 单元电路调试 一个单片机应用系统经过方案论证、硬件设计、印刷版的布局、加工和焊接包括软件的编制,通常不可能一次成功,不可避免地要出现一些错误,这就要靠调试来解决。 调试的次序一般是先易后难,后面的调试应尽可能采用以前已调好的电路,各单元电路(或称作单元模块)都调好以后,再进行系统总调。 对于本波形发生器,其硬件电路的调试可以按如下步骤进行。 1)硬件电路的总体检查 在一块电路试验板上,焊接好电路,按实际电路图插好元器件,连好线。 在接上电源之前,用万用表粗略检查电路的正确性,尤其是要检查电源和地之间的电阻。 对于本波形发生器来讲,电源和地之间的电阻应为 1k 欧以上,若太小,应检查电源和地之间是否有短路现象或电源接错现象或有不良元器件。 确保电源和地无故障之后,再通电,然后检查各电源 +5V、 +12V 和 — 12V 电压数值的正确性。 排除可能出现的故障后,再进行各单元电路调试。 2)单元电路调试 ①单片机最小系统调试 第 21 页 共 48 页 按照前面设计的单片机最小系统和电源,焊接并插上相应的元器件,连好线 ,检查正确无误后,接上电源,用示波器测试单片机的时钟波形。 若时钟波形和频率正确,则进行下一步检查。 切断电源,空出单片机 AT89C51 的位置,并在此位置上插入仿真器的 40 芯仿真头。 连好相应线,检查正确无误后,接上电源,然后启动仿真器,检查地址锁存等电路的正确性。 ②波形输出电路调试 按附图 1电路接线方法,我们可以知道 D/ A 转换器 IC3 和 IC4 的地址分别为 0FDH 和 0FEH,向着两个地址分别写入相应的数据后,若电路正确就启动了它们的 D/ A转换,若这时运放 IC6 和 IC8 输出的电压值和表 1相符,则说明波形输出电路 正确。 ③键盘扩展电路调试 断开电源,焊接好键盘,并将键盘接到 P1 口,然后接通电源,用仿真器是使 AT89C51 的 P1 口输出为 0F0H,即将键盘的 4根行线接 ~ 置为低电平,4根列线接 ~ 口线置为高电平。 接下来,依次按下各键,并用万用表测量对应 P1口的 ~ 口线,若所测的相应口线为低电平,则表示该键有效。 例如,按下 0,则应测的口线 为为低电平,说明键 0 有效。 测试所有 16个键都有效,则说明该键盘扩展电路正确。 ④显示电路调试 断开电源,焊接好相应电路,并插上器件 IC9~IC16 和 L1~L8,然后再接上电源。 用仿真器编写一段测试程序(参见后面显示模块软件)让 8 个 7 段 LED( L1~L8)分别显示数字 8。 再在仿真器上汇编该程序,并执行,若显示的结果一致。 则说明显示电路是正确的。 第 22 页 共 48 页 4 基于单片机的波形发生器的软件设计 4. 1 软件的功能定义 功能定义的作用是要明确所设计的软件需要完成的任务,确定输入和输出的形式,需要对各种数据进行何种处理以及判断处理结果等等。 [12] 在此系统中,要求软件实现的功能是:通过单片机 AT89C51 的 口输出方波,而方波的输出周期通过控制小键盘来实现,与单片机相连的数模转换模块DAC0832,它通过连一个 I/V 转换电路后输出正弦波和锯齿波,其波形的周期也是通过控制小键盘来实现的。 在该系统中,应有高可靠性、抗干扰性,在断电或出现故障时有保护、数据存储和复位功能。 4. 2 编程语言的选择 作者选择的是汇编语言,用助记符和标号地址编写的程序称为汇编语言源程序,其作用相当于人们直接用指令的机器码以及指令地址编写程序。 只是采用助记符和地址标号地址为程序的编写提供了方便,即不必记忆指令的机器码,也不必在编写程 序时进行地址的计算。 而将助记符翻译成机器码以及将标号地址换算成实际地址的工作都由计算机通过一种称为汇编程序的软件完成,这种翻译和换算的过程一般就称为汇编。 4. 3 各软件模块设计 按照波形发生器的功能,其应用程序必须有初始化、波形产生、键盘管理和显示等几部分,现将各主要软件模块介绍如下。 初始化模块 初始化程序模块主要进行设置定时器、串行口的工作方式,设置波形的类型、幅值和频率,并在显示器上显示提示字符 12345678 等工作。 这部分程序如下: MOV TMOD, 02H ;设置定时器 0 为方式 2工作 MOV TL0, 7FH ;置初值 MOV TH0, 7FH CLR TR0 ;不启动 MOV SCON, 00H ;将串行口初始化为方式 0 第 23 页 共 48 页 MOV DPTR, 0FFFDH ; IC3 的地址送 DPTR MOV A, 0FFH MOVX @DPTR, A ;输出波形的幅值初始化为 10V MOV DPTR, 0FFFEH ; IC4 的地址送 DPTR MOV A, 80H MOVX @DPTR, A ;输出设定为 0 MOV WAVKD, 01H ;波形类型初始化为 1,即正弦波 波形产生模块 前面讲过,采用定点法产生波形,将所要输出的波形按一个周期分成若干点,正弦波和三角波各 72 点。 按所需频率计算出两点间的时间间隔,用定时器 0 工作于方式 0 来定时该时间间隔。 每当定时时间到时,查表输出下一个波形数据,如此循环执行即可。 锯齿波的产生,只要从 00H 开始,每隔一定时间加 1开始 ,在历史上 00H 到 0FFH 之间循环输出 D/A 转换器 IC4 即可。 方波识要每隔每半个周期交替输出 00H 和 0FFH 即可。 ①正弦波产生程序 由于正弦波的对称性,可将其分为四个相同部分,在这里称为四个象限。 只要做第一个象限的数据即可,第二象限的数据表与第一个象限相同,但输出时要反向查表;第三、四象限输出只要将第一象了限和第二象限查表得的数据取反即可。 产生正弦波的程序流程图见图 12 所示 第 24 页 共 48 页 图 12 正弦波产生程序流程图 其程序清单如下: SETB TRO SINWAV: MOV RO, 00H ;查表指针初始化为 0 SINLP1: MOV DPTR, SINTAB ;正弦波函数表地址送 DPTR MOV A, R0 MOVC A, @A+DPTR ;查表 MOV DPTR, 0FFFEH ; IC4 地址送 DPTR MOVX @ DPTR, A ;输出数据给 D/A SINLP2: JNB TFO, SINLP2 ;由定时器控制频率 CLR TFO 第 25 页 共 48 页 INC RO CJNE RO, 13H, SINTAB ;第一象限输出完了吗。 SINLP3: MOV DPTR, SINTAB ;正弦波函数表表地址送 DPTR MOV A, RO MOVC A, @ A, RO MOVC A, @ A+DPTR ;查表 MOV DPTR, FFFEH ; IC4F 地址送 DPTR MOVX @DPTR, A SINLP4: JNB TFO , DINLP4 ;由定时器控制频率 CLR TFO DEC RO CJNE RO, OOH, SINLP3 ;第二象限输出完了。基于单片机的波形发生器的设计
相关推荐
现精确定位的特点,使其在工业控制领域获得了广泛应用。 步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机 就转动一个角度(步距角)或前进、倒退一步。 步进电机旋转的角度由输 AT89C51 单片机 状态显示电路 电源及时钟电路 复位电路 键盘控制电路 ULN2803 启动电路 步进 电机 常州信息职业技术学院机电 工程学院 毕业设计 入的电脉冲数确定
计出的作品都有效保护人在行走中的 ——安全 现有 logo形象的延续 杨帆远行,无论是个人拼搏还是团队协作,都少不了三角帆给我们带来的强大 ——动力 现有 logo形象的延续 三角同样被当代设计界所推崇,时尚、灵动的造型总能给我们带
机就脱离复位状态,进入正常工作模式。 只要高电平能保持复位所需要的时间(约两个机器周期),单片机就能实现复位。 X T A L 218X T A L 119A L E30EA31P S E N29R S T9P 0. 0/ A D 039P 0. 1/ A D 138P 0. 2/ A D 237P 0. 3/ A D 336P 0. 4/ A D 435P 0. 5/ A D 534P 0.
缺点是串接电阻器的做法将产生大量的能量损耗,尤其是在高频工作时更加严重,因而它只适用于小功率或对性能指标要求不高的步进电机驱动。 单电压串电阻驱动是在单电压驱动技术的基础上为电枢绕组回路串入电阻,用以改善电路的时间常数以提高电机的高频特性。 它提高了步进电机的高频响应、减少了电动机的共振,也带来了损耗大、效率低的缺点。 这种驱动方式目前主要用于小功率或启动、运行频率要求不高的场合。
,使其在工业控制领域获得了广泛应用。 步进电机的运转是由电脉冲信号控制的,其角位移量或线位移量与脉冲数成正比,每个一个脉冲,步进电机 就转动一个角度(步距角)或前进、倒退一步。 步进电机旋转的角度由输 AT89C51 单片机 状态显示电路 电源及时钟电路 复位电路 键盘控制电路 ULN2803 启动电路 步进 电机 常州信息职业技术学院机电工程学院 毕业设计 入的电脉冲数确定,所以
步进电机驱动电路组成 12 图 2 4 步进电机驱动电路 由驱动系统的硬件控制图可以看出 ,单片机只是根据需要轮流给 , 端口发送步进脉冲来控制电机运行 ,则三相六拍的系统控制模型如附表所示 :在程序中 ,只要依次将 6个控制字送到 P1 口 ,步进电机就会转动一个齿距角。 每送一个控制字 ,就完成一拍 ,步进电机就转过一个步距角。 表 2 1 三相六拍的系统控制模型 液位信号的获取与放大