基于单片机的来电显示电话设计_第1页
基于单片机的来电显示电话设计_第2页
基于单片机的来电显示电话设计_第3页
基于单片机的来电显示电话设计_第4页
基于单片机的来电显示电话设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、成 绩信息工程学院本科生课程设计报告课程名称:电子综合设计设 计 题 目:基于单片机的来电显示电话设计 系 别: 计算机与电子工程系 专 业 (方 向): 电子信息工程 年 级、 班: 2011级2班 学 生 姓 名: 学 号: 指 导 教 师: 2014 年 12 月 20 日 基于单片机的来电显示电话的设计一、【设计目的】 随着现代生活水平的不断提高,来电显示功能的需求也日益高涨起来,主叫号码信息识别及传送是由交换机将主叫号码及呼叫的日期、时间等信息传送给被叫用户,由被叫用户具有来电显示功能的固定电话显示并存储,以便用户摘机前就知道是谁打电话来,或外出回来后查阅谁来过电话,以方便用户处理。

2、二、【产品性能指标】1.有来电时能显示来电号码、并且进行储存查阅;2.有来电未接时能显示提醒未接来电;3.能对来电号码进行编译储存在电话薄;4.电话薄里的电话来电时能显示姓名、号码等信息。三、【设计的原理】 1、系统框图根据系统的要求,所设计的系统原理框图如图1所示 LCM1602 MCU 51EEPROM UART UP DOWNRESET 图1系统原理框图本系统是一个双工通讯装置,在同一块电路板既有发送部分又有接收部分。液晶用于单片机的数据的显示,按键和液晶LCD构成一个简单的人机交换装置,便于对电路的调试,EEPROM用来存储数据,重新上电后,仍旧可以显示掉电前的数据,整个电路通过MAX

3、232芯片与PC机串行口相连接,交换数据。2、各模块工作原理的分析与介绍(1)直流5V稳压电源 5V直流稳压电源的电路图如图2 图2 5V直流稳压电源的电路图 由于本系统使用小容量直流电源,所以选用线性电源LM7805比选用开关电源更合适。 (2) 单片机系统电路单片机系统的基本电路如图3 图3单片机系统的基本电路图 其中注意的事项:晶震采用11.0592MHZ,这是为了便于和计算机通信的时候,串口的波特率可以达到比较好的标准,这样产生误码的几率就会很少(其中SW3是系统复位键)。 SW1,SW2为人机接口按键,因为51系列单片机的P0口内部没有上拉电阻,所以系统设计过程中在P0口端接了一个1

4、0k的排阻。(3) 液晶显示电路 液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。 本设计中用到的液晶为LCM1302, 这个字符型液晶模块是一种常用的2行16个字的1602液晶模块。1602采用标准的16脚接口,其中:第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进

5、行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第151脚:空脚。液晶显示电路图如图4 图4 液晶显示电路 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址4

6、1H中的点阵字符图形显示出来,我们就能看到字母“A”。(程序实现见附录I)(4) EEPROM接口电路EEPROM接口电路如下图5: 图5 EEPROM接口电路图存储器AT24C02采用I2C总线技术。I2C总线是一种用于IC器件之间连接的二线制总线。它通过SDA(串行数据线)及SCL(串行时钟线)两根线在连到总线上的器件之间传送信息,并根据地址识别每个器件:不管是单片机、存储器、LCD驱动器还是键盘接口。I2C总线接口器件目前在视频处理、移动通信等领域采用I2C总线接口器件已经比较普遍。另外,通用的I2C总线接口器件,如带I2C总线的单片机、RAM、ROM、A/D、D/A、LCD驱动器等器件

7、,也越来越多地应用于计算机及自动控制系统中。I2C总线的数据传送格式是:在I2C总线开始信号后,送出的第一个字节数据是用来选择从器件地址的,其中前7位为地址码,第8位为方向位(R/W)读写控制。方向位为“0”表示发送,即主器件把信息写到所选择的从器件;方向位为“1”表示主器件将从从器件读信息。开始信号后,系统中的各个器件将自己的地址和主器件送到总线上的地址进行比较,如果与主器件发送到总线上的地址一致,则该器件即为被主器件寻址的器件,其接收信息还是发送信息则由第8位(R/W)确定。在I2C总线上每次传送的数据字节数不限,但每一个字节必须为8位,而且每个传送的字节后面必须跟一个应答位(ACK),A

8、CK信号在第9个时钟周期时出现。每次都是先传最高位,通常从器件在接收到每个字节后都会作出响应,即释放SCL线返回高电平,准备接收下一个数据字节,主器件可继续传送。如果从器件正在处理一个实时事件而不能接收数据时,(例如正在处理一个内部中断,在这个中断处理完之前就不能接收I2C总线上的数据字节)可以使时钟SCL线保持低电平,从器件必须使SDA保持高电平,此时主器件产生1个结束信号,使传送异常结束,迫使主器件处于等待状态。当从器件处理完毕时将释放SCL线,主器件继续传送。当主器件发送完一个字节的数据后,接着发出对应于SCL线上的一个时钟(ACK)认可位,在此时钟内主器件释放SDA线,一个字节传送结束

9、,而从器件的响应信号将SDA线拉成低电平,使SDA在该时钟的高电平期间为稳定的低电平。从器件的响应信号结束后,SDA线返回高电平,进入下一个传送周期。(程序实现见附录II)(5)RS232接口电路 RS-232-C串口标准RS-232-C概述串行通信接口标准经过使用和发展,目前已经有多种。但都是RS-232-C标准的基础上经过改进而形成的。RS-232C标准是有美国EIA(电子工业联合会)与BELL等公司一起开发并于1969年公布的通信协议。它适合于数据库传输速率在020000bit/s范围内的通信。远程工业协会(TIA)1997年公布了最新的一个版本,命名为TIA/EIA-232-F。ITU

10、(国际电信联盟)和CCITT(国际电话与电报顾问委员会)发布了一个类似的标准V.28。这个标准对串行通信接口的有关问题,如信号线功能、电器特性都做了明确规定。由于通信设备厂商都生产与RS-232C制式兼容的通信设备,因此,它作为一种标准,目前已在微机通信接口中广泛采用,它不仅已被内置于每一台计算机,同时也已被内置于从微控制器到主机的多中类型的计算机及其相连接的设备。(程序实现见附录3)单片机与PC机串口连接电路图6: 图6 PC机与单片机串口连线(6) 双音频检测电路本系统采用MITEL公司生产的MT8870 DTMF接受器作为DTMF信号的解码核心器件。MT8870主要用于程控交换机、遥控、

11、无线通信及通播系统,实现DTMF信号的分离滤波和译码功能,输出相应16种频率组合的四位并行二进制码。MT8870具有拨号音抑制和模拟信号输入可调功能,所以在设计MT8870 DTMF解码电路时,只需外加一些阻容元件即可。 电话发送的DTMF信号,经搞合电容的隔直流作用后,由MT8870接收并进行译码,输出的四位并行二进制数据直接与AT89C51单片机的P1.3P1.0连接,MT8870在DTMF信号码变换完成后,发送中断信号INT0,通知AT89C51数据准备好。音多频DTMF信号解码电路由MT8870主要承担,它的2、3脚接收来自电话机的双音多频脉冲信号该双音多频信号先经其内部的拨号音滤波器

12、,滤除拨号音信号,然后经前置放大后送入双音频滤波器,将双音频信号按高,低音频信号分开,再经高,低群滤波器,幅度检测器送入输出译码电路,经过数字运算后,在其数据输出端(11-14脚)输出相对应的8421码。MT8870的数据输出端Q4 - Q1连到AT89C51的P1口的P1.4 -P1.7,CPU经P1口识别4位代码。其中,A,B,C,D 4个按键常被当作R/P,REDIAL,HOLD,HANDSFREE等功能使用。注意,需要特别指出的是,对于“0”号码,MT8870输出的8421码并非是“0000”,而是“1010”;另外,“*”,“#”字号码,MT8870输出的8421码分别为“1011”

13、和“1100”。有些技术资料会出现错误,包括比较权威的手册,所以我是在实验中,记录下测量的每一组数据后,才把这些数据应用于程序当中。为了使单片机AT89C51获取有效数据,MT8870的STD有效端经反相后接CPU的/INTO引脚。当MT8870获取有效双音多频信号后,STD电平由低变高,再反相为低,CPU检测后,指示P1口接收有效二进制代码。而无效的双音频信号(电话线路杂音、人们的语音信号等)是不会引起MT8870的STD端变化的。其中,接在电源处的电容对抗干扰有一定的作用。在实际应用中,存在这样一个问题:MT8870的使能控制端不允许中断时,将使MT8870的STD端中断关闭。可以将TOE

14、端接电源来避免。(如图7) 图7 双音频译码电路电话机拨码方式有两种,即脉冲拨码和双音频拨码,双音频拨码方式具有拨号速度快,误码率低等优点,这是脉冲拨码方式所不能比拟的。国际电报电话咨询委员会CCITT和我国的标准规定双音频信号由8个频率组合,分为高低频两组,采用8中取2原则,它可根据不同的按键产生一组双音频信号。此部分是整个系统的关键,它的工作情况直接决定了系统的可靠性。使用电话专用的双音频编解码芯片进行输入双音频信号的解码,是比较常用的一种方法。使用集成电路不但外围电路简单,而且可靠性强。经过专用集成电路的解码,信号转换成为不同的码制信号,可以直接被单片机读取 。一般常用的电话双音频编解码

15、集成电路有8870、8880、8888等, 本设计使用双音频解码集成片MT8870来完成此功能模块。(程序实现见附录IV) (7) 软件的主程序流程图 图8 系统流程图软件的整体流程图如图8所示,下面简要概述一下系统的流程:系统复位后,将初始化部分数据。由于双音频的译码示利用单片机的INT0中断,中断优先级别最高,所以一旦有电话拨入,就可以实时的检测和处理数据。然后根据具体的电话数据格式要求判断输入的是否符合要求的电话号码。如果输入的示合格的电话号码,那么单片机,将依次执行,显示电话号码,存储电话号码,传输电话号码,三个过程。如果当前没有电话拨入,但是用户通过人机界面(按键液晶显示)来查看以往

16、的记录,那么系统将根据用户是向上查,还是向下查,处理相应的程序,并显示相应的号码。如果用户的操作不正确,将不做任何执行。(8)软件中断服务程序流程图在CPU与外设交换信息时,若用查询的方式,则CPU会浪费较多的时间去等待外设,这就是快速的CPU和慢速的外设之间的矛盾,为了解决这个问题,引入了中断的概念,引入中断后有以下优点:同步工作计算机有了中断功能后,就可以使CPU和外设同步工作,CPU启动外设工作后,就继续执行主程序,而外设把数据准备好后,发出中断请求,请求CPU中断原程序的执行,转去执行输入输出(中断处理),中断程序执行完后,CPU恢复执行主程序,外设也继续工作,这样,CPU就可指挥多个

17、外设同时工作,大大提高了CPU的利用率,也提高了输入输出速度。实时处理在实时控制中,现场采集到的各种数据可在任一时刻发出中断请求,要求CPU处理,若中断是开放的,则CPU就可以马上对数据进行处理。故障处理若计算机在运行过程中出现了事先预料不到的情况或故障时(如掉电、存储出错、溢出等),可以利用中断系统自行处理,而不必停机。51单片机有5个中断请求源(8052有6个),4个用于中断控制的特殊功能寄存器IE、IP、TCON(用6位)和SCON(用2位),可提供两个优先级,实现二级中断嵌套。5个中断源对应5个固定的中断入口地址(矢量地址)。本系统设计过程中用到了定时器中断T1和外部中断INT0,其中

18、外部中断INT0,设置成下降沿触发,用来检测是否有双音频信号输入,如果有双音频信号输入,那么将会产生一次中断,此时MCU就会响应,同时对输入的双音频信号解码,处理。而定时器中断T1,是用来设置串口的传输波特率。本系统所设计的串口通信为10位异步收发(一位起始位,8位数据,一位结束),允许接收,波特率为9600。下面介绍下INT0中断的处理流程图。如图9所示: 图9 INT0中断的处理流程四、【仿真与仿真结果分析】1.液晶显示电路调试模拟图10 图10液晶显示电路调试模拟图 开始调试液晶的时候无论无何都没有显示,开始怀疑上电的时候,引脚接错,将液晶烧坏了。后来用万用表测量液晶的电源和地,没有发现

19、问题。最后通过调试背光电阻才发现原来是亮度不够造成的。另外在写液晶驱动的时候,直接按照时序图,写了读写程序测试,发现液晶显示不正常,本来写的数据没有写入,在查了一些资料后才发现,液晶是慢显器件,每次写数据之前要查询液晶是否处于忙碌的状态。如果忙,要继续等待,知道液晶处于busy状态。其次是在液晶1602的第二行进行数据读写的时候。第二行第一个字符的地址是40H,直接写入40H,那么光标不会定位在第二行第一个字符的位置,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。2. EEPROM

20、接口电路调试模拟图11 图11 EEPROM接口电路调试模拟图在调试AT24C02的存储电路浪费的时间最多,虽然问题很简单,但是由于很多资料上都这样写,就一直按照资料上写的去操作,所以出现错误的时候,一直没有找到合适的解决方法。具体问题是AT24C02一次可以读写多少字节,几乎所有的资料上都说可以读写任意字节,但是我在调试的过程中发现,一次读写的字节数越多,则出现的误码也就越多。后来查阅资料,发现AT24xx系列是按照页存储的,比如AT24C02是256Byte,每页就是8个byte,由于本设计每次读写的都是12字节,所以用了,最笨的方法来实现,就是写一个函数,里面分12次调用一个读写1个字节

21、的函数,通过很多次测试发现数据没有读写错误。3.RS232串口通信电路模拟图12 图12 RS232串口通信电路图串口通信电路中,由于刚开始,单片机系统中使用了12Mhz的晶震,在收发数据的时候波特率不对,一直没有数据显示,后来检查,又发现了一个问题,就是MAX232芯片的管脚和PC机的连线方式错误,修改了这两个错误后,串口通信正常。4.双音频检测电路模拟图13 图13双音频检测电路模拟图在双音频检测电路中遇到了,下面一些问题。 (1)输入的双音多频信号持续时间足够长(一般要求)40MS)时,接收器视为有效并实时地进行接收,否则不接收。在整个双音频信号持续时间,对于由于外部干扰等造成的瞬间间断

22、,若双音频总持续时间足够长,接收器会排除这些干扰,仍视为有效接收。(2)MT8870的解码器采用数字计数器的方式检测双音多频信号,利用复杂的平均酸法防止外来的各种干扰。当检测到有效信号的时候,预控端EST输出高电平。EST信号通过驱动外接的 R-C 积分电路,使得 ST/GT 控制端的信号需要一定的延时才可以上升达到比较电平(2.5v)以上,声明信号有效,就是信号的有效确认需要一定的持续时间。外接的积分电路的时间参数确定了这个时间,同时,信号的暂时消失,SET信号也跟随着下降到低电平,但是ST/GT不会立刻下降到比较电压(V_tst)以下,也就是说,信号中断时间在保护时间以内是可以被忽略的,8870将认为信号是持续有效的。正式通过这个外接的 R-C 积分电路,信号接受的可靠性得到了大大的提高。有效信号的持续时间t=0.69RC才可以被承认,即ST/GT电压上升到2.5v以上需要的时间。电路中的电容取0.1uF的时候,电阻需要取390K。另外,MT8870解码器的正常解码时间大于或者等于20ms,如果信号持续时间小于这个时间,信号是不可以被正常接收和解码的。(其中EST输出延时11MS,所以 R-C 积分延时需要大于9MS,否则信号不能被正常接收。)也就不可能会产生中断。这是一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论