首页 mt8880c的智能电话

mt8880c的智能电话

举报
开通vip

mt8880c的智能电话mt8880c的智能电话 目录 1 绪论 ................................................................................................................................ 1 2 设计要求 .....................................................................................................

mt8880c的智能电话
mt8880c的智能电话 目录 1 绪论 ................................................................................................................................ 1 2 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 要求 ......................................................................................................................... 1 3 系统结构 ......................................................................................................................... 2 3.1 基于MT8880C的DTMF收发单元 ............................................................................ 2 3.1.1 DTMF信号的介绍 .......................................................................................... 3 3.1.2 DTMF芯片MT8880C ..................................................................................... 3 3.1.3 MT8880C硬件电路 ........................................................................................ 6 3.2 基于ISD4002的语音电路单元................................................................................... 7 3.2.1 ISD4002语音芯片的介绍 ................................................................................ 7 3.2.2 ISD4002语音芯片 .................................................................................................. 9 3.2.3 语音单元硬件电路 ........................................................................................ 11 3.3 外部存储单元 ......................................................................................................... 11 3.3.1 掉电存储器24C32介绍 ................................................................................ 11 3.3.2 掉电存储器24C32读写操作 ......................................................................... 12 3.4 其他单元电路 ......................................................................................................... 13 3.4.1 显示单元 ...................................................................................................... 14 3.4.2 键盘操作单元和主控制器单元 ...................................................................... 14 4 系统软件设计 ................................................................................................................ 14 4.1 整体系统软件设计 .................................................................................................. 14 4.1.1 录音模块 ...................................................................................................... 15 4.1.2 放音模块 ...................................................................................................... 15 4.1.3 增删号码模块 ............................................................................................... 15 4.1.4 模拟拨号模块 ............................................................................................... 16 4.2 从机软件设计 ......................................................................................................... 17 5 结束语........................................................................................................................... 19 致谢.................................................................................................................................. 20 参考文献........................................................................................................................... 20 附录1 整体电路图............................................................................................................ 21 附录2 主机程序 ............................................................................................................... 22 附录3 从机程序 ............................................................................................................... 27 1 绪论 社会的发展和科学技术的进步给人们的生产、生活、工作方式及工作环境带来了很大的变化~它们以更加便捷、快速、智能、方便的方式给人们提供着服务~使人们的生活和工作变得更加的轻松和高效。在科学技术的发展中~通信科技的产生和发展更是给人们带来了前所未有的改变~使得人们虽相隔万里也能随时相互保持联系~使得人们之间的交流不受时间和地点的限制~极大地方便了人们的生活和工作。特别是在现在的时代~我们都称之为“信息时代”~人们对信息的要求更是要快速和准确~这样将更有利于提高人们的工作效率。科学技术改变着人们的生活方式~但是它也体现着人们对更加理想的生活的追求。人们总是在想着各种各样的方法和设计出各种各样的工具去方便人们的各个方面~特别是在现在这样一个电子技术非常成熟的时代利用电子器件可以设计出非常智能和人性化的产品~给我们的生活带来的极大地便利。本次设计也是从人们的生活和工作需要出发~依靠现有的发达的通信网络和电子器件来设计的。 电话机在我们的生活中已经是一个必不可少的工具了~通知个事情我们不再需要直接跑过去见到了对方之后才能告诉对方~一个电话打过去什么信息都能传达到。但是随着人们对工作效率的要求和对电器件更加智能化的要求~人们总是希望设计出更加智能化的电话。由于人们的工作性质等方面的不同人们对智能化的要求方向也是不一样的~本次设计是针对一些办公人员而设计的~特别是那些为会议做安排的一些人员。当需要开会时我们必须把每一个参加会议的人员都通知到~但是通知的内容还都是一样的~这样就使得工作显得既麻烦而且还无聊~十分影响工作效率~并且当参加会议的人员很多时既费时又费力~在这种情况下就十分有必要根据这种情况设计一种能够适应这种情况的电话机~使得我们在通知一些工作和会议时只需将我们要通知的内容先录制好后~再将要通知的人员的电话号码输入到电话本里~电话机就会自动地将其中的人员一一的通知到~这样将会十分方便我们的工作。还可以根据需要添加一些其他的功能~比如可以设定一个会议模式~当我们在开会时电话机会自动的进入静音模式不影响我们开会~并且可以自动摘机自动的通知打电话的人现在正在开会请稍后再打来等等的一些非常人性化的设计。这样既不会打扰我们开会~还不会耽误我们的工作。这样的一种智能会议电话将会给我们的工作带来非常大的帮助~提高我们的工作效率~使得我们的工作轻松快捷。 2 设计要求 1 系统的具体设计要求为: ,1,能够录音且有电话薄~能够把所录制的声音按照电话薄中的号码一一的自动拨通后播放给对方听。 ,2,当没有拨通后能够将电话号码 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 下来~以便进行重拨。 ,3,可以重复的录音更新录音的内容及电话薄中的号码能增加能删除。 ,4,操作要简单方便~显示要明了简洁~便于一般人群使用。 3 系统结构 该智能会议电话系统主要包括:基于ISD4002的语音单元、基于MT8880C的DTMF收发单元、外部存储设备单元、显示单元、键盘操作单元、输出控制单元、基于AT89S52的智能控制单元等几大部分组成。由于系统的单元电路比较多及控制单元采用的AT89S52芯片的I/O只有40个~单个这样的芯片并不能满足该系统的要求所以本系统的控制单元采用了两个芯片一片AT89S52及一片AT89C2051~这样两个芯片的I/O口加起来就有60个就能够满足使用要求了。系统的总体设计框图如图1所示。 ISD4002语输出控制AT89C2051 音电路单元电路单元控制器 MT8880C双键盘操作 音多频收发电路单元 电路单元 AT89S52控 制器 外部存储显示电路设备电路单元单元 图1 系统总体设计框图 通过系统的具体设计要求和系统的总体设计框图我们可以对系统有一个整体而全面的了解~下面对系统的各个单元电路分别进行详细的阐述和分析。 3.1 基于MT8880C的DTMF收发单元 2 本系统的一个重要的功能就是要能够实现模拟拨号及能够检测电话线上的音信号以便能够判断电话线的状态:现在是否能拨号、对方是否正在通话、对方是否摘机、对方电话是否有人接听等~这些信号都是双音多频信号。为了能够系统的了解双音多频信号~对于DTMF双音多频信号可以做一个简单的介绍。 3.1.1 DTMF信号的介绍 DTMF信号是双音多频信号的英文缩写~这种信号不是单一频率的信号而是由两种不同频率的信号叠加而成的。两个不同频率的信号一个取自高频群另一个取自低频群~高低频群各包括4个频率~所以由高低群频率可以组成16种不同的DTMF信号。这样的一种频率组合结构正好和电话机上的4×4矩阵键盘相对应~每一行代表一个低频~每一列代表一个高频~每按一个键就可以发送一个高频和低频的正弦信号组合。对于高频群和低频群中的各个频率信号的选择不是任意的~是经过考虑了电路中的各种干扰信号频率和信号音频率而选择的。16种不同的组合和电话机上的按键是一一对应的~详细的对应关系如表1所示。 表1 DTMF信号的频率组合及对应编码 键 号 低频组(Hz) 高频组(Hz) D4 D3 D2 D1 697 1209 0 0 0 1 1 697 1336 0 0 1 0 2 697 1477 0 0 1 1 3 770 1209 0 1 0 0 4 770 1336 0 1 0 1 5 770 1477 0 1 1 0 6 852 1209 0 1 1 1 7 852 1336 1 0 0 0 8 852 1477 1 0 0 1 9 941 1336 1 0 1 0 0 941 1209 1 0 1 1 * 941 1477 1 1 0 0 # 697 1633 1 1 0 1 A 770 1633 1 1 1 0 B 852 1633 1 1 1 1 C 941 1633 0 0 0 0 D 对于DTMF信号的发送与接收也是有专门的芯片的~比较常用的一种芯片是MT8880C。该芯片具有功耗低、集成度高、可编程控制、容易和微机接口等功能和优点所以在众多的DTMF电路中普遍应用。 3.1.2 DTMF芯片MT8880C 3 首先对MT8880C芯片做一个简单的引述和介绍。MT8880是MITEL公司生产的DTMF发送与接收器~它是一种功能较强的DTMF发送与接收器可与多种单片机配接完成DTMF信号发送接收、信号音检测等功能。发送部分采用开关电容式D,A转换器~发送的DTMF信号失真小、频率精度高。接收器采用两组六阶开关电容式带通滤波器~分离出音调信号的低频群和高频群。解码器采用数字计数方式检测双音信号的频率并映射为相应的二进制码~且有多种工作模式。它的内部寄存器、控制接口和数据总线器便于实现与微处理器的直接接口和对电路进行工作模式控制~获得更多的功能和灵活性。通过微机接口可以由CP、RSO、R/W、CS、D0~D3等信号选择内部寄存器并控制电路的工 [1]作状态或工作模式。MT8880C的管脚图如图2所示。 图2 MT8880C管脚图 其各脚的功能描述如下: IN+、IN-:分别为内部放大器的同相输入端和反相输入端~即接收DTMF信号的输入端。 GS:内部放大器的输出端~外接一个负反馈电阻至IN-端。 UREF:内部参考电压输出端~该参考电压等于UDD/2。 UDD、USS:分别为电源的正、负端~供电电压为5V。 OSCl、OSC2:外接一个3.58MHz晶体~形成晶体振荡器。 TONE:双音频信号输出端。 R,W:读,写控制端~该端施以高电平时读MT8880~施以低电平时写MT8880。 RSO:用于选择内部各寄存器的控制端~该端施以高电平时选中控制寄存器或状态寄存器~施以低电平时选中发送数据寄存器或接收数据寄存器。更具体的对应关系必须根据R,W端的状态共同确定~具体的对应关系见表2所示。 IRQ:在双音频模式并且在中断模式时~当收到有效DTMF信号或准备发送DTMF信号时该端由高电平变到低电平,在呼叫处理模式且检测到有效信号音时~该端输出方波。 D0,D3:写入命令或读出状态的数据线。 4 表2 MT8880C内部状态寄存器选择表 内部寄存器及功能 RS0 R/W 写数据发送寄存器 0 0 读数据接收寄存器 0 1 1 0 控制寄存器CRA或CRB 读状态寄存器 1 1 MT8880C具有很强大的功能~共有6种工作模式下面介绍常用的3种模式。,1,双音频模式:在该模式下~芯片能接收并译码DTMF信号或产生并发送DTMF信号。接收信号从IN—端输入~发送信号从TONE端输出。(2)呼叫处理模式:在该模式下~芯片可以从输入信号中检测电话呼叫过程的各种信号音,回铃音、拨号音、忙音~拨号音是450Hz的连续信号~忙音为0.35秒通、0.35秒断~回铃音为1秒通、4秒断,。当信号频率落在320,510Hz范围以内时能从IRQ端输出方波~否则IRQ端为低电平。,3,中断模式:在该模式下~若芯片同时被设臵为接收或发送DTMF信号模式~那么当收到有效DTMF信号并译码后~IRQ端变为低电平,在准备发出DTMF信号时~IRQ端变为低电平。中断模式下~若芯片同时被设臵为呼叫处理模式~在收到有效信号音时~IRQ端能输出对应的方波。 MT8880内部有5个寄存器:数据发送寄存器TDR、数据接收寄存器RDR、控制寄存器CRA及CRB、状态寄存器SR。芯片工作于何种功能~取决于在单片机的控制下写入控制寄存器CRA和CRB的内容~而芯片的某些状态可以根据读出状态寄存器SR的内容来判断。 当需要接收DTMF信号时~首先往控制寄存器CRA和CRB写入相应的控制字~把芯片设臵为DTMF模式~通过读取状态寄存器中的D2位可以判断是否收到一个有效的DTMF信号并已译码。若已收到则读取内部“接收数据寄存器”的内容,从芯片的D0一D3脚读出,。当需要发送DTMF信号时~同样应先往控制寄存器CRA和CRB写入相应的控制字~把芯片设臵为DTMF模式~通过读取状态寄存器中的D2位~可以判断是否发送完一个DTMF信号。若已发送完~则把下一个要发送的数字由D0,D3写入到内部“发送数据寄存器”。如果芯片同时又被设臵为中断模式~则通过检测IRQ端状态~也能判断一个DTMF信号收到或发送完毕与否。如何选中“接收数据寄存器”或“发送数据寄存器”应根据表3的规定~给引脚RSO和R/W施以相应电平。如果要检测电话信号音,回铃音、拨号音、忙音,~则应首先向控制寄存器CRA、CRB写入对应于该工作模式的控制字~然后检测IRQ端的方波信号~根据方波信号的间 5 歇、间隔规律来判断是哪一种信号音。 控制寄存器CRA、CRB以及状态寄存器都只有4个位,比特,~分别记为D0、Dl、D2、D3~要写控制寄存器或读状态寄存器~只要按照表3的规定给RSO引脚及R/W引脚施以相应电平就可以通过引脚D0,D3写入或读出。 控制寄存器和状态寄存器各个位的功能意义简述如下:,1,控制寄存器CRA。D0:把该位设臵为“1”则芯片被设臵成DTMF模式~允许收、发双音频信号。D1:把该位设臵为“1”则芯片被设臵为信号音检测模式,呼叫处理模式,~当D2也设为“1”时~引脚IRQ端能输出与各种信号音对应的方波。D2:把该位设臵为“1”则芯片被设臵成中断模式~其具体功能见前述的3种模式介绍。D3:把该位设臵为“1”~表明允许选择控制寄存器CRB~因此应在写入控制寄存器CRA后~接着写控制寄存器CRB。,2,控制寄存器CRB。D0:把该位设臵为“0”时芯片工作于普通双音频模式~设臵为“1”时芯片工作于突发模式~突发和暂停长度各为,51土2,ms。D2:把该位设臵为“0”时允许产生双音频~否则只产生单音频。D3:行/列音选择~当D2为1,单音模式,时D3用于选择行音或列音,即音频频率的选择,。,3,状态寄存器SR。D0:发 ”读取状态寄存器后自动清“0”。D1:准备发送新数据时生中断时该位为“1 为“1”读取状态寄存器后自动清“0”。D2:接收数据寄存器满,即收到有效数据,时为“1”读取状态寄存器后自动清“0”。D3:一定时间内检测不到DT [2]MF信号时为“1”~检测到DTMF信号时清“0”。 3.1.3 MT8880C硬件电路 通过对MT8880C功能的整体描述可进行相关软件方面的设计~再配合硬件电路便可以完成DTMF信号的接收和发送~其硬件连接电路如图3所示。在上述电路中还包括了模拟摘机电路部分~模拟摘机电路完成拨号前的自动摘机功能~由于电话线上传来的信号的极性没有确定~圆桥可以稳定信号的极性~从正极输出端输出的永远是正极性~负极输出端输出的永远是负极性。模拟摘机电路工作与否由控理器传送到光耦第二个管脚的高低电平决定~当控理器传送过来的是低电平时~光耦合器导通使三极管导通从而使回路电流值突增~电话交换机检测到该电流~将线路电压变为十几伏的直流~模拟摘机得以实现。当摘机成功后便可以通过对MT8880C的寄存器进行操作来完成相应的双音多频收发功能。对于MT8880C的12脚输入的接口控制信号可以采用由单片机产生的方波脉冲也可以采用由3.58M的晶振产生的振荡信号经过一个104的电容耦合到12脚形成。对于后者来说由于该信号不依赖于单片机产生这样对于单片机的控制来说就比较的方便和简单~但是这样也存在着一些弊端~因为该脉冲不受单片机的控制所以对于单片机的控制来说就比较的被动了~也就是说单片 6 机产生的对于MT8880的控制信号的时序要满足MT8880的硬件要求。 3KR2VCC89S51 P1.0 MT8880CP1.1100KR7C1120P1.2IN+VDD104C2219P1.3IN-ST/GTR6318P1.4GSEst417P1.5100K300KVRefD3R14.7μF516P1.6VSSD2R4615P3.2OSC1D17142.4MOS2D0813TONEIRQ/CP912R/WΦ21011CSRS02N5401 V1R5300ΩR9C4C610KC51μF104 R3D13.58MHZ100KR8R11T1114A15V82K30KC8104C3C72KR10D215V10μF/160V1 4.7μF2LM3241N4004×4PC817R12CON22VCC模拟摘机控制 220Ω1图3 MT8880C硬件连接图 3 3.2 基于ISD4002的语音电路单元 本系统的一个重要的功能就是进行自动电话通知~那就必须的要有一个能够存储语音的芯片~以便能够将要通知的内容先录制下来然后再让系统自动的进行通知。在这个过程中就体现出了对语音芯片的功能要求~首先要能够在线录音~其次就是要能够多次的擦写以便进行录音内容的随时改变。对于这样的要求一般的语音芯片是不能够满足的~现在大多数的语音芯片多是一次性擦写的而且还需要专门的系统进行语音的录制~使用这种芯片对于本系统来说很不方便而且也是不现实的。这就需要使用一些专门的语音芯片来完成系统所需要的功能。 3.2.1 ISD4002语音芯片的介绍 ISD4002是美国ISD公司制造的一种新款语音芯片。与ISD其它系列语音产品不同的是~ISD4002是一种微控制器“从”设备~而“主”控制器可以是内臵有SPI兼容接口的微控制器~也可以用I/O口仿真SPI通信协议。ISD4002系列工作电压为 3V~单片录放时间为2,4分钟~音质好~适用于移动电话 7 及其它便携式电子产品中。该芯片采用CMOS技术~内含振荡器、抗混叠滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。芯片的所有操作必须由微控制器控制~操作命令可通过串行通信接口送入。ISD4004采用多电平直接模拟量存储技术~每个采样值直接存贮在片内闪烁存贮器中~因此能非常真实、自然地再现语音、音调和效果声~避免了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率可为4.0、5.3、6.4、8.0kHz~频率越低~录放时间越长~音质则有所下降~片内信息存于闪烁存贮器中~可在断电情况下保存100年,典型值,~反复录音10万次。ISD4002的管脚图如图4所示。 图4 ISD4002管脚图 各个管脚的功能描述如下: 电源,VCCA、VCCD,:为使噪声最小~芯片的模拟和数字电路使用不同的电源总线~并且分别引到外封装的不同管脚上。模拟和数字电源端最好分别走线~尽可能在靠近供电端处相连~而去耦电容应尽量靠近器件。 地线,VSSA、VSSD,:芯片内部的模拟和数字电路也使用不同的地线。 同相模拟输人,ANAIN,,:录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时~信号由耦合电容输入~最大幅度为峰峰值32mV~耦合电容和本端的3K电阻输人阻抗决定了芯片频带的低端截止频率。差分驱动时~信号最大幅度为峰峰值16mV。 反相模拟输入,ANAIN-,:差分驱动时~为录音信号的反相输入端。信号通过耦合电容输入~最大幅度为峰峰值16mV。 音频输出,AUDOUT,:提供音频输出~可驱动5K的负载。 片选,SS,:此端为低~即向该ISD4002芯片发送指令~两条指令之间为高电平。 串行输入,MOSI,:此端为串行输入端~主控制器应在串行时钟上升沿之前半个周期将数据放到本端~供ISD输入。 8 串行输出,MISO,:ISD的串行输出端。ISD未选中时~本端呈高阻态。 串行时钟,SCLK,:ISD的时钟输入端~由主控制器产生用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD~在下降沿移出ISD。 中断,INT,:本端为漏极开路输出。ISD在任何操作,包括快进,中检测到EOM或OVF时~本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。 OVF标志用来指示ISD的录、放操作已到达存储器的末尾。EOM是只在放音中检测到内部的EOM标志时此状态位才臵1。 行地址时钟,RAC,:漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行ISD4002系列中的存贮器共1200行~该端可用于存储管理技术。 3.2.2 ISD4002语音芯片 对ISD的任何操作都是要通过控制器给其发送相应的命令来实现的~控制器要想和ISD互传数据就必须遵循ISD的通信协议。ISD采用的是的SPI通信协议。 SPI协议是一个同步串行数据传输协议~协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。ISD4002工作于SPI工作模式~因此对于ISD4002而言~在时钟上升沿锁存MOSI引脚的数据~在下降沿将数据送至MISO引脚。 通讯协议的具体内容如下:,1,所有串行数据传输开始于SS下降沿。,2,SS在数据传输期间必须保持低电平~在两条指令之间则保持高电平。,3,数据在时钟上升沿移入~在下降沿移出。,4,SS变低时~输入指令和地址后~ISD才能开始录放操作。,5,指令格式是5位控制码加11位地址码。,6,ISD的任何操作,含快进,如果遇到EOM,信息结束标志,或OVF,溢出,则产生一个中断~该中断状态在下一个SPI周期开始时被清除。,7,使用“读”指令使中断状态位移出ISD的MISO引脚时~控制及地址数据也应同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。,8,所有操作在运行位,RUN,臵“,”时开始~臵“,”时结束。,9,所有指令都在SS上 [5]升沿开始执行。上面是对SPI协议的整体描述~SPI的端口控制位如图5所示。SPI控制寄存器的功能描述如表3所示。由SPI控制存储器功能表可以非常清楚地了解其端口控制位的具体内容~再配合其指令表就可以完成对ISD4002的操作~以完成录放音操作。ISD4002的指令表如表4所示。但是在发送指令是需要注意的是:在发送指令时在两个指令之间SS必须保持高电平这一点在使用中很关键。对于向ISD发送的任何信号数据都要严格的按照其通信协议来进行~协议就是不同设备之间进行通信的桥梁。 9 OVFEOMP0P1P2P3P4P5P6P7P8×000P9MISO MOSIC4C3C2C1C0×A9A8A7A6A5A3A2A1A0A4 图5 SPI端口控制位图 表3 SPI控制寄存器功能表 位 名称 值 功能 开始 1 C4 RUN 停止 0 放音 1 C3 P/R 录音 0 上电 1 C2 PU 掉电 0 忽略输入地址寄存器的内容 1 C1 IAB 使用输入地址寄存器的内容 0 允许快进 1 C0 MC 禁止快进 0 行指针寄存器输出 P9-P0 输入地址寄存器 A9-A0 表4 ISD4002指令表 指令 操作摘要 5位控制码<11位地址> POWERUP 00100 上电~等待TPUD后器件可以工作 SET PLAY 11100 从指定地址开始放音必须后跟PLAY指令使放音继续 PLAY 11110 从当前地址开始放音,直至EOM或OVF, SET REC 10100 从指定地址开始录音~必须后跟REC指令录音继续 REC 10110 从当前地址开始录音,直至OVF或停止, SET MC 11101 从指定地址开始快进~必须后跟MC指令快进继续 MC 11111 执行快进~直到EOM若再无信息则进入OVF状态 停止当前操作 STOP 0X110 停止当前操作并掉电 STOP WRDN 0X01X RINT 0X110 读状态:OVF和EOM 从上面的资料中我们可以看出ISD上电后是需要等待一段时间才能给其发送命令的~下面以从00地址开始放音和录音为例分别说明两种情况的操作顺序。 从00地址开始放音的操作顺序是:1、发送POWERUP命令2、等待TPUD时间3、发送地址为00的SET PLAY命令4、发送PLAY命令。 从00地址开始录音的操作顺序是:1、发送POWERUP命令2、等待TPUD时间3、发送POWERUP命令4、等待2倍的TPUD时间5、发送地址为00 [7]的SET REC命令6、发送REC命令。 10 3.2.3 语音单元硬件电路 主控器通过I/O口和ISD进行通信~通过发送给ISD相应的命令来完成语音的录制和播放。语音的输入采用一个麦克风加一个前级放大电路组成~放大后输入到芯片的内部。输出部分采用一个专门的音频功放芯片LM386来实现语 VCC音输出的功率放大。ISD4002的硬件连接电路如图6所示。 89C2051ISD4002 12127P10SSVCCD13218P11MOSIVCCA143P12MISO1528P13SCLKC1C2C3164P14VSSD0.1μF0.1μF22μF1723P15VSSA182412P16RACVSSA192511P17INTVSSA 617P32IN+16C5IN-R826131μFXCLKAUD OUT141KAM CAPC6R90.1μFC4C1310μF输出1μFVCC1.2KLM386 18CAINCAINR50.1μF2710K-INPUTBYP36C1210K+INPUTVSR7R2C8C1045GNDVOUTRW1470K1KC11250μFR10.05μFC9V1MICR6 R410Ω10K图6 ISD4002的硬件连接电路 10K0.1μF C710μF3.3 外部存储单元 R3 220Ω系统要实现自动拨号进行电话通知就必须要有一个用来存储电话号码的器件~将要通知人员的电话号码事先记录起来作为电话通知的依据。考虑到使用的实用性设计中使用了一种掉电存储器~因为在实际的使用中要通知的对象一般是不会变的或者变化很小的~这样使用掉电存储器进行电话号码的存储就不会因为系统掉电而需要重新对设定的电话号码进行输入。当然~当我们想要重新更换通知人员的名单时我们也是可以通过软件很方便地进行任意的删除和增 2加的。设计中使用的掉电存储器是具有IC接口的存储芯片24C32。 3.3.1 掉电存储器24C32介绍 2该存储器有4K的存储空间~采用IC协议和单片机之间进行数据传输。I2C总线上允许挂接多从机~采用发送不同的地址信息和严格的时序信号进行主 2机和从机之间的数据传输。具有IC协议的从机其地址端都是可编程的~通过接地或接高电平来形成不同的地址~如果总线上只有一个从机一般都是将地址 11 端全部接地~对于24C32芯片其可编程的地址端有四位~高四位为固定的地址编号为1010~低四位中前三位为可编程地址端最低位为读写控制位~0表示写操作~1表示读操作。当要对器件进行读写操作时~要严格按照器件的读写时 [11]序图进行数据传送才能正确的读出或写入数据。其管脚接线图如图7所示~VCC 器件地址位如表5所示。 R1R2 5.1K5.1K 24C32 18A0VDD27A1WP36A2SCL45VSSSDA 图7 24C32外围接线图 表5 24C32器件地址位 1 0 1 0 A1 A2 A3 WR/ 器件上SDA为串行数据/地址端~SCL为串行时钟端~A0、A1、A2为器件地址输入端~器件地址就是通过它们的不同连接来形成不同的器件地址的~SP为写保护端如果SP接高电平则器件内所有内容都被写保护只能读不能写~当WP端悬空或接地时允许器件进行正常的读写操作。使用I2C协议传送数据是有协议定义的:,1,只有在总线空闲时才允许启动数据传输。,2,在数据传送过程中~当时钟线为高电平时数据线必须保持稳定状态~不允许有跳变。时钟线为高电平时~数据线上的任何电平变化都被看作是总线的起始或停止信号。 2时钟线维持高电平期间~数据线电平由高到低的跳变为IC的起始信号~由低到高为停止信号。 3.3.2 掉电存储器24C32读写操作 数据的读写要严格按照器件的时序图进行~写操作分为两种情况:,1,字节写,2,页写~读操作分为三种情况,1,立即地址读,2,选择性读,3,连续读。 在字节写模式下主器件发送起始信号和从器件地址信息给从器件~从器件在收到后发出应答信号表明已收到信号~从器件发出应答信号后~主器件再发出24C32的字节地址~主器件在收到从器件的又一应答信号后再发送数据到被寻址单元~24C32再次应答~在收到主器件发出的停止信号后开始内部数据擦写~在24C32擦写过程中不再应答主器件的任何请求。字节写的时序图如图8 12 所示。 图8 字节写时序图 用页写操作24C32一次可以写入32个字节的数据~页写操作的启动和字节写一样~不同在于在传送了一个字节之后主器件并不产生停止信号~主器件被允许额外发送31个字节~在24C32接收到数据后会发出一个应答信号并将字节地址低位加一~高位保持不变。当24C32收到停止信号后~启动内部写周期把数据写入数据区~所有接收的数据在一个机器周期内写入器件内部。页写的时序图如图9所示。 图9 页写时序图 立即地址读很简单只需发送器件地址后便可以读数据了~立即地址读是从上次读/写操作地址后一位开始的。选择性读操作允许主器件对寄存器的任意地址进行读操作~主器件首先通过发送起始信号、器件地址和它想读的字节数据地址执行一个伪写操作~在24C32应答之后主器件重新发送起始信号和从器件地址~此时R/W位臵1~从器件响应并发送应答信号~然后输出所要求的一个8位字节数据~主器件不发送应答信号但要产生一个停止信号。 连续性读操作可以以立即读或选择性读为起始~在24C32发送完一个数据后主器件发送一个应答信号告诉从器件需要更多数据~从器件在收到每个应答信号后都会发送一个8位字节数据~当主器件不发送应答信号而发送停止信号时结束。对于读操作的时序图就不再附图了~其时序和写操作的时序一样。 3.4 其他单元电路 上面的几个单元电路都是设计中非常重要和关键的电路单元~是设计中的难点和重点~只要将它们设计好了再配合上其他的辅助电路就能够实现本系统所要求的全部功能。下面对一些辅助电路单元也做一下简单的介绍。 13 3.4.1 显示单元 显示部分也是一个比较重要的部分~它主要用来完成操作提示的功能~为人们使用系统提供了窗口能清晰地显示用户的每一步操作~是人机信息交流的一个重要辅助单元。设计中使用的显示屏是一个带有中文字库的黄屏单色液晶显示屏JCM12232~它能显示汉字、字母、数字以及一些符号~是一个非常好用的显示模块~用此模块来完成显示任务实用也方便。对于该模块的相关资料这里就不再多做介绍了~因为该模块和LCD1602的使用完全一样~只是1602不带中文字库而已。 3.4.2 键盘操作单元和主控制器单元 为了方便用户进行电话号码的增删和进行录放音等相关的操作~必须要有一个人机接口电路来传送用户向系统所输入的指令~矩阵键盘是一个非常简单而且使用的电路~几乎在所有的可操作的系统中都将会用到此电路~本次设计中使用的也是一个4×4的矩阵键盘来完成人机对话任务的~由于矩阵键盘的使用非常的普遍和简单并且此系统的设计在这一块也没有什么创新和改变~这里也就不多做介绍了。 主控制器使用的是AT89S51单片机还配有一个AT89C2051单片机。系统中的每一个单元电路都是需要微控制器进行控制才能工作的~由于单元电路比较多一个单片机其I/O口不能满足系统设计的要求~所以就又加了一个微控制器~这是硬件设计的要求。两个控制器同时工作在一个系统中虽不能像一个微控器那样操作简单而且还需要两个控制器之间进行通信增加了系统设计的难度~但是这样设计也是有好处的。两个控制器可以各自管理相应的电路单元~这样可以提高系统的执行能力减少了因单个控制器控制逻辑复杂而可能造成的死机或控制失误等情况。并且对于多主机之间的通信来说不是很复杂的只需要两个甚至一个I/O就可以通过软件的设计来完成。 4 系统软件设计 由于系统在设计中使用了两个微控制器~一个作为主机另一个作为从机~所以系统软件的设计也是由两部分组成的。为了表述的清晰先对系统的软件设计做一个整体的分析和描述然后再将其各个部分的软件设计流程图进行介绍。其实两部分也是可以进行一起来描述的~因为我们在硬件的设计部分已经说明了~采用两个微控制器是因为单个的控制器其I/O口不够所以才采用了两个的~本来就是一个整体的~只是现在增加了两个控制器之间的通信部分。 4.1 整体系统软件设计 14 对于主机来说系统在初始化过程中首先对显示器进行初始化操作并发送相应的显示内容~用于提示用户。对于显示器的初始化~系统只是在上电初期对显示器进行初始化操作~在接下来的过程中系统将一直在进行键盘扫描。在没有键盘信息输入时系统什么都不做~只是在不停的扫描键盘查看是否有相应的功能键按下~这时候系统是最空闲的时候。系统中总共设计的功能模块有5个:录音模块、放音模块、增加号码模块、删除号码模块、一键电话通知模块。对于电话系统中的功能模块为了防止误操作系统中还设有一个确定程序~只有当按下相应的功能键后按下确定键才能够进行相应的操作。当按下了功能键后如果按下的是取消键则系统会自动的返回主页面继续进行键盘扫描。 4.1.1 录音模块 当按下录音键并确定后~系统首先要通过串口通信向从机发送一个事先定义好的信息码~当从机接收到这个信息码后从机对该信息码进行核对~核对正确后从机首先将录音操作设定好再给主机发送一个确定信息并且将相应的发光管点亮以提示用户现在已经可以开始录音了。在录音过程中从机还要一直检测主机是否有信息发送过来~在这个过程中只要主机给从机发送有数据~从机不管该数据的内容是什么都将会认为是停止信号而停止当前的录音操作。当停止录音后从机先将发光管熄灭指示现在的录音已经停止了另外还要给主机返回一个信息告诉主机现在录音操作已经停止了~主机接收到这个信息后也就会显示相应的信息表示现在的录音操作已经停止了~延时一段时间后系统自动就会返回原来的扫描键盘过程中。对于系统的任何一个功能处理过程~当系统处理完毕后都将会返回系统的主界面~而对先前处理过的内容系统都不会做任何的记忆。 4.1.2 放音模块 放音键的程序实现过程和录音键的程序实现过程基本上是一样的~不过对于放音来说因为放音不会改变系统的内容所以在系统的软件设计中对于放音操作没有设计相应的确定程序~也就是只要按下了放音操作功能键系统就要进行放音并且直到放音结束为止~在放音过程中主机也是要时刻监视从机的放音过程的。放音指令首先由主机发出~发出后主机检测从机发送来的信息~通过从机发送过来的信息主机判断现在的放音情况~并通过显示器显示出来~当此操作处理完毕后也要返回到主界面。 4.1.3 增删号码模块 电话号码本也是本系统的一个主要功能~对于模拟拨号来说号码本是一个拨打电话的依据。为了能够方便的进行修改电话号码~系统中分别设立了两个 15 功能键来分别进行增加号码和删除号码。对于增加号码和删除号码来说主要的都是对外存储器的读写操作。为了能够方便的进行读写操作和准确的将电话号码存储起来就必须要对存储器中的存储空间进行合理的划分~当要查看系统中存储的电话号码个数时能够迅速的通过读取一两个字节的内容就知道现在系统中电话号码的个数~当要进行增加号码时系统能够快速的就知道新的号码将要存放的地址等等对于这些操作都是要事先通过对存储器中的存储空间合理的分配才能够实现的。对于本次设计系统中的号码存储空间的划分主要分成了两部分:一部分用来存储系统信息~也就是系统中的电话号码个数和下一次要存储的地址~另一部分是用来真正存储电话号码信息的。对于电话号码存储信息部分本次设计也进行了精心的设计~对于每一个号码存储空间来说为了读写操作和管理的方便都将其长度固定为一个确定的值~如果输入的号码长度小于该空间则系统会在号码的结束部分放入一个结束标志信号以便于系统在读取时进行号码长度的辨别。还有就是对于每一个号码存储空间又被分为了两部分:前6个字节用来存储对方的姓名后6个字节用来存储对方的号码~对于后6个字节中存入的号码系统是将用户输入的号码进行了压缩后才存入的~这样6个字节就能够存入12位的电话号码这样将会大大的增加系统电话号码容量。对于号码空间中的对方姓名部分来说~系统默认的姓名都是某某某~因为系统没有办法通过一个简单的矩阵键盘来进行汉字的录入~即便是可以这样的录入速度也是非常的慢的而且也不方便~设计这一部分主要是为了以后对系统进行升级用的。对于存储号码来说可以再做一个和电脑能够通信的电路部分这样就能够将电话号码直接的输入到系统中~这样对于系统的应用将会十分的方便。 4.1.4 模拟拨号模块 模拟拨号部分也是本系统中非常关键的一个环节~首先要能够准确的对电话线上的信号音进行判断只有准确的判断出了信号音系统才能够确定下一步的操作。首先系统通过发送一个信息码给从机实现模拟摘机操作~从机检测到该信息码后进行核对和分析后进入模拟摘机操作。模拟摘机成功后主机调用信号音检测子程序~首先对电话线上的音信号进行判断~查看一下现在是否能够进行拨号~也就是查看一下电话线上面是否有拨号音。电话线上面如果有拨号音则说明电话线正常能够进行拨号操作。拨号操作也是一个比较复杂的操作~首先系统要先从外存储器中将数据读出~但是对于读出的数据是不能马上就进行拨号的~因为这部分数据在存入时是经过了压缩的~要先经过相应的算法解压后系统才能够识别~识别出来的信息包括两部分一部分是对方姓名~另一部分就是对方号码了。对于对方姓名用于显示~号码则就是要拨打的号码了。当拨完号码后系统还要调用信号音检测子程序检测电话线上面是否有回铃音或忙 16 音~若为回铃音则表示号码拨通了等待对方接听~若为忙音则表示对方现在正忙那么就要先将该号码的地址存储起来以便进行下一步的重拨。当对方摘机后系统经过判别后就会给从机发送相应的信息码~使得事先录好的声音信息挂接到电话线上面这样对方就能够听到录音了。在播放录音的过程中主机仍然要一直的判别电话线上面的音信号~当对方挂机或者是录音播放完毕后系统自动的挂机~然后再进行下一个号码的读取和拨打直到拨打完毕为止。当拨打完了所有的电话号码后系统就会去查看是否有没有拨通的电话号码~如果有的话则再次的拨打直到把所有的没有拨通的号码再拨一遍为止。如果仍然有没有拨通的号码则系统将这些号码的地址记录下来~但是不会再次进行拨打了~等待着用户来查询。主机的软件设计流程图如图10所示。 4.2 从机软件设计 在整个系统中从机所负责的只是完成系统的其中一部分功能~从机和主机之间的通信主要是通过串口和事先所设计的通信信码来完成。通信信码是指在数据的传输过程中因为主机和从机之间的数据传输不只是针对一个特定的功能而是要通过通信实现对从机的所有功能的控制的~那么就必须要有一个严格的规定来进行约定~以使主从双方都能知道现在所要传送的是什么数据。设计中是通过先发送特定的信码将连接建立好后再进行具体的通信来实现的。比如现在想要进行放音操作放音单元是受从机控制的~可以先给从机发送一个具体的约定数据比如0XA0~当从机检测到此数据时就知道现在是要进行放音操作则执行相应的程序来完成操作。从机所负责的单元电路有录放音单元、输出控制单元、模拟摘机挂机单元等部分。从机的软件设计流程图如图11所示。从机在没有收到主机发送的信码时一直在检测串行口的接收数据状态~如果有数据传送过来则从机的接收器满~从机检测到后就读出该数据然后对该数据进行判断~判别出该信息是让从机进行什么操作的~然后便调用相应的子程序进行相应的操作。对于从机的任何一个操作~从机都要向主机进行报告~以使得主机能够时刻都知道从机的状态以便进行相应的控制。但是对于一些非常简单的控制来说从机是不向主机发送信息的~从机在收到这些指令后直接的进行相应的操作后就返回到原来的检测接收数据的状态。因为对于一些简单的操作主机和从机之间的数据通信内容是非常少的~出差错的可能性是非常的少的所以就没有必要再进行相应的应答操作了。当然也可以每进行一步就向主机报告一次~这样系统会更加的稳定~当然这样的话系统的软件部分也将会相应的复杂。就系统的安全性和软件的复杂性来讲在保证系统的安全性的前提下软件部分的设计也是要越简单明了越好~在控制不是非常复杂的情况下要充分的利用好硬件资源~这样系统的执行效率不仅会提高而且对系统的稳定性也是一种相应的保护。 17 系统初始化 提示显示 有按键按N下,NNY 调用录放音N确定,Y增加号码,Y功能键,录放音,Y子程序 YNY 键盘扫描向从机发送删除号码,N一键通知,录放音信码 YY确定键,Y号码存储确定,调用自动语音 通知子程序NN Y Y退出键, 键盘扫描 N 删除当前号码Y确定键,号码记录 N 退出键, N 当前地址+12显Y上翻,示 NN 当前地址-12显下翻,Y示 图10 整体软件设计流程图 18 端口初始化 N主机有信息, Y 数据通信 录音操作,Y调录音程序 N 放音操作,Y调放音操作 N 输出控制,Y控制相应输出口 N 图11 从机软件设计流程图 5 结束语 本次设计通过使用双音多频信号发送/接收芯片MT8880C来完成模拟拨号和信号音信息检测功能~再配合语音芯片ISD4002和存储芯片组成了一个功能完整的语音信息自动通知系统。在设计中还加入了来电显示功能和时钟电路使得系统的实用性更加的完善。在这次设计中有一些单元电路是比较难以设计的需要考虑很多的实际问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 和系统的工作环境等等因素~不过通过努力最后还是把这些问题解决掉了。通过这次设计使我在硬件设计和软件编程方面都是有很大的提高的~我想这是作为我毕业之前的最好锻炼~也是对于我大学期间学习知识的总结。无论是哪方面的收获和教训~这对于我以后参加工作都是会有很大的帮助的。 19 致谢 经过近几个月的努力和奋斗~我的毕业设计已经完成。在这几个月的时间里~我衷心的感谢我的指导老师付老师~在课题选定、理论及实践指导和 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 的论证上~付老师对我精心的指导和耐心的帮助和鼓舞~使我能够坚持到底~使之毕业设计有了较理想的结果。至此 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 定稿之际~对付老师表示衷心的感谢!感谢老师能在繁忙之中抽出时间为我提供耐心的指导~帮我们解决在设计过程中遇到的种种问题。 在做毕业设计期间~我还有幸得到其它老师的热心指导和同学们的大力帮助~正因为有了他们~我才能克服各种困难~顺利完成毕业设计和论文。在这里一并向他们表示感谢:最后~再次向各位领导、各位老师致以崇高的敬意和最衷心的感谢: 参考文献 ,1,戴冬雪,侯俊英,赵彩风.MT8880的应用及控制方法的实现,J,.佳木斯大学学报~2002~ ,:65,66 20,1 ,2,易韦韦.双音多频信号发送/接收电路的结构及应用,J,.电子元器件应用~2003~5,12,:23,24 ,3,赵阳.MT8880的音信号检测在交换系统中的应用,J,.电子工程师~2001~27,4, ,4,鲁昆生,赵晓刚,孟忠江.MT8880与MCS-51系列单片机的最简单接口方法,J,.无线电工程~2000~30,2,:51,52 ,5,张常年,王振红,李洋.ISD4004语音芯片的工作原理及在智能控制系统中的应用,J,.国外电子元器件~2002~24,2,:20,22 ,6,冯志慧,徐利军,薛鹏涛等.一种基于单片机控制ISD4004语音芯片应用电路,J,.微型计算机~2003~19,7, ,7,吴杰,张保平.ISD4002芯片在现场录放音系统中的应用,J,.微处理机~2004~8,4,:59,62 ,8,古玉年.ISD4002系列2,4分钟单片语音录放电路及其应用,J,.苏州职业大学学报~2002~2 ,9,周结华,彭侠夫.基于公共电话网络实现智能家居的研究,J,.现代电子技术~2009~4 2,10,戴立新,王泽勇,王黎.等IC总线接口的设计及验证,J,.现代电子技术2009~2 2,11,张晓健,徐菁.用单片机控制IC器件,J,.电子世界2003~8:37,38 ,12,金鹰,刘虎.一种具有来电显示及DTMF信号收发功能的智能控制模块设计,J,.电子技术应用2008~4 ,13,黎永光,金伟正.基于MT8880C的双音多频数传系统的研制,J,武汉工业学院学报2002~4 ,14,李硕,冯玉娟.由AT89C52单片机组成的智能呼救系统设计,J,自动控制与仪器仪表2008~8 ,15,沈传兵,黄勘.MT8880与单片机直接接口方法探讨,J,中国测试技术2008~34,2, ,16,王建农.AT89C2051单片机与MT8880接口设计,J,微计算机信息2005~31,10, 20 VCC VCC89C2051ISD400212127P10SSVCCD13218P11MOSIVCCA143P12MISOC21528P13SCLKC1C2C3164P14VSSD0.1μF0.1μF22μF1723P15VSSA4.7μF89S51182412P16RACVSSA192511P1.0P17INTVSSAP1.1617P1.2P32IN+16C5P1.3IN-R826131μFP1.4XCLKAUD OUT 141KP1.5AM CAPC6C4P1.6R90.1μFC4C1310μF1μFP3.21μFVCC1.2KLM386附录1 整体电路图 18CAINCAINR50.1μF2710K-INPUTBYPC82N540136C1210K+INPUTVSR7R2C8C10C3V145300ΩGNDVOUTR9RW1470K1KC1110μF/160V250μFR10.05μF4.7μFC9V2MICR611R4D1410ΩR8R11T110K10KA15V0.1μF82K30K3K104C710μFR2R3C72KR10D215V220Ω1MT8880C2100KLM3241N4004×4R7PC817C1120R12IN+VDDCON2104219VCCIN-ST/GTR6220Ω318GSEst417100K300KVRefD3R1516VSSD2R4615OSC1D17142.4MOS2D0813TONEIRQ/CP912R/WΦ21011CSRS0 R5C610KC5104R33.58MHZ100K 21TXDRXD3RXDTXDP37P36 SPEAKER V3K1 R31 输出 21 { 附录2 主机程序 uchar lcd; while(1) #include { #include lcd_data=0xff; #include lcdrs=0; #define lcd_data P2 lcdrw=1; #define uint unsigned int lcde=1; #define uchar unsigned char lcd=lcd_data; sbit lcdrs=P3^7;//液晶显示器控 _nop_(); 制端 _nop_(); sbit lcdrw=P3^6; lcde=0; sbit lcde=P3^5;// lcd&=0x80; sbit mint=P3^2;//mt8880中断输 if(lcd==0x00) break; 出端 } sbit cp=P1^7;//mt8880脉冲端 } void wcom(uchar com)//向LCDuchar code shuzima[]="012345 写指令 6789"; { uchar code table[]=" 内部 lcd_Wait(); 电话 "; lcdrs=0; uchar code table2[]="开始录音 lcdrw=0; 吗,"; lcd_data=com; uchar code table3[]="1 是0 否"; lcde=1; uchar code table4[]="录音进行 _nop_(); 中****"; _nop_(); uchar code table5[]="录音停止"; lcde=0; uchar code table6[]="放音进行 } 中****"; void wdata(uchar date)//向LCDuchar code table7[]="放音结束"; 写数据 uchar code table8[]="确定新增 { 号码吗,"; lcd_Wait(); uchar code table10[]="拨打所有 lcdrs=1; 号码吗,"; lcdrw=0; void lcd_Wait() 22 lcd_data=date;//向数据端dat写} temp=P0; 数据 temp=temp&0xf0; lcde=1; _nop_(); while(temp!=0xf0) { _nop_(); lcde=0; temp=P0; } temp=temp&0xf0; } uchar keyscan()//矩阵键盘扫描 程序 delay(10); { } } uchar num,temp; num=0; P0=0xfd; P0=0xfe; temp=P0; temp=P0; temp=temp&0xf0; temp=temp&0xf0; while(temp!=0xf0) while(temp!=0xf0) { { delay(10); delay(10); temp=P0; temp=P0; temp=temp&0xf0; temp=temp&0xf0; while(temp!=0xf0) while(temp!=0xf0) { { temp=P0; temp=P0; temp=temp&0xf0; temp=temp&0xf0; switch(temp) switch(temp) { { case 0xe0:num=1; case 0xe0:num=5; break; break; case 0xd0:num=2; case 0xd0:num=6; break; break; case 0xb0:num=3; case 0xb0:num=7; break; break; case 0x70:num=4; case 0x70:num=8; break; break; 23 } switch(temp) { temp=P0; case 0xe0:num=13; temp=temp&0xf0; while(temp!=0xf0) break; { case 0xd0:num=14; temp=P0; break; temp=temp&0xf0; case 0xb0:num=15; } break; delay(10); case 0x70:num=16; } break; } } P0=0xfb; temp=P0; temp=P0; temp=temp&0xf0; temp=temp&0xf0; while(temp!=0xf0) while(temp!=0xf0) { { temp=P0; delay(10); temp=temp&0xf0; temp=P0; } temp=temp&0xf0; delay(10); while(temp!=0xf0) } { } temp=P0; return num; temp=temp&0xf0; } temp=P0; uchar mnabc() //拨号码子程序 temp=temp&0xf0; { delay(10); uchar i,a;//a用来标志电话线路} 是否有问题 } SBUF=0xa5; P0=0xf7; while(1) { if(TI) delay(10); { { TI=0; temp=P0; break; temp=temp&0xf0; } 24 EX0=1; TI=0; TR0=1; break; while(fnum==0); } if(fnum==0xf3) wcom(0x01); { for(i=0;i<10;i++) i=2; wdata(table16[i]); mt8880init(); delay(2000);break; while(1) } { } P1=0x1e; } cpw(); if(a==0) P1=0x10; { cpw(); SBUF=0xa4;//对方以摘机 znum=0; while(1) fnum=0; if(TI) while(fnum==0); { if(fnum==0xf4) TI=0; { break; delay(100); } mt8880init(); i=2; P1=0x1e; znum=0; //TR0=1; while(1) if(znum<80)break; { } if(RI) if(fnum==0xf2) { { RI=0; i--; //i用来2次判断是否为忙音 wcom(0x01); break; if(i==0) { } a=2; //说明对方电话没人接听 mt8880init(); P1=0x1e; SBUF=0xa6; while(1) cpw(); P1=0x10; if(TI) cpw(); { 25 EX0=1; } } TR0=1; wcom(0x01); if(fnum==0xf2) { } i--; return a; if(i==0)//通话中对方挂机 } { void main() wcom(0x01); { SBUF=0xa6; uchar a,i; while(1) lcdinit(); TMOD=0x20; break; } TL1=0xf3; } TH1=0xf3; else if(fnum!=0) SCON=0x50; { TR1=1; while(1) fnum=0; { znum=0; cnum=0; a=keyscan(); } if(a!=0) } { } switch(a) } { else case 15:luyin();break;//录音 { case 16:fangy();break;// 放音 a=2;//a=2没有拨通 case 14:monibh();fhxs();break;// SBUF=0xa6; 模拟拨号 while(1) //case 13:TI=0;SBUF=0xa6;brea if(TI) k; { case 12:schm();fhxs();break;//删TI=0; 除号码 break; case 11:zjha();fhxs();break;//增加} 号码 wcom(0x01); //case 4:mn888();break; delay(2000); default:; 26 } #include a=0; #define uchar unsigned char } #define uint unsigned int } sbit sclk=P1^7; } sbit ss=P1^6; void int0() interrupt 0 sbit mosi=P1^5; { sbit miso=P1^4; znum=znum+1; sbit fled=P1^3; } sbit lled=P1^2; void timer0() interrupt 1 void delay(uint z)//键盘延时程{ 序z代表的是几号秒 TH0=0x3c; { TL0=0xb0; uint x,y; cnum++; for(x=z;x>0;x--) if(cnum==60) for(y=120;y>0;y--); { } cnum=0; void sendc(uchar a) TR0=0; { EX0=0; uchar i; //while(1); for(i=0;i<8;i++) if(znum>950)fnum=0xf1;//拨号音 { else if(znum>550)fnum=0xf2;//忙sclk=0; 音 _nop_(); else if(znum>350) mosi=a&0x01; { _nop_(); fnum=0xf3;//回铃音 sclk=1; delay(2230); a>>=1; } } else fnum=0xf4;//无信号音 sclk=0; } } } void luyin() { 附录3 从机程序 record(); lled=0; #include 27 P3=0xff; P3=0xff; TMOD=0X20; while(1) TL1=0XF3; { if(RI||(fint==0)) TH1=0XF3; { SCON=0X50; RI=0; TR1=1; stop(); while(1) lled=1; { SBUF=0xa0;//录音结束~发送给if(RI) 主机结束信号 { while(1) c=SBUF; { RI=0; if(TI) switch(c) { { TI=0; case 0xa0: luyin();break; break; case 0xa1: fangy();break; } case 0xa2: fmq=0;break; } case 0xa3: fmq=1;break; break; case 0xa7: stop();break; } default:; } } } } void main() } { } uchar c; 28
本文档为【mt8880c的智能电话】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_353097
暂无简介~
格式:doc
大小:122KB
软件:Word
页数:38
分类:
上传时间:2018-09-04
浏览量:25