家用电器远程控制 - 图文
更新时间:2024-06-28 02:14:01 阅读量: 综合文库 文档下载
- 家用电器远程控制系统推荐度:
- 相关推荐
摘 要
本文介绍了一种以单片机AT89C51为主控制器和双音多频解码电路芯片FM9270为核心,通过电话线路实现对家用电器的远程、多路智能控制系统。该系统实用、功能灵活多样,可以对被遥控对象的状态进行查询以及控制,可以广泛地应用于家用电器或者其他场所的各种控制设备。系统主要由主控制器、振铃检测与模拟摘机电路、DTMF解码电路、语音提示电路、集中控制器等构成。
随着生活水平的不断提高,人们希望有一种自动化、智能化程度高的控制系统对所有的家用电器能实施远程控制。本文介绍了一种基于PSTN(Public Switched Telephone Network,公众电话网)实现对家用电器的远程控制,通过电话可以随时随地控制多种家用电器的开关和各种设定,诸如将空调提前升降温、电热水器提前预热等,应用前景相当广泛。
基于PSTN实现对家用电器的远程控制与常规的遥控方式,如无线电遥控、有线遥控、红外线和超声波遥控等相比,显示出一定的优越性,不需进行专门的布线,不占用无线电频率资源,避免了电磁污染。同时,由于电话线路各地联网,可以充分利用现有的电话网,因此遥控距离可跨省市,甚至跨越国家。
关键词:AT89C51;ISD1420 ;FM9270;PSTN;远程控制
. . . . . .
.
Abstract
The text introduce a sort of control system that use AT89C51 single chip act as main controller and use both sound-many frequency decode circuit CMOS chip FM9270 act as core, through telephone line carry out family equipment’s long-distance many -way intelligent control. This system is so practical and the function is so agility and multiplicity, that can demand and control the state of the controlled object, can widely appliance in family equipment or other spatial all kinds of control equipment. The system mostly make up of main controller, check shake bell and simulate circuit, DTMF decode circuit, sound clew circuit, concentrate controller.
Along with the improvement of the standard of living, people want to have a high automatic and intelligent control system that can control all the family equipment through long-distance. The text introduce a sort of control system that based on PSTN and can control all the family equipment through long-distance, through telephone can control the switch and set up of all the family equipment at any moment and everywhere, such as rise or drop the temperature of the air-condition ahead of schedule, warm-up the electronic water heater ahead of schedule, and so on. It’s appliance foreground of the system quite abroad.
Based on PSTN carry out long-distance control family equipment show definitely advantage compare with wireless telephone control have-wire telephone control, infrared ray and ultrasonic telephone control and so on. It don’t need put up special line, don’t engross wireless frequency resource and avoid electromagnetism pollution. At the same time, thanks to the line in everywhere joined the net, it can make the best of the existing telephone network, so that the distance of wireless control can span province and city and can span country indeed.
Key words: AT89C51;ISD1420 ;FM9270;PSTN;Long-distance control
目 录
引言?????????????????????????????1 1 PSTN介绍 ?????????????????????????2 1.1公用电话网络的基本电话信号 ??????????????????2 1.2电话信铃的检测与识别???……………………???????????3 2 总体设计…………????…………………????????????4 2.1系统总体设计框图…????…………………????????????4 2.2系统整体方案论证????…………………?????????????5 2.2.1两种方案分析 …????…………………????????????5 2.2.2最终选择方案 …????…………………????????????5 3 硬件设计 …………????…………………????????????6 3.1 AT89C51单片机………????…………………???????????6 3.2 语音提示电路 ……????…………………????????????10 3.3 振铃检测与模拟摘机电路 ????…………………?????????13 3.4 DTMF解码电路 ………????…………………???????????14 3.5 8路电器控制 ……????…………………????????????16 3.6 状态显示模块 ………????…………………???????????17 4 软件设计 …………????…………………????????????17 4.1 可采用模块化设计方法 ………????……………????????17 4.2 程序流程图 …………????……………………??????????18 4.3 录音模块软件设计 ………????………………… ?????????19 5 系统调试 …………????……………………???????????20 5.1 模块调试 …………????……………………???????????20 5.2 系统统调 …………????……………………???????????21 6 操作说明 …………????……………………???????????22 7 结论 ………????……………………??????????????22 谢辞 …………????……………………???????????????24 参考文献.…………????……………………?????????????25 附录 …………????……………………??????????????26
引言
遥控技术是通过一定的手段对被控物体实施一定距离的控制,常用的方式有无线电遥控、有线遥控、红外线和超声波遥控等。无线电遥控既是利用无线电信号对被控物体实施远距离控制。无线电遥控不可避免的须占用一定的无线电频率资源,造成电磁污染;常规的有线遥控需进行专门的布线,增加了投入;而红外线、超声波遥控则受距离所限。现有的遥控方式中,还有载波通信控制手段和基于无线寻呼的遥控方式。载波方式即通过电力线传递信息,该方式只能局限于同一变电所、同一变压器所辖范围内。因此也存在距离问题,应用范围有限。基于无线寻呼的遥控方式利用了现有的寻呼频率资源,不需占用额外的频谱。而且,随着寻呼网的全国联网,其遥控的距离基本不受限制。但该方式的受控方动作滞后于控制方的操作,不具备实时性,而且不具备很高的可靠性。 随着我国信息事业的持续、快速发展,通信基础设施日臻完善,固定电话、移动电话用户总数接近两亿。利用现有的通信终端,实现基于PLMN(陆基移动通信网)和PSTN(公用电话交换网)的电话远程控制系统,既可以节约投资,又便于推广。电话远程控制系统(ITRCS),以CCITT及我国标准共同规定的部分标准程控交换信令(DTMF双音多频信号,振铃信号,回铃音信号等)作为系统控制命令,以PLMN与PSTN通信网作为传输介质,使用户可以在远端利用固定电话或移动电话发送DTMF双音多频信号,实现对近端电器设备的远程控制。
电话属双工通信手段。因此,这可以大大体现出利用电话进行遥控的更大优越性。操作者可以通过各种提示音即时了解受控对象的有关信息,从而进行进一步的操作。电话遥控这一课题目前已有涉足者,但是还只限于实验室阶段,因而距离实际应用,尤其是对于日常生活尚有一定的距离,并不能完全体现出电话遥控方式的双工通信特点。本系统正是针对这一点进行了较大改进,采取单片机智能控制,利用不同的提示音达到对于不同操作的提示及对受控方状态的信息反馈,从而使操作者能够及时了解受控方信息,使产品达到交互式与智能化。
系统为了突出高性价比,故未对电话装置的其他功能进行进一步的扩展,而且所有
使用的集成电路和其它元器件都尽量选择廉价的。同时在该系统的基础上进行功能扩展是很方便的。譬如:加上留言功能,主人不在家时客人可以留言,利用遥控方式可使主人很方便地在异地提取留言信息;在各路终端上接上传感器即可实现对环境声响的监听;接上自动拨码电路可定时将预定信息转至主人传呼机或特定电话,从而达到定时提醒主人的目的。本系统还可以应用于工厂企业的自动化控制等领域。
电话远程控制系统由单片机构成主控模块,进行主要的信息处理,接收外部操作指令形成各种控制信号,并完成对于各种信息的记录;另外还包括振铃检测模块、模拟摘挂机控制、双音频DTMF译码模块、及电器驱动模块等。
1 PSTN介绍
在通信系统和通信网络中,为保证设备间或用户间的互通和正常的维护管理,除了需要传送话音、数据等业务信息外,还必须传送专用的附加控制信号。对于程控交换系统,通常需要发送各种称之为“信铃”或“信号”(signal)的控制信号,来完成交换协调动作,实现用户呼叫的处理、接续、控制与维护管理等功能。
随着通信技术的迅猛发展,通信设备迅速增长,通信网络已遍布世界各地 。如何有效地利用这个丰富的资源,设计出更好更有竞争力的产品,为多数设计人员所关注。要设计出与之有关的产品,就必须知道存在于通信网络里一些基本信号和不同情况下的检测方法。本章将介绍公用电话网络系统几种基本电信信号。
1.1 公用电话网络的基本电话信号
1876年贝尔发明的电话只是原始的电磁式电话,是一对单向单工方式,并没有信号音之分。直到本世纪60年代电话机的电子化,1963年出现了第一台按键电话,60年代末CCITT提出了一种新的发号方式:“双音多频”(DTMF)发号方式——音频拨号。70年代末的大规模集成电路的出现和程控交换网的扩大,对电话状态的提示要求产生了拨号、忙音、回铃音等多种信号音。现代传真机的诞生,又增加了话网上的调制问答信号音。
公用电话网基本电信信号包括:振铃、拨号音、回铃音、忙音、阻塞音和无效号码音。同一信号的组成成分却因不同国家和不同地区而不完全一样,甚至差别很大。
当电话听筒从它的托架上拿起来,或者离开挂钩时,就开始请求振铃功能,这时有直流信号流过环路,中央局的交换设备检测到直流信号,就认为是请求服务的信号。只要电话在使用,就有直流信号流过,所以,交换机可以通过检测直流信号判断电话线是否还在使用。当直流信号中断时,交换机得知谈话已经结束了。因此,在本地环路中,直流信号用来振铃和管理。在用户本地环路上传送地址信息有两种方法:第一种就是,电话拨号脉冲中断直流信号,交换机对拨号脉冲计数,拨号脉冲以10脉冲/秒的速度产生;第二种方法就是以两个音频信号组合形成的信号在用户环路网上传输,叫做双音多频信号,双音多频拨号一般由四个高频信号(称高频群组)和四个低频信号(称低频群组)组合代表一个数字,每个数字信号由高、低频群组中取一个频率组成,八中取二,共有十六种组合方式,可代表16种信息,组合情况如见下表1所示。
在使用电话过程中大致有以下几种情况出现:
(1)拨号前,摘机后出现的拨号音或阻塞音(机线阻塞);
(2)拨号后可能出现无效号码音;忙音(如对方正在使用电话);回铃音+语音(对方听到铃响后回话);回铃,音+忙音(对方无人接听);语音+忙音(如所拨号码是移动电话,但对方未开电话,电信局送来提示语音后再送来忙音);几秒后语音提示(所拨号码为传呼机号码,传呼台送来提示拨号语音);几秒后忙音(所拨号码为传呼台号码,传呼台送来忙音);几秒后高频音(所拨号码为传呼机号码,传呼台发送来的2KHz的
应答信号) (3)振铃。
表1 电话拨号数字对应的高低频率组
1.2 电话信铃的检测与识别
从上一节我们可以知道电话局向用户传送的多种信号,这一节我们来看一下如何
检测和识别这些信号。首先,来看一下这些信号的各自含义。
·振铃:铃流用来呼叫被叫用户。 ·拨号音:用来通知主叫用户可以拨号。 ·回铃音:表示被叫用户处于被振铃状态。 ·忙音:表示本次接续遇到机线忙或被叫用户忙。 ·阻塞音:呼叫必须的电话暂时无法使用,机线拥塞。
电话网信号识别的原理是利用CPU的中断和定时功能,检测输入信号的周期和一定时间内采集到的信号数量。由检测到的周期可计算出信号的频率,由定时窗口内采集到的信号脉冲数量可以算出信号的占空比。有了频率和占空比两个参数,就可以推断出信号的类型。
对于拨号音、阻塞音和振铃的情况,只需检测出信号的频率和占空比,就可以推算出它是振铃信号、拨号信号还是阻塞信号。对于拨号后的情况,要识别的信号有四种,其中三种为基本信号(回铃音、忙音和无效号码音),一种为传呼台2KHz应答信号。这些信号出现的时刻和持续时间都有很大差别。尤其是出现在信号前的语音信号,使得识别工作变得复杂、困难。
拨号后的前五种是与打电话相关的情况,后三种是与拨传呼机有关的情况。以打电话为例,拨号后如果是忙音,则挂机延时后再拨,如果是回铃信号,则进一步检测对方是否摘机应答,何时摘机?
根据拨号后出现的情况所述,给出打电话时的波形图,如图1.1所示。
图1.1电话信铃波形图 2 总体设计
设计此系统必须具有以下单元功能模块: (1)铃音检测、计数; (2)自动摘挂机; (3)密码校验; (4)双音频信号解码; (5)控制电器开关; 2.1系统总体设计框图
电话线
图2.1 系统总体设计框图
ERPROM 振铃检测与模拟摘/挂机电路 AT89C51单片机 集中控制器 DTMF解码电路 语音录放电路 语音控制电路 当需要遥控家用电器时,拨打相应的电话号码,振铃检测电路检测铃流信号,如果有人接听电话或振铃次数少于6次,对程控电话的使用不造成影响,当振铃次数达到6
次后(次数可以通过软件任意设定),单片机启动语音提示电路发出提示音,询问是否进入家电控制模式,按“0”键否,挂机退出,按“1”键是,摘挂机电路自动摘机进入控制状态并将摘机信号输入到单片机中,单片机接收到摘机信号后,启动语音提示电路发出提示音,提示操作者输入密码或是退出。输入的密码经DTMF接收,转换成二进制数并与事先存储在单片机中的密码比较,如果不相符,则语音提示密码错误,可再次重新输入,若三次密码错误则发提示音并自动挂机;如果密码相符则语音提示选择控制通道(按键1~8分别表示1~8号通道,分别控制8路电器)。通道选择后,按下“1”键表示开启该路电器,并有语音提示“该路电器已经开启”,按下“0”键表示关断该路电器,有提示音“该路电器已经关闭”,按下“*”键则可挂机退出。若超时则自动挂机(时间可由软件设定)。 2.2系统整体方案论证
由于该系统其它模块都是固定的,不需要做大的变动,而唯一可以有所不同的就在于语音控制电路部分。语音控制部分设计的不同就会导致整个系统设计方案的不同。所以主要分析语音控制电路,可以使用录音芯片作为信号音反馈,提高本系统的实用性,也可以不使用录音芯片,提示音使用程序产生,保证整体电路的廉价。下面给出两种不同的方案,并对其进行分析,最终选择其中一个方案。 2.2.1两种方案分析
方案一:使用录音芯片来完成语音控制电路功能
本文使用的录音芯片是ISD1420,使用录音芯片可以使操作者能及时了解到受控
家用电器的信息,使产品达到交互式与智能化。具有多种手动控制方式、分段管理方便、多段控制时电路简单、采样速度及录放音时间可调、每个单键均有开始停止循环多种功能等特点当利用ISD1420进行录音时,外部音频信号通过话筒输入和线路输入方式进入,通过芯片内话筒放大器中自带的自动增益调节,如果信号幅度在100mV左右即可直接进入线路输入端,音频信号经内部滤波器、采样电路处理后以模拟量方式存入专用快闪存储器中。放音时芯片内读逻辑电路从闪存中取出信号,经过一个低通滤波器送到功率放大器中,然后直接推动外部的喇叭放音。
方案二:提示音使用程序产生
该方案可以减少该系统成本费用,语音提示电路受单片机的控制产生相应的提示音提示,并通过反馈电路反馈至电话外线。从而使操作者对电器的操作达到交互式,并能即时了解有关的信息。但是该方案在程序中实现会非常麻烦,增加了编程的难度和软件调试的难度。 2.2.2最终选择方案
根据以上分析,决定采用方案一来完成语音控制并形成如下总体设计方案:
(1)DTMF解码电路采用FM 9270芯片接收从TEL0、TEL1输入的双音多频信号并将其
转换成二进制编码,然后输至单片机进行数据处理,进而实现控制功能。
(2)语音提示电路采用ISD1420芯片,可以使操作者能及时了解到受控家用电器的信
息,使产品达到交互式与智能化。
(3)主控制器采用AT89C51,它是一款与MCS51完全兼容且内部自带有4KB的Flash
存储器及256KB RAM单元的芯片,因此可以不需另外扩展EEPROM及静态RAM就可以实现所需功能。
3 硬件设计
主要器件:AT89C51单片机、ISD1420、 FM9270
3.1 AT89C51单片机
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROM的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性: ·与MCS-51 兼容
·4K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32可编程I/O线 ·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道
·低功耗的闲置和掉电模式
本设计中选用AT89C51作为中央的处理模块,下面对AT89C51作简要介绍:
AT89C51是Intel公司于20世纪80年代推出MCS-51系列单片机的一种型号。下面是AT89C51单片机的基本结构和有关引脚功能:
中央处理器CPU为单片机的核心;内部数据存储器RAM,用以存放各类数据;内部程序存储器ROM,用以存放程序指令或某些常数表格;每个8位的并行I/接口(P0,P1,P2和P3)均可用做输入或者输出;两个定时器/计数器,用做外部事件计数或定时;内部中断系统具有5个中断源,其中两个外部中断源;1个串行接口电路,可用于全双工
异步收发;内部时钟电路只需外接晶振和微调电容,最高工作频率达到12MHz。
AT89C51单片机采用40引脚双列直插(DIP)封装。 串行通讯
计算机的CPU与其外部设备之间常常要进行信息的交换,一台计算机与其他的计算机之间也往往要交换信息,所有这样的信息交换均称之为“通讯”。
通讯的方式可分为:并行通讯和串行通讯。串行通讯是指数据的各位是一位一位地按顺序传送通讯方式。它的突出优点是只需要一根传输线,甚至可以利用电话线作为传输线,这样就可以大大的降低了传输成本,特别适用于远程通讯。其缺点是传送速度较低。假设并行传送N位数据所需的时间为T,那么串行传送的时间至少为NT,而实际上总是大于NT。
①串行通讯的两种基本方式
围绕着当两个设备进行串行通讯时,如何才能保证接收机接收到正确的饿字符这个问题,通常采用通讯双方都认可的两种传送方式(即通讯方式)。
a异步传送方式
在异步传送中,字符是按 格式进行传送的。每帧格式如图所示。在帧格式中,先是一个起始为“0”,然后是5-8位数据,且规定低位在前,高位在后;接下来是奇偶校验位(可略),最后一位是停止位“1”。这种传送方式利用每一贝贞的起、止信号来建立发送与接收之间的同步。其特点是:没一帧内部各位均采用固定的时间间隔,但贝贞与贝贞之间的时间间隔是随机的。接收机完全靠每一贝贞的起始位与停止位来识别字符传送是正在进行还是已经结束,或是一个新的字符。这也是“异步”的涵义所在。
b同步传送方式
同步传送方式是一种连续传送的方式,它不必想异步传送方式那样要在每个字符都要加上起、止位,而是在要传送的数据块前加上同步字符SYN,而且数据没有间隙,使用同步传送方式,可以实现高速度、大容量的数据传送。在用同步 传送方式时,为了保证接收正确无误,发送方除了传送数据外,还要将时钟信号同时传送。
②波特率
在串行通讯中,有一个重要的指标叫波特率。它定义为每秒钟传送二进制数码的位数(亦称比特数),以位/秒作为单位。波特率反映了串行通讯的速率,也反映了对传输通道的要求:波特率越高,要求传输通道的频带就越宽。
在异步通讯中,波特率为每秒钟传送的字符数和每个字符位数的乘积。注意:波特率与时钟频率不是一回事。时钟频率波特率高得多,一般有两种选取的方法:即高16倍或高64倍。须知,由于异步通讯双方各自使用自己的时钟源,若时钟频率等于波特率,则只要频率稍微有偏差就会导致接受错误。如果使用较高频率的时钟,例如在一位数据内就有16或64个时钟,则捕捉正确的信号就可以得到保证。
就串行通讯中数据的传送方向而言,有所谓单工、半双工和全双工之分。
a单工方式
在这种方式中只允许在意个方向传输数据。一个只作为数据发送器,一个只作为数据接收器,而不能进行相反方向的数据传输。
b半双工方式
在这种方式中只有一条传输线。尽管传输可以双向进行,但任何时候只能是一个站发送,另一个站接收,为了控制线路的换向,必须对收、发双方进行协调。这种协调既可以靠增加借口的附加控制线路来实现,也可以用软件约定来实现。
c.全双工方式
在这种方式中有两条传输线,因此,无论是对于传输的哪个站来说,都允许发送和接收同时进行,显然,在这种方式下,两个传输方向的资源必须完全独立,各个站都有独立的接受器和发送器。
2.1.7数字显示与键盘 (1)数字显示部分
数字显示电路采用数码显示管(共阳)动态显示方式,其使用方便,结构简单,不用外加专门的驱动芯片。
①四位数码管的结构及显示原理
四位数码管是由发光二极管显示字段组成的,由于制造的材料不同,可相应发出红、黄、兰、紫等各种单色光。发光二极管可以有多种组成形式,其中七段显示器应用最多,其次是“米”字显示器。根据显示块内部发光二极管的连接方式不同,又有共阴极和共阳极两种形式,如图所示。本系统采用的是四位共阳极的七段显示器。
由于发光二极管通常需要十几毫安到几十毫安的驱动电流才能正常发光,因此,由微型机发出的显示控制信号必须经过驱动才能使显示器正常工作,现在已经生产出集成电路驱动器,以及带有译码功能的多功能芯片,采用这类的芯片,可同时完成BCD码-七段数码管显示模型的转换和电流驱动工作,使用起来很方便。
另外,为了使用方便,现在已经生产出把4位或5位LED数码管集成在一起的多位小型LED数码管,有些还带有放大镜,采用双列直插式封装,因而体积小,功耗低,可靠,寿命长,使用方便。
②四位数码管的显示方法
在微型机控制系统中,常用的显示方法有两种,一种为动态显示,一种为静态显示。 a动态显示
动态显示,就是微型机定时地对显示器件扫描,在这种方法中,显示器件分时工作,每次只能有一个器件显示。但由于人视觉的暂时现象,所以,仍感觉所有的器件都在显示。如许多单片机的开发系统及仿真器上的六位显示器即采用这类显示方法。此种显示的优点是使用硬件少,因而价格低,但它占用机时长,只要微型机部执行显示程序,就立刻停止显示。由此可见,这种显示将使计算机的开销太大,所以,在以工业控制为主
的微型机控制系统种应
③键盘接口 a分类和功能
本系统的键盘是由8个按键组成的开关矩阵,它是一种廉价的输出设备。一个键盘,通常包括数字键(0~9),字母键(A~Z)以及一些功能键。操作人员可以通过键盘向计算机输入数据、地址、指令或其它的控制命令,实现简单的人机对话。
用于计算机系统的键盘有两类:—类是编码链盘、即键盘上闭合键的识别由专用硬件实现的。另一类是非编码键盘,即键盘上键入及闭合键的识别由软件来究成。
键盘接口应具有如下功能:
* 键扫描功能,即检测是否有键按下。
* 键识别功能,确定被按下键所在的行列的位置。 * 产生相应的键的代码(键值)。
* 消除按键弹跳及对付多键串键(复按)。
b键盘的工作原理
2*4的键盘结构如图4-3所示,图中列线通过电阻接十5V。当键盘上没有键闭合时,所有的行线和列线断开,列线Y0—Y3都呈高电平。当硬盘上接一个键闭合时,则该键所对应的列线与行线短路。例如4号键按下闭合时,行线Xl和列线Y0短路,此时Y0的电平由X1行线的电位所决定。如果把列线接到微机的输入口,行线接到微机的输出口,则在微机的控制下,使行线X0为低电平(0),Xl都为高电平,读列线状态。如果Y0、Y1、Y2、Y3都为高电平,则X0这一行上没有闭合键,如果读出的列线状态不全为高电平,则为低电平的列线与X0相交处的键处于闭合状态;如果X0这一行上没有闭合键, 以此类推,最后使列线X2为低电平,其余的行线为高电平,检查X2这一行上是否有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描。CPU对键盘扫描可以采取程序控制的随机方式,CPU空闲时扫描键盘。也可以来取定时控制方式,每隔一定时间,CPU对键盘扫描—次。也可以采用中断方式,每当键盘上有键闭合时,向CPU请求中断,CPU响应键盘输入中断,对键盘扫描,以识别哪一个键处于闭合状态,并对键输入信息做出相应处理,CPU对键盘上闭合键的键号确定,可根据行线和列线的状态计算求得,也可以根据行线和列线状态查表求得。
P2.7~P2.4口为输出口控制键扫描作为键扫描口,同时由是4位显示器的扫描输出口,P2.3、P2.2读入键盘数,称为键输入口。键输入程序的功能有以下四个方面:
(1)判别键盘上有无键闭合,其方法为扫描口P2.7~P2.4输出全“0”,读P2.3、P2.2口的状态,若P2.3、P2.2为全“1”(键盘上行线全为高电平)则键盘上没有闭合键,若P2.3、P2.2不全为“1”则有键处于闭合状态。
(2) 去除键的机械抖动,其方法为判别到键盘上有键闭合,后延迟一段时间再判别键盘的状态,若仍有键闭合,则认为键盘上有一个键处于稳定的闭合期,否则认为是
键的抖动;
(3) 判别闭合键的键号,方法为对键盘的列线进行扫描,扫描口P2.7~P2.4依次输出
P2.7 P2.6 P2.5 P2.4 1 1 1 0 1 1 0 1 1 0 1 1 0 1 1 1
并相应的顺次读P2.3、P2.2口的状态,若P2.3、P2.2为全“1”,则列线为0的这一列上没有键闭合,否则这一列上有键闭合,闭合键的键号等于为低电平的列号加上为低电平的行的首键号。例如:P2.7~P2.4口的输出为1101,读出P2.3、P2.2为10,则为3号键闭合。
P0 P1 P2 P3 TXD RXD INT0 INT1
图3.1 89c51结构图
并行接口 串行接口 中断系统 CPU RAM ROM 定时/计数器 3.2 语音提示电路
现代电子、电器产品及设备的智能化水平不断提高,在人机界面设计上不但有了
文字标识、发光管指示、显像屏显示等视觉表达,而且还有各种听觉表达,如最简单的“滴滴、嘟嘟”讯响声、稍丰富些的音乐声,甚至用人的语言直接对用户“说话”等。用简单的数码语音集成电路可以实现一句或多句语言的播放,如掩模芯片中的“欢迎光临”、“有电危险、请勿靠近”等,还有如ISD系列、APR9600(IVS1560)等芯片可由开发人员或用户任意录制、播放需要的一段或几段语音等。在听觉表达中最复杂的就是语音的组合,它是将用户预存的多段语音选择顺序连续播放,将字或词素组合成一句话、甚至一段话播放出来,从而实现最准确、定量的语义表达,例如“嘟,现在温度37.5度,温度偏高”、“现在时间五点二十五分三十三秒”等。
传统语音组合电路的设计十分复杂,开发工具十分昂贵,语音录制及软件编制工作
量巨大,而且组合出来的语音效果也不甚理想,尤其在投资不大的产品、系统中最为突出,从而制约了这一技术的应用和发展。只在近一、两年来,模拟存储语音技术的ISD芯片及其廉价的开发编辑工具问世后,情况才大为改观。现在已有专业公司开发出通用ISD语音组合模块,用户只需要在ISD语音芯片中分段录入要求的词素,即可方便地用单片机控制输出这些词素的任意组合成句、成段,词素的语音容量从20秒至480秒甚至更长,以至可以容纳所有的中文汉字发音。
ISD1420是采用模拟存取技术集成的可反复录放的20秒语音芯片,掉电语音不丢失,最大可分160段,最小每段语音长度为125ms,每段语音都可由地址线控制输出,每125ms为一个地址,由A0-A7八根地址线控制。用户录制的语音每一段结束后芯片自动设有段结束标志(EOM),芯片录满后设有溢出标志(OVF)。如果用单片机等控制电路按某一段的起始地址进行放音操作,遇到段结束标志(EOM)即自动停止放音,单片机收到段结束标志(EOM)就开始触发下一段语音的起始地址,如此控制,即可以将很多、不同段的语音组合在一起成一句话放音出来,实现语音的自动组合。
用户可以先通过专用的ISD1425语音编程拷贝机将需要的语音分段编程、连续录制到芯片中,每段语音的长度不限,制成语音源片后,将源片的录音端封住不让其再做录音操作,再由单片机电路控制放音。首先,单片机将ISD1420语音芯片完整搜索一遍,自动找出每一段的起始地址,按分段顺序编号存入外置的串行存储器中;然后用户通过单片机串口发出指令,单片机即将这些段的编号、地址一一调出,依次向语音芯片发出首地址——放音该段——该段结束,单片机收到EOM标志——单片机发出下一段语音的首地址——放音该段——如此工作,直到要求的一句话合成完毕。
这种控制方式有较强的通用性和方便性,它不需要事先规定每段语音的时间长度、总段数,甚至不需要知道每段语音在ISD1420芯片上的具体地址,只要用户记住录入语音的段顺序即可控制各段语音的自由组合。
和其它同类语音电路相比具有以下特点: ●所需外围元件少,电路简单,操作方便。
●采用直接模拟量存贮技术DAST(Direct Analog Strorage Technology), 再现优质原声。
●零功率信息存贮,省掉备用电源。
●信息可保存10年以上,可反复录放达10万次之多。 ●语音固化无需专用编程或开发装置。
●较强的选址能力,可把存储器分成160段来进行管理。 ●具有自动省电模式,此时仅需0.5μA的保持电流。 ●单一电源供电。 ISD1420电气特性如下: ●工作电压VDD:5V.
●静态电流ISTB:典型值 0.85μA,最大值为2μA. ●工作电流IOP:典型值15mA,最大值30mA.
ISD1420地址输入端具有双重功能,根据地址中的A6、A7的电平状态决定A0~A7的功能。如果A6、A7有一个低电平,A0~A7输入全解释为地址位,作为起始地址用,此时地址线仅作为输入端,在操作过程中不能输出内部地址信息。根据PLAYE、PLAYL或REC的下降沿信号,地址输入被锁定。如果A6、7同为高电平时,它们即为模式位。
使用操作模式有两点要注意:
(1)所有初始操作都是从0地址开始。0地址是ISD1420存储空间的起始端,后面的操作可模拟模式的不同,而从不同的地址开始工作。当电路中录放音转换将进入省电状态时,地址计数器复位为0.
(2)当PLAYE、PLAYL或REC变为低电平,同时A6、A7为高电平时,执行地址线所对应的操作模式。这种操作模式一直执行到下一个低电平控制输入信号出现为止。 操作模式可以与微控制器一起使用,也可用硬件连线得到所需系统操作。 A0:信息检索(仅用于放音工作状态)。不知道每个信息的实际地址,A0使操作者快速检索每条信息,A0每输入一个低脉冲,可使利内部地址计数器跳到下一个信息。这种模式仅用于放音工作,通常与A4操作同时应用。
A1:用于删除EOM标志(仅用于录音工作状态)。A1可使录入的分段信息成为连续的信息,使用A1可删除掉每段中间信息捷的EOM标志,仅在所有信息后留一个EOM标志。当这个操作模式完成时,录放的所有信息就作为一个连续的信息放出。
A3:用于循环重放信息(仅用于放音工作状态)。A3
可使存于存储空间始端的信息
自动地连续重放。一条信息可以完全占满存储空间,那么循环就可以众头至尾进行工作,并由始至终反复重放。
A4:连续寻址。在正常操作中,当一个信息放完,遇到一个EOM标志时,地址计数器就会复位。A4可防止地址计数器复位,使得信息连续不断地放出。A2、A5未用 我将本录音芯片分成了五段: 地址段 0x00—0x20 0x20—0x38 0x38—0x66 0x66—0x76 0x76—0x86
完成功能 请选择相应家电代号 家电按*号键,退出按9 相应家电已启动 相应家电已关闭 2秒 2秒 所需时间 3秒 请输入密码,按#号键结束 4秒 按1开,按0关,控制其它6秒
图3.2 语音提示电路 3.3 振铃检测与模拟摘机电路
铃流信号是当远端用户呼叫电话远程控制系统时,由程控交换机向电话远程控制系统发送的控制信令。
我们要通过电话机对指定的电器进行控制,就必须要通过电话与系统取得通讯,由于系统与常用电话并接在同一电话线上,系统就须识别出所呼入的信号是亲友电话振铃信号还是系统控制信号。根据人们习惯,用振铃的次数来做个约定,如果振铃连响10声内没有人接电话,系统则认为是控制系统号,模拟摘机机构就工作接通电话。本模块就是可以实现电话振铃的检测功能。振铃为25±3伏的正弦波,谐铃失真不大于10%,电压有效值90±15V。振铃以5秒为周期,即1秒送,4秒断。根据振铃信号电压比较高的特点,可以先使用电容进行限流降压,然后输入至光电耦合器。经过光耦的隔离转换,从光电耦合器输出的波形是时通时断的正弦波,经过RC回路进行滤波,再经过反相器74LS04整形输出标准的方波。方波信号就可以直接输出至单片机的INT0中断计数器输入口,完成整个振铃音检测和计数的过程。当系统取得请求联接信号后,系统要做出回应就要有一个模拟电话机摘机电路,同时为了结束通讯就要有一个模拟电话通话结束挂机的电路,模拟摘机电路与模拟挂机电路组成模拟摘挂机模块。它是由二极管D1~D4、三极管V1、V2和四个电阻组成。D1~D4是整流桥,将电话线路上的交流电转为直流;当给V2基极一个高电平时三极管V2(NPN)导通,V1(PNP)的基极与V2的集电极经电阻R2相联,V2导通从而使得V1的基极的电平变为低电平从而使V1导通,V1的集电极经电阻R3组成回路。因为程控电话交换机对电话摘机的响应是电话线回路电流突然变大为约30mA的电流,交换机检测到回路电流变大就认为电话机已经摘机。当
V2的基极为低电平时,即V2、V1截止回电阻变大,电话线回路电流远小于30mA,交换机检测到回路电流变小就认为电话机已经挂机,也即与系统通讯结束。
在分析该电路之前,首先介绍一下公用电话网线路上的信号及其检测方法。公用电话网的传输线路为二线模拟线路,采用直流环路信号方式,能向模拟话机提供直流馈电、振铃信号、话音数据、音频数据、双音频数据等。我国规定的标准为,平时挂机时的馈电电压一般为-48V,向用户振铃的铃流电压为75±15V,25Hz的交流电压,用户话机的摘挂机状态是通过对直流环路上电流的通断来实现的,用户挂机空闲时,直流环路断开,馈电电流为0;反之,用户摘机后,直流环路接通,馈电电流在20mA以上。 当有振铃信号从TEL0、TEL1输入时,电话线路上的75±15V,25Hz的交流电压经过一个桥式整流及滤波后,振铃信号进入光电耦合器817的1、2引脚,然后从4脚输出脉冲信号,脉冲输入到74LS123中,其中74LS123的作用是将小脉冲转换成大方波信号并送入到89C51单片机的T0引脚进行计数,当计数达到6次时,89C51的T1引脚发出高电平,使三极管PNP8550导通,从而继电器RELAY吸合,完成模拟摘机动作。由于语音信号和双音频信号电压远低于振铃信号电压,所以该电路不会产生误操作。
图3.3 振铃检测与模拟摘机电路
3.4 DTMF解码电路
在介绍DTMF译码模块前,让我们先简单了解电话机拨号与程控的一些工作原理,这是本系统的关键所在。
电话机拨码方式有两种,即脉冲拨码和双音频拨码,双音频拨码方式具有拨号速度
快,误码率低等优点,这是脉冲拨码方式所不能比拟的。国际电报电话咨询委员会CCITT和我国的标准规定双音频信号由8个频率组合,分为高低频两组,采用8中取2原则,它可根据不同的按键产生一组双音频信号。键盘结构等效于一个矩阵,它与专用拨号集成电路按规定连接,按下键盘相当于给拨号集成一个输入信息,即每按下一个数字或字符键,拨号集成电路根据相应行线和列线电位的变化就送出一个唯一的双音信号,一个高频信号和一个低频信号通过电话线送到程控交换机。在程控交换机中分别用8个不同的数字滤波器交送来的DTMF信号分离还原成两个正弦信号。再经过检波后进行译码,从而识别。这也可用集成电路FM9270完成,DTMF译码模块也就是主要用该芯片来实现。
FM9270是CMOS大规模集成电路芯片,它主要由滤波器译码器和控制电路三部分组成。滤波电路由信号增益和滤波器两部分构成。外部输入的DTMP信号,经运算放大器放大后,进入双音滤波器。双音滤波器是二个六级开关电容构成的高低通滤波器,它能有效地将DTMF信号中的高、低音频区分开来。被区分开的高、低音频信号再经高、低频群滤波器,然后送入芯片的译码电路。译码电路由数字检测,编码转换各三态输出几部分组成。数字检测电路采用对输入音频信号进行数字计数方式,以确定DTMF信号的频率并核查是否与标准的DTMF信号一致。在此过程中,采用了一套复杂的平均算法,对DTMF信号的频率偏差提供一定的容差范围,以提高对干扰频率和噪声的抗干扰能力。
当用户在电话机的键盘上输入密码或按下控制按钮后,这些信息均采用双音频方式通过电话线发出。DTMF解码电路的主要作用是接收从TEL0、TEL1输入的双音多频信号并将其转换成二进制编码,然后输至单片机进行数据处理,进而实现控制功能。
本电路采用的是FM9270双音多频解码芯片,能实现双音多频信号(DTMF)的发送与接收。FM9270是一个完整的双音多频接收器电路,具有频带分离滤波器和数字解码功能。滤波器部分采用开关电容技术用于将拨号音频信号分离成高频组信号和低频组信号。在解码器中使用数字计数技术来检测所有16种双音多频音频对,并把它们编成4位码。由于片上备有差动输入放大器、时钟振荡器和三态锁存总线接口,因此外接元件数减至最少。
图3.4 9270管脚图
图3.5 9270功能框图
3.5 8路电器控制
开始
接收DTMF振铃信号 初始化
N N 振铃检测 密码是否相符
Y Y
启动定时计数器t0计数 选择操作通道
N 检测到振铃六次 输入操作指令 Y N 是否控制电器 发语音提示通/断 Y
模拟摘机并发提示音要求输
入密码 挂机
图3.6 八路电器控制图
由图3.6可以看出,八路电器通过AT89C51的P2口来控制。控制电路的执行器件采用继电器。当单片机要实现对电器的控制时,由P2口发出控制信号并经过三极管放大后驱动8个继电器,从而控制了8路电器的通断。 3.6 状态显示模块
状态显示电路是指示各通道的当前工作状态及操作指示。该模块主要由8只发光二极管LED1~LED8构成。LED1~LED8用来指示八路通道的工作状态,发光二极管亮时表示该通路上的电器接通了电源,灭时表示该路电器已关闭。
4 软件设计
4.1 可采用模块化设计方法 (1)系统主控模块设计;
(2)振铃检测与模拟摘机电路模块设计; (3)DTMF解码电路模块设计; (4)语音提示电路模块设计; (5)8路电器控制模块设计;
4.2 程序流程图
开始 初始化变量,开定时器
0,开两外部中断
Y 录音脚为低电平
吗?
N
Y 操作超时 吗?
N
Y 播放录音吗?
N
N 收到双音频编码
Y
N 密码正确吗
Y
控制对应电器的开关
分段录音 挂断电话 播放对应录音
4.3 录音模块软件设计
void RecVoice(void) {
P0=0x00;
///----start a 4 second recoder---///////// Time_Counter=0;
TimeOut_Counter=80;//80 equation the 4s REC=0;
while(~Flag_Timeout); Flag_Timeout=0; REC=1;
///----------wait 2 seconds-----//////////// Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout); Flag_Timeout=0;
///----start a 3 second recoder---///////// Time_Counter=0;
TimeOut_Counter=60;//60 equation the 3s REC=0;
while(~Flag_Timeout); Flag_Timeout=0; REC=1;
///----------wait 2 seconds-----//////////// Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout); Flag_Timeout=0;
///----start a 5 second recoder---///////// Time_Counter=0;
TimeOut_Counter=100;//100 equation the 5s REC=0;
while(~Flag_Timeout); REC=1;
///----------wait 2 seconds-----//////////// Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout); Flag_Timeout=0;
///----start a 2 second recoder---/////////
P0=0x20;
P0=0x38;
Flag_Timeout=0;
P0=0x66;///start address
Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s REC=0;
while(~Flag_Timeout); Flag_Timeout=0; REC=1;
///----------wait 2 seconds-----//////////// Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout); Flag_Timeout=0;
///----start a 2 second recoder---///////// Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s REC=0;
while(~Flag_Timeout); Flag_Timeout=0; REC=1;
P0=0x76;///start address
5 系统调试
调试所使用的测试仪器仪表和工具: (1)微机一台; (2)MF116万用表一个; (3)SR8双踪示波器; (4)MCS-51仿真机一台;
(5)TC-108H“多路通”实验程控交换机一台; (6)HA8188(9)P/T双音多频电话机一台; (7)HA119(6)P/T双音多频电话机一台; 5.1 模块调试 (1)6V稳压电源
本装置使用单6V稳压电源供电,要求交流成分小。经过示波器测量6V稳压电源输出端,其交流部分电压的峰-峰值为7mV,符合本装置的电源要求,稳压电源调试完毕。 (2)振铃音检测
将本装置的电话线两端并联在电话机两端,摘机拨打“190”,然后挂机,市交换机会回送连续的测试振铃音。经过测量,这种测试振铃音和正常的振铃信号的频率、振幅等特性都一样,只是正常的振铃信号是1秒通4秒断,而这种测试振铃音是连续的。当送测试振铃音时,用万用表的直流档测量光电耦合器4N25的输出端,有明显的电压,这说明可以形成中断响应信号。后接振铃指示灯,如果发现在送铃流时,指示灯亮,但
是灯在闪烁。分析可能是光耦输出端所接的滤波电容太小,将其更换为较大点的电容,问题即可得到解决。经测试,本单元电路完全正常,振铃检测部分调试完毕。 (3)模拟摘挂机
此部分的调试较为容易,电路接好后,用6V高电平测试之,指示灯亮,继电器吸合正常。接入模拟小交换机,控制摘机时,交换机的端口指示灯亮,反之挂机时,指示灯灭。说明此部分完全正常。至此,模拟摘挂机部分调试完毕。 (4)双音频检测
双音频检测是整体电路一个比较重要的过程,它的调试主要围绕着双音多频解码芯片FM9270展开的。在此部分的制作的前期,采用的芯片是CM8870CPI。开始连接电路调试时,整体电路工作很正常,后来这块芯片使用大约一个星期左右的时间,解码电路经常会出现解码出错的情况。经过仔细检查电路,仿真机单步执行进行调试,确认硬件电路无误,诊断为CM8870CPI的问题。根据初步分析认定可能是芯片老化的原因,后更换为FM9270发现本装置工作很正常,而且换上FM9270工作了将近一个月,整体电路没有发生任何解码误码情况,FM9270在最后的联机调试过程中也没有出现任何问题。 5.2 系统统调
经过初步的分析设计后,在制作硬件电路的同时,调试也在穿插进行。这样有利于问题的分析和解决,不会造成问题的积累,而且不会因为一个小问题而进行整体电路的检查,从而可以节约大量的调试时间。软件编程中,首先完成单元功能模块的调试,然后进行系统调试,整体上与硬件调试的方法差不多。联机调试是最重要的一部分,同时也是本装置成功的关键。有许多新问题都不是很容易解决的。
在调试过程,电路的连接是非常重要的,因为电路比较复杂,在设计或焊接时很容易出一些自己注意不到的问题。在调试过程中,先设计了最小系统板,并使之能够完成功能,之后设计完成各模块的联调,在硬件的制作过程中,任何一个步骤都是不能忽视的,除了设计上本身可能存在的缺陷,硬件上,制作板,焊接元件等都要认真对待,在焊接过程中,出现了多处虚焊,和短路,有的甚至焊盘脱落导致整个硬件调试过程花费了很多时间,在硬件调通以后,结合已经调好的软件程序联调,这时是看各模块是否能够按要求完成功能,在调试初期,均很顺利,在后来,发生过三极管烧掉了,以至于数码管不亮等很容易找到的错误。
在单片机方面,由于对单片机不是十分熟悉,在设计过程中本着一种先调模块,等每个模块的工作正常了,然后再把它们联系起来组成最终系统,实现连调。在本系统中,就可以分成双音频解码模块,语音录音和放音模块,振铃检测模块,以及准确的时间中断模块。而在程序处理上,充分的利用了单片机I/O口的灵活性,首先在原理图上设计好了电路图,当在PCB的布线上发现不好走线时在回到原理图中进行修改,最后达到一个很优化的目标,使电路板制作精美。而这时从某种意义上讲就增加了程序的难度,如何处理好它们之间的关系也使自己在本设计中学到的很重要的知识。比如,在双音频输
出的四位数据上要由单片机来读取,因为从硬件上看管脚刚好倒排,这时为了硬件布线的合理性,就使用了软件来完成了转化,最终实现了正确的双音频解码。
整个系统经过调试最终达到了所有指标要求,不过出于知识的不全,没有实现扩展
功能的修改密码功能。因此,有待开发改进。文中定有许多不足之处,敬请各位老师和读者不吝赐教。
整个系统综合有如下几个特点:
1. 可以控制八路电器的开关,由八个灯的亮灭来表示控制哪路电器的开启和关闭,灯亮表示开启,灯灭表示关闭。
2. 每路电器的控制需要一个继电器,但由于经费问题所以只用了两个继电器,可以控制两路电器的开关。
3. 录音芯片可以录音20秒。由于制作了个话筒,所以可以擦除原录音后从新自己录音。4. 本系统密码检测时输入的密码固定为123456,解码电路本来可以设计为可以修改密码,但那个程序过于复杂,所以本系统没有设计。
6 操作说明
将本系统的电源线接8—12伏电源,电路板上水晶头插口接至电话座机。将其中一条线接6伏电压,另一条线接发动机输入。基本的接线就已经完成。
用户拨打带有该系统的电话,等电话响铃六声后接电话,如果在响铃六声前接电话将听不到语音提示,如果六声后还没摘机则系统将自动模拟摘机,发出语音提示,用户将会听到语音提示叫输入密码并按#号键结束,本系统默认的密码为123456(用户可以自己修改密码), 输完密码然后会提示选择相应家电代号,系统共可以实现八路电器控制,此时用户可以输入1-8,就代表要控制第一路到第八路家电的开关。然后系统会提示输入0或者1,0代表关闭该路电器,1代表开启该路电器,若要控制其他家电按*号键,退出按9。然后系统会提示相应家电已启动或者相应家电已关闭。
7 结论
电话线控制家电,其实质是在远程通过电话线使用的双音频信号来实现对各种家
用电器的控制。利用以单片机、双音频解码芯片和语音芯片设计制作了电话线控制家电系统,可实现对多达八路的不同家电的控制,最终能实现对任意一路家电的开关。从测试结果看,与要求设计值达到了一致。
但因为课题有一定的难度,加上经验水平的不足,在设计制作过程中也出现了不少问题。比如在双音频解码时,当初考虑到隔离,在电话线和本系统之间采用变压器隔离。后来发现没有适当的并和系统相匹配的变压器卖,同时也考虑到变压器的体积比较大,经过一番网上查找,发现许多该双音频芯片的应用文档中直接采用两个高压小电容相耦合也能达到相应的要求。于是,在本电路上也采用了这种直接电容耦合的结构,在最终
调试中适当的改变了双音频芯片外围的放大倍数,发现能对双音频进行很好的解码。在语音芯片上,通过参阅该芯片的官方文档和应用资料发现,它有很多应用方法,而在本设计中,也充分的利用了它的录音时间,对其进行分段录音,实现了用5段录音来作为电话线远程控制的人机交互。在录音上,在首先设计本系统时因为没有考虑到如何一次录音和怎么样改变录音的问题,于是把该问题留给了软件来处理,而最终通过一个跳线也实现了在系统复位时来决定是否改变录音芯片内部的内容,而在时间段上考虑到录音时间有限,所以把各个时间段的录音设计成为了固定段。
通过对电话线控制家电这个课题的设计制作,对于自己进入社会后的工作和学习是非常有帮助的,尤其是在电路的理论分析中掌握的知识和方法,在电路设计和调试过程中积累的经验,为以后的电路设计、制作都打下了坚实的基础。通过本次的课程设计使得自己逐步学会了使用单片机实现自动控制,更加重要的是使得自己在本次的课程设计的过程中学会了电路板的查错和C语言编程,并对电信信号方面的知识有所了解。虽然大部分的知识在以往已经有所了解,但是相信只有通过一个完整的系统的自我完成的过程才能把所学的知识运用到实际生活中。
经过这次毕业设计,觉得自己学到了不少东西。归纳起来,主要有以下几点: 1、大学三年多的时间都是在学习理论基础知识,并未真正地去应用和实践。但是经过这次毕业设计,接触到了更多平时没有接触到的仪器设备、元器件以及相关的使用调试经验,发现了自己很多不足之处。还体会到了所学理论知识的重要性:知识掌握得越多,设计得就更全面、更顺利、更好。
2、了解进行一项相对比较大型的科技设计所必不可少的几个阶段。毕业设计能够从理论设计和工程实践相结合、巩固基础知识与培养创新意识相结合、个人作用和集体协作相结合等方面全面的培养学生的全面素质。经过这次系统的毕业设计,熟悉了对一项课题进行研究、设计和实验的详细过程。这些在我们在将来的工作和学习当中都会有很大的帮助。
3、学会了怎样查阅资料和利用工具书。平时课堂上所学习的知识大多比较陈旧,作为自动化专业的学生,由于专业特点自己更要积极查阅当前的最新控制方面的资料。一个人不可能什么都学过,什么都懂,因此,当你在设计过程中需要用一些不曾学过的东西时,就要去有针对性地查找资料,然后加以吸收利用,以提高自己的应用能力,而且还能增长自己见识,补充最新的专业知识。
4、实践能力得到了进一步提高,在调试过程中积累了一些经验。
5、毕业设计对以前学过的理论知识起到了回顾作用,并对其加以进一步的消化和巩固。
6、毕业设计培养了严肃认真和实事求是的科学态度。而且培养了吃苦耐劳的精神以及相对应的工程意识,同学之间的友谊互助也充分的在毕业设计当中体现出来了。
谢 辞
首先,我把最诚挚的谢意献给我的导师龙超老师,在本次论文的选题和研究过程中,都凝聚了导师龙超老师的心血和智慧,并且在整个过程中,龙超老师无微不至的关怀和指导使我得以顺利完成该课题。在此,作者向她致以深深的敬意和诚挚的谢意!在设计过程中,龙超老师严谨的治学态度,孜孜不倦的钻研精神,和蔼可亲平易近人的品格和对我们严格要求的作风给我留下了深刻的印象,是我学习的楷模。在此感谢所有帮助和教育过我的老师,同时还要感谢我的同学,没有他们的支持与鼓励,我一个人是很难完成这个毕业设计的,与他们在学习上的有益探讨和交流,以及在生活上的融洽相处,结下了深厚而纯洁的友谊,正是他们的理解和帮助使得我克服了许多困难,增加了信心。最后深深的感谢为我成长含辛茹苦的父母,他们无私的爱和无尽的关怀始终伴随我在生活道路上迎接各种挑战。
在论文即将完成之际,谨向所有关心我的老师,同学和朋友致以我发自内心的深深谢意。
参考文献
[1] 雷晓平编著.单片计算机及其运用[M].电子科技大学出版社,1997. [2] 于海生等编著.微型计算机控制技术[M].清华大学出版社,1999.
[3] 曾刚,贺蓉,徐成等.DTMF远程通信的软硬件实现技术[M].电子技术应用,2000. [4] 叶敏编著.程控数字交换与交换网[M].北京邮电大学出版社,1997.
[5] 马忠梅等编.单片机的C语言应用程序设计[M].北京航空航天大学出版社,1998. [6] 俊樵等.用DTMF编码解码芯片实现单片机遥控键盘输入[J].电子技术,1999. [7] 谭浩强编著.C程序设计[M]. 清华大学出版社,2002.
[8] 朱定华编著.微机原理与接口技术[M]. 清华大学出版社,2002.
[9] 吴大正编著.信号与线性系统分析[M].高等教育出版社,1997.
[10] Heinrech Meyc Marc Moneneclaey.Digital Communication Receivers. JOH S INC N WILEY&SON.
1998.
[11] John Litva . Digital Beamforming in Wireless Communications . Artech House Boston London. 1996. [12] TAPANK SARKAR. SMART ANTENNAS. IEEE PRESS. 2003.
附 录
(1)仪器:
电烤箱 1台
示波器(YB4328D) 1台
直流稳压电源(DF1731SC3A) 1台 数字万用表 1块 PC机 1台
(2)电路原理图:
PCB板图:
程序:
#include
#define uchar unsigned char
sbit REC=P3^0;sbit PLAY=P3^1;sbit RING_INT=P3^2;sbit DTFM_INT=P3^3; sbit JREC=P3^4;sbit ONPHONE=P3^5;
sbit DEVICE1=P2^0;sbit DEVICE2=P2^1;sbit DEVICE3=P2^2;sbit DEVICE4=P2^3; sbit DEVICE5=P2^4;sbit DEVICE6=P2^5;sbit DEVICE7=P2^6;sbit DEVICE8=P2^7; uchar SavePassword[6]={0x01,0x02,0x03,0x04,0x05,0x06};
uchar PasswordBuf[6];
uchar Time_Counter;//时间计数器,当等于TimeOut_Counter时则为超时 uchar Ring_Counter;//振铃次数计数器
uchar Dtfm_code;//当前接收到的双音频编码
uchar TimeOut_Counter;//超时定义计数器,20对应1秒 uchar Pre_Point;//当前需要执行的对应操作
uchar Pre_Receive;//当前收到的字节数,用于保存密码到对应缓冲区 uchar Pre_Wantcontrol;//当前需要控制的家电号码(从1到8) uchar Count;//超时统计计数器,当到2时。自动挂断电话 bit Flag_Timeout;//是否超时标志位
bit Flag_Startsystem;//是否开始系统(接通电话)和播放对应语音标志位 bit Flag_Receivecode;//是否接收到双音频编码标志位 bit Flag_Checkpass;//检查密码标志位 uchar temp,temp1;//临时使用的2个变量 void RecVoice(void);//录音子程序
void delay(unsigned int n)//延时子程序//n*25us delay {uchar m; for(;n>0;n--) {
for(m=25;m>0;m--); } } main() {
//initialize the variable start P2=0xff;
IE=0x87;//open the ex0/ex1/et0 interrupts and ea=1;
TMOD=0x21;//ET1 work in auto mode AND ET0 is 16bit counter TH0=0x3c;TL0=0xb0;
Time_Counter=0;
TimeOut_Counter=20;//20 equation the 1s
Ring_Counter=0; Pre_Point=1; Pre_Receive=0; Count=0;
TR0=1;
//initialize the variable end
if(JREC==0)//如果跳线为接通则开始录音
{
delay(400); if(JREC==0)
{
RecVoice();//录音程序 } }
Time_Counter=0;
TimeOut_Counter=60;//60 equation the 3s TR0=0;//停止计数 while(1) {
if(Flag_Timeout) {
Flag_Timeout=0; Count++;
if(Count>2){ONPHONE=1;Count=0;TR0=0;Ring_Counter=0; Pre_Point=1;} else Flag_Startsystem=1; }
if(Flag_Startsystem) {
Flag_Startsystem=0; ONPHONE=0;//let the jx on to start work switch(Pre_Point)//选择播放哪段录音 {
case 1:P0=0x00;PLAY=1;delay(1);PLAY=0;break; case 2:P0=0x20;PLAY=1;delay(1);PLAY=0;break; case 3:P0=0x38;PLAY=1;delay(1);PLAY=0;break; case 4:P0=0x66;PLAY=1;delay(1);PLAY=0; Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout);
Flag_Timeout=0;TimeOut_Counter=100;Pre_Point=3;Flag_Startsystem=1; break;
case 5:P0=0x76;PLAY=1;delay(1);PLAY=0;
Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s
while(~Flag_Timeout); Flag_Timeout=0;TimeOut_Counter=100;Pre_Point=3;Flag_Startsystem=1; break; default: break; }
}
if(Flag_Receivecode) {
Flag_Receivecode=0; //P2=Dtfm_code;
Time_Counter=0;
TimeOut_Counter=200;//200 equation the 10s TR0=1;//开始计数,看是否有超时发生 switch(Pre_Point)
{
//状态为1时统计密码并保存到相应缓冲区,当按下#号键时开始检查密码是否正确 case 1:if(Dtfm_code==0x0c)Flag_Checkpass=1;
else {
PasswordBuf[Pre_Receive]=Dtfm_code;
Pre_Receive++; } break;
//状态为2时记下要控制的家电代号
case 2:Pre_Wantcontrol=Dtfm_code;Pre_Point=3;Flag_Startsystem=1;break;
//状态为3时控制对应家电是启动(1)还是停止(0)或者返回到上一级菜单控制其它家电
case 3:if(Dtfm_code==0x01) { switch(Pre_Wantcontrol)
{
case 1: DEVICE1=0;break; case 2: DEVICE2=0;break; case 3: DEVICE3=0;break; case 4: DEVICE4=0;break; case 5: DEVICE5=0;break; case 6: DEVICE6=0;break; case 7: DEVICE7=0;break; case 8: DEVICE8=0;break; }
Pre_Point=4;Flag_Startsystem=1;
}
if(Dtfm_code==0x0a) {
switch(Pre_Wantcontrol) {
case 1: DEVICE1=1;break; case 2: DEVICE2=1;break; case 3: DEVICE3=1;break; case 4: DEVICE4=1;break; case 5: DEVICE5=1;break;
case 6: DEVICE6=1;break; case 7: DEVICE7=1;break; case 8: DEVICE8=1;break; }
Pre_Point=5;Flag_Startsystem=1;
}
if(Dtfm_code==0x0b)
{Pre_Point=2;Flag_Startsystem=1;}
if(Dtfm_code==0x09){ONPHONE=1;Count=0;TR0=0;Ring_Counter=0;
Pre_Point=1;}
default: break; }
}
if(Flag_Checkpass)//检查各位密码是否相同,如果不同则再要求输入密码
{
Flag_Checkpass=0;
for(temp=0;temp<6;temp++) {
if(PasswordBuf[temp]==SavePassword[temp])
{Flag_Startsystem=1;Pre_Point=2;} else {Pre_Point=1;Flag_Startsystem=1;Pre_Receive=0;break;} } }
} }
//当有电话铃时产生中断,如果4次电话铃没有接则启动该系统控制家电 void RINGinterrupt0(void) interrupt 0 //have a telephone ring {
Ring_Counter++;
if(Ring_Counter==4)Flag_Startsystem=1; for(temp1=0;temp1<80;temp1++) delay(1000);
}
//用来定时的计数器。判断是否有超时发生 void Time_Intp(void) interrupt 1 { TR0 = 0; }
TH0 = 0x3c; TL0 = 0xb0;
TR0 = 1;
Time_Counter++;
if ( TimeOut_Counter== Time_Counter ) {Flag_Timeout=1;Time_Counter=0;}
//没收到一个双音频编码会中断一次,处理后送入Dtfm_code寄存器,同时 //置收到双音频编码标志位为1
void DTFMinterrupt1(void) interrupt 2 //riceive a DTFM codec {
Dtfm_code=0x00;
temp=P1; temp1=temp&0x80;
Dtfm_code=Dtfm_code|(temp1>>7); temp1=temp&0x40;
Dtfm_code=Dtfm_code|(temp1>>5); temp1=temp&0x20;
Dtfm_code=Dtfm_code|(temp1>>3); temp1=temp&0x10;
Dtfm_code=Dtfm_code|(temp1>>1);
Flag_Receivecode=1; while(~DTFM_INT); }
//以下为录音子程序 void RecVoice(void) {
P0=0x00; ///----start a 4 second recoder---///////// Time_Counter=0;
TimeOut_Counter=80;//80 equation the 4s REC=0;
while(~Flag_Timeout); Flag_Timeout=0; REC=1;
///----------wait 2 seconds-----//////////// P0=0x20;
Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout); Flag_Timeout=0;
///----start a 3 second recoder---///////// Time_Counter=0;
TimeOut_Counter=60;//60 equation the 3s REC=0;
while(~Flag_Timeout);
Flag_Timeout=0; REC=1; ///----------wait 2 seconds-----//////////// P0=0x38;
Time_Counter=0;
}
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout); Flag_Timeout=0;
///----start a 5 second recoder---///////// Time_Counter=0;
TimeOut_Counter=100;//100 equation the 5s REC=0;
while(~Flag_Timeout); Flag_Timeout=0; REC=1;
///----------wait 2 seconds-----//////////// P0=0x66;///start address
Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout); Flag_Timeout=0;
///----start a 2 second recoder---///////// Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s REC=0;
while(~Flag_Timeout); Flag_Timeout=0; REC=1;
///----------wait 2 seconds-----//////////// P0=0x76;///start address
Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s while(~Flag_Timeout);
Flag_Timeout=0;
///----start a 2 second recoder---///////// Time_Counter=0;
TimeOut_Counter=40;//40 equation the 2s REC=0;
while(~Flag_Timeout); Flag_Timeout=0; REC=1;
正在阅读:
家用电器远程控制 - 图文06-28
高一语文课文及文学常识整理03-20
高中化学 《钠 镁及其化合物》(金属钠的性质及应用)教案5 苏教版06-26
STM32单片机的MODBUS通讯器毕业论文 - 图文03-17
2.17新任中层干部集体谈话会讲话提纲05-11
副县长在第五届全民健身运动会上的讲话04-26
煤炭企业营运能力分析存在的问题及对策-以山西焦煤集团为例07-07
下山口隧道围岩施工技术交底10-04
携程网基本情况04-02
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 远程控制
- 家用电器
- 图文
- 规范药房管理制度
- 建设绿色循环低碳公路主题性项目实施方案
- 2-300从美国教育中我们能反省些什么?
- 全国报刊投稿电子邮箱
- (2015年7月修改)危险化学品经营许可证管理办法
- 战备目标与年度计划制定试题
- 中建钻孔灌注桩工程监理细则 - 图文
- 备战2012高考英语
- 《《党委会的工作方法》解析》下试卷
- 东北财经大学本科毕业论文
- 山东省15—16学年上学期六年级数学(人教新课标)第二单元位置与
- 二年级语文下册课文文本
- 数控铣中级工考级复习题
- 银行系统-贷款模块系统分析报告
- 金口诀实战课例集(李怀珠)
- Auto CAD指令集
- 二级运算放大电路版图设计
- 反分析的原理和计算方法
- 2000-2005年全国高中数学联合竞赛解析几何试题分类汇编人
- 2006年高考试题 - 理综(天津卷)