DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 286|回复: 0
打印 上一主题 下一主题

单片机来电显示器的设计与实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-27 19:49:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  
         
    摘要:介绍一种利用单片机AT89C52接收并显示电话主叫号码的来电显示器。该显示器在被叫挂机状态下接收以频移键控(FSK)方式传送的主叫识别信息,可显示主叫电话号码、呼叫日期、时间等信息,并可存储多达120条的主叫号码信息。用户使用上、下翻转键及删除键可方便地查阅或删除来电信息。
关键词:来电显示 单片机 AT89C52 FSK MC145447
引言
主叫识别信息传送CID(Calling Identity Delivery)是向被用户电话提供的一种服务业务。其方法是发端交换机将主叫号码等信息传送给终端交换机,终端交换机再将信息传送给被叫用户终端,如图1所示。



    主叫号码信息常采用频移键控(FSK)方式,在被叫挂机(On_Hook)或摘机通信状态下传送。挂机状态下传送方法是终端交换机将主叫信息在第一次振铃和第二次振铃期间传给被叫用户。对此已有相应的协议标准,例如:Bell 202、CCITT V.23

1200波特率FSK数据传输标准。主叫信息传送的数据格式有2种:单数据消息格式(Single Data Message Format)和复合数据消息格式(Multple Data Message Format)。本文介绍的主叫号码显示器采用前者。挂机状态下接收的单消息帧格式如图2所示。
图2中:①信道占用信号由1组300个连续的“0”和“1”交替的位组成,其第一个比特“0”最后一个比特为“1”。②标志信号由80个标志位组成。③标志位由0~10个逻辑“1”组成。④对于消息类型、消息长度、消息字、校验字这些数据字,每个数据字之前加1位“0”作为起始位,数据字之后加1位“1”作为结束位(即每个字占10个比特)。数据传送时信道占用信号首先发送,每个数据字中低位在前发送。
1 硬件设计实现
主叫号码显示器选用的是Amotrola公司的MC145447芯片作为主叫识别信息解调器件,

单片机选用AT89C52。整个电路的原理框图如图3所示。
CM145447满足Bell 202、CCITT V.23 1200波特率FSK数据传输标准,其内部含有铃流检测电路,铃流检测输出信号(低电平脉冲)接到MCU复位引脚“RST”上。MC145447把逻辑“1”=1200±12Hz、逻辑“0”=2200±22Hz、传输速率为1200bps的FSK信号解调成串行异步二进制数据并输入至MCU的串行接收口。外部EEPROM用于存储多达120条的主叫识别信息。液晶显示模块LCD用来显示主叫号码、日期、时间等信息。按键有3个:“DEL”、上“UP”、下“DOWN”分别用于删除、

查阅主叫信息。
MCU工作在掉电、空闲、正常运行3种状态。平时MCU工作在掉电“power down”状态,功耗很低。第1次铃流信号到来时,MC145447中的铃流检测电路对MCU输出1个低电平复位脉冲,该复位脉冲MCU从掉电状态进入正常工作状态。第1次振铃和第2次振铃期间,MC145447解调出的二进制数据送入MCU的串行接收口。MCU接收和存储主叫信息数据并在液晶显示模块(LCD)上显示,然后MCU进入空闲状态。MCU进入空闲状态1min后,若无按键按下则进入掉电状态,此时,LCD上将显示新呼叫(即用户没有查阅过的呼叫)的总个数。
2 软件设计实现
主叫号码显示器软件使用汇编语言编写,配合硬件完成主叫信息接收、查阅及删除功能。汇编语言程序主要由主程序、串行中断处理程序、定时器中断处理程序组成。
上电时,MCU进入主程序中运行对串口寄存器设置接收波特率等参数,液晶显示模块LCD初始化并显示新呼叫总个数,以0.2s的定时长度设置定时器参数,对有关程序变量初始化,然后进入掉电状态。主程序框图如图4所示。
图5是串行口中断接收处理程序。串行口中断到来时,MCU将收的串行数据暂存在内部RAM中。若收到的信息有误码,则在LCD上显示“ERROR”;

若交换机发来的信息格式为“日期+时间+P+..”,则在LCD上显示“PRIVATE”,表示主叫用户要求本次呼叫不向被叫用户传送其号码;若交换机发来的信息格式为“日期+时间+O+..”,LCD上将显示“OUT OF AREA”,表示主叫用户的本次呼叫超出来电显示服务范围。
若接收的主叫信息正常,则按接收的先后顺序依次存储于EEPROM中。当主叫识别信息有重复时,最新呼叫将覆盖前次呼叫;当存储空间全部存满后,按“先进先出”的原则自动删除最先存储的主叫信息。

    图6是定时器中断处理程序,实现来电显示器按键处理功能,定时长度为0.2s。定时器断到来时,首先检查是否有按键按下。当有按键按下时,MCU由掉电状态恢复到空闲状态。若在1.5s内按2次“DEL”键,则从EEPROM中删除LCD当前显示的信息;若连续按“DEL”键超过6s,则删除EEPROM中所有存储信息。按“UP”键则把一次接收的主叫信息从EEPROM中调出并显示。按“DOWN”键则把下一次接收的主叫信息从EEPROM中调出并显示。



结束语
来电显示功能目前已获得普遍使用。本文介绍的来电显示器在进行软、硬设计时充分利用MCU的3种工作状态,尽可能地降低了功耗;配以EEPROM作为存储器件,使得该产品与同类产品相比使用期限有较大的增加(采用电池供电时)。 [1]
         
          [/td]
        [/tr]
      
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-26 03:24 , 耗时 0.090816 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表