毕业设计157高精度数控低频正弦信号发生器.pdf_第1页
毕业设计157高精度数控低频正弦信号发生器.pdf_第2页
毕业设计157高精度数控低频正弦信号发生器.pdf_第3页
毕业设计157高精度数控低频正弦信号发生器.pdf_第4页
毕业设计157高精度数控低频正弦信号发生器.pdf_第5页
已阅读5页,还剩18页未读 继续免费阅读

毕业设计157高精度数控低频正弦信号发生器.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机课程设计 2 高精度数控低频正弦信号发生器 余 水 宝 信息科学与工程学院 2005 年 6 月 单片机课程设计 2-高精度数控低频正弦信号发生器 高精度数控低频正弦信号发生器 任 务 书 一、 任务 设计一款基于 AT89C51 单片机和锁相技术的高精度数控低频正弦信号发生器。 二、设计要求 1、 基本要求 采 用 DDFS(直接数字频率合成)和锁相技术, 实现 1Hz1KHz 变化的正弦信号。 通过面板键盘控制输出频率,频率最小步进 1Hz。 输出双极性。 用 LED数码管实时显示波形的相关参数。 写出详细的设计报告,给出全部电路和源程序。 2、 发挥部分 不改变硬件设计,将上限频率扩展到 10KHz。 不改变硬件设计,扩展实现三角波和方波信号。 可通过 PC机上的“虚拟键盘”,实现频率等参数的控制。 实现对幅度的控制。 2单片机课程设计 2-高精度数控低频正弦信号发生器 高精度数控低频正弦信号发生器 函数信号发生器作为一种常用的信号源,广泛 应用于电子电路、自动控制和科学研究等领域7。 它是一种为电子测量和计量工作提供符合严格技术要求的电信号设备, 因此是电子测试系统的重要部件, 是决定电子测试系统性能的关键设备。它与示波器、电压表、频率计等仪器一样 是最普通、最基本的,也是得到最广泛应用的电子仪器之一。 1 总体方案论证与设计 数字式函数信号发生器的实现方案很多,主要有如下几种: 方案一:采用微处理器和数模转换器直接合成 的数字式函数信号发生器。这种信号发生器具有价格低,在低频范围内 可靠性好,体积小,功耗低,使用方便等特点,它输出的频率是由微处理器向数 模转换输出数据的频率和信号在一个周期内的采样点数 (N) 来决定的, 因此受单片机的时钟频率的限制很大, 如果单片机的晶振取 12MHz,则单片机的工作频率为 1MHz,若在一个周期内输出 360 个数据,则输出信号的频率理论上最高只能达到 2777Hz。实际上单片机完成一次数据访问并输出到 D/A电路, 至少要 5个机器周期, 因此实际输出信号的频率只有 500Hz左右。即使增大晶振频率,减小一个周期 内输出数据个数,在稍高的频率下输出的波形频率误差也是很大的,而且计算烦琐,软件编程麻烦,控制不方便。 方案二:利用单片机与精密函数发生器构成的 程控信号发生器。这种信号发生器能够克服常规信号发生器的缺陷,保 证在某个信号的频带内正弦波的失真度小于 0.5。 它的输出信号频率调整和幅值调整都由单片机完成。 但是, 由于数模转换器的非线性误差和函数发生器本身的 非线性误差,这种信号发生器输出信号的频率与理论值会有一定的偏差。 方案三:利用 DSP 处理器,根据幅值,频率参数,计算产生高精度的信号所需数据表,经数模转换后输出,形成需要 的信号波形。这种信号发生器可实现程控调幅,调频。但这种信号发生器输出频 率不能连续可调,计算烦琐,控制也不便。 方案四:基于单片机,锁相环,可编程分频、 相位累加、存储器波形存储以及 D/A 转换器等组成的数字式函数信号发生器。输出的频率的大小由锁相环和可编程计数器来控制,最终由地址发生器对 存储器中的波形数据硬件扫描,单片机提供要输出的波形数据给存储器。这种方 案电路简洁,不受单片机的时钟频率的限制, 输出信号精度高, 频率 “连续” , 稳定性好, 可靠性高, 功耗低, 调频,调幅都很方便,而且可简化软件设计,实现模块化设计的要求。 综合考虑,方案四各项性能和指标都优于其他 几种方案,能使输出频率有较好的稳定性, 充分体现了模块化设计的要求, 而且这些芯片及器件均为通用器件,在市场上较常见,价格也低廉,样品制作 成功的可能性比较大, 所以本设计采用方案四。其系统组成原理框图如图 1 所示。 3单片机课程设计 2-高精度数控低频正弦信号发生器 图 1 系统组 成原理结构图 图 1中主要有 2大块, 即波形发生部分 (上半部) 和键盘/显示部分。 波形发生部分是本设计的核心,主要由可编程基 准信号、锁相倍频电路、相位累加地址发生、EPROM 存储器、数/模转换和滤波驱动等组成,如图 2所示。 图 2 系统波 形发生模块 键盘输入和显示部分在控制仪器中起着人机交 互的作用,这两部分的设计是仪器和操作者进行联系并得到实际应用的关键之一, 并关系到用户使用的满意度。键盘/显示模块设计的常用方法有: 采用 8279 可编程接口芯片来实现系统的键盘/显示器扩展功能,该芯片 40 引脚,体积较大,成本不低,编程也不方便。由单片机 AT89C2051 控制共阳数码管、按键构成动态显示模块。该方案最多只能扩展 16 个按键,且数码管需 8 只 三极管驱动。LCD 液晶显示加键盘等,该方案成本不低, 接口复杂。 考虑到成本及电路的复杂度, 本设计采用一款新颖的 HD7279专用键盘/显示芯片。 HD7279芯片价格低廉, 内部含有译码器, 并具有多种控制指4单片机课程设计 2-高精度数控低频正弦信号发生器 令,如消隐、闪烁、左移、右移、段寻址 等。在设计时,外围电路简单,只需一个电阻和一个电容即可解决键盘/显示电路的外围设计, 且有成熟的现成程序可借鉴。 2 频率控制机理及其硬件设计 我们把锁相+直接数字频率合成称为 PDDFS技术,频率控制是本设计的关键。频率控制模块的主要硬件支持是锁相环 CD4046和可编程分频器 INTEL8254,锁相环CD4046是本系统工作的关键所在, 可编程分频器 INTEL8254 和其相互配合,为相位累加器 CD4518提供时钟脉冲,从而最终实现对输出波形函数信号频率的改变。 2.1 锁相环介绍 锁相环 PLL(Phase Lock Loop) 是一个能完 成两个电信 号相位同步 的自动控制闭环系统。 它是比较输入信号和压控振荡器输出信号之间的相位差, 比较结果产生的误差输出电压正比于输入信号和压 控振荡器输出信号两个信号的相位差,原理如图 3所示。 图 3 锁相 环原理框图 在环路开始工作时,通常输入信号的频率与压控振荡器末加控制电压时的振荡频率是不同的,由于两信号之间存在固 有的频率差,它们之间的相位差势必不断地变化,在这种误差电压控制之下,压 控振荡器的频率也就在相应的范围之内变化。若压控振荡器的频率能够变化到与 输入信号相等,便有可能在这个频率上稳定下来(当然只有在一定的条件下才可 能这样)。达到稳定之后,输入信 号和 压控振荡器输出信号之间的频差为零,相位 差不再随时间变化,误差控制电压为一固定值,这时环路就进入“锁定”状态。 当锁相环入锁时,它还具有“捕捉”信号的能力, VCO可在某一范围内自动跟踪输入信号的变化, 如果输入信号频率在锁相环的捕捉范围内发生变化,锁相环能捕捉到输人信号频率,并强迫 VCO 锁定在这个频率上。 本系统选用的是 CD4046 锁相环,其特点是电源电压范围宽(为 3V18V),输入阻抗高(约 100M), 动态功耗小, 在中心频率 f0为 10kHz下功耗仅为 600W,属微功耗器件。它采用 16 脚双列直插式,各引脚功能如下: 5单片机课程设计 2-高精度数控低频正弦信号发生器 1脚相位输出端,环路人锁时为高电平,环路失锁时为低电平。 2脚相位比较器的输出端。 3脚比较信号输入端。 4脚压控振荡器输出端。 5脚禁止端,高电平时禁止,低电平时允许压控振荡器工作。 6、7 脚外接振荡电容。 8、16 脚电源的负端和正端。 9脚压控振荡器的控制端。 10脚解调输出端,用于 FM解调。 11、12 脚外接振荡电阻。 13脚相位比较器的输出端。 14脚信号输入端。 15脚内部独立的齐纳稳压管负极。 图 4 是 CD4046 功能图,主要由相位比较、压控振荡器(VCO)、线性放大器、源跟随器、整形电路等部分构成。 图 4 CD4046 锁相环的功 能图 =2R 时,锁相环的振荡频率可表示为: 11CRVCOfinSOC (1) 当 ,VCOin=Vcc/2 时,锁相环的振荡频率(中心频率)可表示为: =2R6单片机课程设计 2-高精度数控低频正弦信号发生器 1102 CRVfCC (2) 当锁相环锁定时,压控振荡器能在某一范围内 自动跟踪输入信号的变化,这个范围称作锁定范围。通常锁定范围大于 捕捉范围,锁相环能搜寻和捕捉的输入信号的频带定义为捕捉范围。 对于 CD4046内部有两个比较器, 用相位比较器的情况下它的捕捉范围和锁定范围的关系为: 220RCffL= (3) 其中 RC 组成一个低通滤波器, 即图 4中 的 R3,R4,C2部分。 对 RC时间常数的选择有一定的要求,既要避免环路自激,又要保证对输入频率的变化有合理快的响应速度, 一般 R用两个电阻, 分别取 R3= M1 , R4=100(这个电阻也可以不要接) , C=C2=1 F ,因此捕捉范围,就会比较低,并且对相位比较器,它要求 Ui、Uo的占空比均为 50(即方波),这样才能使锁定范围为最大。对于频率输入的变化不大的场合,用相位比较器时其捕捉范围和锁定范围一样,与低通滤波器的RC无关. 而且最大锁定范围与输入信号波形的占空比无关,并且压控振荡器的输出脉冲占空比为 50%,与输入信号的占空比没有关系。图 5为系统进入锁相状态时各引脚的典型波形。 其输出频率最大最小分别为: )PF32(111max+=CRf (4 ) ( 5) 0min=f PF)50,110(11 CMRK在 VDD=5V条件下,为了使输出频率最大,可取R1=10K,C1=50PF, R2=,此时。 MHZf 8.0max=图 5 锁定时 各引脚波形图 7单片机课程设计 2-高精度数控低频正弦信号发生器 2.2 可编程分频器及其频率控制的原理 (1)可编程分频器 本系统的分频器是由 INTEL8254可编程计数器完成的, INTEL8254可编程计数器内部有三个相互独立的 16位的计数器, 其计数速率可达到 8MHz(INTEL8253 的计数速率只有 2MHz) 。一个具有三态双向的 8 位数据总线缓冲器为 8254 芯片提供与系统总线相接口的能力, 它在读/写逻辑的控制下接收来自系统总线的命令和数据, 并将 8254的状态字送上系统总线。 控制寄存器接收来自数据总线缓冲器中关于命令的数据,并暂存这些数据。命令的 数据经内译码后产生整个器件的控制信号,并设置每个计数器的工作方式。每一 个计数器是完全独立的,并有各自独立的工作方式。 8254 的内部功能通过系统软件的编程来确定。系统通过接口传送所要求的工作方式和数值来初始化计数器。每一个计 数器都是独立地通过一个命令数据来编程。每个计数器有 6种工作模式,本系统计数器 0、计数器 1均采用工作方式 3,即方波发生器。当进入工作方式 3,GATE为高电平并装入计数值n后,若n为偶数,则OUTi端输出的周期为nCLKi周期,占空比为 1:1 的方波序列;若n为奇数,则OUTi端输出的周期为nCLKi周期,占空比为21/21 + nn的近似方波序列。 (2)INTEL8254 初始输入基准时钟 INTEL8254 的初始输入时钟信号,直接取自单片机 AT89S52 的 ALE 引脚信号,其频率为单片机晶振频率的六分之一, 本系统的单片机用 6MHz的晶振, 所以输入到 INTEL8254的基准时钟频率 为 1MHz。 0f(3)频率控制原理 输出信号的频率控制主要通过对地址发生器扫 描频率的改变来实现,其控制模块主要由计数器 INTEL8254、锁相环 CD4046 组成。其频率控制原理如图 2 所示。 设计时,图 2 中的分频 器M由I NTEL8254 第 0 个计数器与第 1 个 计数器级联组成,因此可将计数器看作 32位计数器。初始时钟信号 从第 0个计数器输入,通过 8254计数器 0、 计数器 1进 行 M分频后, 其输出信号作为 CD4046的信号输入AIN;图 2 中的分频 器 N 由 INTEL8254 第 2 个计数器完成,而 CD4046 的压控振荡器的输出端, 接入 INTEL8254 第 2个计数器的时钟输入端, 经过 分频后接到锁相环比较器输入端 BIN。当相位锁定时,CD4046 的压控振荡器的输出频率 也即相位累加器的输入频率等于计数器 1的输出频率与计数器 2的分频值 的乘积,即 0fNVCOfNMNffVCO0= ( 6) INTEL8254计数器 2的分频值 , 受 AT89S52单片机控制。 相位累加地址发生器 CD4518 对 2764 扫描速度随 的值改变而改变,从而可以控制最终输出波形NVCOf8单片机课程设计 2-高精度数控低频正弦信号发生器 的频率值。假定相位累加地址发生器相位字长为 L,如图 2 所示。则输出波形的频率可表示为: LMNfLffVCOOUT0= ( 7) 由上式可知, 要改变输出频率, 则可通过改变分频值 、 N 和相位累加字长M L。为了在软件设计宜实现,设计时将计数器 0、 1 都进行 100 分频,即 M 取 10000。因系统采用的晶振为 6MHz,所以 为 1MHz,则经过计数器 0 、1 分频后的输出频率为 100HZ,式(6) 、 (7)可分别表示为: 0fNfVCO100= (7) 100=LNfOUT(9) 根据式(7) ,取 L值为 100时,最终输出频率为: NfOUT= ( 10) 分频值 可取 265536 之间的任意自然数, 因此输出频率最小频率步进 1HZ。但从式 ( 10) 可知, 输出频率最小只能到达 2Hz, 这是因为 8254 不能实现 1 分频,也即不能输出频率为 1Hz 的波形。 为了能实现 1Hz 的频率输出, 可重新设置 NM 、的值, 如取 、 、N 20000=M 2=N L值仍为 100, 则最终输出频率仍满足式 (10) 。 2.3 相位累加地址扫描电路设计 相位累加地址扫描由 CD4518 及 27C64 组成。 CD4518 是二、十进制( 8421编码)同步加计数器,内含两个单元的加计数器,其功能表如表 1 所示。每单个单元有两个时钟输入端 CLK 和 EN,可用时钟脉冲的上升沿或下降沿触发。由表可知,若用 ENABLE 信号下降沿触发,触发信号由 EN 端输入, CLK 端置“ 0” ;若用 CLOCK 信号上升沿触发, 触发信号由 CLOCK 端输入, ENABLE 端置 “ 1” 。RESET 端是清零端, RESET 端置 “ 1” 时 , 计数器各端输出端 Q1 Q4 均为 “ 0” ,只有 RESET 端置“ 0”时, CD4518 才开始计数。 CD4518 采用并行进位方式, 只要输入一个时钟脉冲, 计数单元 Q1 翻转一次;当 Q1 为 1, Q4 为 0 时, 每输入一个时钟脉冲, 计数单元 Q2 翻转一次; 当 Q1=Q2=1时, 每输入一个时钟脉冲 Q3 翻转一次; 当 Q1=Q2=Q3=1 或 Q1=Q4=1 时, 每输入一个时钟脉冲 Q4 翻转一次。这样从初始状态( “ 0”态)开始计数,每输入 10 个时钟脉冲,计数单元便自动恢复到“ 0”态。若将第一个加计数器的输出端 Q4A作为第二个加计数器的输入端 ENB 的时钟脉冲信号,便可组成两位 8421 编码计数器,依次下去可以进行多位串行计数。 因 CD4518 每输入 10 个脉冲便会自动归零, 所以在对 27C64 完成一次地址扫描后进行复位时, 避免了用其它硬件电路进行复位所出现的 “延时” 所造成的 “毛刺”现象。其相位累加、地址扫描电路如 5 所示。 9单片机课程设计 2-高精度数控低频正弦信号发生器 表 1 CD4518 功能表 CLOCK ENABLE RESET ACTION 上升沿 1 0 加计数 0 下降沿 0 加计数 下降沿 X 0 不变 X 上升沿 0 不变 上升沿 0 0 不变 1 下降沿 0 不变 X X 1 Q0 Q4=0 之所以采用十进制计数器,是因为考虑到人们 的习惯。但此时要求存储器地址必须按 BCD 码的编码规律,即每 16 个存储单元中,只有前十个单元存放波形数据,后 6 个存储单元不用。 自动归零和按 BCD 码的规律存放数据,是本设计的巧妙之处。 图 6 相位累 加地址扫描电路 2.4 双极性输出实现 本函数信号发生器信号输出要求为双极性,输出电路原理图如图 7 所示。在此采用 DAC0832模数转换芯片。图中运算放大器为具有双极性工作电压的 TL082。 10单片机课程设计 2-高精度数控低频正弦信号发生器 图 7 模数转 换及双极性输出原理图 由图可得: URRWRRWVUREF=211( 11) 256nREFDVU = ( 12) REFV 为 DAC0832提供的参考电压, 输入的波形数据。由上两式可得: nD)1256(25612211RRDRWVDVRRWRRWVUnREFnREFREF=+= ( 13) 取 ,当 时,212RR = 0=nD212RRWVUREF= ; 时,128=nD 01=U ; 时,255=nD212RRWVUREF= 。 由上述分析可看出, 取不同数据时 (0255) , 可得对称的双极性波形输出。再取 ,则式(11)可表示为: nD1RRW =)1128(1=nREFDVU ( 14) 由上式可知,输出信号的幅度受 的改变而改变。 REFV2.5 滤波器设计 输入 DAC0832的波形数据是经量化的离散数据,而 DAC0832分辨率为 1/255,因此输出的波形具有非连续性, 是阶梯状的。 假设 DAC0832的基准电压为+5V, 则每个阶梯幅度为 0.0195V。 阶梯宽度为采样频率的倒数。 这相当于给输出波形叠加了高频干扰,为确保产生波形的质量,减 少波形失真度,使输出波形光滑,须用低通滤波器把高频分量滤掉。在此采用自动线性跟踪 Butterworth 有源滤波器。11单片机课程设计 2-高精度数控低频正弦信号发生器 图 8为一常见的二阶有源低通滤波器, 1RF2RF1R 2R1C2CoUiU图 8 有源二 阶低通滤波器原理图 其传递函数为: 20022002121120222122121021)111(/)(+=+=SSKCCRRSCRKCRCRSCCRRKsH ( 15) 式中 为电路直流增益,0K 为电路阻尼率,002 f = 为电路固有频率,分别为: 120/1 RFRFK += ( 16) +=1221022112112)1(21CRCRKCRCRCRCR ( 17) 21210/1 CCRR= ( 18) 以 jS = 代入( 15)式,求得其幅频特性: 2220202220200)2()1()2()()(+=+=KKjH ( 19) 式中00/ ff= 为频率比, 1= 时的频率称为截止频率。 由式( 19)可得,当 2/1= 时,其幅频特性最为平坦。当各种信号频率小于滤波器截止频率时,才能“无失真”地传输 ,也即幅度不会放大或衰减。当,CCC =21RFRFRF =21,即 20=K 时,由式 14、 15、 16 有: 12/21RR= (20) 12单片机课程设计 2-高精度数控低频正弦信号发生器 21021RRCf= (2 1) 令( 18)式 2/1= ,得 RRR 2212= ,则有: CRf2210= ( 22) 由上式可知,当 为定值时,电路截止频率 与C0f R成反比。因此只要电阻按的比例关系线性改变,还可实现滤波器截止频率的线性跟踪滤波。 RRR 2212=2.6 人机对话模块 系统的人机对话模块使用了键盘/显示采用 HD7279A, 它是一种管理键盘和 LED显示器的专用智能控制芯片。 它能对 8 位共阴极 LED 显示器或 64 个 LED 发光管进行管理和驱动, 同时能对多达 88 的键盘矩阵的按键情况进行监视, 其内部含有译码器,有两种译码方式,可直接接受 16 进制码, 具有消隐、闪烁、左移、右移、段寻址等多种控制指令,并具有自动 消除键抖动并识别按键代码的功能,从而可以提高 CPU工作的效率。 HD7279A片内具有驱动电路, 它可以直接驱动 1英 吋及以下的 LED 数码管,与微处理器之间采用串行接口,其接口电路和外围电路简单可靠,占用口线少,加之它具有较高的 性能价格比,因此,在微型控制器、智能仪表、控制面板和家用电器等领域中日益获得广泛的应用。 HD7279采用同步串行外设接口 SPI(Serial Peripheral Interface)总线与单片机相连。 SPI 总线是 Motorola 公司提出的一个同步串行外设接口,用于 CPU与各种外围器件进行全双工、同步串行通讯。 SPI 可以同时发出和接收串行数据。它只需四条线就可以完成 MCU 与各种外围器件的通讯。 当 SPI 工作时, 在移位寄存器中的数据逐位从输出引脚 ( MOSI) 输出 (高位在前) , 同时从输入引脚 ( MISO)接收的数据逐位移到移位寄存器 (高位在前) 。 发送一个字节后, 从另一个外围器件接收的字节数据进入移位寄存器中。主 SPI 的时钟信号( SCK)使传输同步。 HD7279 与微处理器连接的 4 线 分别为 CS、CLK、DATA、KEY。其中 CS 为片选信号 (低电平有效) 。 当微处理器访问 HD7279A(读键号或写指令) 时, 应将片选端置为低电平。DATA 为串行数据端,当向 HD7279A发送数据时,DATA 为输入端;当 HD7279A 输出键盘代码时,DATA 为输出端。CLK 为数据串行传送的同步时钟输入端, 时钟的上升沿表示数据有效。 KEY为按键信号输出端, 在无键按下时为高电平;而有键按下时此引脚变为低电平并且一直保持到键释放为止。 HD7279A 指令系统由 6 条纯指令、7 条带数据指令和 1 条读键盘指令组成。这里对编程中用到的一些指令作介绍。 1纯指令 13单片机课程设计 2-高精度数控低频正弦信号发生器 (1) 复位指令。指令代码为 A4H,其功能为清除所有显示,包括字符消隐属性和闪烁属性。 (2) 测试指令。指令代码为 BFH,其功能为将所有的 LED 点亮并闪烁,可用于自检。 2 带数据的指令(由双字节组成) (1) 按方式 0译码下载指令 D7 D6 D5 D4 D3 D2 D1 D0D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 0 0 a2 a1 a0DP X X X d3 d2 d1 d0 X X:无影响 第 1字节为指令,其中 a2,a1,a0代表显示位地址: a2,a1,a0 7 6 5 4 3 2 1 0 显 示 位 8 7 6 5 4 3 2 1 显示位 8为最高位。 第 2字节为显示内容, 其中 DP为小数点控制位, DP=1,小数点显示;DP=0,小数点熄灭。 d3 d2 d1 d0 为数据,按方式 0译码时数据和显示的关系如下: d3d2d1d0 00H 01H 02H 03H 04H 05H 06HH 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 显示内容 0 1 2 3 4 5 6 7 8 9 - E H L P 空 (2) 按方式 1译码下载指令 D7 D6 D5 D4 D3 D2 D1 D0 D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 0 1 a2 a1 a0 DP X X X d3 d2 d1 d0 该指令和按方式 0译码下载指令的含义基本相同。按方式 1译码时数据和显示的关系如下: d3d2d1d0 00H 01H 02H 03H 04H 05H 06HH 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 显示内容 0 1 2 3 4 5 6 7 8 9 A B C D E F (3) 不译码下载指令 1 0 0 2 0 a2 a1 a0 DP A B C D E F G 14单片机课程设计 2-高精度数控低频正弦信号发生器 a2 a1 a0仍为位地址,第 2字节仍为显示内容,其中 DP和 AG 分别代表小数点和 LED显示器的 7段,相应位为 1时,该段点亮;为 0时,该段熄灭。 (4) 闪烁控制指令 1 0 0 0 1 0 0 0 d8 d7 d6 d5 d4 d3 d2 d1 该指令规定了每个数码管的闪烁属性。 d1d8 分别对应第 1到 第 8个数码管,该位为 1不闪烁;该位为 0闪烁。缺省状态为所有数码管均不闪烁。 (5) 消隐控制指令 1 0 0 1 1 0 0 0 d8 d7 d6 d5 d4 d3 d2 d1 该指令规定了每个数码管的消隐属性。 d1d8 分别对应第 1到 第 8个数码管,该位为 1显示;该位为 0消隐。应该注意的是至少要有 1位保持显示状态,如果全部消隐则该命令无效。 ( 6)读键盘数据指令 15H 0 0 0 1 0 1 0 1 d8 d7 d6 d5 d4 d3 d2 d1 该指令从 HD7279A读出当前的按键代码。与其它指令不同,此命令的前一个字节 00010101B为微控制器传送到 HD7279A的指令,而后一个字节 d0d7则为HD7279A返回的按键代码, 其范围是 03F(无键按下时为 oxFF) , 各键键盘代码的定义,参阅附图,图中的键号即键盘代码。 当 HD7279A检测到有效的按键时, KEY引脚从高电平变为低电平,并一直保持到按键结束。在此期间,如果 HD7279A接收到“读键盘数据指令”,则输出当前按键的键盘代码;如果在收到“读键盘指令”时没有有效按键, HD7279A将输出 FFH。 3 系统 的 软件设计 3.1 波形数据获取 按双极性输出的要求,经推导得出输出波形量化数据 的数学公式: nD正弦波: +=21sin255nD (23) oo3590锯齿波: 2255=nD (24) oo359015单片机课程设计 2-高精度数控低频正弦信号发生器 方波: 255=nDoo1790(25) 0=nDoo359180根据上述公式, 将 的取值离散化, 即取 , 即可得到波形量化数据 。 o1=nD3.2 主程序设计 本系统主程序模块主要完成的工作是对系统的初始化, 包括对 HD7279 的初始化、发送显示数据、输出波形。初始时默 认输出波形为正弦波,输出波形幅度为5V, 频率为 100Hz; 在初始化的同时, 对键盘进行扫描, 判断是否有相应功能键按下, 如有相应功能键按下, 则根据所需要的功能进行相应的操作。 其流程图如图 9所示。 图 9 主程序 流程图 需说明的是将单片机的 P1.7、P1.6 置成 01或 10,就得到三角波或方波。 4 结束 语 本文阐述了高精度数字式函数信号发生器的软 、硬件设计。利用单片机以及可编程分频器、 数字锁相环、 地址发生器、 波形数据存储器、 D/A 转换等部件, 采用了直接数字频率合成技术(DDS) ,以及锁相环(PLL)倍频技术相结合的方法。此函数信号发生器调节灵活方便,输出波 形精度高且波形较为稳定。本设计以多功能、低功耗、操作方便、结构合理、易 于调试为主要设计原则。在系统设计过程中,我们力求硬件线路简单,充分发挥 软件编程方便灵活的特点,并最大限度挖掘单片机片内资源,来满足系统设计要 求。本系统所采用的器件大都属于最常用、最普通的集成器件,但所得到的结果已基本达到预期的效果。 16附 录 正弦信号发生器基本部分参考电路器件清单 名称 数量 备注 AT89C51 1 配插座(DIP40) 74LS373 1 配插座(DIP20) 27C64 1 配插座(DIP28) CD4046 1 配插座(DIP16) CD4518 1 配插座(DIP16) 8254 1 配插座(DIP24) DAC0832 1 配插座(DIP20) HD7279 1 配插座(DIP28) TL084 1 配插座(DIP14) 按扭 21 4插脚 晶振 1 6MHZ LED数码管 8 共阴(超高亮)(配 DIP40插座两个) 电容 2 30pf(瓷片) 1 1UF(105)独石 1 15P(瓷片) 1 50P(瓷片) 3 103(独石) 4 104(独石) 电阻 1 1K5(1/4W) 1 1M(1/4W) 3 4K7(1/4W) 5 10K(1/4W) 2 20K(1/4W) 8 100K(1/4W) 8 200(1/4W) 接插件 1 四芯(间距:3mil,2mil) 导线 若干 四色(红、黑、黄、绿) 焊锡丝 若干 双面线路板 1 150110mm 主要设备: 单片机仿真器(带仿真头) 焊接实验工具箱一套 5V、15V 电源 示波器 17附 录 高精度数控低频正弦信号发生器参考电路原理图 EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXD10U180316MC130PC230PC6 104D08OUT010D17GATE011D26CLK09D35D44D53D62OUT113D71GATE114CLK115CS21RD22WR23OUT217A019GATE216A120CLK218U68253AIN14BIN3VCIN9INH5CA6CB7R111R212PCP1PC12PC213VCOUT4SF10ZEN15U54046VCCVCCC850pC71ufR61MR810KVCC+15V-1 5 VRESETSW-PBCSCLKDATAKEYVCCVCCD0D1D2D3D4D5D6D7VCCD0D1D2D3D4D5D6D7A0A1A2A3A4A5A6A782548254VCCCSCLKDATAKEYCLK1EN2R7Q03Q14Q25Q36U7A4518CLK9EN10R15Q011Q112Q213Q314U7B4518VCCA010A19A28A37A46A55A64A73A825A924A1021A1123A122CE20OE22PGM27VPP1D011D112D213D315D416D517D618D719U82764VCCA0A1A2A3A4A5A6A7A8A9A8A9IO0IO1IO2IO3IO4IO5IO6IO78254_A08254_A1D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373D0D1D2D3D4D5D6D78254_A08254_A1R54K71234J1CON4DATAKEYVCCGNDCLKCSKeyDisKeyDis.Sch-15VIO0IO1IO2IO3IO4IO5IO6IO7VCC1098U4CTL084121314U4DTL084R710KR320KR420KVcc20Iout111lsbDI07Iout212DI16DI25Rfb9DI34DI416Vref8DI515DI614msb DI713ILE19WR218CS1WR12Xfer17U3DAC0832VCCR14K7R24K7C3103C5103C4103321411U4ATL084DOUTDOUT567U4BTL084+15VOUTVCC附图 1 系 统波形发生信号模块原理图18附 录 附图 2 系 统键盘/显示 模块原理图 19附 录 低频正弦信号发生器 PCB 实物图 附图 4 系 统实物图 20附 录 HD7279A基 本部分源程序清单 (HD7279A Test Program) ;* ; RAM 定义 ;* BIT_COUNT DATA 07FH TIMER DATA 07EH TIMER1 DATA 07DH TEN DATA 07CH DATA_IN DATA 020H DATA_OUT DATA 021H ;* ; I/O 口定义 ;* DAT BIT P1.2 ;HD7279A 的 DATA 连接于 P1.2 KEY BIT P3.2 ;HD7279A 的 KEY 连接于 P3.2 CS BIT P1.0 ;HD7279A 的 CS 连接于 P1.0 CLK BIT P1.1 ;HD7279A 的 CLK 连接于 P1.1 ORG 000H LJMP START ORG 100H START: MOV SP,#2FH MOV P1,#11011011B ;I/O 口初始化 MOV TIMER,#50 ;延时约 25MS START_DELAY: MOV TIMER1,#255 START_DELAY1: DJNZ TIMER1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论