




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
淮阴工学院毕业设计说明书(论文) 第 49 页 共 49 页1 引言随着科技的发展和社会的进步,社会的信息化为人们家具生活的舒适性、便利性、安全性和高效性带来了更高的自动化水平。对于爱好旅游的人而言,有一款高效的电子导游系统,可以增加旅游的舒适性、便利性、安全性和高效性。电子导游系统是利用单片机的优越性能与其广阔的应用空间为核心。特别是随着集成电路技术的发展,单片微型计算机的功能也不断增强,许多高性能的新型机种不断涌现出来。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点成为自动化和各个测控领域中广泛应用的器件,尤其是在日常生活中发挥的作用也越来越大。单片机技术的迅猛发展和人们保安意识的日渐提高,利用单片机及其他外围芯片实现自己控制已成为可能,且是一种发展趋势,特别是在电子导游系统中,单片机更是起到了不可替代的核心作用3,4。针对当前人民的旅游热潮以及导游人员缺乏或素质较低,故为了提高人们旅游的质量,旨在开发出一种全自动的电子导游系统,系统由导游机和控制中心组成,游客通过手上的导游机可以很方便的获得该景点的信息及相关资料。整个系统分为硬件设计和软件编程两部分,本部分属于软件编程,目的在于通过该课题的设计有力的提高学生的软件编程能力。2 单片机语言的简介2.1 汇编语言51单片机的汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序3。 2.2 单片机C语言的发展C语言是一种源于编写UNIX操作系统的语言,它是一种结构化语言,可产生压缩代码。C语言可以进行许多机器级函数控制而不用汇编语言。与汇编语言相比,有如下优点:对单片机的指令系统不要求了解,仅要求对51的存储器结构有初步了解,寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理。程序有规范的结构,它可分为不同的函数。这种方式可使程序结构化,将可变的选择与特殊操作组合在一起的能力,改善了程序的可读性、编程及程序调试时间显著缩短,从而提高效率12。C语言提供的库包含许多标准子程序,其具有较强的数据处理,能将已编好的程序可容易地植入新程序,因为它具有方便的模块化编程技术。C语言作为一种非常方便的语言而得到广泛的支持。C语言程序本身并不依赖于机器硬件系统,基本上不做修改就可根据单片机的不同而较快地移植过来4。语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的物理地址,进行位(bit)一级的操作。由于语言实现了对硬件的编程操作,因此语言集高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。此外,语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上,从而形成了多种版本的语言1。对于大多数51系列单片机,使用C语言这样的高级语言与使用汇编语言相比具有如下优点1,7:(1) 不需要了解处理器的指令集,也不必了解存储器结构。(2) 寄存器分配和寻址方式由编译器 进行管理,编程时不需要考虑存储器的寻址和数据类型等细节。(3) 指定操作的变量选择组合提高了程序的可读性。(4) 可使用与人的思维更相近的关键字和操作函数。(5) 与使用汇编语言编程相比,程序的开发和调试时间大大缩短。(6) C语言中的库文件提供许多标准的例程,例如格式化输出、数据转化和浮点运算等。(7) 通过C语言可实现模块化编程技术,从而可将已编制好的程序加入到新程序中。(8) C语言可移植性好且非常普及,C语言编译器几乎适用于所有的目标系统,已完成的软件项可以很容易地转化到其他的处理器或环境中。所有这些并不说明汇编语言就没有立足之地,很多系统特别是实时时钟系统都是用C语言和汇编语言联合编写的。对时钟要求严格时使用汇编语言是唯一的方法。除此之外,包括硬件接口的操作都应该用C语言来编写。C语言的特点就是可以使程序员尽量少的对硬件进行操作,它是一种功能性和结构性很强的语言1。3 主要元器件介绍3.1 AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案2。3.1.1 主要特性与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路2,163.1.2 管脚说明管脚说明如下2,7,13:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止10。3.2 ISD4004语音芯片ISD系列语音芯片是美国ISD公司推出的产品。该系列语音芯片采用多电平直接模拟存储(DAST)专利技术,声音不需要A/D转换和压缩,每个采样值直接存储在片内的闪烁存储器中,没有A/D转换误差,因此能够真实、自然地再现语音、音乐及效果声。避免了一般固体录音电路量化和压缩造成的量化噪声和金属声。由于4004内含大容量的闪速存储器(2840KB),单片电路就能实现长达16min的录音或放音16,17。ISD4004语音芯片采用CMOS技术,内含晶体振荡器、防混叠滤波器、平滑滤波器、自动静噪、音频功率放大器及高密度多电平闪烁存储阵列等,因此只需很少的外围器件就可构成一个完整的声音录放系统。芯片设计是基于所有操作由微控制器控制,操作命令通过串行通信接口(SPI或Micro wire)送入。采样频率可为4.0KHz、5.3KHz、6.4KHz、8.0kHz,频率越低,录放时间越长,而音质则有所下降。片内信息存于内存存储器中,可在断电情况下保存100年(典型值)反复录音10万次。器件工作电压3V,工作电流2530mA,维持电流1A。单片录放语音时间816min,音质好,适用于移动电话机及其它便携式电子产品中10,16。图1 ISD4004语音芯片引脚图引脚描述17同相模拟输入(ANA IN+) 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3K电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000系列相同。反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV。音频输出(AUD OUT) 提供音频输出,可驱动5K的负载。片选(SS) 此端为低,即向该ISD4004芯片发送指令,两条指令之间为高电平。串行输入(MOSI) 此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。串行输出(MISO) ISD的串行输出端。ISD未选中时,本端呈高阻态。串行时钟(SCLK) ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。中断(/INT) 本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。OVF标志-指示ISD的录、放操作已到达存储器的末尾。EOM标志-只在放音中检测到内部的EOM标志时,此状态位才置1。行地址时钟(RAC) 漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行(ISD4004系列中的存贮器共2400行)。该信号175ms保持高电平,低电平为25ms。快进模式下,RAC的218.75s是高电平,31.25s为低电平。该端可用于存储管理技术。4 硬件方案概述基于单片机的电子导游系统其主要功能是:在景点先安放无线发射模块,这些发射模块可以控制工作范围,这样在各个景点就有不同的编码信号。游客到达景点后,游客手上的导游机会自动接收编码信号,经过解码后,由控制中心控制语音播放即可。该系统的硬件部分包括,录音,放音驱动模块;编码,解码模块,无线发射模块;无线接收模块;单片机控制模块以及键盘模块。具体工作过程是:发射部分不断的发送信号,接收部分由单片机向解码芯片循环发送地址信号,由接收头将接收到的信号送至解码芯片解码,将解码信号送至单片机,如果解码的信号和单片机的预设信号一致,再由单片机控制语音芯片发出报警语音,该语音是由录音电路事先录制入ISD4004的语音段。系统框图如图3.1所示。复位电路键盘电路 单片机 单片机 解码模块语音电路接收芯片发射芯片编码模块 信道图2 硬件图5 系统的软件部分5.1 软件部分的总体设计开 始待机状态功能判断接收信号2722解码单片机2对地址进行判断语音播放及录入结束Y单片机1向2622输入地址发送信号图3 软件总流程图本系统由单片机C语言编写而成,采用模块化结构设计。基于单片机的电子导游系统要实现的主要功能是:。本系统模块包含:键盘模块、信号发送模块、语音录入模块、信号接收模块。其中语音的录入模块是录入确定存储与ISD4004语音芯片中的语音,其功能的实现可通过键盘来响应何时开始录音。主程序流程图如下:流程图说明:当单片机上电复位后,首先对其电路中所需要的资源进行初始化。判断此时检测电路中有没有键按下,若有键按下,则判断是何键按下。若开始按下的键是录音键时,则程序转到对ISD4004录音处执行录音程序,录完音按下单片机复位键,程序从新开始执行;若功能键按下,判断是不是放音,是就放音,不是就待机;另外系统还预留了一部分按键为以后的功能扩展所使用。5.2方案各模块的软件设计5.2.1 键盘模块键盘电路是通过中断的方式实现各按键的功能15,16。通过单片机读取P1.4-P1.7口的电平识别出是何键按下。本系统设定按键的功能如下:一号键:导航键。系统在待机状态下按此键后有个延时,在放音状态下按此键。二号键:录音键。按住此键开始录音,松开停止录音。占用系统资源:P1.4-P1.5口,P3.3口。键盘程序流程图如下:开始初始化功能键录音键相应程序相应程序结束何键按下?中断响应键1键2图4 键盘程序流程图If (P14=0)switch(set) /根据SET标志散转case 0:stop();break; /关机case 1:fy();break; /放音default: break;else if(P15=0)lfy() /录音工作程序说明:当中断响应时通过判断P1.4-P1.7口的值判断是何键按下。当P1.4=0时,设定此按键为功能键,利用switch指令定义SET的值跳入相应子程序,系统进行工作。当P1.5口为0时,程序转向录音处执行。P1.6-P1.7为以后扩展用的键盘,在本系统中不定义。5.2.2 信号发送模块PT/SC/BHM2262是一种CMOS工艺制造的低功耗低价位通用编解码电路是目前在无线通讯电路中作地址编码识别最常用的芯片之一。2262将从数据和地址输入管脚并行输入的“地址/数据”转换为串行的、适用于RF或IR调制的波形,由DOUT管脚输出。2262最多可有12位三态地址,提供531441(3的12次方)个地址码,减少了地址码冲突的可能性,提高了抗非法代码扫描的能力。2262最多可有6位(D0-D5)数据端管脚。图5 2262引脚图引脚描述地址输入端(A0A5) 这六个三态输入端的输入状态决定编码波形 的第05位。可被设为“0”、“1”或“f ”(悬空)。地址输入端(A6A11)/数据输入端(D5D0) 这六个三态输入端的输入状态确定编码波形的第611位。当做为地址端使用时,可被设“0”、“1”或“f”(浮空)。做为数据端时,它们只能是“0”或“1”。输出使能端(TE_) “0”有效。为“0”时2262将编码波形由DOUT输出。振荡器端/振荡器端(OSC1/OSC2) 在这两脚之间连接一个电阻,此电阻决定2262的主频。数据输出(DOUT) 编码后的波形从此管脚串行输出。TE_为高电平时,DOUT输出低电平。电源 VCC地 GND当TE置“0”时,2262将从A0A5和A6/D5A11/D0管脚输入的“地址/数据”转换为专用的波形由DOUT输出。DOUT输出提供给RF调制器或IR转换器,然后用无线电波或红外线将“地址/数据”信息发射出去。发射的无线电波或红外线被RF解调器或IR接收器接收并恢复为原波形。然后,2272对波形译码。如果地址正确,就将其中的数据由相应管脚输出。至此,完成了一次编解码。本系统由单片机1给2622的地址输入端写入相应的地址,TE为0的时候通过J04循环发出信号。所需单片机1资源:P3.3口,P1.0-P1.7口流程图如下:程序:void main (void)P3 =0xff; /上电初始化 while(!TE) /为0的时候有效for(addr_user_a1=100;addr_user_a1;addr_user_a1-) d50us(); /50uS延时addr_user_a0 =0xff;addr_user_a1 =0x00; /编码设定为:A0A7地址编码为:悬空单片机向2622输入数据开 始信号处理送入P3.3判断P3.3口信号是否为“0”?后续处理YN结 束图6 信号发送软件流程图PT2262编码格式(Code Bit)1 HHHHHHHHHHHHLLLL HHHHHHHHHHHHLLLL0 HHHHLLLLLLLLLLLL HHHHLLLLLLLLLLLLF HHHHLLLLLLLLLLLL HHHHHHHHHHHHLLLLSync HHHHL.124.LPT2262代码字(Code Word)A0 A1 A2 A3 A4 A5 A6/D5 A7/D4 A8/D3 A9/D2 A10/D1 A11/D0 SYNCA0:First transmitted SYNC:Last transmittedPT2262输出数据帧(Code Frame)每一帧包含4个连续的代码字,帧与帧间连续无间隔图7 2262AD位波形图5.2.3 信号接收模块PT/SC/BHM2272是CMOS解码器,与2262编码器构成一对编解码电路。2272最多可有12位三态地址,提供531441(3的12次方)个地址,减少了代码冲突的可能性,提高了抗非法代码扫描的能力。2272有多种可选型号:数据输出端从06个可选,数据输出方式有锁存/不锁存两种。2272最多可有12个地址位,包括6个地址/数据位。图8 2272引脚图引脚描述地址输入端(A0A5) 这六个三态输入端的输入状态决定编码波形 的第05位。可被设为“0”、“1”或“f ”(悬空)。地址输入端(A6A11)/数据输入端(D5D0) 当作为地址管脚使用时(与型号有关),这些三态输入端的输入状态决定接收到的波形第611位应该有的状态。可被设为“0”,“1”或“f”(悬空)。当做为数据输出端时,(1)如果接收到的波形的地址部分与地址管脚设置的一致,则波形的数据部分从相应管脚输出。(2)其它情况数据管脚总是输出低电平数据输入脚(Din) 编码波形从该端串行输入。振荡器端/振荡器端(OSC1/OSC2) 在这两脚之间连接一个电阻,此电阻决定2272的主频。数据输出(DOUT) 编码后的波形从此管脚串行输出。TE_为高电平时,DOUT输出低电平。电源 VCC地 GND2272 将从Din 管脚输入的波形解码,波形被解码成包含地址、数据和同步位的代码字。解码后的地址部分与地址输入管脚设定的地址进行比较,如果连续三次地址比较结果符合,2272 将:(1)数据部分从数据管脚输出,(2)VT 管脚输出高电平,表示2262进行了一次有效接收。接收到的信号为发送信号的反码因为每检测到按键有效一次PT2262都发送四次编码。我们可以利用这一特点来解码先检测有没有接收到信息当有的时候,我们就去掉第一次编码的信号,检测5ms 的高电平来检测编码的开始信号,接收到5ms 的高电平后才开始解码。我们可以发现每个码的长度都是1.2ms左右,每一个编码都是由低电平开始然后到高电平又到低电平又回到高电平,我们从第一个高电平的宽度可以把1 码区分出来,剩下的悬空码和0 码可以从第二个高电平的宽度区分出来。具体的单片机译码方法如下:由高电平开始检测到下降沿时就延时300us,读取接收的状态记为A0,然后再检测下一个下降沿,降沿后又延时300us 读取接收的状态记为A1 这样就把一个编码给译出来了。A0 A1 和悬空1 码0 码的关系如下:A0 A1 代码0 0 1 码0 1 错误1 0 悬空1 1 0 码所需单片机1资源:P3.3口,P1.0-P1.7口流程图如下:程序:PT2272_deco() /解码uchar i,cnt;if(recv_flg) ;else /清除上次解码内容cnt =12; /接收12位编码 /解码 /先找出接收码的开头即5ms左右的高电平 /设置高电平时间为46ms /检测和等待4ms的高电平for(i=80;i;i-) /延时4mSif(!W_REM) i=80;else d50us(1); /等待在2ms内接收到的低电平 for(i=40;i;i-) /延时2mSif(!W_REM) break;else d50us(1); /4ms到6ms内接收到下降沿则跳去解码否则返回 /超出6ms接收错误返回if(i) recv_flg =0; /清按键没有放开过标志goto PT2272_deco_exit; /返回 /等待第一个下降沿while(!W_REM) ;while(W_REM) ;d50us(6); /等待300us后采集接收信号a_0.word=a_1.word=0;for(i=0;i6;i+) if(W_REM) a_0.word |=0x01; /采集接收信号并记录a_0.word =1;while(!W_REM) ; /等待第二个下降沿while(W_REM) ;d50us(6); /等待300us后采集接收信号if(W_REM) a_1.word |=0x01;a_1.word =1;a_0.word =4; /把接收的编码左移4位将8位密码放在同一字节上a_1.word =4;/比较密码 if(a_0.bytes.byte_addr=addr_user_a0)&(a_1.bytes.byte_addr=addr_user_a1) recv_flg =1;lianji_flg =1; else recv_flg =0;lianji_flg =0;PT2272_deco_exit:return;信号接收开 始信号处理送入P3.2判断信号是否与密码一致后续处理YN结 束 图9信号接收软件流程图5.2.4 语音录入及放音模块在本系统中我们采用ISD4004芯片。ISD4004工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作,因此对ISD4004而言,在时钟上升沿锁存MOSI引脚的数据,在下降沿将数据送至MISO引脚。协议的具体内容为10,16:1.所有串行数据传输开始于SS下降沿。2.SS在传输期间必须保持为低电平,在两条指令之间则保持为高电平。3.数据在时钟上升沿移入,在下降沿移出。4.SS变低,输入指令和地址后,ISD才能开始录放操作。 5.指令格式是(8位控制码)加(16位地址码)。6.ISD的任何操作(含快进)如果遇到EOM或OVF,则产生一个中断,该中断状态在下一个SPI周期开始时被清除。7.使用读指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。8.所有操作在运行位(RUN)置1时开始,置0时结束。9.所有指令都在SS端上升沿开始执行。(一)信息快进用户不必知道信息的确切地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正常的1600倍,遇到EOM后停止,然后内部地址计数器加1,指向下条信息的开始处。(二)上电顺序器件延时TPUD(8kHz采样时,约为25毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出一条操作指令。例如,从00从处发音,应遵循如下时序:发POWERUP命令;等待TPUD(上电延时);发地址值为00的SETPLAY命令;发PLAY命令。器件会从此00地址开始放音,当出现EOM时,立即中断,停止放音。如果从00处录音,则按以下时序:发POWER UP命令;等待TPUD(上电延时);发POWER UP命令;等待2倍TPUD;发地址值为00的SETREC命令;发REC命令。器件便从00地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。表1 指令表指令 8位控制码 操作摘要POWERUP 00100XXX 上电:等待TPUD后器件可以工作SET PLAY 11100XXX 从指定地址开始放音。后跟PLAY指令可使放音继续进行下去PLAY 11110XXX XXXXXXXXXXXXXXXX 从当前地址开始放音(直至EOM或OVF)SET REC 10100XXX 从指定地址开始录音。后跟REC指令可使录音继续进行下去REC 10110XXX 从当前地址开始录音(直至OVF或停止)SET MC 11101XXX 从指定地址开始快进。后跟MC指令可使快进继续进行下去MC 11111XXX 执行快进,直到EOM.若再无信息,则进入OVF状态STOP 0X110XXX停止当前操作STOP WRDN 0X01XXXX 停止当前操作并掉电RINT 0X110XXX 读状态:OVF和EOM注:快进只能在放音操作开始时选择。(三)SPI端口的控制位图10 控制位(四)SPI 控制寄存器SPI控制寄存器控制器件的每个功能,如录放、录音、信息检索(快进)、上电/掉电、开始和停止操作、忽略地址指针等。详见下表:表2 控制寄存器位值功 能位值功 能RUN=10允许/禁止操作开始停止PU=10电源控制上电掉电P/-R =10录/放模式放音录音IAB=10操作是否使用指令地址忽略输入地址寄存的内容使用输入地址寄存的内容MC= 10快进模式允许快进禁止P15-P0A15-A0行指针寄存器输出输入地址寄存器AT89C51接收按键工作,并将相应指令传给ISD4004,同时监控ISD4004的中断输出。当开关接高电平时,指示灯亮,是录音状态,即可对着话筒讲话录音。按下“STOP”键为复位,再录音时又从第一段开始。当开关接地时,是放音状态,按下“STOP”键为复位,再放音时又从第一段开始。其模块流程图如下:开始初始化关指示灯ISD掉电按键按下?延时ISD上电并初始化按键1是否为1?录音放音返 回YNNY图11 录/放总流程图 SP=0x10; P0=0xFF; P1=0xFF; P2=0xFF; P3=0xFF; EA=0; 语音信号的固化:PR=1发POWER UP命令等待TPUD发POWER UP命令等待2倍TPUD将预录数据的地址赋给A15-A0是否出现结束标志OVF发SET REC命令返 回YN语音信号固化时,控制命令要遵循SPI串行数据传输协议,如上电命令(POWER U P ),录音命令(REC)等。将语音信号固化到语音库时,首先根据芯片的时序发送上电命令并相应地进行延时处理,再将地址信息发送给ISD 4004芯片,接着发送录音设置及录音命令,直到出现录音结束标志OVF后结束录音。录音过程程序流程图见下图。图12 录音流程图程序如下: if(PR) /PR=1录音 ISDX(isdl); ISDX(isdl); ISDX(isdh); SS=1; b1: n1=10; while(n1-)YS50();LED=0;ISDX(0XB0);SS=1;if(INT)while(!AN); n1=200;while(n1-);LED=1;STOPP();if(STOP)if(STOP)while(!AN);STOPP();goto b1; 6 仿真与调试软件调试的顺序是子程序、中断程序、算法功能模块和主程序。(1)子程序调试利用仿真器keilc51调试本系统中所涉及的子程序,检查它们是否能按指定的程序正常运行.(2)主程序调试在所有的子程序和中断服务程序都调试完毕后,还需要用主程序将它们连接在一起,进行整体调试,检查各个模块之间、各中断服务程序之间是否存在相互影响,是否会出现程序之间的交叉错误。整体调试采用逐步扩大的方法,每次只增加一个功能模块,在调试正确后再加入下一个模块,直至将所有程序都与主程序连接起来。若整体调试通过,则说明软件系统基本正确:若不能通过,则需要按照连接时的相反的顺序逐次将子程序模块与主程序分离,直到发现出错原因。结 论基于单片机的电子导游系统系统是一种利用无线通信进行远距离信号传输的新型导游系统。本课题主要完成了对本系统各个模块,包括:键盘电路模块、语音录入模块、信号发送模块、信号接收等模块的程序编写。利用C语言对各个模块进行模块化编程。在程序的编写过程中合理分配本系统使用的单片机资源,对单片机的各个口进行有效利用,有效地解决了单片机系统资源的浪费。致 谢本研究及论文是在我的指导老师杨银贤老师的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到项目的最终完成,杨老师都始终给予我细心的指导和不懈的支持。在此谨向杨老师致以诚挚的谢意和崇高的敬意。 在此,我还要感谢在一起愉快的度过毕业设计生活的各位同学,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。在这里请接受我诚挚的谢意!谢谢你们!参 考 文 献1 马忠梅等.单片机的C语言应用程序设计.北京:北京航空航天大学出版社,2003.112 陈龙三等.8051单片机C语言控制与应用.北京:清华大学出版社,1999.83 杨恢先等.单片机原理及应用.北京:国防工业出版社,2003.34 赵亮等.单片机C语言编程与实例.北京:人民邮电出版社,2003.35 李刚等编.51系列单片机系统设计与应用技巧.北京:北京航空航天大学出版社, 2004.16 苏小会,徐淑萍, 谭宝成. 智能住宅报警监控系统的设计与实现. 微计算机信息, 2004(9):23-247 雷旭,何万强. 新型家用防盗报警系统.现代电子技术,2003(4):82-83,868 文川. 基于8751的语音报警服务系统.电子世界,2003(9):55-569 杨汉华,凌福玲. 一种新型的家用防盗报警系统,2002(1):24-2810 王新强,梁明亮. 家庭安全报警及家电智能控制系统的设计. 中原工学院学报, 2006(3):51-5411 陈振源.电话机原理与维修技术.北京:高等教育出版社,2000.12 张莉.C程序设计教程.北京:电子工业出版社,2004.413 /searchpdf/atmel/AT89S51.pdf14 HT9200A、P2288、ISD4004. 15 周兴华.单片机智能化产品C语言设计实例详解.北京:航空航天大学出版社,2006716 余文俊.8051 C语言实习.北京:中国水利水电出版社,2003.3附录:系统程序:#include /器件配置文件#include #include #define unchar unsigned char /变量内容的宏定义#define unit unsigned int unsignde char X3; /存放时间T1数组 unsignde char Y3; /存放时间T2数组 unsignde char cnt_1=0; /时间T1单元数学运算后暂存单元 unsignde char cnt_2=0; /时间T2单元数学运算后暂存单元 unsigned char flag; /RAM区防干扰标志 unsigned char set=0; /功能键值 unsigned char m=0; /全局变量 unsigned char n=0; unsigned int f; unsigned char t1_flag=0; / 定时计数器T1(最长3位) sbit SS=P22; /ISD4004片选 sbit SCLK=P23; /ISD4004时钟 sbit MOSI=P21; /数据输入 sbit MISO=P20; /数据输出 sbit LED=P00; /指示灯 sbit AN=P13; /执行 sbit STOP=P16; /复位 sbit PR=P15; /PR=1录音,PR=0放音 sbit INT=P24; /中断unionuint word;struct /结构bytesuchar byte_addr;uchar byte_data;bytes;a_0,a_1; /定义共用体 sbit W_REM =P32; /遥控接收输入脚 bit bdata recv_flg, /接收正确位标志(1:正确 0:错误)/因为当按住PT2262的按键不放的时候PT2262会把编码不断的送出/设置lianji_flg位用来检测按键有没有放开过如果没有放开则不再响应 lianji_flg; /按键没有放开过标志(1:连接 0:点击) uchar addr_a0, /接收的8位地址编码A0 addr_a1, /接收的8位地址编码A1 data_a0, /接收的4位数据编码A0 data_a1, /接收的4位数据编码A1 addr_user_a0, /设定的8位地址密码A0 addr_user_a1; /设定的8位地址密码A1 led_out; /输出控制 /位定义 /*/*计数器T1初始化*/void init_timer()TMOD=0X50 /T1工作于模式1,16位计数TH0=(65536-1000)%256 /计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学校校卫队管理制度
- 学校管道水管理制度
- 学校锅炉房管理制度
- 学生实验室管理制度
- 学院停送电管理制度
- 安全培训室管理制度
- 安利调换货管理制度
- 安装分公司管理制度
- 宗亲会人员管理制度
- 实名制配送管理制度
- 医院围手术期管理制度
- 新能源汽车动力电池管理技术考核试题及答案
- 《全国医药市场》课件
- 天津市西青区杨柳青第二中学2024-2025学年八年级下学期4月期中数学试题(含部分答案)
- 2025春统编版小学道德与法治五年级下册(全册)教案、教学反思、教学计划(附教材目录P141)
- 2024年度江苏省数据集团有限公司社会招聘笔试参考题库附带答案详解
- 2025年中国分布式光伏行业市场动态分析、发展方向及投资前景分析
- 2025年湖南株洲南方中学自主招生英语试卷真题(含答案详解)
- 2025年苏州保安员证试题及答案
- 比亚迪秦EV新能源汽车电机驱动系统
- 美国麻醉医师协会ASA困难气道管理xuli
评论
0/150
提交评论