器(更新DDS 输出频率和相位) , 同时把地址指针复位到第一个输入寄存器。接着在W-CLK 的上升沿装入8位数据,并把指针指向下一个输入寄存器,连续5个W-CLK上升沿后, W-CLK的边沿就不再起作用,直到复位信号或FQ-UD上升沿把地址指针复位到第一个寄存器。在串行输入方式,W-CLK上升沿25引脚的一位数据串行移入,当移动40位后,用一个FQ-UD脉冲即可更新输出频率和相位。图2.2.5是相应的控制字串行输入的控制时序图。
图2.2.5 控制字串行输入的时序图
并行写入方式的优点是数据传输的速度快,能够提升整个系统的处理速度,但占用的单片机的I/O口资源太多。与并行方式相比,串行写入方式在数据传输的速度上要慢些,但它更大优点是能节省很多I/O口资源。所以,本系统采用STC89S51单片机作为控制核心,通过串行写入控制字的方式控制AD9850芯片,加上键盘和LED显示部分等外围电路,构成整个系统电路。AD9850的复位(RESET) 信号为高电平有效,且脉冲宽度不小于5个参考时钟周期。AD9850的参考时钟频率一般远高于单片机的时钟频率, 因此AD9850的复位(RESET) 端可与单片机的复位端直接相连。需要注意的是用于选择工作方式的两个控制位,无论并行还是串行最好都写成00,并行时的10、01和串行时的10、01、11 都是工厂测试用的保留控制字,不慎使用可能导致难以预料的后果。
2.3低通滤波器的设计
由于AD9850内部没有低通滤波器,因此输出的扫频信号含有高频噪声,需要在其输出端口加低通滤波器。由于AD9850的系统时钟典型为125MHZ,而DDS最高能输出系统时钟的一半,但为了更好降低DDS的杂散谐波,产生平滑的信号波形,一般将最高输出控制在系统时钟的40%,本系统设计中,滤波器最高输出频率设定为50MHZ,为了能降低AD9850系统时钟的干扰,采用具有较窄过渡带特性的七阶椭圆滤波器,具有下降更快的过渡带,通带设计为55MHZ,通过实际中的不断调试以确定滤波器组件值,如图2.3.1所示。
图2.3.1 低通滤波器原理图
2.4 键盘输入显示电路
该电路模块主要用于显示要输入的显示的频率,包括8位八段数码管、显示驱动电路。由于输入与显示电路元件较多,而单片机的接口有限,所以必须对单片机的输入输出口进行扩展,接口扩展电路是输入显示电路的重要组成部分。显示电路如图2.4.1所示:
图2.4.1 输入显示电路
2.4.1 数码管显示电路简介
常用的LED显示器为8段(或7段,8段比7段多了1个小数点“dp”段)。
每一个段对应1个发光二极管。这种显示器有共阳极和共阴极2种。共阴极LED显示器的发光二极管的阴极连接在一起,通常此公共阴极接地。当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。同样,共阳极LED显示器的发光二极管的阳极连接在一起,通常此公共阳极接正电压,当某个发光二极管的阴极接低电平时,发光二极管被点亮,相应的段被显示,本设计采用的是共阴极LED显示器作为整个系统的输入频率显示器。 2.4.2 LED显示器工作原理
N个LED显示块有N位位选线和8×N根段码线。段码线控制显示字符的字型,而位选线为各个LED显示块中各段的公共端,它控制该LED显示位的亮或暗。
LED显示器有静态显示和动态显示2种显示方式。 1. LED静态显示方式
静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立,公共端恒定接地(共阴极)或接正电源(共阳极)。每个数码管的8个字段分别与一个8位I/O口地址相连,I/O口只要有段码输出,相应字符即显示出来,并保持不变,直到I/O口输出新的段码。采用静态显示方式,较小的电流即可获得较高的亮度,且占用CPU时间少,编程简单,显示便于监测和控制,但其占用的口线多,硬件电路复杂,成本高,只适合于显示位数较少的场合。 2. LED动态显示方式
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。通常,各位数码管的段选线相应并联在一起,由一个8位的I/O口控制:各位的位选线由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码,依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。本设计采用的是动态显示方式。 2.4.3 键盘输入电路
键盘输入电路如图2.4.2所示:
图2.4.2 键盘输入电路
键盘是由一组规则排列的按键组成,一个按键实际上是一个开关元件,也就是说键盘是一组规则排列的开关。单片机系统中,若使按键较多时,通常采用矩阵式(也称行列式)键盘。矩阵式键盘由行线和列线组成,按键位于行、列线的交叉点上,其结构如图2.4.3所示。
图2.4.3 4*4行列式键盘
识别按键的方法很多,其中,最常见的方法是扫描法。按键按下时,与此键相连的行线与列线导通,行线在无键按下时处在高电平,显然,如果让所有的列线也处在高电平,那么,按键按下与否不会引起行线电平的变化,因此,必须使所有列线处在低电平,只有这样,当有键按下时,该键所在的行电平才会由高电
平变为低电平。CPU根据行电平的变化,便能判定相应的行有键按下。在单片机应用系统中,键盘扫描只是CPU 的工作内容之一。CPU对键盘的响应取决于键盘的工作方式,键盘的工作方式应根据实际应用系统中CPU的工作状况而定,其选取的原则是既要保证CPU能及时响应按键操作,又不要过多占用CPU的工作时间。通常,键盘的工作方式有三种,即编程扫描、定时扫描和中断扫描。编程 扫 描 方式是利用CPU完成其它工作的空余调用键盘扫描子程序来响应键盘输入的要求。在执行键功能程序时,CPU不再响应键输入要求,直到CPU 重新扫描键盘为止。定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间的定时,当定时时间到就产生定时器溢出中断,CPU 响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。采用上述两种键盘扫描方式时,无论是否按键,CPU 都要定时扫描键盘,而单片机应用系统工作时,并非经常需要键盘输入,因此,CPU 经常处于空扫描状态,为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。信号发生器设计中要用到十六个按键,因此设计过程中选择行列式键盘,为提高CPU利用率,按键扫描采取中断扫描方式口。