为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

段国强-电话机拔号控制器的设计

2011-03-30 32页 doc 1MB 15阅读

用户头像

is_497547

暂无简介

举报
段国强-电话机拔号控制器的设计河南科技学院 2009届本科毕业论文(设计) 论文题目:电话机拔号控制器的设计 学生姓名:段国强 所在院系:机电学院 所学专业:应用电子技术教育 导师姓名:付广春 完成时间:2009年05月25日 摘 要 本设计主要是单片机控制去电电话,即根据主叫所拔的号码,通过检测存储器预设的黑名单控制某个电话的能够打出或者禁止。本设计以单片机AT89C51 和双音多频解码芯片MT8870 集成电路为核心,通过单片机实现对电话机的智能化控制,DTMF信号可以实现微机通信,具有传输距离长、数据准确以及抗干扰能力强等特点,文中介绍了DTMF信号...
段国强-电话机拔号控制器的设计
河南科技学院 2009届本科毕业(设计) 论文目:电话机拔号控制器的设计 学生姓名:段国强 所在院系:机电学院 所学专业:应用电子技术教育 导师姓名:付广春 完成时间:2009年05月25日 摘 要 本设计主要是单片机控制去电电话,即根据主叫所拔的号码,通过检测存储器预设的黑名单控制某个电话的能够打出或者禁止。本设计以单片机AT89C51 和双音多频解码芯片MT8870 集成电路为核心,通过单片机实现对电话机的智能化控制,DTMF信号可以实现微机通信,具有传输距离长、数据准确以及抗干扰能力强等特点,文中介绍了DTMF信号的接收芯片MT8870的功能及引脚,并给出了DTMF信号接收器芯片MT8870与单片机接口实现数据传输的应用电路,文中介绍了该系统的组成、应用、工作原理及程序设计。 关键词:双音多频,单片机,去电控制,液晶显 Design of the Telephone Dialing Controller Abstract This design is mainly the Sing-Chip Microcomputer control sends a telegram the telephone, namely the basis calling pulls out the number, controls some telephone through the examination memory preinstall's blacklist to be able to split out or to forbid, or controls one game to the number, determined whether to split out .This design take monolithic integrated circuit AT89C51 and the double sound multi-frequency decoding chip MT8870 integrated circuit as a core, realizes through the monolithic integrated circuit to telephone's intellectualized control, the DTMF signal may realize the microcomputer correspondence, has the transmitting range to be long, the data is accurate as well as antijamming ability strong and so on characteristics, in the article introduced DTMF the signal receive chip MT8870 function and the pin, and have given DTMF signal receiver chip MT8870 and the monolithic integrated circuit connection realize the data transmission application electric circuit, the article introduced this system's composition, applies, the principle of work and the programming method. Keywords:DTMF, Microcontroller, Phone Number Controlling, Liquid crystal display 目 录 TOC \o "1-3" \h \z \u 1 绪论 1 2 系统总体设计 1 2.1 系统功能描述 1 2.2 系统硬件总体框图 2 3 系统硬件电路设计 2 3.1 DTMF信号 2 3.1.1 DTMF信号理论基础 2 3.1.2 MT8870介绍 3 3.1.3 MT8870电路设计 5 3.2 摘挂机检测电路 5 3.3 继电器控制电路 6 3.4 液晶显示电路 7 3.4.1 液晶显示模块1602控制 7 3.4.2 液晶显示模块1602字符库 8 3.4.3 液晶显示模块1602应用电路 8 3.5 I2C总线 9 3.5.1 I2C总线简介 9 3.5.2 I2C总线特性 9 3.5.3 I2C总线读写时序 10 3.5.4 总线协议 10 3.6 AT24C16简介 11 3.7 电源电路 11 4 系统软件设计 12 4.1 系统总体流程图 12 4.2 号码存储程序流程图 14 4.3 去电限拨程序流程图 15 5 结束语 16 致谢 16 参考文献 17 附录1 18 附录2 19 1 绪论 电话是人们使用最广泛、最普遍的通信工具,以电话为基础的各种扩展设备不断地被开发应用。随着社会的发展和科技的进步,越来越多的家用电器进入了人们的生活,这些家用电器给人们的生活带来了很多的方便和享受,同时随着电话在家庭的普及,电话机的功能将进一步得到开发和利用。为使电话使用更方便、更安全,已出现不少具有防盗打、来电显示等功能的电话附属装置,但其功能单一,使用不方便,而且不能限制用户,使其任期拨打各种号码,尤其在企事业单位出现了使用单位电话随意拨打长途电话及一些话费较高的特殊服务电话的现象,导致企事业的电话费用巨增、浪费,因此设计一种具有限拨功能、来去电显示、语音提示等多功能的电话智能控制器将会给日常生活,特别是企事业单位带来极大的方便。电话智能去电控制器就是为此而开发的。本文介绍了一种基于单片机的电话机智能控制装置,该装置利用双音多频电话机,可以通过对单片机的设置实现对电话机的控制。 本系统在普通电话的基础上,以DTMF解码芯片MT8870为核心器件,对被叫号码进行解码,以单片机AT89C51为主控器件,对被叫号码进行识别,根据被叫号码内容控制电路的通断,本系统的用户操作内容均可以被液晶显示器清晰显示。该系统进行人性化设计具有实用性强,使用方便,操作灵活等特点,具有较高的使用价值。 2 系统总体设计 2.1 系统功能描述 本系统主要是针对那些在企事业单位中,利用单位公司电话随意拨打长途电话或拨打收费较高的特殊服务电话而设计的。根据设计任务及实际需要,用户可以自行设置任一个或者任一间段的权限电话,并有密码保护且可自设密码。当拨打电话时,系统会判断是否输入的是密码,如果不是系统会自动与用户存储的号码进行比较,分析是否属于权限电话,对于权限电话系统会报警并且会自动切断电话。如果输入密码正确的话,系统就会识别到用户为合法用户,不执行任何操作,即所拨号码可以被拨出。此外系统还设计了功能键,用于修改密码和设置权限电话。当摘机后,系统会自动检测到已摘机,这时系统就会检测功能键是否按下,如果按下的话,系统就会根据你所输入的密码来判断你是要修改密码还是要修改权限电话。如果摘机后没有按下功能键也没有拨号,系统就会延时等待三秒后自动断开线路并复位。 2.2 系统硬件总体框图 为了实现以上功能,电话智能控制器的硬件电路由AT89C51单片机、摘挂机检测电路、双音频信号DTMF识别电路、报警电路、液晶显示电路、AT24C16存储电路及输出控制电路构成,其框图结构如图1所示。 系统工作原理:系统上电,单片机复位,系统开始监视电话机是否摘机,当电话机摘机后,系统接着检测是否按下功能键,如果此时功能键按下的话,系统就转入号码存储和密码修改功能;如果此时没有按下功能键,而是拨打电话号码,那么系统就将电话机发出来的双音多频信号DTMF送到MT8870双音多频解码器进行解码,双音多频解码器将解出的数字信号送到单片机与预先存储的数据(电话号码)进行比较,然后来决定是否接通被叫,当用户所拨的号码与设置的号码不同时,则单片机输出控制信号,驱动控制电路断开电话机与交换机的连接,同时发出报警声,从而以实现控制过程。 图1 硬件设计方框图 3 系统硬件电路设计 电话机智能去电控制系统是以AT89C51作为主要控制器件,基于MT8870作为DTMF双音多频解码芯片,在硬件结构上主要有话机摘机检测电路、DTMF信号识别及解码电路、报警电路、继电器控制电路及存储和液晶显示电路等[1]。 3.1 DTMF信号 3.1.1 DTMF信号理论基础 双音多频DTMF信号由高低频群组成,高低频群各包含4个频率。一个高频信号和一个低频信号叠加组成一个组合信号,代表一个数字[2]。DTMF信号有16个编码,分别对应电话机上的16个按键及相应的功能[3]。按照组合原理,它必须有8种频率中任意抽出2种进行组合,又称其为8种取2的编码方式。双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。每按一个键就发送一个高频和低频的正弦信号组合[4]。DTMF信号的频率组合及对应的编码如表1所示。 3.1.2 MT8870介绍 MT8870是一种双音多频解码芯片,由于它电路实现简单所以得到广泛应用,MT8870是MITEL公司生产的DTMF解码器,为CMOS电路,DIP 封装。它具有DTMF 信号分离滤波和译码功能,可直接与MCS-51 系列单片机接口[5]。图2为MT8870引脚分配图。 MT8870 采用了的微处理器接口,他的内部寄存器、控制接口和数据总线便于实现与微处理器的直接相连。并通过微处理器对电路进行工作模式控制,使得信号的接受和发送变得简单。MT8870 内部有5 个寄存器,可分为数据暂存寄存器、收发控制寄存器和收发状态寄存器。 表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 其引脚说明如下:IN+、IN-为运放的同、反相输入,DTMF 信号输入端;GS为运放输出端,通过外部接入的反馈电阻可调节其内部放大器增益;VREF 为基准电压输出;INH、PWDN为内部连接点,应接至VSS 端;OSC1、OSC2为振荡器输入、输出,可外接3.58MHZ 晶振;TOE为数据输出控制端,当它为高电平时允许输出数据;D1~D4 为数据输出端;STD为延迟控制输出端;ST为控制输入端/时间监测输出端;EST为初始控制输出端;VDD接正电源,VSS 为接地。 MT8870在具体的应用时需要注意一下电话线的接法是否符合MT8870芯片的规则。将电话线的正极TIP接入芯片的IN+,电话线的负极LING接入芯片的IN-。 图2 MT8870引脚分布图 图3 MT8870内部结构图 MT8870的内部功能模块图见图3,其基本工作流程如下:模拟信号从IN-脚引入后,经双音滤波器初步滤除带外干扰信号,随后,此滤出信号再经高群滤波器和低群滤波器分别滤出其中的高频和低频分量,这两种分量分别通过过零检测后送给数字检测计算电路;该电路对音频信号进行进一步的优化,能排除外部噪声因偶然含有某些特定频率而被编码器编码,或者影响编码器的编码,从而引起后续的收号错误。当高,低频组信号同时被编码器测到时,EST脚将输出高电平作为有效检测DTMF信号的标志;而当此DTMF信号消失时,EST将输出低电平;为了防止外部噪声被MT8870误编码,编码器要求被编码器的音频信号能维持一段时间。这段时间由外部的一个RC电路来决定。如前所述,当音频信号被检测到时,EST输出高电平1,电容放电,VC上的电压值上升(假设信号在整个要求时间内都存在),VC升到一个门限Vtst时,该音频信号即被编码,变成了数字信号,该数字信号将被锁存起来。此时,GT脚输出高电平,使VC点的电压由门限值升到VDD,此后,只要EST仍保持为高,GT就为高,使外部的RC电路回到初始状态。随后,经过一段锁存操作引起的延时后,STD脚输出高电平,表示信号已锁存完毕。这时,外部器件若要从Q1-Q4上读这四位编码,应使TOE为高,打开锁存器[6]。 3.1.3 MT8870电路设计 双音多频信号识别解码电路主要有MT8870及其外围电路组成,如图4所示。用户音频电话发出的双音多频(DTMF)信号通过电容及电阻耦合芯片的第2脚,2脚是芯片内部运算放大器的反向输入端,3脚是运放的输出端,输入输出之间接一个100千欧的比例放大电阻。芯片的11脚至14脚是DTMF信号的二进制代码的输出数据通道。它们与单片微处理机的数据总线相连。芯片内部的DTMF信号代码可通过此通道进入控制电路的RAM中。芯片的18脚接电源+5V,16 、17、18脚之间所接的电阻及电容是识别DTMF信号所需的时间常数电路。5、6、9接地,1脚与4脚相连,7、8之间接一个3.58MHZ的晶振,分频产生芯片内部所需的DTMF信号双音中的各单元比较信号。芯片的15脚是DTMF信号检测输出,当芯片接收到双音多频信号时,15脚为高电平,平时15脚为低电平。芯片的10脚为数据允许输出端,允许芯片接收到的DTMF二进制代码从11-14脚上输出,高电平有效。平时10脚保持低电平,11-14脚为高阻态。这种接线方式是常规使用时的接线方式。一块芯片在同一时刻只能接收一个用户终端送来的DTMF信号[7]。 图4 MT8870应用电路 3.2 摘挂机检测电路 摘挂机及拨号脉冲识别电路如图5所示。电路中,采用了光电耦合器件。在这里使用光电耦合器能够有效的隔离来自电话线路中的各种频率干扰,确保对摘机信号的正确识别。当用户摘机时,交换机为用户提供20—50mA的恒流,此时光电耦合器导通,将光耦的输出端降为TTL低电平,然后将此电平送至C51单片机的P1.7端;当用户挂机时,电话线路中因为没有恒电流流过,所以光电耦合器截止,将光电耦合器的输出端升为TTL高电平,然后将此电平送至C51单片机的P1.7端[8]。因此,摘机检测电路在设计时根据P1.7端的TTL高、低电平的变化,就可以在软件上实现对摘机情况的判断。 图5 摘挂机检测电路 3.3 继电器控制电路 继电器控制电路的原理图如图6所示,其核心器件是PNP三级管和继电器。本电路的工作原理是:当用户拨打电话号码时,单片机经过禁拨电话号码分析对比后,经确认是非合法用户号码时,就会在P2.6端输出一个TTL低电平,从而使三级管导通,此时继电器就会通电正常工作,使其常闭触点断开,从而使电话机与交换机断开,以达到控制的目的。电路中并联在继电器两端的二级管,用于保护继电器。 图6 继电器控制电路 3.4 液晶显示电路 3.4.1 液晶显示模块1602控制 液晶显示模块1602在使用的时候首先进行初始化操作。这些操作以及向显示器送入显示数据都需要先输入控制指令,然后根据指令的内容对显示模块进行相应的操作。初始化的内容包括清屏、功能设置、显示开/关控制、输入方式设置。对液晶显示模块1602的初始化有两种方法,其一是电路电源满足模块自身的初始化条件,其二是利用软件的方法进行[9]。其具体的指令功能见表2所示。 表2 液晶模块1602指令表 指令名称 指令码 RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 说明 清屏 L L L L L L L L L H 清除屏幕,置AC为零 返回 L L L L L L L L H X 设DDRAM地址为零,显示回原位,DDRAM内容不变 输入方式设置 L L L L L L L H I/D S 设光标移动方向并指定整体显示是否移动 显示开关控制 L L L L L L H D C B 整体显示开关(D),光标开关(C),及光标位的闪烁(B) 移位 L L L L L H S/C R/L X X 移动光标或整体显示,同时不该变DDRAM的内容 功能设置 L L L L H DL N F X X 设接口数据位数(DL),显示行数(L),及字符(F) CGRAM 地址设置 L L L H ACG 设CGRAM地址,设置后 CGRAM数据被发送和接收 DDRAM 地址设置 L L H ADD 设DDRAM地址,设置后 DDRAM数据被发送和接收 读忙(BF) 及地址计数器 L H BF AC 读忙位(BF)判断内部操作并读地址计数器内容 写数据 CG./DDRAM H L 写数据 写数据到CG或DDRAM 读数据 CD/DDRAM H H 读数据 读数据由CG或DDRAM 3.4.2 液晶显示模块1602字符库 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A” [9]。字符库详细内容如表3所示。 表3 液晶显示块1602字符库 3.4.3 液晶显示模块1602应用电路 本电路应用P1口作为8位并行数据端口,接至D0-D7,用于输入数据信号;应用P3.5、P3.6、P3.7作为使能端,接至1602功能端,控制液晶模块的读写操作。1602的1、2脚接一个5V的电源,3脚通过一个电位器接至电源正极,用于调整屏幕的对比度[9]。电路图如图7所示。 图7 液晶显示模块1602应用电路 3.5 I2C总线 3.5.1 I2C总线简介 I2C总线是PHILIPS公司推出的芯片间串行数据传输总线,2根线(SDA、SCL)即可实现完善的全双工同步数据传输,能够十分方便的构成多机系统和外围器件扩展系统。它提供一小型网络系统为总线上的电路共享公共的总线,总线上的器件有单片机LCD驱动器以及E2PROM器等等。 两根双向线中,一根是串行数据线(SDA),另一根是串行时钟线(SCL)。总线和器件间的数据传输均由这根线完成。每一个器件都有一个唯一的地址,以区别总线上的其它器件。当执行数据传输时,谁是主器件,谁是从器件详见表4所示。主器件是启动数据发送并产生时钟信号的器件,被寻址的任何器件都可以看作从器件。 I2C器件是把I2C的协议植入器件的I/O接口,使用时器件直接挂到I2C总线上,这一特点给用户在设计应用系统带来了极大的便利。I2C器件无须片选信号,是否选中是由主器件发出的I2C从地址决定的,而I2C器件的从地址是由I2C总线委员会实行统一发配[10]。 表4 I2C 总线名词解释 术语 说明 发送器 发送数据到总线上的器件 接收器 主器件 启动数据传送并产生时钟信号的器件 从器件 被主器件寻址的器件 多主器件 一个以上的主器件能同时企图控制总线而不破坏信息 仲裁 一个以上的主器件同时试图控制总线时,只允许一个有效从而保证数据不被破坏的过程 同步 使两个或更多的器件的时钟信号同步的过程 3.5.2 I2C总线特性 I2C总线特性仅需两根线一根串行数据线SDA 和一根串行时钟线SCL。 与总线相连的每个器件都对应一个特定的地址采用软件寻址方式每个器件在整个通信过程中都是单一的主控器/从控器身份主控器可用作主控发送器或主控接收器。 I2C 是一种真正的多主总线含有错误检测和总线仲裁功能可以防止2 个或更多主控器同时启动数据传输而产生数据混乱。 串行8 位传输方向确定的可双向传输的数据传送速率可由标准I2C 模式下的100Kbit/s 快速模式下的400Kbit/s 直至高速模式可高达3.4Mbit/s。 可滤除50ns 数据线上的尖峰脉冲保持数据的完整性。 连接到同一总线上的IC 数目受限整个I2C 系统的总线电容不可超过400PF。 3.5.3 I2C总线读写时序 总线上,每一次数据传送,都是由主器件发送起始信号开始,发送停止信号结束,见图8所示。主器件然后送从器件的特征地址,对 E2PROM而言,从器件地址的前四位是固定的“1010”,接下来的三位标定器件的组合地址,以便知道哪一个2K存贮器被寻址,最后一位是读写位,“1”表示读命令“0”表示写命令,见图9所示。 图8 开始/停止时序 图9 从地址位 图10 应答信号时序 当主器件送完起始控制命令后,地址与自己相符的从器件会产生一个应答位,见图10。进行读还是写操作将由 R/W 位决定。 3.5.4 总线协议 I2C 总线协议定义如下:只有在总线空闲时才允许启动数据传送;在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态,不允许有跳变;时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。 3.6 AT24C16简介 AT24C16是美国ATMEL公司的低功耗CMOS串行EEPROM,具有I2C总线接口功能。它是内含2048×8位存储空间,具有工作电压宽(2.5~5.5V)、擦写次数多(大于10000次)、写入速度快(小于10ms)等特点[11]。 由于I2C总线可挂接多个串行接口器件,在I2C总线中每个器件应有唯一的器件地址,按I2C总线规则,器件地址为7位数据(即一个I2C总线系统中理论上可挂接128个不同地址的器件),它和1位数据方向位构成一个器件寻址字节,最低位D0为方向位(读/写)。 器件寻址字节中的最高4位(D7~D4)为器件型号地址,不同的I2C总线接口器件的型号地址是厂家给定的,如AT24C系列E2PROM的型号地址皆为1010,器件地址中的低3位为引脚地址A2A1A0,对应器件寻址字节中的D3、D2、D1位,在硬件设计时由连接的引脚电平给定。对于E2PROM的片内地址,如AT24C16,相应的寻址位数应为11位(211=2048)。若以256字节为1页,则多于8位的寻址视为页面寻址。 在AT24C系列中对页面寻址位采取占用器件引脚地址(A2、A1、A0)的办法,例如AT24C16将A2、A1、A0作为页地址。凡在系统中引脚地址用作页地址后,该引脚在电路中不得使用,作悬空处理。其管脚功能如表5所示。 表5 AT24C16引脚功能说明 管脚名称 功能 A0、A1、A2 器件地址选择 SDA 串行数据/地址 ACL 串行时钟 WP 写保护 VCC +V2.5V~5.5V GND 地 AT24C16应用电路如图11所示。图中AT24C16的1、2、3脚是三条地址线,用于确定芯片的硬件地址。在AT89C51试验开发板上它们都接地,第8脚和第4脚分别为正、负电源。第5脚SDA为串行数据输入/输出,数据通过这条双向I2C总线串行传送,第6脚SCL为串行时钟输入线, SDA和SCL都需要和正电源间各接一个4.7K的电阻上拉。第7脚需要接地。 3.7 电源电路 由于本系统电源电路要为单片机、音频解码模块MT8870两个相对来说对电源要求较高的模块供电,所以采用了变压器降压经整流滤波后由集成稳压器7805稳压后给整个系统提供+5V电压的方式。 图11 AT24C16应用电路 电路图如图12所示。J3为9V交流变压器输入端,D1、D2、D3、D4构成桥式整流电路,经C1(2200uF)大滤波电容滤波后送入集成稳压器7805输入端,由输出端输出后再由C3(10uF)滤波后整个系统供电。在此电源电路中,C2为交流高频耦合电容,防止交流高频信号经电源电路串入系统,对系统构成干扰。R10和D5组成电源指示电路,显示电路是否工作。由于7805普遍采用TO-220封装,其Vi-Vo≥2V。所以选用较为常见的交流9V变压器,7805上的压降Vi-Vo=5V,在它的可承受范围之内。 图12 电源电路 4 系统软件设计 4.1 系统总体流程图 为了实现监控的实时性,程序必须时刻对用户的状态和电话线上的信号实时监视:用户是否摘机?该用户是否为合法用户?是否要进行密码设定或修改以及进行号码存储等功能设置?电话线上是否有DTMF信号等等,并能立即作出判断,进行相应的服务,从而保证用户电话业务的不间断性。软件总框图如图13所示。 系统上电后正常工作后,系统首先开始对所有硬件进行初始化,然后就进入等待状态,等待摘机中断的到来。当用户摘机后,程序就开始跳转到相应的服务程序区。自动检测在上一次输入的是否为密码,此密码可以使得用户进行一次合法拨打。如果没有输入密码,则系统开始等待输入数据,是否为功能键#。输入的是#键时,系统程序转到功能服务程序区,接着继续判断是否为解密指令*,是则提示用户输入密码,然后结束挂机,等用户再一次摘机。如不是则等待用户按下相应的功能按键,包括上翻、下翻、删除、密码修改、号码存储确定键。然后等待用户操作结束挂机。如果用户摘机输入电话号码,则根据用户预先存储的合法号码对拨打的号码进行分析,有效则不执行任何操作,结束程序的执行。如果是非合法号码,则切断电话线并发出报警,程序结束。整个数据输入过程由MT8870进行对DTMF的解码,将数据采用中断的方式提供给系统,供系统分析判断。 图13 程序总体方框图 4.2 号码存储程序流程图 存储号码程序流程图如图14示。本控制器启用时,首先要通过控制器上的功能键来设置限拨电话及密码。设置密码的方法:摘机后按下功能键,设置密码或更改密码(不超过6位数字),按确认键结束;设置限拨电话的方法:按下功能键后,接着设置限拨电话,最后再按下确认键结束。若继续设置限拨电话,则继续此步骤。 图14 存储号码程序流程图 4.3 去电限拨程序流程图 去电控制程序图如图15所示。本程序的关键点是在号码比较这一部分,是将用户拨打的电话号码跟存储区的号码进行比较,判断出是否为合法电话号码,实现程序的目的。 图15 去电控制流程图 5 结束语 本文通过对基于AT89C51单片机的电话机拔号控制器的研究和设计,分析了系统的实现的意义和可行性。本设计采用AT89C51和解码芯片MT8870作为系统核心,其中由于时间关系具体电路还有不近完善之处,外部采用片外存储器AT24C16用来实现电话号码的存储,以及保存系统的重要参数,采用液晶显示模块1620提供操作提示,电话机键盘直接输入,固体继电器和蜂鸣器作为最终执行机构用来切断电路线,应用这些个硬件设备就可以实现高性能、低价位的控制系统。 致谢 经过近几个月的努力和奋斗,我的电话机拔号控制器的设计毕业设计已经完成。在这几个月的时间里,我衷心的感谢我的指导老师付老师,在课题选定、理论及实践指导和的论证上,付老师对我精心的指导和耐心的帮助和鼓舞,使我能够坚持到底,使之毕业设计有了较理想的结果。至此论文定稿之际,对付老师表示衷心的感谢! 感谢老师能在繁忙之中抽出时间为我提供耐心的指导,帮我们解决在设计过程中遇到的种种问题。 在做毕业设计期间,我还有幸得到其它老师的热心指导和同学们的大力帮助,尤其是我的合作人黄军方同学的顶力支持,正因为有了他们,我才能克服各种困难,顺利完成毕业设计和论文。在这里一并向他们表示感谢!最后,再次向各位领导、各位老师致以崇高的敬意和最衷心的感谢! 参考文献 [1]房小翠,王金凤.单片微型计算机与机电接口技术[M].北京:国防工业出版社,2002. [2]皮红梅,李英顺.单片机开发中的定时方法[J].沈阳:石油化工高等专科学校学报,2002. [3]何利民.单片机应用系统设计[M].北京:北京航空航天大学出版社,1991,21~33. [4]白居宪.智能电话[M].西安:西安交通大学出版社,1995,224~230. [5]褚振勇,翁木云.程控交换原理[M].西安:西安电子科技大学出版社,2003,219~263. [6]李珍.单片机原理与控制技术[M].北京:清华大学出版社,2002,149~158. [7]范立南.单片微机接口与控制技术[M].沈阳:辽宁大学出版社,1996,69~77. [8]张友德.单片微型机原理、应用与实践[M].上海:复旦大学出版社,1992,73~81. [9]李华.单片机实用接口技术[M].北京:北京航空航天大学出版社,1993,23~31. [10]何希庆,高伟.MCS-51单片机原理、实验、实例.山东:山东大学出版社,1989,124~136. [11]张毅刚.新编MCS-51单片机应用设计.哈尔滨:哈尔滨工业大学出版社,2003,153~168. [12]胡汉才.单片机原理及接口技术.北京:清华大学出版社,1996,66~78. [13]廖焕霖. Protel 99原理图设计者必读[J].北京:冶金工业出版,2000,108~128. [14]张景元.智能去电器的设计与实现[J].电子工程师,2000,8(6):263~278. [15]高泽溪,高成.智能去电系统设计[D].北京:北京航空航天大学出版社,2002, 187~191. 附录1 图16 主体电路图 附录2 ;--------------------------------------- ; 程序的伪指令区 ;---------------------------------------- INT0 EQU P3.2 INT1 EQU P3.3 PAGEUP EQU P3.4 NUMBLE EQU P3.5 DELETEL EQU P3.6 PAGEDO EQU P3.6 PASSWO EQU P3.6 SDA EQU P2.3 SCL EQU P2.2 LCM_RS EQU P2.4 LCM_RW EQU P2.5 LCM_E EQU P2.6 MT8870 EQU P0 LCM_DA EQU P1 MTBZW EQU 20H.1 TWO EQU 20H.2 TELOW EQU 20H.3 TEHIGH EQU 20H.4 EQUAL1 EQU 20H.5 BIDBZW EQU 20H.6 EQUAL2 EQU 20H.7 GS EQU 20H.0 ONE EQU 21H.0 MIBZW EQU 21H.1 MA EQU 21H.2 EQUAL3 EQU 21H.3 SAN EQU 21H.4 XIANBO1 EQU 21H.5 XIANBO2 EQU 21H.6 CLOSE EQU 22H.7 BZW EQU 30H GSBZW EQU 31H MTJSQ EQU 32H UPBZW EQU 33H HMJSQ EQU 34H HMBZW EQU 35H THBZW EQU 36H LIANDU EQU 37H MIJSQ EQU 38H HMBZW2 EQU 39H DAT1 EQU 40H DAT2 EQU 41H DAT3 EQU 42H DAT4 EQU 43H DAT5 EQU 44H PPBZW EQU 3FH DAT6 EQU 45H DAT7 EQU 46H DAT8 EQU 47H DAT9 EQU 48H DAT10 EQU 49H DAT11 EQU 4AH DAT12 EQU 4BH DAT13 EQU 4CH DAT14 EQU 4DH DAT15 EQU 4EH DAT16 EQU 4FH TEMP1 EQU 50H TEMP2 EQU 51H TEMP3 EQU 52H TEMP4 EQU 53H TEMP5 EQU 54H TEMP6 EQU 55H TEMP7 EQU 56H TEMP8 EQU 57H TEM1 EQU 5AH TEM2 EQU 5BH TEM3 EQU 5CH TEM4 EQU 5DH TEM5 EQU 5EH ;------------------------------------ ;各个程序的入口定义 ;------------------------------------- ORG 0000H AJMP MAIN ORG 0003H LJMP INSER ORG 000BH NOP NOP RETI ORG 0013H LJMP START ORG 001BH NOP NOP RETI ORG 0023H NOP NOP RETI ;------------------------------------- ;程序开始 ;------------------------------------- ORG 0030H MAIN: MOV R7, #0FFH DJNZ R7, $ SETB EA SETB EX1 SETB IT1 SETB PX0 MOV MIJSQ, #00H CLR MIBZW MOV DAT1, #00H MOV DAT2, #00H MOV DAT3, #00H MOV DAT4, #13 MOV R4, #00H MOV R3, #00H MOV R1, #DAT1 MOV R7, #4 LCALL EEPW LCALL YS10MS LCALL YS10MS MOV R4, #00H MOV R3, #05H MOV R1, #GSBZW MOV R7, #1 LCALL EEPR LCALL YS10MS LCALL YS10MS MOV A, GSBZW CJNE A, #0FFH MOV R4, #00H MOV R3, #05H MOV R1, #GSBZW MOV R7, #1 LCALL EEPW LCALL YS10MS LCALL YS10MS JUMP9: MOV SP, #60H clr p3.3 SJMP $ ;-------------------------- ;摘机中断检测 ;-------------------------- START: LCALL YS10MS JB INT1, RRT LCALL YS10MS JB INT1, $ MOV R7, #0FFH DJNZ R7, $ JNB MIBZW, SKIP AJMP RET0 RRT: AJMP RRR SKIP: MOV R4, #00H MOV R3, #14H MOV R1, #TEMP1 MOV R7, #4 LCALL EEPR LCALL YS10MS LCALL YS10MS MOV R4, #00H MOV R3, #24H MOV R1, #TEMP5 MOV R7, #4 LCALL EEPR LCALL YS10MS LCALL YS10MS LCALL INITIAL LCALL CLS MOV A, #80H LCALL WRITE_COM MOV DPTR, #LINE1 LCALL DISP MOV A, #0C0H LCALL WRITE_COM MOV R5, #0FFH MOV R0, #TEM1 MOV MTJSQ, #0 CLR MTBZW CLR TWO CLR ONE CLR MA CLR SAN CLR MIBZW CLR TELOW CLR TEHIGH CLR BIDBZW CLR EQUAL1 CLR EQUAL2 CLR EQUAL3 CLR XIANBO1 CLR XIANBO2 CLR CLOSE SETB EX0 SETB IT0 JUMP6: JB INT1, RET0 CJNE R5, #0FFH, JUMP8 AJMP JUMP6 JUMP8: CJNE R5, #0BH, JUMP7 MOV R5, #0FFH SKIP1: JB INT1, RET0 CJNE R5, #0BH, SKIP2 LCALL KEY AJMP RET0 SKIP2: CJNE R5, #0CH, SKIP1 LCALL MIMA AJMP RET0 JUMP7: LCALL FORBID RET0: CLR MIBZW RT1: LCALL CLS MOV A, #08H LCALL WRITE_COM JNB CLOSE, RRR MOV BZW, #200 LLL: LCALL YS10MS DJNZ BZW, LLL SETB P3.7 RRR: RETI ;------------------------------- ;密码检测程序 ;------------------------------- MIMA: MOV R7, #0FFH DJNZ R7, $ CLR EX0 CLR MA MOV A, #80H LCALL WRITE_COM MOV DPTR, #LINE4 LCALL DISP MOV A, #0C0H LCALL WRITE_COM MOV R4, #00H MOV R3, #06H MOV R1, #MIJSQ MOV R7, #1 LCALL EEPR LCALL YS10MS LCALL YS10MS MOV A, MIJSQ CJNE A, #1, SP0 MOV R4, #00H MOV R3, #07H MOV R1, #TEMP1 MOV R7, #6 LCALL EEPR LCALL YS10MS LCALL YS10MS SETB MA SP0: SETB EX0 SETB IT0 CLR MTBZW MOV MTJSQ, #00H MOV R0, #DAT1 ACALL MAMI AJMP RT1 ;-------------------------- ;密码判别程序 ;-------------------------- MAMI: JB INT1, OUT JNB MTBZW, MAMI MOV R7, #255 DJNZ R7, $ CLR MTBZW MOV DPTR, #JMPTBL1 MOV A, MTJSQ ADD A, MTJSQ JMP @A+DPTR RD: AJMP MAMI OUT: AJMP RET0 JMPTBL1: AJMP BRANDH0 AJMP BRANDH1 AJMP BRANDH2 AJMP BRANDH3 AJMP BRANDH4 AJMP BRANDH5 AJMP BRANDH6 CJNE A, TEMP1, OUT AJMP RD SP1: CJNE A, #1, OUT AJMP RD BRANDH2: MOV A, DAT2 JNB MA, SP2 CJNE A, TEMP2, OUT AJMP RD SP2: CJNE A, #9, OUT AJMP RD BRANDH3: MOV A, DAT3 JNB MA, SP3 CJNE A, TEMP3, OUT AJMP RD SP3: CJNE A, #3, OUT AJMP RD BRANDH4: MOV A, DAT4 JNB MA, SP4 CJNE A, TEMP4, OUT AJMP RD SP4: CJNE A, #8, OUT AJMP RD BRANDH5: MOV A, DAT5 JNB MA, SP5 CJNE A, TEMP5, OUT AJMP RD SP5: CJNE A, #9, OUT AJMP RD BRANDH6: MOV A, DAT6 JNB MA, SP6 CJNE A, TEMP6, OUT JB CLOSE, SP7 SETB MIBZW MOV BZW, #100 LLL2: LCALL YS10MS DJNZ BZW, LLL2 AJMP RT1 SP7: MOV BZW, #100 LLL3: LCALL YS10MS DJNZ BZW, LLL3 AJMP LJMP2 SP6: CJNE A, #3, OUT1 JB CLOSE, SP7 SETB MIBZW MOV BZW, #100 LLL1: LCALL YS10MS DJNZ BZW, LLL1 AJMP RT1 OUT1: AJMP OUT ;-------------------------- ;功能键区 ;------------------------- KEY: LCALL INITIAL LCALL CLS CLR EX0 MOV HMBZW, #00H MOV HMBZW2, #00H MOV UPBZW, #00H MOV BZW, #00H MOV THBZW, #0 MOV LIANDU, #00H MOV A, #80H LCALL WRITE_COM MOV DPTR, #LINE2 LCALL DISP SETKEY: JB INT1, REL13 JB PAGEUP, SETKEY LCALL YS10MS JB PAGEUP, SETKEY REL12: LCALL YS10MS JNB PAGEUP, $ LCALL UPNUMBLE REL11: JB INT1, REL13 LCALL NUMDATA LCALL DOWNNUM LCALL PWORD JB PAGEUP, REL11 LCALL YS10MS JB PAGEUP, REL11 AJMP REL12 REL13: RET ;-------------------------- ;禁拨程序区 ;------------------------- FORBID: JB INT1, RE JNB MTBZW, FORBID MOV R7, #255 DJNZ R7, $ CLR MTBZW MOV DPTR, #JMPTBL MOV A, MTJSQ ADD A, MTJSQ JMP @A+DPTR REND: AJMP FORBID RE: RET JMPTBL: AJMP BRANCH0 AJMP BRANCH1 AJMP BRANCH2 AJMP BRANCH3 AJMP BRANCH4 AJMP BRANCH5 AJMP BRANCH6 BRANCH0: AJMP STOP BRANCH1: MOV A, TEMP1 CJNE A, TEMP5, JMP6 CJNE A, TEM1, SETB EQUAL1 AJMP REND1 JMP6: MOV A, TEM1 CJNE A, #0AH, JMP0 CJNE A, TEMP1, STP1 AJMP REND1 JMP0: MOV A, TEMP1 CJNE A, #0AH, JMP1 AJMP JMP3 JMP1: CLR C CJNE A, TEM1, JMP2 AJMP REND1 JMP2: JNC STOP1 JMP3: MOV A, TEMP5 CJNE A, #0AH, JMP4 AJMP STOP1 JMP4: CLR C CJNE A, TEM1, JMP5 AJMP REND2 JMP5: JC STOP1 SETB TWO AJMP REND STOP1: MOV A, TEM1 CJNE A, #1, STP1 SETB BIDBZW AJMP REND REND1: SETB TELOW AJMP REND REND2: SETB TEHIGH AJMP REND STP1: AJMP STOP BRANCH2: JB TWO, END2 JB BIDBZW, STOP2 MOV A, TEMP2 CJNE A, TEMP6, JP0 SETB EQUAL2 JP0: JNB TELOW, JP4 CLR TELOW MOV A, TEM2 CJNE A, #0AH, JP1 CJNE A, TEMP2, STP2 AJMP REND3 JP1: MOV A, TEMP2 CJNE A, #0AH, JP2 JB EQUAL1, JP5 AJMP REND7 JP2: CLR C CJNE A, TEM2, JP3 AJMP REND3 JP3: JNC STOP2 JB EQUAL1, JP5 AJMP REND7 JP4: JNB TEHIGH, END2 CLR TEHIGH MOV A, TEM2 CJNE A, #0AH, JP5 CJNE A, TEMP6, END2 AJMP REND4 JP5: MOV A, TEMP6 CJNE A, #0AH, JP6 AJMP STP2 JP6: CLR C CJNE A, TEM2, JP7 AJMP REND4 JP7: JC STOP2 AJMP REND7 END2: AJMP REND STOP2: MOV A, TEM1 CJNE A, #1, STP2 MOV A, TEM2 CJNE A, #1, HOP1 AJMP REND HOP1: CJNE A, #2, STP2 AJMP REND STP2: AJMP STOP REND3: SETB TELOW AJMP REND REND4: SETB TEHIGH AJMP REND REND7: SETB ONE AJMP REND BRANCH3: JB TWO, END3 JB ONE, END3 JB BIDBZW, STOP3 MOV A, TEMP3 CJNE A, TEMP7, JJP0 SETB EQUAL3 JJP0: JNB TELOW, JJP4 CLR TELOW MOV A, TEM3 CJNE A, #0AH, JJP1 CJNE A, TEMP3, STP3 AJMP REND5 JJP1: MOV A, TEMP3 CJNE A, #0AH, JJP2 JNB EQUAL1, REND8 JNB EQUAL2, REND8 AJMP JJP5 JJP2: CLR C CJNE A, TEM3, JJP3 AJMP REND5 JJP3: JNC STOP3 JNB EQUAL1, REND8 JNB EQUAL2, REND8 AJMP JJP5 JJP4: JNB TEHIGH, END3 CLR TEHIGH MOV A, TEM3 CJNE A, #0AH, JJP5 CJNE A, TEMP7, END3 AJMP REND6 JJP5: MOV A, TEMP7 CJNE A, #0AH, JJP6 AJMP STP3 JJP6: CLR C CJNE A, TEM3, JJP7 AJMP REND6 JJP7: JC STOP3 AJMP REND8 END3: AJMP REND STOP3: MOV A, TEM2 CJNE A, #1, HOP3 MOV A, TEM3 CJNE A, #9, HOP2 AJMP REND HOP3: CJNE A, #2, STP3 MOV A, TEM3 HOP2: CJNE A, #0AH, STP3 AJMP REND STP3: AJMP STOP REND5: SETB TELOW AJMP RENDL REND6: SETB TEHIGH AJMP RENDL REND8: SETB SAN AJMP RENDL RENDL: MOV A, TEM1 CJNE A, #1, END3 MOV A, TEM2 CJNE A, #1, HOP4 MOV A, TEM3 CJNE A, #9, HOP5 AJMP REND HOP4: CJNE A, #2, HOP6 MOV A, TEM3 HOP5: CJNE A, #0AH, HOP6 AJMP REND HOP6: SETB XIANBO1 MOV BZW, #200 HOP7: JB XIANBO2, END3 LCALL YS10MS DJNZ BZW, HOP7 AJMP STP3 BRANCH4: JB TWO, END4 JB ONE, END4 JB SAN, END4 JB BIDBZW, STOP4 JNB TELOW, JM4 CLR TELOW MOV A, TEM4 CJNE A, #0AH, JM1
/
本文档为【段国强-电话机拔号控制器的设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索