首页 手机拨号报警装置的软硬件设计

手机拨号报警装置的软硬件设计

举报
开通vip

手机拨号报警装置的软硬件设计摘要 摘 要:随着电子科学的发展和人们生活水平的不断提高,人们生活节奏的加快,家电产品的智能化不断提升,远程报警技术和远程控制技术也有空前的需要与发展空间。文章主要讨论了一种基于电话网的远程报警系统的设计。系统采用电话网作为通信媒介,实现了远程呼叫,报警的功能。文中主要从硬件和软件两方面论述了整个系统的设计。硬件部分首先谈到了系统整体设计,然后分别从单片机MCU最小系统、语音信号发送、忙音侦测接口电路、DTMF信号传输等功能模块出发做了论述[1],保证系统设计的高性能。软件系统的设计主要给出了针对各个应用模块的设...

手机拨号报警装置的软硬件设计
摘要 摘 要:随着电子科学的发展和人们生活水平的不断提高,人们生活节奏的加快,家电产品的智能化不断提升,远程报警技术和远程控制技术也有空前的需要与发展空间。文章主要讨论了一种基于电话网的远程报警系统的设计。系统采用电话网作为通信媒介,实现了远程呼叫,报警的功能。文中主要从硬件和软件两方面论述了整个系统的设计。硬件部分首先谈到了系统整体设计,然后分别从单片机MCU最小系统、语音信号发送、忙音侦测接口电路、DTMF信号传输等功能模块出发做了论述[1],保证系统设计的高性能。软件系统的设计主要给出了针对各个应用模块的设计思路和设计框架,并且通过自己的理解和仿真器帮助分层次对程序进行了优化,加大了软件的通用性和可移植性。系统稳定性和实用性是衡量系统设计好坏的重要MATCH_ word word文档格式规范word作业纸小票打印word模板word简历模板免费word简历 _1714030506732_0,为此系统以功能性为基础以创新性为指导以实践性为依托深层次论证了远程报警系统的大好的发展前景。最后,对系统功能的继续扩展,和系统走向实际应用和产业化提出了一些设想和展望。 关键词:单片机,远程报警,DTMF,忙音检测 Abstract Abstract :Along with the continuous improvement of people's living standard and the rapid development of science and technology, the acceleration of the rhythm of people's lives, and intelligent home appliances rising,Phone dial-up alarm technology is also the need for unprecedented development. The article focused on a telephone network based on mobile phone, then dial alarm system design.System uses the telephone network as communication media, achieved a long-distance calls, alarm function. In this paper, hardware and software, mainly from two aspects of the design of the entire system. First, the hardware part of the overall design of the system, and then from the smallest single-chip systems, voice signals sent, Interface circuits to detect busy tone, DTMF signal transmission function modules, such as starting to do the paper, to ensure high-performance system design. Software system design is given for each major application modules of the design concept and design framework, and through their own understanding and help the sub-level simulator of the process is optimized, software to increase the versatility and portability. System stability and practicality of system design is a measure of the importance of quality standards, for this system to function as the basis for innovative practice for the guidance based on deep-level alarm system demonstrated excellent long-range prospects for development. Finally, the continued expansion of system functions, and systems to the practical application and industrialization of a number of visions and perspectives. Keywords: single-chip, remote alarm, DTMF, Busy Tone Detection 目录 第1章 绪论    1 1.1选题意义与目前技术发展    1 1.2 研究目的和设计思路    1 1.3手机远程报警的原理    2 第2章 系统设计分析    3 2.1系统硬件设计    3 2.1.1 单片机最小系统    3 2.1.2双音频DTMF收发功能电路    3 2.1.3语音播放功能电路    4 2.1.4电话线接口功能电路    4 2.1.5系统电源功能电路    5 2.1.6系统检测功能电路    5 2.2系统软件设计    6 2.2.1系统功能总体分析    6 2.2.2基于MT8880串行可编程芯片分析    7 2.2.3基于ISD4004串行可编程芯片分析    11 2.2.4单片机汇编语言处理设计    15 2.2.5扩展(单片机C语言编程)    17 第3章 系统调试    19 3.1仿真环境介绍    19 3.1.1星研Star51PH仿真器介绍    19 3.1.2编译环境Keil uVision3    25 3.2系统设计中问题处理    25 3.2.1硬件设计问题与软件误区    25 3.2.2未知问题假设论证    27 3.2.3调试结果    27 第4章 总结    28 参考文献    29 致  谢    30 附录一:硬件原理图    31 附录二:程序设计    32 第1章 绪论 1.1选题意义与目前技术发展 手机远程报警是智能家居的一部分,目前在这方面的研究和应用主要集中在两个方面。一方面是家电自身的智能化程度,主要有一些智能理论来支撑。在嵌入式家电领域应用比较广泛的有启发式搜索、模糊逻辑理论和人工神经网络等等。另一方面是便捷、安全的远程报警及控制,主要技术有电话网数据传输,以太网数据传输和GPRS数据传输。三种数据传输方式各有优缺点,适合不同的应用。本设计主要讨论发挥电话网数据传输的优点,功能灵活多变,可扩展性强,适应与普通家庭电话网远程智能嵌入式报警系统。 报警系统的进一步发展就是数字化家居控制系统,它使得人们可以通过手机在任何时候、任意地点对家中的任意电器(空调、热水器、电饭煲、灯光、音响、DVD录像机)进行远程控制;也可以在下班途中,预先将家中的空调打开、让热水器提前烧好热水、电饭煲煮好香喷喷的米饭等等;而这一切的实现都仅仅需要打一个简单的电话。舒适、时尚的家居生活是社会进步的标志,智能家居系统能够在不改变家中任何家电的情况下,对家里的电器、灯光、电源、家庭环境进行方便地控制,使人们尽享高科技带来的简便而时尚的现代生活。 1.2 研究目的和设计思路 智能化的发展迫使我们对身边的生活环境要求更高,更加人性话,基于学习的知识本手机报警系统要根据家居环境的变化做出相应的反映,并且信息要通过电话网络传送出去,通知家人或相关部门。达到反应迅速,处理及时,最终减少人身财产的损失。系统细节方面必需做到在待机情况下耗电量最低,与电话机并联情况下不能影响电话的正常工作。现价比低,可用性强,有足够好的可靠性为目标。 本系统在单片机的支持下,利用DTMF信号和语音信号将需要传达的信息发送出去,要想实现系统的功能学习的第一部是理解各个芯片的性能,特点等等。然后组建单个功能芯片的电路,使每个功能块能够正常工作。最后将所有块合并起来组成系统调试完成设想的目的手机远程报警,本着分总的设计思路完成本次设计任务。 1.3手机远程报警的原理 系统在工作时先由检测部分的传感器感受周围环境的变化,将信号传给单片机,89C52根据要完成的任务给出设备不同的工作模式,如果出现报警情况首先由DTMF部分发出予存的电话号码,经过接口处理部分由电话网络拨打你想要通知的对象,对方有人接听,则单片机控制语音芯片将语音信息播放给接听者,完事后系统挂机进入低消耗状态,达到报警的目的[2]。假如拨出的号码无人接听,占线或不在服务区,则要求系统拨下一个号码或循环拨号直到有人接听为止,在多种情况下报警设备能够出色的完成系统的设计目标。 第2章 系统设计分析 2.1系统硬件设计 2.1.1 单片机最小系统 所谓单片机最小系统,就是单片机在最少的器件下能够正常运行,达到再扩张的最基本条件。包括给单片机提供动力源的时钟电路和使单片机初始化操作的复位电路如图2.1。 (1)利用示波器观察ALE端有无波形确定最小系统是否正常工[4] 。 (2)复位电路中C1和R1实现了                上电自动复位功能。增加了按键开关S1和R2又实现了按键复位的功能,R2的作用是在S按下时,防止电容C1放电过大烧坏开关S1的触点,电路中应保证R1/R2>10[4]。 2.1.2双音频DTMF收发功能电路 双音多频信号(DTMF)是由一组低音频信号和一组高音频信号以一定方式的组合构成,每组音频信号各有4个音频信号,而每种组合有一个高音频信号和一个低音频信号,共16种组合,过去主要用于电话拨号信息传输,具有很强的抗干扰能力。我们采用的是MT8880CE,该芯片是一个带有呼叫处理滤波器的单片DTMF信号收发器。他的制造采用MITEL公司的低功耗、高稳定性的ISO-CMOS技术。                DTMF信号的接收部分采用DTMF信号接收单片机MT8870的工业制造标准;发送部分采用开关电容进行D/A转换发送高精度、低畸变的DTMF信号[5]。内部寄存器提供一个群模式。在双音频群模式下DTMF信号可以通过精确的时序被发送出去。可选择呼叫处理滤波器让一个微处理器处理呼叫音频信号。系统对应的电路设计如图2.2。 2.1.3语音播放功能电路 语音播放电路主要芯片用ISD4004,该芯片采用CMOS技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动降噪及高密度多电平闪烁存贮阵列。引脚包括电源、时钟、语音信号模拟输入/输出端及MCU接口(SPI接口)几部分。芯片采用多级存储技术,即声音无须A/D转换和D/A转换,采用模拟量直接存储技术,因此能够真实、自然地再现声音[6]。ISD4004系列单片录放时间根据不同的采样频率可有8~16 min不等,采样频率可为4.0 kHz,5.3 kHz,6.4 kHz,8.0 kHz,采样频率越低,录放时间越长,但音质有所下降[7]。芯片的所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI)送出,我们选用的是ISD4004-16WP,对应的设计电路如图2.3。 2.1.4 电话线接口功能电路    摘机状态下,两端直流电流约为18mA~50mA,两端电压会随负载阻抗的不同相应变化。电话线两端电压最高会有110V 左右。这种高压很容易直接击穿不受保护三极 管Q3 的CE 极,三极管Q1 和Q2 在这里起到保护Q3 的作用。Q1 的CE 极会和Q3 分压,保证了Q3 的安全。同时,Q1 的基极电流较小,R1 保证了Q1 和Q2 不会击穿。三个三极管都稳定工作在截止区[9]。摘机电流主要由三极管Q3 控制。摘机电流主要由三极管Q3 控制。本设计用的交换机摘机电流约为30mA,电阻R4 保证摘机后直流工作电压在5V~6V[10],如图2.4。 2.1.5系统电源功能电路 系统中有两中电压,一是常用芯片比如AT89C52,MT8880,LM386等等。在设计时为了方便易用我们采用了交流220V转为5V的固定电网供电,这样长时间调试不用为电源消耗犯愁。其中ISD4004工作电压在2.7V~3.3V,所以采用图2.5的供电电路,MSI117供电比较稳定,功耗比较小,电源噪声干扰小,它对芯片在工作时影响很少登。 2.1.6系统检测功能电路 检测部分我们选择了常用的测温传感器DS18B20,它是“一线总线”数字化温度传感器是DALLAS最新单线数字温度传感器,测量温度范围为 -55°C~+125°C,在-10~+85°C范围内。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,与前一代产品不同,新的产品支持3V~5.5V的电压范围,另外它可以程序设定9~12位的分辨率,      精度为±0.5°C。可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EEPROM中,掉电后依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!省略了存储用户定义报警温度、分辨率参数的EEPROM,适用于对性能要求不高[12],成本控制严格的应用,是经济型产品。设计电路如图2.6。 2.2系统软件设计 2.2.1系统功能总体分析 在软件设计方面系统的功能是在检测到危险信号时,通过电话网络快速通知给 家人或相关部门,使财产损失减到最低。本次设计的软件大体框图如图2.7,程序在初始化过程中要完成双音频MT8880CE,温度传感器18B20等芯片的功能和工作模式的程序设计。由按键P2.0来决定是否录音,并且在同时启动89C52定时器T2,在每8秒采温度一次,接下来与给定的温度标准值STANDARD(60℃)进行比较,如果测得温度大于它,系统就启动发DTMF的子程序发出报警信号,否则就返回继续检测外部环境,等待突发事件。在信号处理部分我们先利用了MT8880CE的呼叫模式,对它的IRQ信号做5秒的计数, 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 返回信号脉冲变化情况这样拨号音的计数范围是2125~2375,忙音的计数范围是1041~1212,回铃音的计数范围是425~475,无信号音计数是零。但是编程中考虑有一定的计时计数误差,并且使程序简化,我们采用了不同的信号邻计数界限的中间值为区分不同的信号音(中间值应尽量选为2的N次方整数)。最后,设定的计数值为1024~1797为忙音,在256~1023之间为回铃音,小于255为无信号音。 通过以上处理如果有回铃音则证明电话另一端有人接听,程序选择进入语音播放功能将ISD4004中的语音信息通知给电话接听者,程序指针返回主程序,实现报警的功能。 2.2.2基于MT8880串行可编程芯片分析 (1)电话信号及原理的介绍 电话系统信号音的拨号音、回铃音和忙音的音源频率均为450HZ的正弦波,只是断续比不同且时间上有明显的差异(拨号音 450Hz 连续、忙 音 450Hz 1s:1s 或者 0.35s:0.35s 通:断、回铃音 450Hz 1s:4s 通:断、被叫提机 回铃音断)。另外电话线传输的是交流信号,待机时电话线上有效电压为40V-60V,有信号时为100V-120V,这些规律为双语音芯片提供了基本应用依据。 (2)MT8880的特点及应用分析 MT8880 内部有5 个寄存器,这5 个寄存器可分为数据暂存寄存器、收发控制寄存器和收发器状态寄存器。数据暂存寄存器有接收数据寄存器和发送数据寄存器,接收数据寄存器用于存放最后一次接收到的有效值,是一个只读寄存器;发送数据寄存器中的数据决定要发送的双音频信号的频率组成,我们只能向发送数据寄存器中写入数据。收发控制寄存器也有CRA 和 CRB ,它们占用同一个地址,轮流使用。对CRB 的操作是通过CRA 中某一个特定位的置位操作来实现,寄存器的功能如表 1~3所列。 表1寄存器功能图 位 名字 功能 描述 B0 TOUR 音频输出 当置位时无论突发还是连续均适用 B1 CP/DTMF 模式控制 为0时能够发送和接收DTMF信号;为1时做呼叫模式 B2 IRQ 中断使能 置位时中断允许 B3 RSEL 寄存器选择 置位时表明控制寄存器CRA、CRB循环写,先A后B         图2.8 表2  控制寄存器CRA 位 名字 功能 描述 B0 BRUST 突发模式 为0时是双音突发式 B1 TEST 测试模式 置位时接到DTMF信号后,IRQ/CP出现反转条件是CRA中的B1=0 B2 S/D 单/双音频 为0时允许产生双音多频,1时产生横频或纵频有下面B3决定 B3 C/R 横/纵频选择 为0时选择横频,为1时选择纵频         图2.9 表3  控制寄存器CRB 位 名字 状态标志置位 清楚状态位 B0 IRQ 在B1或B2置位时IRQ就置位 读后自动复位 B1 TRANSMIT DATA REGISTER EMPTY (BURST MODE ONLY) 准备发送下一个数据 读后自动复位 B2 RECEIVE DATA REGISTER FULL 合法数据以在接收寄存器中 读后自动复位 B3 DELAYED STEERING 合法DTMF信号缺失 检测到合法DTMF信号清楚         图2.10 对应内部寄存器选择在编程中的引用如下表 RSO R/W FUNCTION 0 0 写发送数据寄存器 0 1 读接收数据寄存器 1 0 写控制寄存器 1 1 读状态寄存器       图2.11 MT8880作为DTMF接收器的时候,DTMF信号经由IN+和IN-输入[11],经过运算放大滤除信号中的拨号音频率,然后发送到双音频滤波器,分离出低频组和高频组信号,通过数字计数的方式检出DTMF信号的频率,并且通过译码器译成4位二进制码。4位二进制编码被锁存在接收数据寄存器中,此时状态寄存器中的延时控制识别位复位,状态寄存器中的接收数据寄存器满标识位置位,对外而言,当寄存器中的延时控制识别位复位时,IRQ/CP由高电平变为低电平。如果用IRQ/CP作为单片机的中断信号,IRQL由高电平变为低电平,向CPU发出中断请求,当CPU响应中断,读出寄存器中的数据后,IRQ返回高电平。 MT8880的D0~D3与单片机的P1.0~P1.3相连,P1.4-P1.7分别与CK, R/W,RSO,CS相连。其MT8880初始化编程过程和框图如右图: (1) 写状态寄存器控制字#6FH (2) 写控制寄存器CRA控制字#40H (3) 写控制寄存器CRA控制字#40H (4) 写控制寄存器CRB控制字#48H (5) 写控制寄存器CRA控制字#40H (6) 写状态寄存器控制字#6FH (7) 延时200毫秒 图2.12 MT8880初始化流程图 当MT8880作为发送器时数据总线上D0~D3四位二进制码被锁存在发送数据寄存器中,发送的DTMF信号频率由3.58 MHz的晶振分频产生。分频器首先从基准频率分离出8个不同频率的正弦波,行列计数器根据发送数据寄存器中的数据,以八取二方式分离出一个高频信号和一个低频信号,经开关电容做D/A转换,在加法器中合成DTMF信号,并从TONE端输出。部分设计程序如下: TXANSMIT:                  ;MT8880发送数据 MOV R0,#11 LOOP1:MOV DPTR,#TAB        ;表中为存储的电话号码 MOV P1,#4DH ACALL CPW MOV A,R1 MOVC A,@A+DPTR MOV P1,A ACALL CPW NOP MOV P1,#6FH ACALL CPR JNB ACC.1,LOOP1 INC R1    DJNZ R0,LOOP1 RET CPR:    SETB P1.4        ;MT8880时钟控制位 NOP NOP MOV A,P1 ANL A,#0FH CLR P1.4 RET CPW:    SETB P1.4 NOP NOP CLR P1.4 RET 总的来说串行芯片节约了单片机的外部总线,扩展了单片机外部连接芯片的个数,增强了单片机的工业适应能了,拟SPI通信方式也极大的了丰富了程序设计的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,为不同型号的单片机兼容开创了发展空间。 2.2.3基于ISD4004串行可编程芯片分析 (1)SPI通讯方式的介绍 SPI接口是Motorola公司推出的同步串行扩展接口[13]。该接口共使用4条信号线,主机输出片选线CS, 串行时钟线SCLK, 主机输出/从机输人的信号线MOSI以及主机输人从机输出的信号线MISO。SPI接口是串行扩展的全双工同步通信口, 主机方式传送数据的最高速率达1.05Mbps。 (2)芯片ISD4004特点及编程分析 首先,记录声音没有段长度限制,并且声音记录不需要A/D转换和压缩;其次,将快速闪存作为存储介质,无需电源即可保存数据长达100年,重复记录10000次以上;此外,ISD4004具有记录时间长(可达16分钟,)的优点;最后,ISD4004的开发应用具有所需外围电路简单的优点。 如表4~6介绍其功能控制字及控制位,为应用分析打下基础。 表4控制字 指令 8位控制码<16位地址> 操作摘要 POWERUP 00100XXX 上电:等待TPUD后器件可以工作 SET PLAY 11100XXX< A15-A0> 从指定地址开始放音。必须后跟PLAY指令使放音继续 PLAY 11110XXX< XXXXXXXXXXXXXXXX > 从当前地址开始放音(直至EOM或OVF) SET REC 10100XXX 从指定地址开始录音。必须后跟REC指令录音继续 REC 10110XXX< XXXXXXXXXXXXXXXX > 从当前地址开始录音(直至OVF或停止) SET MC 11101XXX 从指定地址开始快进。必须后跟MC指令快进继续 MC 11111XXX< XXXXXXXXXXXXXXXX > 执行快进,直到EOM.若再无信息,则进入OVF状态 STOP 0X110XXX< XXXXXXXXXXXXXXXX > 停止当前操作 STOP WRDN 0X01XXXX< XXXXXXXXXXXXXXXX > 停止当前操作并掉电 RINT 0X110XXX< XXXXXXXXXXXXXXXX > 读状态:OVF和EOM       图2.13 表5数据位 图2.14 表6  SPI 控制寄存器 位 值 功 能 位 值 功 能 RUN 1 0 允许/禁止操作开始 停止 PU 1 0 电源控制 上电 掉电 P/-R 1 0 录/放模式 放音录音 IAB 1 0 操作是否使用指令地址 忽略输入地址寄存的内容 使用输入地址寄存的内容 MC 1 0 快进模式 允许快进 禁止 P15-P0 A15-A0   行指针寄存器出 输入地址寄存器             图2.15 注:IAB置0时,录、放操作从A9-A0地址开始。为了能连贯地录、放到后续的存储空间,在操作到达该行末之前,应发出第二个SPI指令将IAB置1,否则器件在同一地址上反复循环。这个特点对语音提示功能很有用。RAC脚和IAB位可用于信息管理。 ISD4004工作于SPI串行接口。SPI 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。因此在时钟上升沿锁存MOSI引脚数据,在下降沿将数据送至MISO引脚[14]。协议具体内容如下。 ● 所有串行数据传输开始于SS下降沿。 ● SS在传输期间必须保持为低电平,在两条指令之间保持为高电平。 ● 数据在时钟上升沿移入,在下降沿移出。 ● SS变低,输入指令和地址后,ISD行才开始录放保持。 ● 指令格式是8位控制码加16位地址码。 ISD的任何操作(含快进)如果遇到EOM或OVF,则产生一个中断,该中断状态在下一个SPI周期开始时被清除。 ● 使用“读”指令会使中断状态位移出ISD的MISO引脚时,控制及地址数据也同步从MOSI端移入。 ● 所有操作在运行位(RUN)置1时开始,置0时结束。 所有指令都在SS端上升沿开始执行[15]。 编程时上电顺序要注意器件延时TPUD(8kHz采样时,约为25毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出一条操作指令。 如果从00处录音,则时序和框图2.16: ? 发POWER UP命令; ? 等待TPUD(上电延时); ? 发POWER UP命令 ? 等待2倍TPUD; ? 发地址值为00的SETREC命令; ? 发REC命令。                                器件便从00地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。 从00从处放音,应遵循如下时序和框图2.17: ? 发POWERUP命令; ? 等待TPUD(上电延时); ? 发地址值为00的SETPLAY命令; ? 发PLAY命令。 器件会从此00地址开始放音,当出现EOM时,立即中断,停止放音。 部分录音程序如下:                              RECORD: LCALL POWERUP          ;上电子程序 LCALL DELAY25           ;延迟子程序,至少延迟25ms LCALL POWERUP  LCALL DELAY25  LCALL DELAY25  CLR  P0.0              ;选中ISD4004 MOV A,PLAY0            ;送录音地址低8位 LCALL SEND             ;调用送地址子程序 CLR P0.0 MOV A,#0A0H             ;送SETREC录音命令 LCALL SEND CLR P0.0 MOV A,#0B0H            ;送命令REC录音 LCALL SEND  JB P2.2,$            ;P2.2外部按钮,按下录音停止 CLR P0.0 MOV A,#30H        ;停止当前工作 LCALL SEND  SETB P0.0 RET SEND:                            ;向ISD4004送指令,地址等的子程序 CLR P0.1                       ; MOSI主机数据输出线 CLR P0.3                      ; 系统时钟SCLK启动 MOV R4,#8; OUTB: CLR P0.3                         ;时钟下降 RRC A MOV P0.1,C                     ;输出1位 NOP NOP SETB P0.3                      ;时钟上升沿到 NOP NOP DJNZ R4,OUTB SETB P0.0 RET DELAY25: MOV R2,#19H DE1:    MOV R3,#0FAH DE2:    NOP NOP DJNZ R3,DE2 DJNZ R2,DE1 RET 2.2.4单片机汇编语言处理设计 (1)中断系统 单片机正在处理某一程序时,发生了另一突发事件请求单片机迅速去处理(中断发生);单片机暂时停止当前的工作,转到需要处理的中断源的服务程序的入口(中断响应),一般在入口处执行一跳转指令转去处理中断事件(中断服务);待单片机将中断事件处理完毕后,再回到原来程序被中断的地方继续处理执行程序(中断返回),这一处理过程称为中断[4]。 本次设计中一共用了4个中断源,外部中断0、外部中断1,定时器中断T0和T2。 ① INT0来自P3.2外部中断请求,中断优先级最高。本系统在设计初为了调试方便加了一个按键用以为后续程序启动做触发源实现的主要目的如框图2.18。 ② INT1:来自P3.3外部中断请求,中断优先级第三。我们在设计ISD4004语音芯片时,当在进行录音或放音时遇到VOF或EOM,芯片将给单片机一个脉冲信号,这样由单片机外部中断1接收,中断处理使语音芯片停止工作,工作框图如图2.19。 图 ③T0:片内定时/计数器0,由标志位TF0溢处中断请求。我们在MT8880芯片处理中对返回信号的采集过程中利用T0计时5秒钟,得到信号的脉冲个数为后续的程序处理做准备,相应的工作框图如图2.20。 ④T2:片内定时/计数器2,由标志位TF2溢处中断请求。在检测部分18B20要在一定时间内采集信号数据,程序利用T2定时器定时16.5秒采集一次周围温度信号的变化,为系统工作提供工作源工作的主要框图如图2.21。 (2)计数部分 在系统设计时我们还用到了单片机中T1的计书数功能,当T1做为计数器时输入脉冲是由外部引P3.5(T1)输入的。在每个机器周期的S5P2期间采样T1引脚电平。当 某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加“1”。由于检测一个从“1”到“0”的下降沿需要2个机器周期,因 此要求被采样的电平至少要维持一个机器周期,否则会出现漏计数现象,所以最高计数频率为晶振频率的1/24。晶振频率为12MHz时,最高计数频率不超500kHz,即计数脉冲的周期要大于2。[1] 本次设计中有上面提到的T0定时器定时5秒在由计数器T1记录MT8880返回信号的变化,最终确定电话是否有人接听,是否要发送语音信息。 2.2.5扩展(单片机C语言编程) (1)单片机汇编语言与C语言 在单片机的开发应用中,引入了高级语言,C语言就是其中的一种。用多了汇编语言,或多或少会感到高级语言可控性不好,不如汇编语言那样能够随心所欲。但是使用汇编语言会遇到很多麻烦,首先它的可读性和可维护性不强,特别是当程序在忘了很好标注的时候,其次就是代码的可重用性也比较低。使用C语言可以很好的解决这些问题。C语言具有良好的模块化,容易阅读和维持等优点,由于模块化用C语言编写的程序有很好的可移植性,功能化的代码能够很方便的从一个工程移植到另一个工程,从而减少了开发时间[16]。用C语言编程比用汇编语言更符合人们的思考习惯,我们可以更专心的考虑算法而不是考虑一些细节问题,这样减少了开发和调试的时间。使用像C语言这样的高级语言我们不必在十分熟悉处理器的运算过程,也不必知道处理器的具体内部结构,所以C语言编程序比汇编语言优越性更大。 但是不是汇编语言就没有立足之地,很多系统特别是实时时钟系统都是用C语言和汇编语言联合编写的。对时钟要求严格时,汇编语言是唯一的方法。除此之外,包括硬件的接口的操作都应用C语言来编写。C的特点就是可以使我们尽量少地对硬件进行操作,它是一种功能性和结构性很强的语言。通过本次毕业课题软件的研究我们发现对单片机的C语言编程与汇编语言相比较具有下列优点: ? 不需要了解处理器的指令集,也不必知道存储器结构。 ? 编程时不需要考虑存储器的寻址和数据类型等细节问题。 ? 指定操作的变量选择组合,贴近人们思维的关键字及函数提高了可读                  性。 ? 程序开发和调试时间大大缩短,而且C语言中的库文件很大程度上解  决了格式化输出、浮点型运算、数据转化、双字节乘除法等等。 C语言可移植性非常普及[17],C语言的编译器几乎适用于所有的目标系统,以完成的软件项目可以很容易地转换到其他处理器或环境中比如uVision3与星研Star51PH仿真器。 (2)编程中的对比 void timerr0(void) interrupt 1 //T0中断        T0_INT: {                                                          PUSH ACC PUSH PS ui i=0,                                  CLR TR0 TR0=0;                                                MOV TH0,#3CH TR1=0;                                                MOV TL0,#0B0H TH0=0X3C;        //重新装数                            SETB TR0 TL0=0XB0;                                INC CLOCK if(i<100)        //软时钟比较自加                        MOV A,CLOCK {                                                        CJNE A,#64H,TMP i++;                                      TMP:  JC RETU TR0=1;                                          MOV CLOCK,#0H }                                                        SETB F0 else                                                  RETU: flg_0=1;        //时间到标志位置位                    POP PSW }                                                            POP ACC RETI 通过观察本程序段都实现了T0的中断处理程序,我们可以很容易发现用C语言编程的软时钟处理部分比较简洁、易懂。一个if---else语句完全达到了目的,而汇编语言做这个工作就较为吃力,如果有在复杂的算法汇编语言根本无法适应。在单片机C语言中我们发现了很多类似于汇编语言中的符号,这是由于为了使C语言更好的与单片机基础硬件结合,C语言的编译器开发了自己的头文件包,这样我们使用单片机C语言编程没有后顾之忧,用之得心应手。 第3章 系统调试 3.1仿真环境介绍 3.1.1星研Star51PH仿真器介绍 星研Star51PH仿真器是上海星研电子科技有限公司的产品,它STAR、SUPER系列仿真器由仿真器硬件和星研集成环境,优点是配置完善、性能稳定、功能强大、性价比高。 (1)其特点是: ◆ 双CPU结构,可开发8位、16位数据总线的CPU ◆ 仿真CPU外置 ◆ 采用多种专用仿真芯片、HOOKS技术或特殊的仿真技术,100%不占用户资源,出借仿真RAM ◆ 独特的连接线设计,保护电路使用更可靠。仿真器可以完整自检,支持外部复位信号,并在运行您程序的过程中有效(可选择关闭)。 ◆ MCS51类CPU的P0、P2口既可作I/O口线,也可作地址、数据总线,并且可以同时使用。P2口允许一部分作I/O口线,其它作总线,仿真器能正确刷新数据,而绝不影响您的系统。对大于256字节的内部RAM、E2PROM访问时不会影响到P0、P2、P3.6、P3.7。并且仿真器提供一个附加的P4口,可以仿真PLCC封装的MCS51类CPU的P4口。 ◆ 强大的逻辑分析功能拥有:逻辑分析仪、实时跟踪仪、波形发生器、动态断点、事件控制器、采样控制器、程序时效分析、数据时效分析、代码覆盖、数据覆盖、频率计、逻辑笔、硬件测试。 (2)仿真器与仿真头实物图 图3.1 仿真器实物图 图3.2 仿真头实物图 (3)编译环境 星研集成环境软件支持的编译器 MCS51 MCS96、MCS196 Keil A51、C51 Franklin A51、C51 Intel ASM51、PL/M51 Archimedes A8051、C-51 Intel ASM96、PLM96、C96 Tasking ASM196、C196     图3.3 编译器我选择了比较常用的Keil A51、C51,它的版本是uVision3在下面我将详细的介绍。注意在安装好Keil后,我们要安装目录下的TOOLS.INI,选择[C51],添加一行:TDRV0=C:\XingYan\STAR.DLL (“STAR Emulator Driver”)  注: 如果TDRV0已被使用,请使用下一个数字,例如:TDRV1 (4)星研集成环境软件简介 图3.4               船坞化的窗口比通常的窗口显示的内容更多,移动非常方便。用鼠标左键点住窗口左边或上方的标题条,移动鼠标,将窗口移到您认为合适的位置;将鼠标移到窗口的边上,鼠标的图标变成可变化窗口时的形状,用鼠标左键点住,移动鼠标,变化一个或一组窗口的大小;用鼠标左键点击窗口标题条上“扩大船坞化窗口”按钮,窗口自动最大化,用鼠标左键点击窗口标题条上“恢复船坞化窗口大小”按钮,窗口自动恢复原来大小。 1.)建立项目文件 执行 [主菜单 ? 文件 ? 新建],(或者点击图标 )打开窗口如下: 图3.5 建立项目文件图(1) 由于星研集成软件是以项目为单位来管理程序的。所以我们在建立文件之前先要建立项目文件。点击“创建项目文件”分页项,如图示: 图3.6 建立项目文件图(2) 这时用户可以根据自己的需要和实际情况来选择仿真头、公司、CPU、晶振。本实例选择仿真头为POD958,公司为INTEL,CPU为80(C)31,晶振12MHz。再点击进入下一步:“选择语言” 图3.7 建立项目文件图(3) 2.)建立源文件 执行 [主菜单 ? 文件 ? 新建] 3.)编译、连接文件 在建立好项目文件、源文件后,就可以编译、连接文件了。对工作区窗项目视的“源文件”中所有模块文件编译,如果没有错误,再与“库文件”中所有库文件连接,生成代码文件(DOB、HEX文件)。编译、连接文件的方法有如下三种:(1)在工作区窗的项目视中按鼠标右键,系统弹出快捷菜单,选择“编译、连接”或“重新编译连接”。(2)使用[ 主菜单 ? 项目 ? 编译、连接 ]或[主菜单 ? 项目 ? 重新编译、连接 ]”。(3)点击图标 或 来“编译、连接”或“重新编译连接”。有错误、警告信息,用鼠标左键双击错误、警告信息或将光标移到错误、警告信息上,回车,系统自 动打开对应的出错文件,并定位于出错行上如下图 图3.8 编译、连接文件图 4.)调试项目文件 a) 执行[ 主菜单 ? 运行 ? 进入调试状态] b) 点击工具条的 c) 执行[ 主菜单 ? 运行 ? 装载DOB、HEX、BIN文件] 如下图 图3.9 调试项目文件图 (4)注意事项 1) 请勿带电插拔仿真头。 2) 请勿带电插拔通讯电缆和仿真电缆。 3) 请将仿真头在不用的时候盖上保护罩。 4) 请勿自行改动或维修电路。 在插入仿真头时,应首先仔细检查仿真头和CPU插座的金属接插件是否完好,确认接插件全部完好后,再仔细对准位置,然后轻轻地逐渐加力,将仿真头插到底。插好仿真头后,还应再次仔细检查接插件的情况,确认无误后方可使用。在拔出仿真头时,一定要用小螺丝刀依次轻轻撬动仿真头两端,小心地将仿真头拔出,然后立即盖上仿真头保护罩。 (5)仿真器与微机不能联机的几种可能: 对于SUPER ICE16、SUPER ICE51仿真器,仿真头必须通过扁平电缆与相应的仿真头相连,检查通信电缆是否正确连接,选择的串口、并口号是否正确,仿真器电源是否打开,检查选择的仿真头、CPU是否正确。用户系统有问题,您可以将仿真头从用户系统上取下,将晶振跳接至仿真头上,测试不连用户系统时通信是否正常。 3.1.2编译环境Keil uVision3 (1)Keil的概述 单片机开发中除必要的硬件外,同样离不开软件,汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。 (2)Keil uVision3的组成 C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 做设计必须有好的辅助工具,在本次设计中我们选择了星研仿真器和Keil软件调试工具,使我们在软件设计中很容易发现我们的不足,及时的提出新的设计方案,并加以验证,解决了我们总是烧片了的问题,加速了我们设计完成的进度。可谓“磨刀不误砍柴工”。 3.2系统设计中问题处理 3.2.1硬件设计问题与软件误区 一个设计中不可能没有问题,只有在一次次实验论证后,我们才真正的将理论与实际相结合,得到属于我们自己的东西。 1.设计中的硬件选择是一个很头痛的事,由于现在的源器件的丰富多样,这使我们对在设计中出现的每个器件有了更多的选择,但是这也加大了我们的工作量,同一个元件既要比较它的功能性,又要考虑它的现价比和可行性,比如ISD系列芯片的选择。ISD1420与ISD4004一个并行一个串行,功能上基本一样而现价比后一个高,这是同种产品,其他同类可想而之。上面的芯片我们选择了后者,主要看重它的串行方式,与单片机的接线少,编程复杂化还能够接受。 2.设计中要注意细节,同样的器件不同的接法有不同的作用,不同的器件不同的接法有相同的作用。比如接口电路设计中对三极管的应用,在最初的电路设计中我们没有注意9014与9012(NPN型与PNP型),犯了个不可饶恕的错误,焊完了电路,通电调试一个三极管暴了。实际上这是很不应该的低级错误(我们设计接口电路中一共有五个三极管,其中一个放大作用,两个保护作用,两个开关作用详见硬件部分)。 3.设计中理论上成立的,应用于实际不一定能行。同一种电路设计在一个设计中成功应用,不一定在其他电路中也能用,比如ISD4004中3V电源的提供我们先用的是LM317,这个芯片我在做智能车时就用过所以我就把当时的电路拿来用了。但是问题出来了,一上电时ISD4004的供电是正确的3V,等程序一运行供电电源一下跳到1.5V了,问题出来了后来我经过对实际电路的分析和ISD4004工作状态的要求,发现我原来的电路设计电流太小无法供应ISD4004正常工作的要求。最后我们选择了LM117,芯片正常工作。 4.软件设计中,同样的功能单片机运行的速率是不同的甚至有时就会达不到目的使程序跑飞。中断服务是单片机很好的功能,我初次设计时没有想太多,中断中处理了大量的过程算法,比如定时器T0我把最终信号处理过程也加了进去,在我调试过程中发现程序进中断后就在也没有回来不知哪去了。弄的我一头雾水,后来经过对中断的研究发现,中断处理过程占用的时间越少越好,这样程序的生存性就越强,程序的执行速率也越高。为了达到这个目的我在中断中用了标号方式比如FLAG2=1,这样大大减轻了中断的处理时间,程序能正常运行。 5.软件设计中,如果你用的是汇编语言,那在选择条件方面的编程很费心思,比如在ISD4004录音方面的开启方式中,由于单片机的程序是一条一条向下执行的,而且录音只是在第一次启动录好就行了不是每次都录。在设计过程中你不能着样做JB P2.0 $,这样后续程序就没法运行了,为了达到目的我利用了循环跳跃式方法如CHULI:JB P2.0 REDORD  JNB F0 CHULI ,这里的F0=1时5秒到接着去执行信号处理程序。这样的设计即达到了功能目的又解决了运行问题。如果用C语言编程就不会出现这样的问题了,C语言本身就有条件选择语句。这方面C语言优越性是很大的。 6.软件设计中,对串行通信SPI也要注意,如果你用的汇编语言那么SPI时序控制必须很明确,这样才能够达到控制芯片并于芯片通讯的目的。C语言这部分也要注意数据是一位一位传的,不能一下都发到单片机I/O口上。可以用一个循环发一个字节(8位),这样就事半功倍。 3.2.2未知问题假设论证 1.单个电路调试中都能成功实现功能,但是当我们把整体电路连接上时没一个正常工作的,特别是MT8880电路与ISD4004电路,MT8880与接口电路。我的看法是电话线与开发器的共地,特别是与单片机共地产生不小的噪声,可能会影响解码, MT8880接收与发送相互干扰,在调好接收后,发现在发送端无端产生的直流电位变化与微小的单音频干扰,这样调发送部分很困难。MT8880利用的一定范围的音频信号,而ISD4004也是音频信号,可能两者有音频相同部分,出现相互干扰。 2.经过我们反复实验,终于解决了MT8880与ISD4004之间的问题,我们把两芯片的供电和地线做了两部分电路分别供电,这样一定程度上减少了相互干扰,另外在信号传输过程中又加了多重滤波电路,这样终于解决了两者的问题。但是在接口电路方面是了很多方面还是发现对DTMF信号干扰很大,使信号无法正常发送,MT8880无法正常工作,我们会继续研究直到解决问题。 3.2.3调试结果 1.MT8880发出信号图 第4章 总结 半学期的毕业设计已经结束了,由刚接触课题时的惘然到现在对它的痴迷,这中间经历了太多太多的坎坷,但是做到现在心中不绝有了很多喜悦。我的大学要结束了,我就要离开我挥洒汗水拼搏奋斗的地方了,我自信的对自己说这个句号是完美的。 四年的理论学习,使我们成了满腹经纶的才子,我们有了对专业知识的深刻理解,但是我们缺少的是实际的工作经验,我们缺少的是真正的面对一个项目开发的细节。毕业设计给了我们大好机会,什么都有你自己来安排什么都有你自己来掌握,每走一步都是你自己决定的,在这过程中犯了错误这算是幸运的,因为你得到的是经验。如果你比别人走的慢说明你还有很多不足,有些时候停下脚步看看你身边的人,你会有不同的收获。总的来说学习知识只是我们的一方面,更重要的是我们学会如何去学习,如何去一步一步的完成它。 看着熟悉的电脑,静卧的示波器,平整的实验台,有太多不舍,在设计课题的过程中知识方面我将本专业的看家本领单片机从理论层面加深到实践上,并且认识了高级语言对它的开发潜力,为以后打下了夯实的基础。可以说毕业设计是你学习各门知识的综合,它是一个大熔炉,模电技术、数电技术、电路知识等等,这里都有他们的用武之地。只要你敢想,只要你敢做,没有什么能阻止你,因为这是你的地盘,你的天空,我的希望在这里放飞,翱翔展翅。 参考文献 [1] 汪思敏,胡湘江. 电话远程控制系统的设计与实现[J]. 计算机与数字工程,2007 年04 期:143-146 [2] 许元兴、邱明树、薛鸿贵. 电话机原理、使用及故障检修大全[M]. 北京:人民邮电出版社,1993.3 [3] 魏立峰、王宝兴. 单片机原理与应用技术[M]. 北京:北京大学出版社,2006.8 [4] 王为青、程国钢. 单片机Keil Cx51 应用开发技术[M]. 北京:人们邮电出版社,2007.2 [5] 吕仁礼,周金和,李茂详 电话DTMF数据收发模块的设计[J] 电子技术应用 1998,(4):46-48 [6] 马家辰单片机原理及接口技术[M].北京:北京航空航天大学出版社,1990. [7] 王振红 李洋 郝承祥 《ISD4004语音芯片的工作原理及其在智能控制系统中的应用》 电子器件 2002年3月第25卷第1期51单片机6M$b_c_z!c!U*G_H$W'k [8] 周华茂,程晓辉,刘木华.嵌入式智能家电远程控制系统设计[J]. 单片机与嵌入式系统应用,2006 年09 期:65-67 [9] 李建国. 基于单片机的智能家电控制系统的设计[J]. 微计算机信息,2008 年5-2 期:97-101 [10] 王晓玲. 远程智能家电控制系统的研究[D]. 天津:河北工业大学,2007 年 [11] 李传南,王剑刚,李宝华.单片机与DTMF信号收发芯片MT8880的直接接口设计[J].电子与自动化,1999,28(2):23.24. [12] 龚冬梅.基于DTMF信号方式的数据传输接口软件设计[J].电脑开发与应用,2003,16(6):17. [13] 方建淳.语音合成技术单片微机综合系统[M].北京:北京航空航天大学出版 社, 1 994 ,13-165 [14] 陈远鹏,金奕丹.语音识别技术在楼宇控制系统中的应用[J].电声技术, 2003, 00 0(003):39-41 [15] 张常年.ISD4004语音芯片的工作原理及智能控制系统中的应用[J],电子元件 与材料 , 2001,6: 22-23 [16] NOLL P,MPEG Diginal Audio Coding[J]. IEEE Signal Processing Magzine, 1997, 14( 5):59-81 [17] 谭浩强.C语言程序设计[M].北京:清华大学出版社,2005.7 附录一:硬件原理图 附录二:程序设计
本文档为【手机拨号报警装置的软硬件设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_842972
暂无简介~
格式:doc
大小:145KB
软件:Word
页数:0
分类:工学
上传时间:2020-03-06
浏览量:4