返回主页 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 进入论坛

学林杯第二届单片机征文大赛公开评奖稿件 深圳学林电子www.51c51.com 版权所有 转载注明出处   请不要忘了:现在为你喜欢的稿件投票!
作品1:征文-我是怎样开始学习电子的 山西省大同市作品6:多功能自行车测速仪  北京大学      崔健
作品2:数字温度计的设计  杭州电子科技大学     陈智杰作品7:带闹钟智能电子钟 深圳市天安数码城      谢玉平 
作品3:如何使自制的单片机电子钟走时精准     舒新生作品8:电话回拨服务告知装置 武汉市桥口区     詹显德
作品4:宽带数控放大器 陕西省西安通信学院      韩宏伟作品9:单片机应用之摩斯密码电子锁广东省顺德      吴志光
作品5:一些事,一些情  韶关市     冯敬锋作品10:基于aduc842瞬态波形存储器 华中师范大学物理学院     杨程泽
作品11:基于AT89S52单片机的毫欧表电路设计中南林业科技大学涉外学院     郭海

作品1:字符型液晶显示模块       邓杰   作品6:基于89C51的智能转速计  淮安信息学院      宋炎
作品2:8X8LED点阵屏循环显示作品7:用虚拟IIC总线实现24C02的应用  南阳理工学院     张全领
作品3:虚拟仿真仪器UMPS的应用     牛余朋作品8:语音编程、远程控制试验板      社区乞丐
作品4:万年历数字钟及可调时钟系统作品9:定时开关控制器的制作    魏军丞
作品5:点矩阵显示器的应用会员lfgbody    林发根作品10:AD080951单片机中的应用     文/黄海

语音编程、远程控制试验板

湖北省孝感市 社区乞丐

一、前言:

为参加本站组织的征文大赛,本人在我们研制的“远程控制、灾情报警系统”的基础上,经过改进、优化和精简,重新设计出了一款“语音编程、远程控制试验板”。该板不仅可供爱好者进行远程控制的学习、试验和研究,还可用于对89S51芯片的编程、对ISD1420语音芯片的编程,同时还可作为初学者编写流水灯之类的入门学习工具。该试验板具有工作稳定、可靠性好等特点,适合具有一定电子技术基础的爱好者制作。本文资料详实,软件配套齐全,接插端口设计完备,工作原理及使用说明叙述完整,因此也可直接供厂商用于专业化产品生产和销售。

考虑到本站的读者多数都是初学者,因此在写稿时尽量采用了教材式的写法,由于是网络稿件,因此在写作手法上并不十分严谨,但力求叙述深入浅出,以便让每个读者都看得懂、学得会。但是由于既要照顾到初学者,同时又要考虑基本功比较扎实的老读者,因此在写作技巧上很难把握,我深信,各位通过阅读本文后,对文中涉及到的有关概念以及远程控制的基本原理都会有一个清晰的了解和掌握,对于悟性较强的读者甚至还能从本文领略到电路设计的一些技巧。但由于时间紧迫,再加上我们的工作十分繁忙,尽管文稿经过了认真的校对,仍难免会有疏漏和不当之处,在此敬请各位同仁批评与指正。

二、远程控制的概念

本文所说的远程控制,简单的说,就是利用打电话的方式,通过按压电话机上的按键,来遥控远方的电器。为了实现远程控制的功能,在接受控制的地方必须要有一个接收和控制装置,且该装置要和电话线连接起来,这样接收装置才能接收到电话线上的各种控制指令,从而实现对家用电器的遥控操作。由于这种控制方式具有控制距离远,不受地域和国界限制,只要在有电话的地方就能操作,而且不占用无线电资源,抗干扰能力强等优点,因此具有广阔的发展前景。该语音编程、远程控制试验板就是专门用于这种学习和开发的专用工具。

三、该试验板功能、特点简介

1、  可进行远程控制试验,具有8路控制输出,用LED显示各路输出状态;

2、  可用拨码开关完成对语音芯片的分段录音编程试验,即本地硬编程录音试验;

3、  可用电话远程对语音芯片进行分段录音编程试验,即远程软件编程录音试验;

4、  可对录音效果进行本地监听及远程监听;

5、  可对89S51芯片进行编程,芯片采用锁紧插座固定,插拔芯片方便;

6、  可供初学者进行流水灯之类的入门学习和试验;

7、  具有交流电源供电及USB供电两种供电方式;

8、  PC接口采用并口连接,连接电缆及接插端口全部使用标准件;

9、  软件配套齐全,并全部采用中文化操作界面。

四、电路工作原理

电路方框图如图1所示,由铃流检测电路、摘机挂机电路、双音频解码电路、单片机89S51电路、控制接口及指示电路、语音录放电路、音频放大及监听电路、下载线及PC接口电路、电源电路等部分组成。

整机电路如图2所示,下面对各单元电路的工作原理以及设计要点予以详细介绍。



在介绍各单元电路以前,请有条件的读者首先打印出一张电路原理全图,以便于在阅读本文时对照察看,另外,文中涉及到的单元电路与总图保持一致,如果身边放一张全图的话,也便于将单元电路和全图对照,这样阅读起来便于理解。

1、      电源电路

电源电路的作用是提供稳定的+5V直流工作电压,供试验板工作,电源电路如图3所示。该试验板采用交流电源供电和USB供电两种方案。

3J49V交流电源接口,使用交流电源供电时,需要外接一个220V9V的电源变压器,功率为15W左右即可。变压器次级线圈输出的9V交流电压通过J4引入,再经过全桥QD2进行全波整流,C19C20滤波,IC6稳压后,输出稳定的+5V直流工作电压。

全桥QD2的外形如图4所示,内部有4个二极管组成,由于形状是圆形的,因此通常称它为“园桥”。将4个二极管封装在一个圆形的模块内主要是便于安装。常用的全波整流模块除了园桥以外,根据形状不同还有方桥和单列直插式的扁桥等,如图5、图6所示。

       

无论是园桥、方桥、还是扁桥,作用都是一样的,其内部的4个二极管都连接成图7所示的全波整流电路。

在全桥引出的4根线中,标有波浪线符号的两个管脚接交流电9V;标有+”号的管脚为正极输出,标有“—”号的管脚为负极输出。

39V的交流电压经全桥QD2全波整流后,输出的脉动直流电压经过电容C19C20滤波、三端集成稳压器IC6稳压以后,从IC6的第3脚输出稳定的5V直流电压,该5V电压再经过C21C22进一步滤波后,输出更加平滑、稳定的直流电压。

IC67805型三端稳压器,外形如图8所示。该稳压器的最大输出电流可达1A,能满足该试验版的工作需要。7805型稳压器输入、输出端电压差通常取3V——7V之间比较合适,如果输入、输出电压差过大,当电源电流较大时容易发热,因此使用时最好加装散热片。

3C20C22的作用是滤除掉线路上的高频脉冲干扰,由于电解电容对高频电脉冲滤波效果较差,因此在电解电容C19C21两端各并联了一个0.1uF的瓷片电容,瓷片电容的高频滤波性能要比电解电容好得多,因此可弥补电解电容高频滤波较差的不足。发光二极管LED10为电源指示灯,R39LED10的限流电阻,该电阻的阻值通常取500欧姆——1K之间,该限流电阻的阻值取的越大,LED亮度越小,反之,限流电阻越小,LED亮度越高,对于高亮度的发光二极管,有时限流电阻的阻值可以取2K以上的。电源指示灯要用绿色的,这是行业标准,除了电源指示灯以外,该板剩余的所有LED全部用红色的,以达到醒目的效果。在电源+5V的输出端还串接了一个30欧姆的保险电阻R38,该电阻由于阻值很小,正常工作时两端的电压降极小,不会影响电路的正常工作;但是在业余调试、试验的时候,如果出现负载短路的意外发生,尤其是板子上出现电源短路的情况时,此时该电阻就能起到限制输出电流,保护电源及负载元件的作用。

3CZ1USB电源插头,正极要接在保险电阻R38的左侧,使USB取出的电流要经过保险电阻R38以后再供给负载使用。平时试验时可使用USB供电,当板子调试完成,作为正式控制产品使用时,就不可能长时间的连接在电脑上,因此要用外接9V变压器供电。

2、      铃流检测电路

铃流检测电路的作用就是检测电话线上的铃流信号,以便于为单片机提供电话铃响的次数。由于本文后面的论述要涉及到电话机和电话线的一些术语,因此很有必要给各位介绍一下这些常用的名词术语,以供初学者参考。

(下面红色的部分为参考资料,供没有电话基础知识的人员阅读)

铃流:简单的说,所谓铃流,就是电话机在铃响的时候电话线上的电流就是铃流。

听筒:所谓听筒,就是打电话时手拿着的那个部分,它的一端放在耳朵边,用来听取对方的声音,另一端放在嘴边,里面有个小话筒,因此叫听筒。

待机状态:所谓待机状态,就是电话机的听筒没有从电话机底座上拿起来,也就是既没有打电话,而且电话机也没有响铃,此时电话机处于等待使用的状态,因此叫“待机状态”。

叉簧:叉簧其实就是电话机的开关,每当拿起听筒时,开关就自动接通了,每当将听筒放下时,开关就自动断开了,这个开关就叫做叉簧。为什么叫“叉簧”呢,这是由于过去生产的老式电话机放听筒的那个架子就像个树杈一样,底下还有个弹簧,因此叫“叉簧”。“叉簧”这个名词一直沿用到现在,并且成了专用的术语。

“摘机”和“挂机”:所谓摘机,就是将听筒从电话底座上拿起来。摘机后,电话机的叉簧接通,电话机主板接通线路上的48V电源,线路上就有了电流通过;所谓挂机,就是将听筒放回到电话机的底座上,此时电话机的叉簧断开,线路上就没有了电流通过。挂机状态也叫待机状态,但是我们通常将听筒放回到底座上的瞬间叫做“挂机”,挂机以后的状态叫待机状态。相应的,拿起听筒的瞬间叫做摘机,摘机后或电话铃响时的状态叫占线状态。

在待机状态下,线路上的48V直流电压是由电话机房送来的,是供电话机线路板使用的工作电压。由于电话线是非常细的导线,电话线路的距离又很远,因此电话线的线路电阻通常都很大,从电话机房送出的48V直流电压大部分都要降落在线路电阻上,只有少量的电压供给电话机线路板使用,因此实际上摘机后电话机两端的电压只有6——12V左右。

占线:当电话已经摘机,正在拨打或通话,或者虽然没有摘机,但是电话正在响铃,电话线此时的状态就叫占线。

铃流电压:电话机铃响时,是因为电话机房对电话机送来了高达100V左右的交流电压,这个电压就是铃流电压,该电压只有在电话机铃响的时候才会存在,摘机以后就没有了。铃流电压进入电话机后,直接通过图9中的电容C进入收铃电路,而没有经过叉簧K,因此在没有摘机的情况下电话也会响铃。

下面接着讲我们的试验板:

该试验板的铃流检测电路如图10所示:由C1R1DIC5R2组成,由于电容器C不能通过直流电压,因此在待机状态下收铃电路没有电流通过。当有人打来电话时,电话线路上就出现了100V的铃流电压,该铃流电压是交流电压,因此将通过C1DIC5内部的LEDR1导通形成回路。IC5是通用的光耦合器,型号为4N25,其内部有一个发光二极管LED(左)和一个光敏三极管(右)组成,当光敏三极管接受LED照射时,集电极和发射极立即导通,此时A点电压降为0V;当没有铃流信号时,IC5内部的光敏三极管不导通,A点电压为高电平VCC。在交流电的两个半周中,其中有一个半周经过二极管D导通,另一个半周通过IC5内部的LED导通,导通电流的流向见图11所示。由此可见,A点的脉冲是随着铃流信号的出现而出现的,因此只要检测到A点有低电平脉冲出现,就说明线路上有铃流信号了,而且A点在单位时间内出现的脉冲个数就代表了振铃时间的长短,因此通过累加A点的脉冲个数就可以判断出振铃时间的长短和铃响次数的多少。A点的电平状态连接到单片机89S51T1(计数器)口,即P3.5端口,用来统计铃响的次数。

另外图中的RZ是一个脉冲高压吸收电阻,该电阻直接连接在电话线的入口处,平时该电阻是不导通的,阻值为无穷大,因此对电路没有任何影响,但是一旦线路上因雷电等因素出现瞬间的脉冲高压时,此时RZ立即导通,并出现永久性短路,将电话线路两端给短接起来,避免该试验板上的其他元件遭受雷击等高压脉冲影响,对试验板起到了很好的保护作用。

3、      摘机挂机电路

如图12所示,摘机、挂机电路其实就是一个电子开关,它的作用是完成摘机、挂机的动作。试验版和电话线之间虽然是连接起来的,但是中间还必须要有一个电子开关存在,平时这个开关应该处于断开的状态,以免造成电话线占线,当你打电话到家里来,希望控制家中的电器时,如果出现了若干次铃响而且没人接听,这时候就需要让试验板和电话线路接通,即完成摘机动作,也就是将试验板和电话线之间的开关打开,这样试验版才能接收到线路上送来的各种控制指令,这个电子开关就是摘机挂机电路。

摘机挂机电路位于试验板的最前端,是和电话线直接连接的。该电路由QD1V1V2等元件组成,图12中的L1L2两个点是和电话线连接的。QD1是由4个分立的二极管组成的全波整流电路,其作用是将线路上不确定极性的电压转换成确定的极性,也就是说,L1L2两条线的正负极是不确定的,因为电话线在接入电话机或者试验板的时候是不分正极和负极的,可以随便连接,但是到了试验板内部,就必须区分出来哪一个是正极、哪一个是负极,用全波整流电路QD1即可将正负极给定下来,因为无论L1L2是如何连接的,从QD1出来以后,正极和负极总是固定的,因为TP4这一点始终是正极,这样线路上48V的直流电压经QD1出来以后,其正负极就明确了。

下面我们分析一下摘机、挂机电路的实现过程,即电路的工作原理。

请看图12TP1TP2后面的电路我们暂且不用管它,首先看图中TP3这个点,该点是和单片机的P1.4口相连接的。请读者将图12和整机电路图对照一下,我们首先分析一下当P1.4口的状态为低电平0时的情况。

P1.4为低电平0时,TP3相当于对地短路,这样三极管V2由于没有基极偏置电压因此不能导通,即V2的集电极没有电流通过,相当于开路,由于V2的集电极是通过电阻R4V1基极连接的,当V2集电极没有电流时,V1的基极也就没有偏置电压和电流,因此V1也不会导通,此时的V1也处于开路状态。

由以上分析可见:当单片机通过P1.4口给TP3点施加一个低电平信号0时,开关管V1并不会导通,电话线路上也没有电流通过,相当于电话机的叉簧断开。

接下来再分析分析一下当P1.4口的状态为高电平1时的情况,如图13所示。和上面的情况正好相反,当P1.4为高电平1时,TP3点有+5V的高电平直流电压,该电压就是三极管V2的基极偏置电压,由于有了基极偏置电压,因此V2导通了,V2的集电极也有了电流通过,由于V2的集电极是通过电阻R4V1的基极连接的,当V2集电极有电流时,V1的基极也就有了偏置电流和电压,因此V1也就导通了,此时从QD1出来的正电压将通过V1的发射极和集电极后,再经过R5形成导通回路,并且将线路上的信号在R5两端产生电压降,此时R5相当于电话线路的负载电阻,电流的流向如图13中的红色线条所示。

由以上分析可见:当单片机通过P1.4口给TP3点施加一个高电平信号1时,开关管V1导通,试验板接通线路上的遥控信号,相当于电话机的叉簧接通,从而实现自动摘机。平时P1.4为低电平0,因此V1断开,相当于试验板与电话线之间断开了,起到了挂机的效果。

以上的论述可以简单的归结为:当单片机P1.4口为高电平时,V1导通;当单片机的P1.4口为低电平0时,V1不导通,因此V1就好像一个受P1.4口控制的开关一样。如图14所示。实际上V1就是一个电子开关,该开关的导通与否受到单片机P1.4口的控制。因此摘机、挂机电路的原理可简化为图14所示。

摘机挂机电路是可以用继电器来完成的,如果用继电器设计的话电路要简单一些,但是我们在调试的时候发现继电器也有一些弱点,比如耗电大,5V的继电器吸合电流高达30多毫安,是89S51静态电流的近3倍,体积和重量也比较大,另外继电器也容易产生火花干扰,为解决这些问题。后来我们更换成晶体管摘机、挂机电路了。更换后效果十分满意,而且成本也有所降低,一举两得。

4、      双音频解码电路

在开始叙述本节以前,首先给大家谈谈“双音频”的概念。为了弄清楚双音频的来龙去脉,还必须要从电话的制式谈起。最早的电话机是带有一个“手摇把”的,后来慢慢的开始出现了“磁石电话”、“供电电话”、一直发展到现在人们广泛使用的“自动电话”。由于“磁石电话”、“供电电话”早已淘汰,因此今天重点谈一谈自动电话的制式。

从自动电话的制式来分,可分为“脉冲制式”及“双音频制式”两种。所谓“脉冲制式”,也就是拨号的时候电话机发出的是一串一串的“无电流脉冲”,比如当拨号码1的时候,发出去的是1个“无电流脉冲”,也就是一个“断电脉冲”,拨2的时候,发出去的是两个连续的“无电流脉冲”……,当拨号码0的时候,发出去的是10个连续的“无电流脉冲”,下面的图15是脉冲电话机拨武汉区号027时线路上出现的脉冲图谱:

从图中可以看出,待机状态下线路上是没有电流的,摘机后线路上才有电流,拨号时,拨的号码是几,线路上就出现几个连续的、没有电流的脉冲间隙,比如拨2的时候,就好像电话线被快速的断开了两次一样,因此老式的电话机还能用拍打叉簧的办法拨号。年龄稍大些的朋友可能都见到过带有“拨号盘”的电话机,这种带有拨号盘的电话机就是脉冲电话。脉冲电话容易出现拨错号的现象,因为当线路接触不良,刮风时线路接头时通时断,这样就会出现错号,比如你本来是要拨石学军家电话的,结果却拨到老丐家里来了,原因就是你刚拨完6这个号码,电话线接头被风一吹,吱啦了两下,这样你拨的6就变成8了,这种情况在线路不好的时候是很常见的现象,而且脉冲信号经过长途线路传送以后,由于线路电感和电容的影响,脉冲的波形会发生严重畸变,本来上升沿和下降沿都是很陡的波形,传到对方以后很可能就完全变样了,因此这种电话已经被淘汰了。

所谓“双音频制式”,就是拨电话的时候,拨每一个号码,发出去的都是由两个不同频率的音频信号组合起来的双音频信号。比如拨0的时候,发出去的两个音频信号分别是941HZ1336HZ,拨9的时候发出去的两个音频信号分别是952HZ1477HZ等等。我们用电话进行拨号时都能从听筒中听到一种按键的声音,这种声音其实就是由两个不同的频率组合成的复合音。每个号码都是由两个音频信号组合起来的,因此叫“双音频”。图16列出了每个号码与双音频频率的对应关系。

采用双音频拨号的优点是抗干扰能力强,对电话线路的质量要求比较低,且不会出现错号现象。

拨号的时候,需要将每一个号码都转换成一对双音频信号,这种转换就叫做编码;解码就是将接收到的双音频信号重新还原成数据信号。编码和解码都有专用的芯片,编、解码芯片的种类和型号很多,在我们的试验板中由于只接收,不发送,因此只使用了一片供接收用的解码芯片,我选用的是MT8870型解码芯片,该芯片的技术手册请参考随本文一起上传的“mt8870.pdf”文件。

下面我们首先看看厂家推荐的mt8870的典型应用电路,电路图如图17所示。

mt8870的应用资料可以看出,该芯片共有18个引脚,而且外围电路非常简单,对于初学者来说,我们不需要考虑8870的内部构造,只需要按照上图选用元件,并正确连接即可。图17中右下角的方框内是生产厂家推荐的外围元件参数,该参数除了晶体必须使用3.58MHz或者更精确的3.579545MHz的标准晶体以外,其他的元件允许误差可以放得很宽,比如R1推荐使用102K的,我们选用100K左右的就行了,R2要求使用71.5K的,我们选用75K左右的就可以了,当然选100K的也是可以工作的。为了让读者对该芯片有更多地了解,下面结合图17对几个重要引脚的功能进行简单介绍:

3脚:负反馈输入端,外接电阻R2的阻值决定了芯片对输入信号的放大量,R2越大,负反馈越小,因此放大量也就越大。通常R2100K——200K,最大不要超过470K,因为放大量再大就没有必要了。

                                                                 附表1

5、第6脚:接地即可。

7、第8脚:外接3.58MHz的标准晶体。

11121314脚:为4位数据输出端,该4个引脚的状态取决于输入端所接收到的双音频信号的频率组合。也就是取决于对方按压的是哪一个号码键,其对应关系见附表1所示。

15脚:每当该芯片接收到一对有效的双音频信号时,该脚就变为高电平1,接收的双音频信号消失后,该脚即刻变为低电平0。因此单片机通过判断该脚的状态,来确定线路上的信号音是否为有效的双音频拨号音

根据以上资料,本人设计的8870的应用电路如图18所示。

18中,双音频信号输入点与图2中三极管V1集电极相连接,当V1导通时,从电话线路上送来的双音频信号音经过V1后进入图18的输入点,经过MT8870内部放大处理以后,从数据输出端Q1Q2Q3Q4输出解码后的状态数据。该数据输出端与单片机的P1.0P1.1P1.2P1.3分别相连,从P1.0——P1.3口进入单片机进行数据采集、判断和处理。另外,从8870的第15脚出来的状态信号进入单片机的P3.3端口,通知单片机读取数据。

5、      单片机89S51电路

单片机89S51电路大家应该都不陌生,在此只作简单介绍,电路图如图19所示:

19中,第1819脚接12MHz石英晶体,在晶体两端各接一个30PF的电容到地,接电容的目的有三个:一是加快上电后的起振速度,二是保证起振后能够持续平稳的振荡,不至于出现停振,三是可以通过改变两个电容的容量,微调振荡频率。第9脚为复位端,在该脚接一个10K的电阻R12到地,以保证该脚在正常工作时为低电平0,同时,为了在加电时给该脚一个高电平的复位脉冲,因此用一个10uF的电解电容C4连接到电源Vcc,利用电容两端的电压不能突变的特性,加电后给第9脚施加一个短暂的高电平脉冲,该脉冲的宽度与电阻R12的阻值、C4的容量都有关,电阻R12越大,电容C4越大,加电后第9脚的高电平脉冲就越宽;相反的,如果R14越小,电容C4越小,加电后9脚的高电平脉冲宽度也就越窄。一般来说,当9脚的下拉电阻为10K,电容C4的容量不小于10uF时,复位脉冲的宽度即可满足要求。另外,在电容C4两端还接有一个手动复位按钮AN1,为了避免按压按钮时电容C4两端的电压通过按纽接点瞬间放电造成对按钮接点的大电流冲击,为此在按钮支路中串入了一个100欧姆的小电阻R11,这样电容通过R11放电时,就不会出现瞬间的大电流放电脉冲,因此可有效的避免按钮接点氧化和接触不良的现象。单片机的第31脚和电源Vcc连接,第40脚接电源Vcc,第20脚接地即可。单片机使用不到的端口悬空即可。

6、      控制接口及指示电路

该试验板的外接接口以及指示电路包括:

J1:外接电话线接口,允许和电话机并联;

J2:控制输出端,共有8路控制输出,可实现对8路外接电器进行控制操作,比如开机、断电等控制操作;

J3:外接8欧姆监听喇叭(可选),当外接喇叭时可对语音芯片输出的语音信号进行本地监听;

J4:外接电源变压器接口,当使用交流电源供电时,该接口要和外接变压器的9V电压抽头相连接;

CZ1USB供电插口,可直接和USB连接线连接,以便从USB获取+5V工作电压;

CZ2:并口插座,用于和电脑的并行端口连接,以实现下载线的功能。该试验板将下载线的74HC373芯片与试验板设计成一体化的结构,这样试验板与电脑的连接选用打印机的加长连接线即可,由于端口和连接线都是标准件,因此保证了通用性、可靠性和稳定性。

SW-DIP4:本地硬编程录音用的拨码开关,该开关主要用于对语音芯片ISD1420的硬编程录音,如果使用远程软件编程录音时,应将SW-DIP44个拨码开关都放置于“OFF”位置。

7、      语音录放电路

语音录放电路的作用是用于操作过程中的语音提示。经过挑选,我选中了ISD1420型语音芯片。该芯片技术成熟,稳定性好,音质清晰,价格比较便宜,录音时间为20秒,且可分段录放音,断电后录音信号不会丢失。虽然1420录放音时间稍微短了些,但作为试验板已经足够用了,时间长的语音芯片价格是很贵的。有关ISD1420的详细单片机资料请参考随本稿件一起发出的isd1420.pdf文件。

ISD142028个引脚,各引脚的功能如图20所示。

我们首先看一看厂家推荐的典型应用电路,如图21所示。该电路看上去比较复杂,但是只要抓住了几个关键点,其实就很简单了。我们首先看一下图中最左边的三个按钮S1S2S3。其中S1S2都是放音键,所不同的是,S1键为低电平有效,S2键为下降沿有效。所谓低电平有效,就是将S1按压下去,让23脚变为低电平才能让它放音,如果在放音过程中23脚变为了高电平,那么它就会立刻停止放音;所谓下降沿有效,就是按压一下S2,给24脚一个短暂的下降沿脉冲,该芯片就能进入放音状态,直到一段声音放完为止。在此顺便说一下,所谓下降沿就是电平的状态从高电平到低电平的跳变过程。如果在放音过程中24脚变成了高电平,那么它仍然是处于放音状态的,放音并不会结束,直到这一段声音播放结束为止。对于我们的试验板来说,这两个键只需要一个就够了,因此在试验板上只保留了24脚上的这个按钮,该按钮在试验板电路图中的符号为AN3,因此在做试验的时候,只要按压一下AN3,试验板就会立刻进入放音状态。接在23脚的那个按钮就不需要了,因此在试验板中是不存在的。接在27脚的按钮S3为录音键,由于录音键只有这么一个,因此在试验板中必须要保留,它在试验板电路图中的符号为AN2。该按钮为低电平有效,也就是说,要按压着这个按钮不松手,就可以继续录音,一旦将按钮抬起来,录音就会停止了。

接下来我们再看图21中语音芯片的A0——A7,对应的引脚为1——6脚和9——10脚,这7个脚为地址端,在上面的图中这些引脚都是和地连接的,实际使用中不能全部接地,因为这几个地址脚的电平状态除了决定录放音的方式外,还决定录音放音的是哪一段声音,因为ISD1420是可以分段录放音的,该芯片最多可以将储存声音的空间划分成160个片断。由于1420的录放总时间只有20秒,因此我觉得没有必要分那么多,再说主要是为了学习和试验么,我认为20秒的声音最多分成16个声音片断就足够了,因此我选用了4条地址线。从理论上来讲,4条地址线根据电平的高低状态不同,最多有44=16种状态组合,即可以将录音总时间分成16段。在试验板电路中,我使用的是第1、第2脚和第4、第5脚这4条地址线,至于为什么用这4条线,大家就不要再问了,只管这么用就行了,因为我已经考虑的十分周到了。这4条线的状态与录放声音段的划分情况如下的附表2所示:

                            附表2    录、放音分段编码表

 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

A0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

A1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

A3

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

A4

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

上表中的0表示该地址线的状态为低电平01表示该地址线的状态为高电平1。比如地址线A0A1A2A3的状态为0000时,可以对第一段进行录音和放音,为0001时,可以对第二段进行录音和放音……依此类推。需要说明的是,每一段的录放音时间长度并不是固定的,是可长可短的,可根据需要来掌握,比如录音时,只要按压着录音键不松手,就可以继续录音,但是总的录音时间长度不能超过20秒钟,当录音键一旦抬起来,就录不进去了。放音时,只要按压一下放音键,录入相应地址的一段声音就会从头到尾完整的播放出来。

为了便于控制A0A1A2A34条地址线,因此需要将这4条线单独引出来,以便于和单片机连接。另外,由于图21的电路中,芯片的引脚没有按照实际的排序分布,因此我将电路进行了一番修改,使它的引脚按照实际的排序来分布,并且将所有需要使用的引脚都给引出来,以便于和单片机等电路连接,这样就成了如图22所示的状况:

在图22所示的电路中,标有字母“A”的部位有4条线,这4条线就是确定录音分段用的地址线,是要和单片机连接的;标有“B”那一条线是ISD1420的语音输出线,由于从ISD1420出来的音频信号十分微弱,因此需要进行功率放大;标有“C”的那一条线是和话筒MIC连接的,由于从电话线出来的信号也需要送入ISD1420进行录音,因此需要将这条线引出来,以便于设法耦合到电话线路上去;标有“D”的部位本来只有一个话筒MIC,由于需要将电话线路上送来的声音信号耦合到语音芯片ISD1420中去,因此在MIC的另一端接了一个电容器C19到地,这样从电话线进来的声音信号就能够在话筒MIC两端产生电压降,从而将电话线路上的声音信号耦合到ISD1420的输入端即第1718脚了。标有“E”的部位也有两条线,这两条线是和录、放音按钮相连的,由于远程控制录音和放音时需要由单片机来控制,因此也要和单片机相连,以便于实现通过电话线在远方进行录音操作和放音操作;标有“F”的部位接了一个4位的拨码开关,这个开关是用来对语音芯片的录音地址进行编程用的。该开关断开时,与开关相连的芯片引脚为高电平1,当任一个开关接通时,与该开关相连的芯片引脚为低电平0。硬编程时,通过拨动拨码开关的组合,可以对16段语音分别进行录音编程。如果使用软件编程,就要将4位拨码开关全部放置于断开状态,以免硬件拨码开关的状态与软件冲突。

也许有读者会发出这样的疑问:当拨码开关接通时,不仅仅是将ISD1420的相应引脚接地了,由于该开关和单片机的P0口也是连着的,如果单片机端口输出的是高电平1,开关要是接地的话,那会不会造成短路呢?其实这种担心是多余的,这个问题在我过去的贴子中已经讨论过多次了,大家知道,单片机P0口输出的高电平是无效的,也就是说,你给P0口置高电位1,实际上端口的电压并不是5V,而是远远低于5V,要不然怎么还要在P0口接上拉电阻呢?所以不会造成短路,放心使用就行了。

8、      音频放大及监听电路

音频放大电路的作用是放大语音芯片输出的语音信号。由集成块IC4完成,IC48脚封装LM386功放芯片,该芯片使用非常简单,只需要按照如图所示的电路连接即可,下面对LM386功放电路予以简单介绍。

电路图如图23所示。从语音芯片IC3输出端14脚输出的语音信号经C14送给音量调整电位器R33进行音量调整,从R33的中心抽头提取出音量调整以后的声音信号送给IC4的第3脚,从3脚进入IC4进行功率放大,经IC4放大以后从第5脚输出,从5脚输出的信号又分为3个支路:第一个支路经C15耦合给外接监听喇叭,当外接喇叭不使用时,由R35充当功放负载;第二路经C16R34入地,由于C16的容量和R34的阻值选的都很小,因此可以滤除掉叠加在语音信号中的高频哨叫声,而对频率相对较低的话音信号衰减很弱,起到了静噪效果;第三路经C17R36以后耦合到图1中三极管V1的集电极,以便于在V1导通时将语音信号耦合到电话线路上,以便让操作者听到提示音。

9、      下载线及PC接口电路

下载线及PC接口电路如图24所示。我选用的是并行下载线方案,本人将下载线和试验板设计成一体化结构,好处是可以直接选用通用的PC连接电缆,接口及连接件都是标准件,便于直接外购配件,通用性强,而且性能稳定可靠,避免了手工制作的不稳定因素。有关并行下载线的资料,网上有很多这方面的文章,本站也曾经进行过这方面的讨论,请读者自行查阅,再此不再赘述。

五、安装与制作

该电路尽管本人认为不是十分复杂,但是对于初学者来说还是有一定难度的,因为限于篇幅问题,有的地方还没有展开论述,甚至是一带而过。如果你是一位具有一定电子技术基础的老电子爱好者,那么完全可以尝试一下动手制作。其实做起来是很简单的,方法是,用一块蜂窝板,就是带有许多小孔的那种板子,将元件一个个的插好,然后用飞线连接就行了。有关制作中遇到的问题,欢迎和我交流。另外,如果有单位希望生产这块板子,或者在该板的基础上有特殊要求,需要改进或增加功能的话,本人可提供技术支持。

六、使用方法

1、    软件安装

将随本文一起上传的“S51pro.RAR”文件解压缩到C盘根目录下的“S51pro”文件夹下,解压后在S51pro文件夹下应该有如图25所示的11个文件。

以上的11个文件中,其中有4个文件是隐含文件。首先找到名为“Ease 51Pro.exe”的文件,右键单击它,再点击“发送到”,再点击“桌面快捷方式”,如图26所示:

这样,在桌面上就有了一个名为“”的图标。至此,软件安装就完成了。

2、  联机运行检查:

6步操作:

1步:在试验板上插入一片89S51。取一片完好的89s51芯片,将第1脚对准锁紧插座的拉杆插好,然后压紧拉杆。

2步:连接PC电缆。该电缆一端为“公”,另一端为“母”,将电缆为“公”的一端和电脑的并行打印口连接,为“母”的一端和试验板连接。

3步:将试验板的usb插头插入与电脑连接的usb连接线,插好后该试验板就已经接通电源了。此时电源指示灯LED10应点亮。

4步:双击桌面上的“”图标,打开以下窗口:

5步:在上面窗口中的左上角找到“检测器件”这几个字,字的左边有一个向下的小箭头,用鼠标左键点击这个小箭头,弹出一个下拉菜单,在下拉菜单中找到“AT89S51”,选中它,如下图所示:

6步:点击“检测器件”,如果出现以下画面,就说明该试验板已经检测到89S51芯片了。

至此,说明你的试验板已经联机成功,下面就可以开始做各种试验了。

51pro软件具有检测器件、察除芯片、写入芯片、读芯片保存、写加密等功能,是全中文化的操作界面,该软件不需要更多的介绍,一看便会操作,非常好用。

 

3、  写入一个小程序,试运行一下,看看效果如何:

Keil软件中编写一个P2口流水灯的小程序。程序代码如下:

 

star:             ;开始

   mov acc,#0feh  ;ACC中先装入FEH,即二进制1111 1110

   mov p2,acc     ;ACC的数据1111 1110P2口,让P2.0低,其余高

   acall delay    ;调用延时子程序

   mov r0,#7      ;将立即数7送寄存器R0,以便让数据再移动7次,使之完成一个8位流水过程     

loop:             ;数据移动循环

   rl a           ;RL为左移,将ACC中的数据左移一位,这里aacc的简写

   mov p2,a       ;ACC移动过的数据送p2口显示

   acall delay    ;调用延时

   djnz r0,loop   ;r0中的数据减1,如果不等于0,就返回到loop,即没有移动够7次继续移动

   ljmp star      ;移动完7次后跳到开始处重来,以达到循环流动效果

 

delay:            ;延时子程序

   mov r1,#50

del0:

   mov r2,#100

del1:

   mov r3,#100

   djnz r3,$

   djnz r2,del1

   djnz r1,del0

   ret             ;延时子程序结束,返回到调用处的下一句

end                ;本汇编程序到此结束

 

有关Keil软件的使用我已经在《社区乞丐学51》一文中给出了详细的介绍,在此不再赘述。程序写好以后生成一个名为“P2.hex”的目标文件。

最后将该目标文件写入89S51,写入的方法:

1步:点击以下窗口中的“自动打开文件”:

在弹出的窗口中,点击文件类型中的“*.hex”文件,如下图所示:

 

然后找到你的目标文件“P2.hex”,双击它,如下图所示:

在弹出的下面的窗口中,点击“自动写器件”,如下图所示:

 

当出现“编程器写器件完成”的界面时,就说明你已经将目标文件写入单片机了。

目标文件写入后,我们马上就会看到P2口的8个指示灯LED1——LED8流水点亮的效果了。

 

4、  语音芯片的硬编程录音:

对语音芯片的硬编程录音可以在取下单片机的情况下完成,也可在不取下单片机的情况下完成。如果不取下单片机,要求必须将单片机P0口的8个口置为高电平1,否则,拨码开关就不起作用了。因此,对语音芯片硬编程录音时,最好将单片机取下来。

下面简述硬编程方法:

我们首先在语音芯片的001000110100这三个空间中分别录入一句话,比如:

0010中录入“欢迎使用远程控制系统”;

0011中录入“打开风扇通风请按1,打开窗帘请按2

0100中录入“密码错误,请重新输入密码”

请参考附表2中的录音分段编码表

操作方法:

首先将89S51芯片取下来,然后将4位拨码开关SW-DIP4的状态设置为0010,按压下按钮AN2开始对第一段进行录音,对着话筒MIC说话“欢迎使用远程控制系统”,注意录音时按钮AN2不能抬起来,录音结束后再抬起来。录音过程中指示灯LED9应点亮。

将拨码开关的状态设置为0011,按压按钮AN2开始对第二段进行录音,对着话筒MIC说话“打开风扇通风请按1,打开窗帘请按2”,同样录音过程中指示灯LED9应点亮。

将拨码开关的状态设置为0100,按压按钮AN2开始对第三段进行录音,对着话筒MIC说话“密码错误,请重新输入密码”,录音过程中指示灯LED9同样应点亮。

进行以上操作后,刚才的三句话已经被录入到相应的三个地址中了。

下面再试听一下录音的效果:

将拨码开关的状态设置为0010,按压一下AN3,此时喇叭中立即播放出“欢迎使用远程控制系统”的声音。注意由于AN3是脉冲触发,而不是电平触发,因此只需要点按一下即可,而不需要始终压住按钮不放。

将拨码开关的状态设置为0011,按压一下AN3,此时喇叭中立即播放出“打开风扇通风请按1,打开窗帘请按2”的声音。

将拨码开关的状态设置为0100,按压一下AN3,此时喇叭中立即播放出“密码错误,请重新输入密码”的声音。

其他段落的录音和放音方法同上。

5、    对语音芯片的远程软件编成录音和放音就需要各位写出相应的程序了。在实验的时候,建议买一个“18”的那种小总机,这样就可以离开电话线进行各种试验了,否则如果在电话线上进行试验的话,那是要花费很多的电话费的。“18”的那种小总机只需要100多元。

6、    对远程控制进行试验也是需要编写相应软件的,各位可以根据自己的思路编写出各种控制程序,控制输出端的接口为图中的J2,由于外接控制电路是根据不同的需要设计的,因此本文没有给出控制外接的执行电路,试验的时候可以用LED1——LED8的亮灭来判断输出端的状态,比如你可以这样假设:

LED1点亮表示打开一路电灯,LED1熄灭表示关掉一路电灯;

LED2点亮表示打开排风扇,LED1熄灭表示关掉排风扇;

LED3点亮表示打开电饭煲,LED2熄灭表示关掉电饭煲;

等等……

7、    该试验板还可以作为编程器使用,将目标文件写入单片机后,取下单片机,插入你的目标板即可。

    如果将该试验版上的MT8870更换成MT8880,那么电路只要做少量的改动,就能够实现自动拨号,灾情报警等功能,这样你家中一旦有了被盗、火险等灾情时,它就能自动拨打你的手机,告诉你家中发生了哪些事情。目前我们改进后的板子已经实现了这些功能,并且还能通过电话监听家中的动静、通过电话扩音手段恐吓家中的盗贼等等,在此我希望有更多的有识之士和我们一起探讨和研究,我深信,通过我们的共同努力,该试验板一定能给我们带来可观的经济效益和社会效益!

七、编后语:

该试验板以及相关的资料、素材都是在时间紧、工作繁忙的情况下利用业余时间完成的,在高温酷暑的条件下,本人曾经有几个晚上都是在凌晨4点钟以后才开始卧床休息,写稿的辛苦是可想而知的,鉴于此,本人郑重声明对该稿件享有最终板权,因为参赛后本稿还要另作它用,未经本人同意,不允许在其他网站转载,谢谢各位合作。