BOUT2:放大信号输出(2)。 Vcc:电源。
4558特性有很多,2MHz单位增益带宽保证,NE4558 的电源电压为 ±18v,具备短路保护功能,无需频率补偿,无闩锁效应,宽广的共模和差动电压范围,低功耗。因此被广泛运用在各种电路中。 2.3.3 键盘电路原理
在单片机应用系统中为了控制系统的工作状态,以及向系统输入数据,应用系统应设有按键或键盘,实现简单的人机会话。键盘是一组按键的组合,键通常是一种常开型按钮开关,平时键的两个出点处于断开状态,按下键时他们才闭合。从键盘的结构来分类,键盘可以分为独立式和矩阵式两类,每一类按其识别方法又都可以分为编码和未编码键盘两种。键盘上闭合键的识别由专门的硬件译码器实现并产生编号或键值的称为编码键盘,由软件识别的称未编码键盘。在由单片机组成的测控系统及智能化仪器中,用得较多的是未编码键盘,我这里也使用未编码键盘。
未编码键盘又分为独立式键盘跟矩阵式键盘。
(1)独立式未编码键盘结构的工作原理及接口 在单片机应用系统中常常需要简单的几个键完成数据、命令的输入,此时可采用独立式键盘的结构。其接口如图2.10所示。此接口电路的工作原理很简单,无键按下时,各输入线为高电平;有键按下时,相应的输入线为低电平,CPU查询此输入口的状态就可知是哪个键闭合。采用一键一线的方法,当按键的数目增加时,将增加输入口的数量,为了减少占用输入线数,可采用矩阵式结构的键盘。
+5V
图2.10 独立式未编码键盘
(2)矩阵式未编码键盘结构的工作原理 如图2.11所示是4*4的键盘接口,它是矩阵式的结构。图中键盘的行线(X0~X3)与列线(Y0~Y3)的交叉处通过一个按键来联通,行线通过电阻接+5V,当键盘上没有键闭合时所有的行线和列线都断开,则行线
- 11 -
都呈高电平。当键盘上某一个键闭合时,则该键所对应的行线和列线被短路。例如:6号键被按下闭合时,行线X1和列线Y2被短路,此时X1的电平由Y2的电位所决定。如果把行线接到单片机的输入口,列线接到单片机的输出口,则在单片机的控制下,先使列线Y0为低电平,其余三根列线Y1、Y2、Y3都为高电平,读行线状态。如果X0、X1、X2、X3、都为高电平,则Y0这一列上没有键合。如果读出的行线状态不全为高电平,则为低电平的行线和Y0相交的键处于闭合状态。如果Y0这一列上没有键合,接着使列线Y1为低电平,其余列线为高电平,用同样方法检查Y1这一列上有无键闭合。依此类推,最后使列线Y3为低电平,其余的列线为高电平,检查Y3这一列上是否有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描。CPU对键盘扫描可以采取程序控制的随机方式,CPU空闲时扫描键盘;也可以采取定时控制方式,每隔一定时间,CPU对键盘扫描一次,CPU可随时响应键盘输入请求;还可以采用中断方式,当键盘上有键闭合时,向CPU请求中断,CPU响应键盘输入中断,对键盘扫描,以识别哪一个键处于闭合状态,并对键输入信息作出相应处理。CPU对键盘上闭合键的键号确定,可以根据行线和列线的状态计算求得,也可以根据行线和列线状态查表求得。
12 X3
8 X2
4 X1
0 X0
1 2 3 5 6 7 9 10 11 +5V 13 14 15 Y0 Y1 Y2 Y3
图2.11 4*4矩阵式未编码键盘结构图
根据我设计的电路特点,只需要用到4个按钮来选择波形,实现的功能也比较简单,所以我采用独立式未编码键盘结构。键盘原理图如图2.12所示。
- 12 -
VCCR11KR21KR31KR41KS1SW-PBS2SW-PBS3SW-PBS4SW-PB 图2.12 键盘原理图
2.3.4 LED显示电路原理
在这里使用的是发光二极管,发光二极管通常用砷化镓、磷化镓等所制成的。当这种管子通以电流时将发出光来,这是由于电子与空穴直接复合而放出的能量的结果。当PN结处加以一个适当的正电压时,此管即导通,也就会发光。这样我们就能知道我们所需要了解的信息,在此设计中发光二极管通过软件的控制显示波形种类。LED电路图如图2.13所示。
D1LEDR101KD2LEDR111KD3LEDR121KD4LEDR131KVCC
图2.13 LED电路图
4个LED的负极分别接P1.4~P1.7,当P1口高4位任意一个为低电平时,其对应的LED就会导通,从而发光,通过程序的控制可以设计波形类型的显示。
- 13 -
第三章 系统软件设计
软件设计上,根据功能分了几个模块编程。模块主要有:主程序模块、锯齿波模块、三角波模块、正弦波模块、方波模块、延时子程序模块等。
显示波形模块是利用DAC0832的8位特点,把波形的数据以8位数据的形势送进CPU中,只要一按键就能显示波形。
3.1主程序流程图
如图3.1所示
开始 Key1按下了吗? N Key2按下了吗? N Y 输出锯齿波 Y 输出三角波 Key3按下了吗? Y 输出正弦波 N Y 输出方波 Key4按下了吗? N
图3.1主程序流程图
本软件设计过程中主要实现利用按键来控制不同波形的输出,当按键1按下时,函数发生器就输出锯齿波;当按键2按下时,函数发生器就输出三角波;当按键3按下时,函数发生器就输出正弦波;当按键4按下时,函数发生器就输出方波。通过按键可以以任意循环方式输出不同波形。
- 14 -
3.2子程序流程图
锯齿波流程图如图3.2所示。
开始 A=00H A送到0832输出 A=A+1 A=FFH? Y N
图3.2 锯齿波流程图
锯齿波产生将00H送入寄存器A中,DAC0832输出A中的内容,当A中的内容等于FFH返回开始,当A中的内容不为FFH时,A中的内容累加,从而输出波形。
锯齿波产生子程序如下: SANTOO: MOV A ,#00H MOV DPTR,#7FFFH LLOOP: MOVX @DPTR,A
INC A ;
CJNE A,FFH,LLOOP RET
三角波流程图如图3.3所示
- 15 -