APP下载

基于AT89C52的低频信号发生器设计

2018-08-10李龙洲周碧英

电子设计工程 2018年15期
关键词:晶振按键电容

李龙洲,周碧英,张 鹏

(1.渭南师范学院数理学院,陕西渭南714099;2.渭南师范学院网络安全与信息化学院,陕西渭南714099)

信号发生器用于产生被测电路所需特定参数的电测试信号[1-3]。在测试、研究或调整电子电路及设备时,为测定电路的一些电参量,如测量频率响应、噪声系数,为电压表定度等,都要求提供符合所定技术条件的电信号,以模拟在实际工作中使用的待测设备的激励信号。低频信号发生器在工业自动化生产、交通、水文监测及国防等领域都有广泛的应用[4-6]。低频信号的产生有多种方法[7-13],如采用分立元件构成的多谐振荡器,然后根据具体需要加入积分电路等构成正弦波、矩形波、三角波等波形发生器,也可以使用直接数字合成DDS芯片来产生低频信号。此外,随着现代数字集成技术的发展,微型计算机应运而生,具有大容量存储及可编写的单片机的出现,打破了传统硬件设计中数据处理速度慢、可兼容性不强的局限性,使信号产生更加方便。

传统信号源由分立元件实现的多谐振荡器及积分电路等构成[14-16],设计电路复杂,频率精度调节很难控制,并且所使用的芯片价格昂贵、操作复杂。采用AT89C52作为数据存储单元和控制核心,利用D/A转换器作为数据的处理单元,再结合单片机软件编程和硬件电路设计,可以实现对数字信号的转化和任意波形信号的输出。操作外接键盘的不同按键可以实现波形和频率大小的自由调节,其间波形及频率可在液晶屏上观测,并最终在示波器输出波形。经D/A转换器转化得到波形信号受硬件电路影响小,且易于控制。

1 系统设计方案

传统信号源当需要某一种信号时,需要专门设计相对应的模拟电路及积分等转换环节,其输出信号种类有限,且电路复杂,成本高。输出信号频率及幅值调节需要借助电位器,当需要某一特定频率或幅值要求的信号时,不易控制。运用单片机不需要专门设计各种信号发生电路和转换电路,只需将各种信号的数据存入单片机的存储器中,当有信号需要的请求时,按下相对应的按键,即可得到相对应的输出信号,并且输出信号的频率及幅值直接由程序进行控制,操作简单。

AT89C52是一种低功耗高性能的CMOS 8位单片机。低频信号发生器以AT89C52单片机作为核心控制单元。由AT89C52构成的单片机最小系统可以存储数据及控制程序,并且还可以采集和分析数据首先建立单片机最小系统,其中包括晶振电路及复位电路的选择,然后运用单片机C语言将多种波形数据存入数据存储器中,并对其波形种类及频率进行中断编程,以便于在需要时选择相应的信号,此外输出信号还需经过D/A转换器、运算放大器等环节的处理。

图1 系统框图

图1为系统框图。当系统工作时,晶振电路为系统提供正确的工作的时钟脉冲信号,由按键发送需要产生波形的请求,当某一个按键按下时,单片机通过程序语言识别按键的类型,然后再控制相应的中断程序开启,存储器中存储的信息或编辑下载的信息经过D/A转换器形成模拟电流量,电流量再经过一个运算放大器调整得到模拟电压量,最终输出可靠的波形信号。当按键动作时会立即触发系统中断程序,即波形种类的切换或者改变波形的频率时,均可在显示屏上显示。整个工作过程可在显示屏上进行实时操作与监测。

当工作状态处于故障状态时,可通过复位电路的复位按钮将系统恢复到正常的工作状态下,即对系统的初始化处理。另一方面,系统的初始化处理也使得某些测量场合下大大节约了时间。

2 系统硬件电路设计

2.1 单片机最小系统

AT89C52是片内有ROM/EPROM的单片机。其整体相当于一个微型计算机系统,具有各种高精度运算及数据存储单元。AT89C52不仅可以在其存储器中存入大量数据,而且可对其进行特定的C语言编程,经过微处理器的处理,编程的语言被处理为各种控制信号,进而完成各种指定的操作。AT89C52并非单独存在进行工作,而是需要加上晶振电路和复位电路才能正常工作。即在单片机最小系统的运行下系统才能正常运行。最小系统中,晶振为AT89C52工作提供可靠的脉冲,复位电路可对AT89C52进行复位操作,从而保证系统可靠的运行。使用AT89C52构成单片机最小系统时,需将其RST引脚及XTAL1/XTAL2引脚分别接上复位电路和晶振电路。复位电路用于对单片机系统的初始化操作,晶振电路为单片机提供正常工作脉冲。

2.2 晶振电路的设计

晶振,又名晶体振荡器,在单片机工作时提供时钟脉冲,用来表征单片机工作的快慢。晶振中负载电容的取值大小与晶振的谐振频率密不可分,若要得到较为精准的谐振频率,只需使并联在负载电容两端的电容值与负载电容数值相等即可。一般选15 pF或12.5 pF的电容作为晶振的负载电容,若要再考虑等效输入电容及裕度等因素,22 pF的电容就能满足要求。

晶振的负载电容为:

式中:Cd、Cg为晶振两脚上的等效对地电容,且Cd=Cg;Cic为集成电路内部电容;ΔC为PCB电容。

其中,Cic+ΔC的依经验取值为4 pF,负载电容为15 pF,所以有:

石英晶振一般选用11.069 2 MHz,是因为波特率一般为整数,这个数值方便取整。由于晶振与单片机的脚XTAL1和脚XTAL2构成的振荡电路中会产生谐波,为了减弱电路的不稳定因素,即考虑裕度等因素,在晶振的XTAL1/XTAL2引脚处分别接入两个30 pF的电容接地即可满足。

2.3 复位电路的设计

系统通上电源后,VCC从0 V缓慢上升到5 V,C1的两极板间电位差变大,电场增强,从而使更多的电子到达下极板。电路中,电压在电流方向电位依次降低,当电流流过R1时,将在R1两端形成一个大于0的电位。随着时间的增加,电容逐渐饱和,电流会随之减小,电位也会逐渐减小。从某种意义上来说,该系统能否准确无误复位,与该电位的大小和持续的时间密切相关。对于AT89C52而言,当RST加高电平的持续时间超过单片机的两个机器周期,系统就会被复位。

系统复位的时间应大于2个机器周期,即:

由AT89C52的直流特性可知,当RST上的电压超过0.7Vcc时RST就会认为是高电平。当0.7Vcc的电平持续时间大于2 μs时,系统就会复位。复位电路电源电压一般选为5 V。RST内电流在该系统内可忽略,所以复位电路可看作是一阶RC电路。电容两端暂态UI关系式如下:

因为uc(∞ )=5 V,uc(0+)=0 V,可得

若RST电压为uR(t),则

当uR(t)=3.4 V时,t=0.357RC

当且仅当t=0.357RC≥2 μs,系统复位,求解得:

因此复位电路参数R可选用1 kΩ,C可选用22 μF 。

2.4 D/A转换器设计

D/A转换器是把输入的数字量转换为与之成正相关的模拟量的器件,输入为一位一位的二进制数组成的数字量,输出为模拟量。D/A转换的目的就是将每一位数字量转换成相应的模拟量,然后把所有的模拟量迭加起来,得到与数字量一一对应总的模拟量的输出。

若输入为D,输出Vo,就有

其中VREF为基准电压。

假设数字量输入已知,则关系如下

D/A转换器内部有T型解码网络。网络中有R和2R两种电阻,数字量的多少与支路相关且相等,每个支路由一个R和2R电阻组成,通过电子开关控制。

图2 T型解码网络

图2为T型解码网络。从右往左看,节点n-1、n-2、L、1、0对地等效电阻均为R,两边等效电阻都是2R,基准电压VREF从右往左流经每个节点时,电流都会减小一半。流向运算放大器的反向端的总电流I为分代码为1的各支路电流之和,即:

整理可得

2.5 运算放大器电路设计

运放电路的作用是将电流量转换成电压量,图3为运算放大器电路。图中运算放大器的同向端通过一个小阻值电阻接地,电压可视为0 V。根据虚短虚断原则中的虚短,反相端也为0 V,反向输入端输入电阻阻值很大,R1和R2相当于串联,根据串联电路的特点可知,流过R1的电流与流过R2的电流相等。

流过R1的电流:

流过R2的电流:

图3 运算放大器电路

根据虚短、虚断可知:

联立上述代数方程解得:

上式为运算放大器的输入输出关系,括号中部分表示放大器的增益。

运算放大器选用反相放大的方法,R1和R2在这里选用不超过100 kΩ的电阻,R1选用10 kΩ电阻,R2选用10~20 kΩ的可变电阻,该放大器放大倍数为:

即运算放大器增益的取值范围为:

输出幅度取值范围为:

理想运算放大器,当不加输入信号时,其输出一定为零。但实际中,若输入信号为零,输出并不为零,而是输出的偏置电压。当偏置电压随时间和温度变化时,将会使放大器工作发生零飘,影响系统运行的准确性。为此,需要在运算放大器的正相端串联阻值为100 Ω的电阻R,从而降低零点飘移。

2.6 显示模块的设计

波形与频率的显示通过液晶1602实现,LCD1602的正常工作必须借助单片机的控制。首先,LCD1602的数据端需要与单片机的P1口建立连接,使能端RS、RW、E也需与单片机连接,建立连接后,通过运行单片机中下载的程序可以控制液晶屏波形的种类以及波形的频率的显示。

液晶显示LCD1602内部由控制器、驱动器和显示装备3部分组成。HD44780作为显示器的控制核心,设计中用于对波形种类及频率的显示。LCD1602在使用之前,一般需要先进行初始化操作,初始化完成后即可进行内容的显示。显示时,应先选择显示的DDRAM的地址,再选择显示的内容。若需要显示第二行内容,则可继续设置第二行显示缓冲区DDRAM的地址,再写入显示内容。

2.7 系统输出优化

根据硬件电路的搭建及测试,可以明显观测到利用硬件电路可以输出预期波形,但输出的波形不够平滑,带有许多的毛刺状杂波。在电路中,当某一种信号频率达到其截止频率时这种信号将会被拦截,即不能再继续传递。为此,需要在运算放大器末端接一个低通滤波装置来消除毛刺,使得到的波形更加平滑,更加稳定。

低通滤波装置就是采用这种原理构成的,其截止频率在-3 db位置由公式20Inx计算得出,其中x为本设计中信号的真实幅值。计算截止频率f为17 kHz,推算后R6选为100Ω,由公式

可以计算得出电容C3=104 μF

经改进后,输出波形明显得到改善,毛刺基本消失。

3 系统软件设计

主程序流程图如图4所示。首先将波形的数字量值数组存储在单片机的一个存储器中,经复位电路对系统进行初始化处理,当有按键进行操作时,按键扫描程序被启动并将对按键类型进行判别,当判别为某一功能操作时,相应的中断服务程序被调用,完成指定命令。一方面,单片机读取数组中的值并进行各类中断程序的调用,当允许信号选通时再将数字量送到D/A转换器中进行处理和加工;另一方面,信号类型及频率大小在LCD1602液晶显示屏显示。

D/A转换是一个将输入到转换器中的数字量数组进行计算,转换成模拟电流量进而输出的过程,输出的电流量无法在示波器上显示,需经过运算放大电路调整为电压量。波形的产生是建立在单片机的基础之上,单片机在控制信号的作用下将存储的各类波形数据(0xAB)送入D/A转换器中,其中A和B的取值可能为0~9、a~f。当按键被按下后并判断为频率加减按键后,相应的中断程序被触发,即当频率增加键被按下时,每按一次,频率便会以每次10%的变化增加,相同地,当频率减小键被按下时,每按一次,频率便会以每次10%的变化减小。直到增加或减小到设定值。液晶显示器LCD1602是2×16字符型液晶显示模块,可以显示两行,每行16个字符。LCD1602的数据口与单片机I/O端口直接连接,并通过下载到单片机中的中断程序直接控制显示内容。当功能按键被操作时,显示屏中断程序会被启动,并伴随对应按键显示相应的内容,如当对波形信号进行切换时,对应显示内容也将做出相应切换,整个过程均与按键选项保持一致。

图4 主程序流程

4 系统的性能测试与分析

对所设计低频信号发生器进行测试,外接示波器。表1为各波形测量峰值。调节电位器的大小,取值范围为1~10 V,随机取 3 V、5 V、7 V。

表1 各波形测量峰值

当调节时,峰值的波动会有所变化。显然,当电位器的数值为3 V或7 V时,各个波形输出峰值的波动较大;当取值为5 V时,波动最小。由此可以得出,系统在电位器取值为5 V时,输出信号质量最好。

图5 输出特性曲线

图5为输出特性曲线。峰值的大小与频率无关,以三角波为例,当频率增大或者减小的过程中,三角波的峰值不随其发生变化。当电位器的位置改变时,峰值会随着发生改变。

图6~8分别为低频信号发生器实测输出锯齿波、梯形波和三角波形图。

图6 锯齿波输出波形图

图7 梯形波输出波形图

图8 三角波输出波形图

5 结束语

以AT89C52单片机为主控核心,设计一种低频信号发生器的硬件电路和软件部分。系统通过键盘和显示屏可以选择不同种类及频率的波形,波形信号由数字信号转化得到,可以输出方波、三角波、正弦波、锯齿波等多种波形,当需要其它种类的波形时,只需将波形数据下载到单片机中即可,并且频率易于调节。对系统进行了参数测试,结果表明所设计的低频信号装置输出波形质量好,可靠性高,且波形切换和频率调节易于控制,具有较高的实用价值。

猜你喜欢

晶振按键电容
两非门晶振振荡电路的设计
基于有限状态机的按键检测程序设计
基于晶振的高性能时间保持方法研究
几种导致恒温晶振频率偏移的因素分析
恒温晶振环境温度特性测试系统设计
一种多方向导光按键结构设计
PWM Buck变换器电容引起的混沌及其控制
一种降压/升压式开关电容AC-AC变换器设计
投射式多点触控电容触摸屏
基于有限状态机的STM32系统按键识别方法