图3 复位电路图
2.3.3 键盘接口电路
本系统键盘结构如图4所示。
图4 键盘结构电路图
工作原理如下。
(1) 检测键盘上是否有键按下,将行线送入低电平,列线送入高电平。读入P1口的状态来判别。其具体过程如下,P1口输出0FH,即所有行线置成高电平,所有列线置成低电平,然后将P1口状态读入与0FH比较。如果有键按下,总会有一根行线电平被拉至低电平,从而使行输入状态不全为1。
(2) 识别键盘中哪一个键按下,确认有键按下后,保存行扫描时有键按下时的状态X。P1口输出F0H,进行列扫描,保存列扫描状态Y,取出键值Z=X|Y。例如第一行第一列有键按下,那么行扫描读入的状态为00001110,列扫描读入的状态为11100000,最后键值Z=11101110=EEH,然后转去执行相应的服务程序。
2.3.4 数模转换电路
由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。连接电路如图5所示。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0832是电流型输出,在应用时外接运放LM358使之成为电压型输出。
根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。本设计选用直通方式。
DAC0832的数据口和单片机的P0口相连。
CSDA:片选信号输入线(选通数据锁存器),低电平有效。
WR:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存。
图5 数模转换电路图
2.3.5 幅度控制电路
如图6所示,在DAC0832的VREF端接入一个变阻器,这样就可以对输出波形幅度连续可调。其幅度调节原理为:
由D/A的模拟输出公式。当与B为常量时,改变Vr的大小可以相应改变,即改变波形的幅值[7]。由电路图可以看出是由外部电源提供一个+5V的电压,这里通过串联一个滑动变阻器R1。通过改变滑动变阻器R1的大小改变Vr当Vr线性变化时也就实现了波形幅值的连续可调。
图6 幅度控制电路图
2.3.6 LED显示电路
如图7所示在LED显示屏上显示出所调的频率、波形代码。
本机显示使用软件译码动态显示,电路如图7所示。使用软件译码动态显示的原因如下:(1)如果采用静态显示电路,单片机接口资源就会不够用,否则就要进行接口扩展,增大了整个系统的复杂程度;(2)当要制成印刷线路板时,需要占比较大的一块面积;(3)此外,使用动态显示,可以降低很大的功耗,因为每一时刻只有一个LED发光,其功耗为静态显示的1/8。一个LED最大电流为120mA,如用静态显示,8个LED就耗电流960mA,那么变压器就得选32V/32W,价格提高近一倍,稳压块得选7805C(Im=1A),这种管是椭圆壳,在印刷线路板上也得占相当大的面积。综上分析,使用动态显示才是最实惠、方便的方案。
在显示的时候,只需把显示的字码传送到P2口,再通过74LS373执行数据锁存,位选控制信号通过P3口实现。由于使用的是共阴极得数码管,当需要显示哪一位的时候,只需在相应的位选控制信号口输出低电平即可。例如,如果需要在第一个数码管显示P,只需在P2口输出73H字段码,同时P3口输出FEH位选码。 51单片机函数信号发生器的设计+源码+电路图(6):http://www.751com.cn/tongxin/lunwen_335.html