毕业论文范文——基于两个单片机串行通信的电子密码锁_第1页
毕业论文范文——基于两个单片机串行通信的电子密码锁_第2页
毕业论文范文——基于两个单片机串行通信的电子密码锁_第3页
毕业论文范文——基于两个单片机串行通信的电子密码锁_第4页
毕业论文范文——基于两个单片机串行通信的电子密码锁_第5页
免费预览已结束,剩余58页可下载查看

下载本文档

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

文档简介

目 录1 引 言12 系统概述33 方案选择43.1密码锁功能实现方法选择43.1.1方案1基于一个51单片机的电子密码锁设计43.1.2 方案2基于两个单片机串行通信的电子密码锁43.2语音芯片的选择54系统硬件电路的设计74.1 系统核心部分闪电存储型器件AT89S5274.1.1 AT89S52具有下列主要性能74.1.2 AT89S52的引脚及功能84.1.3 信号引脚的第二功能94.2 串口通信104.2.1 串口通信方式104.2.2 串行通信控制寄存器114.2.3 数据发送与接收114.3语音电路124.3.1语言芯片ISD2540124.3.2 ISD2540典型应用154.3.3工作模式174.3.4分段录放音184.3.5语音控制电路184.4电平转换电路194.4.1电平转换芯片194.4.2 MAX232芯片204.4.3连接电路图204.5键盘电路214.5.1 单片机键盘和键盘接口概述214.5.2 单片机键盘接口和键功能的实现225 系统程序的设计265.1 外部单片机发送密码程序的设计265.2 键处理的流程图275.3 内部单片机程序285.4 语音播放调用程序286 测试结果30结 论31参考文献32附录1:程序33附录2:整体电路图41外文翻译43致 谢59II1 引 言自从20世纪70年代问世以后,单片机作为微型计算机一个很重要的分支,应用广泛,发展迅速,已对很多领域产生了重大影响。尤其是美国Intel公司生产的MCS-51系列单片机,由于其具有集成度高、处理功能强、可靠性好、系统结构简单、价格低廉、易于使用等优点,在我国已经得到广泛使用,并已经在各个技术领域得到了迅猛发展。单片机不仅在控制外围器件中有着重要的用途,其通信功能在现代控制系统中越来越显得重要。在众多的连接方案中,当然包括传统串口设备。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时可避免多条线路特性的不一致,因而被广泛采用。串行通信应用在产业自动化设备已有三十多年历史。在串行通信时,要求通信双方都采用一个标准接口,使不同的设备可以方便地连接起来进行通信。RS-232-C接口(又称EIA RS-232-C)是目前最常用的一种串行通信接口。它是在1970年由美国电子工业协会(EIA)联合贝尔系统、调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是“数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准”。该标准规定,采用一个25个脚的DB25连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。RS-232虽然被广泛接受,但数据传输的速度、范围、网络化都存在局限性,因不同需求发展出如RS-422、RS-485等标准接口, RS-422和RS-485通过对数据信号和控制信号使用差动电压从而克服了这些限制,也正是这些改进使得各种串口设备被应用于非常广泛的行业。目前,串口已经成为各公司很多产品的标准配置。在通信中,常用串行通信的方式实现下位机数据的采集和上位机对下位机的控制。由于串行通信是在一根传输线上一位一位地传送信息,所以传输线少,适合远距离传输。单片机之间的通信采用异步串行通信RS-232接口。在日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存通常多以加锁的方式来保存。目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。但在使用中暴露了很多缺点:一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。根据国外的统计资料,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30左右。二是钥匙一旦丢失,无论谁捡到都可以将锁打开。三是机械锁的材料大多为黄铜,质地较软,容易损坏。四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。出于安全、方便等方面的需要,许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。另外,卡片式的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广。随着人们生活水平的提高, 电子密码防盗锁作为防盗卫士的作用日趋重要。电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。如果采用4位密码,则密码组合可达到l0000,每增加l位,密码组合就增加l0倍;同时,在内部的单片机可以显示密码和设置新密码。本设计是单片机之间的串行通信应用于电子密码锁,同时电子密码锁还具有语音提示的功能,方便了用户的操作,可广泛的应用于新型小区单元门、超市的存储柜、智能取款机等。2 系统概述本设计由语音播放、单片机、键盘、数码显示和电源模块等五部分组成,系统框图如图2-1所示。其中单片机部分的作用是控制语音播放、键盘和数码显示;语音播方部分用于播放相应提示音;键盘用来输入密码;显示部分用来显示输入的密码;电源模块则为整个电路提供电源。 数码显示单片机MCU键盘语音播放电源图2-1 系统框图3 方案选择 由于电子密码锁的种类比较多,因此方案选择在设计中是至关重要的。正确地选择方案可以减小开发难度,缩短开发周期,降低成本,更快地将产品推向市场。3.1密码锁功能实现方法选择3.1.1方案1基于一个51单片机的电子密码锁设计只用一个51单片机完成电子密码锁1的功能,包括输入密码的比较、显示、设置新密码。用44键盘组成09数字键以及确认、取消功能键,用6位7段数码管组成显示电路提示信息,其工作过程如下:l 加电后,显示“888888”。l 输入过程中,如果不小心出现输入错误,可按“取消”键清除屏幕,取消此次输入,此时显示“888888”。再次输入需要输入所有6位密码。l 当密码输入完毕按下“确认”键时,单片机将输入的密码与设定的密码比较,若密码正确,则发光二极管亮1秒钟(以此表示密码锁打开)。此种方法实现了简单密码锁的基本功能,但其不能修改密码,而且不适合远距离传输,例如作为新型小区单元门就不宜采用此法,因为单元门离居民用户家中距离较远。3.1.2 方案2基于两个单片机串行通信的电子密码锁电子号码锁在实际应用中应该有两部分,一部分在外部,有键盘部分和密码显示;另一部分内部,设置密码、显示密码。使用单片机自身带有的串口可以很方便的实现单片机之间的通信,使输入的密码值传送到主机检验是否是正确的密码。其工作过程如下:l 加电后,显示“000000”。l 在外部键盘输入密码,数码管显示相应数字。l 输入过程中,如果不小心出现输入错误,可按“取消”键清除屏幕,取消此次输入,此时显示“000000”。再次输入需要输入所有6位密码。l 当6为输入密码全部输入完毕后,按“确认”键,内部、外部数码管显示同时清零。l 在内部数码管显示外部键盘输入密码,并与预设密码比较,发出密码正确与否的提示音,密码正确的话,放光二极管点亮,表明密码锁打开。l 管理员可以使用内部键盘察看当前密码、修改密码、同时使用内部键盘也可以打开电子密码锁。也会有相应提示音提示操作。这种方案,用户可以在内部显示当前密码、设置新密码、打开密码锁,在内部进行的操作有效地提高了密码的可靠性。串口通信的使用延长了传输距离,并在操作时由相应提示信息,从而在实际生活中有很好的实用性。所以本设计采用此种方法。3.2语音芯片的选择表3-1 普遍的语音芯片型号特征TE6310语音长度:10sec采样频率(KHz):6.4放音触发:放音触发工作电压(V):4.55.5工作电流(mA):30静态电流(uA):2TE6332语音长度:32sec采样频率(KHz):46.4MIC前置:YES工作电压(V):2.73.3工作电流(mA):10ISD1420语音长度:20sec采样频率(KHz):6.4放音触发:边缘/电平工作电压(V):4.55.5工作电流(mA):30静态电流(uA):10ISD2540语音长度:40sec采样频率(KHz):6.4放音触发:电平工作电压(V):4.55.5工作电流(mA):30静态电流(uA):2语音芯片2就是在人工或者控制器的控制下可以录音和放音的芯片。目前市场上流行的语音芯片有很多,比较常见和使用较为普遍的语音芯片如表3-1所示。从性价比的角度考虑,美国的ISD公司的ISD系列语音芯片可谓一枝独秀。ISD (Information storage device)系列语音芯片采用具有以下优点3:l 采用模拟数据在半导体存储器直接存储的专利技术,即将模拟语音数据直接写入单个存储单元,不需要经过A/D、D/A转换。l 内部集成了大容量的EEPROM,不再需要扩展存储器。l 控制简单,控制引脚与TTL电平兼容。l 集成度高、方便使用。l 能较好地真实再现语音的自然效果,避免了一般固体语音电路因为量化和压缩所造成的量化失真。它采用直接模拟存储技术(DAST),将原始的语音信号以模拟形式直接存人不挥发存储器中,无须A/D和D/A转换。这种突破性的EEPROM存储方法同其它的数字存储方式相比,不仅增加了存储容量,而且提高了语音信号存储与还原的保真度。该芯片内部集成了振荡电路、前置放大器、自动增益控制、抗混叠滤波器、平滑滤波器、输出放大器等物理部件,具有易与微处理器接口、零功率存储、方便的存储与回放模式。ISD25XX系列语音芯片提供32-120s的录放时间,根据该系统实际需要录制内容的时间长度,选用了ISD2540语音芯片,其录音时间长度为40秒。4系统硬件电路的设计按照系统设计功能的要求,初步确定设计系统由两大部分组成,分为内外大部分。外部单片机部分可负责外部键盘号码的采集和显示,而内部单片机部分主要负责密码的设置、显示、判断发送来的外部键盘输入码是否是密码和语音播放功能的实现。两大部分内部分别有键盘输入电路、数码显示电路,此外为实现语音播放功能在主单片机部分还应有语音播放芯片电路。主控制芯片使用52系列AT89S52单片机,接口电平转换芯片选用Maxim公司的MAX232,语音芯片采用美国的ISD公司的ISD2540芯片4。显示电路显示电路内部单片机外部单片机键盘电路电平转换电平转换键盘电路语音播放 图4-1 电子密码锁电路系统构成框图4.1 系统核心部分闪电存储型器件AT89S524.1.1 AT89S52主要性能 AT89S52具有下列主要性能5:l 8KB可改编程序Flash存储器(可经受1000次的写入/擦除周期)。 l 全静态工作:0Hz24MHz。l 三级程序存储器保密。l 1288字节内部RAM。l 32条可编程I/O线。l 2个16位定时器/计数器。l 6个中断源。l 可编程串行通道。l 片内时钟振荡器。4.1.2 AT89S52的引脚及功能AT89S52单片机的管脚说明如图4-2所示。图4-2 AT89S52的管脚(1) 主要电源引脚VCC 电源端GND 接地端(2) 外接晶体引脚XTAL1和XTAL2XTAL1 接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接接到内部时钟发生器的输入端。XTAL2 接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。(3) 控制或与其它电源复用引脚RST、ALE/PROG、/PSEN和/EA/VPP RST 复位输入端。 当振荡器运行时,在该引脚上出现两个机器周期的高电平将使单片机复位。 ALE/PROG 当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个ALE脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)6。 /PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当AT89S52/LV52由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN有效(既输出2个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP 外部访问允许端。要使CPU只访问外部程序存储器(地址为0000HFFFFH),则/EA端必须保持低电平(接到GND端)。当/EA端保持高电平(接VSS端)时,CPU则执行内部程序存储器中的程序。(4) 输入/输出引脚 P0.0 P0.7、P1.0P1.7、P2.0 P2.7 和P3.0P3.7 P0端口(P0.0 P0.7) P0是一个8位漏极开路型双向I/O端口。作为输出口用时,每位能以吸收电流的方式驱动8个TTL输入,对端口写1时,又可作高阻抗输入端用。P1端口(P1.0 P1.7) P1是一个带有内部上拉电阻的8位双向I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 P2端口 (P2.0P2.7) P2是一个带有内部上拉电阻的8位双向I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。P3端口(P3.0P3.7) P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。4.1.3 信号引脚的第二功能由于工艺及标准化等原因,芯片的引脚数目是有限制的,例如MCS-51系列单片机芯片引脚的数目是40条,但单片机为实现其功能所需要的信号数目却远远超过此数,因此就出现了供需问题。 解决这一问题唯一可行的办法是“复用”,即给一些信号引脚赋予双重功能。如果我们把前述的信号定义为引脚第一功能的话,则根据需要再定义的信号就是它的第二功能。第二功能信号定义主要集中在P3口线中,另外再加上几个其它信号线。(1)EPROM 存储器程序固化所需要的信号P3口也可作为AT89S52的一些特殊功能,这些特殊功能见表4-17。有内部EPROM的单片机芯片(例如87C51),为写入程序需提供专门的编程脉冲和编程电源,它们也是由信号引脚以第二功能的形式提供的,即:编程脉冲: 30脚(ALE/PROG)编程电压(25V):31脚(/EA/VPP)表4-1 P3端口的特殊功能 端口引脚 兼 用 功 能 P3.0RXD (串行输入口) P3.1TXD (串行输出口) P3.2/INT0 (外部中断0) P3.3/INT1 (外部中断1) P3.4T0 ( 定时器0的外部输入) P3.5T1 (定时器1的外部输入) P3.6/WR (外部数据存储器写选通) P3.7/RD (外部数据存储器读选通)(2) 备用电源引入MCS-51单片机的备用电源也是以信号引脚第二功能的方式由9脚(RST/VPD)引入的。当电源发生故障,电压降低到下限值时,备用电源经此端向内部RAM提供电压,以保护内部RAM中的信息不丢失。4.2 串口通信通信主要有两种方式:并行通信和串行通信。并行通信是在传送数据过程中每个字节的各位同时进行传送的通信方式,而串行通信8是指每个字节的各位分别进行传送的通信方式。4.2.1 串口通信方式AT89S52串行口可设置四种工作方式8,可有8位、10位和11位帧格式。本系统中,AT89S52采用串行口工作于方式1,即每帧10位的异步通信格式:1位起始位,8位数据位(低位在前),1位停止位。当SM0=0,SM1=1时,串行口选择方式1。其帧格式为: 停止起始D6D7D0D1D2D3D4D5 图4-3 帧格式图4.2.2 串行通信控制寄存器(1) 串行控制寄存器(SCON) SCON的地址为98H,用于选择串行口的工作方式和指示串行口的工作状态。各位含义如下: SM0、SM1:串行口工作方式选择位。 SM2:多机通信选择位。 REN:串行口允许接收位。1时允许接收,0时禁止接收。 TI: 串行口发送中断标志位。在方式1中,于发送停止位之前,由硬件置位。因此TI=1,表示帧发送结束。 RI: 串行口接收中断标志位。在方式1中,当接收到停止位时,该位由硬件置位。RI=1,表示帧接收结束。(2) 串行数据缓冲器(SBUF)串行数据缓冲器SBUF的地址为99 H,用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,它们占用同一地址(99H)。当执行写SBUF指令时,数据写入到串行口发送缓冲器中,读SBUF就是读串行口接收缓冲器。(3) 电源控制寄存器(PCON)PCON的地址为87H,该寄存器的最高位(SMOD)是串行口波特率的倍增位,当SMOD=1时,串行口波特率加倍。系统复位时,SMOD=0。(4) 中断允许寄存器(IE)在IE中,ES位为串行中断允许控制位。ES=0时禁止串行中断,ES=1时允许串行中断。4.2.3 数据发送与接收(1) 数据发送在不发送数据时,TXD端保持高电平。当执行写SBUF的指令时,便启动一次发送过程;发送数据时,先发送一个起始位,该位通知接收端开始接收,也使发送和接收过程同步。接下来发送8位数据,先发送低位,最后发送的是高电平的停止位。(2) 数据接收 REN=1,CPU允许串行口接收数据,接收数据开始于检测到RXD(P3.0)端发生一个“1”到“0”的跳变。先接收起始位,然后依次将采样RXD端并将数据移入移位寄存器中。若满足条件RI=0且SM2=0或接收到停止位,则将前8位数据送入SBUF并置位RI;如果上述条件不满足,则数据丢失。(3) 波特率的设定9串口方式1的波特率是可变的,由定时器T1的溢出率决定:(4.1) 其中,SMOD为PCON寄存器最高位的值。溢出率为溢出周期的倒数,假定计数初值为X,则计数溢出周期为(4.2) 其中,fosc为晶振频率。则波特率计算公式为:(4.3) 由波特率算出计数初值,以便进行定时器的初始化。初值X确定如下: (4.4) 4.3语音电路4.3.1语言芯片ISD2540美国ISD公司的2500系列芯片,常见的按录放时间40秒、60秒和120秒分成ISD2540、2560和25120多个品种,该系列产品的电路原理图和控制结构完全相同。ISD2500系列和1400系列语音电路一样,具有抗断电、音质好,使用方便,无需专用的语音开发系统等相同优点。它的最大特点在于片内E2PROM容量为240K(1400系列为128K),所以录放时间长;有9个地址输入端(1400系列仅为8个),寻址能力可达512位;最多能分320段;设有OVF(溢出)端,便于多个器件级联。采用直接模拟存储技术(DAST),将原始的语音信号以模拟形式直接存入半导体存储器中,无须AD和DA转换。这种突破性的EEPROM存储方法同其它的数字存储方式相比,不仅增加了存储容量,而且提高了语音信号存储与还原的保真度。该芯片内部集成了振荡电路、前置放大器、自动增益控制、抗混叠滤波器、平滑滤波器、输出放大器等物理部件,具有易与微处理器接口、零功率存储、方便的存储与回放模式。(1)DIP封装图引线端名称 功能1-7 A0/M0A6/M6 地址8-10 A7A9 地址11 AUX IN 辅助输入12,13 VSSD、VSSA 数字和模拟地14,15 SP+、SP- 扬声器输出16,28 VCCA 、VCCD 模拟、数字信号电源正极17,18 MIC、MIC REF 麦克风输入和输入参考端 19 AGC 自动增益控制20,21 ANA IN、OUT 模拟信号输入和输出22 /OVF 溢出23 /CE 片选(低电平允许芯片工作) 24 PD 芯片低功耗状态控制25 /EOM 录放音结束信号输出26 XCLK 外部时钟27 /P / R 录/放控制选择图4-4 ISD2540DIP封装图(2)各引线端功能10表4-2 各引线端功能l 地址线:A0A6、A8、A9。共有512种组合状态。最前面的320个状态作为内部存储器的寻址作用,最后192个状态作为操作模式。l 电源:VCCA、VCCD。芯片内部的模拟和数字使用不同的电源总线。模拟和数字电源最好分别走线。l 地线:VSSA、VSSD。芯片内部的模拟和数字也使用不同的地线。l 节电控制:PD。本段拉高使芯片停止工作,进入不耗电的节电状态,芯片发生溢出,即/OVF端输出低电平后,要将本端短暂变高复位芯片,才能使之再次工作。l 片选:CE。本端变低后,而且PD为低时,允许进行录放操作。芯片在本端的下降沿锁存地址线和P/-R端的状态。l 录放模式:P/-R。本端状态在/CE的下降沿锁存。高电平选择放音,低电平选择录音。l 信息结尾标志:EOM。EOM标志在录音时由芯片自动插入到该信息的结尾。放音遇到EOM时,本端输出低电平脉冲。芯片内部会检测到电源电压以维护信息的完整性,当电压低于3.5V时,本端变低,芯片只能放音。l 溢出标志:OVF。芯片处于存储空间末尾时,本端输出低电平脉冲表示溢出,之后本端状态跟随CE端的状态,直到PD端变高。l 麦克输入:MIC。本端连至片内前置放大器。片内自动增益控制电路(AGC)将置增益控制在-15dB至24dB。l 麦克参考:MIC REF。本端是前置放大器的反向输入。当以差分形式连接话筒时,可减少噪声,提高共模抑制比。l 自动增益控制:AGC。AGC动态调整前置增益以补偿话筒输入电平的宽幅变化,使得录制变化很大的音量(从耳语到喧嚣声)时失真都能保持最小。l 模拟输出:ANA OUT。前置放大器的输出,前置电压增益取决于AGC端电平。l 模拟输入:ANA IN。本端为芯片录音信号输出。对话筒输入来说ANA OUT端应通过外接电容连至本端。l 喇叭输出:SP+、SP-。对输出端级驱动16以上的喇叭。单端使用时必须在输出端和喇叭之间接耦合电容,而双端输出既不用电容又不能将功率提高至4倍。录音和节电模式下,他们保持为低电平。l 辅助输入:AUX IN。当/CE和P/-R为高,放音不进行,或处于放音溢出状态时,本端的输入信号过内部功放驱动喇叭输出端。当多个2500芯片级联时,后缀的喇叭输出通过本端连接到本机的输出放大器。l 外部时钟:XCLK。本端内部有下拉元件,不用时应接地。芯片内部的采样时钟在出厂前以调节器校,误差低于1%。l 地址/模式输入:AX/MX。地址端有个作用,取决于最高两位的状态。当最高两位中有一个为0 时,所有输入均解释为地址位,作为当前录入操作的起始地址,地址端只作输入,不输出操作过程中的内部地址信息。4.3.2 ISD2540典型应用ISD254011工作在录音状态时麦克风采集到的小信号从MIC进入,经前置放大后从ANA OUT(模拟量输出)输出,经过隔直电容后送入ANA IN(模拟量输入)。这种输入配置方式可以方便用户自行设计性能更加优良的前置放大器代替芯片内部已有的功能部件,另外ANA IN可作为线输入口(Line In),直接输入电声信号。进入ANA IN的信号经过放大器、自动增益控制(AGC)以及低通滤波器,将被调整到存储电路动态范围的最佳电平,最终将通过模拟收发器写入EEPROM 中。在ISD2540的放音模式下,录入的模拟电压在采样时钟的控制下,顺序的从模拟存储阵列读出,并经输出通道上的平滑滤波器去掉采样频率分量后恢复出原始波形,送入多路器,以便与外界其他信号混合,而后送入功率放大器,并由SP+、SP-端输出,进而可直接驱动扬声器。图4-5 ISD2540内部原理框图(1)按键单段录放模式 ISD2500系列的按键单段录放电路非常简单,见图4-6,单段使用时全部地址线接地,录音时置P/R端(S3)为低,按住不放CE端的片选键(S1),即开始录音,松键时或芯片录满时自动停止。放音时置P/R端(S3)为高,按一下CE端的片选键(S1),即开始放音,按一下PD端的节电键(S2)或放音结束时自动停止。图4-6 ISD2540单段录放模式原理图(2)按键多段录放模式 图4-7 ISD2540按键多段录放模式原理图 如上图4-7所示,将地址端中的A6、A8、A9接高电平,其余地址线接低电平,即可实现多段的连续顺序录放。录音时置P/R端(S3)为低,按一下CE端的启动/暂停键(S1),即开始录音第一段,再按一下CE端的启动/暂停键(S1)即停止,一段录音结束。反复按CE端的按键可以接着录后面的段,直到芯片录满,或按一下PD端的复位键(S2)系统复位。放音时置P/R端(S3)为高,按一下CE端的启动/暂停键(S1),即开始放音第一段,段结束或中途按一下CE端S1键(S2)即放音停止;再按CE端的S1键又放音第二段,如此播放。(3)和单片机配合使用模式 单片机的P1口、P3.4和 P3.5分别与ISD2560的地址线相连,用以设置语音段的起始地址。P3.0P3.3用以控制录放音状态。P3.7连接一按键,供录音时使用,如图4-8所示。图4-8 ISD2540和单片机配合使用模式4.3.3工作模式 当最高位地址(MSB)A8、A9都为高电平时,地址端就作为工作模式选择端 (高电平有效)使用工作模式应注意以下两点:所有工作模式下的操作都 是从0地址开始,以后的操作根据模式的不同,而从相应的地址开始工作。当电路中录音转放音或进入省电状态时,地址计数器复位为0。工作模式位不加锁定,可以在MSB地址位为高电平时,CE电平变低的任何时间执行工作模式操 作。如果下一片选周期MSB地址位中有一个(或两个)变为低电平,则执行信息地址,即从该地址录音或放音,原来设定的工作模式状态丢失。表4-3 工作模式功能模式控制 功能 典型应用A0/M0 信息检索 快速检索信息A1/M1 删除EOM标志 在全部语音录放结束时,给出EOM标志A2/M2 未用 当工作模式 操作时,此端应接低电平A3/M3 循环放音 从0地址开始连续重复放音A4/M4 连续寻址 可录放连续的多段信息A5/M5 CE电平触发 允许信号中止A6/M6 按钮控制 简化器件接口4.3.4分段录放音表4-4 地址空间分配十进制 二进制 信息时间(秒)A9A8A7A6A5A4A3A2A1A0 2560257525900 00 0 00 0 00 0 0 0 0 050 0 0 0 0 1 1 0 0 1 0 5.0 6.25 7.50100 0 00 1 1 0 0 10 0 10.0 12.50 15.00250 0 01 1 1 1 1 0 1 0 25.0 31.25 37.50300010 0 1 0 1 1 0 0 30.0 37.50 45.00400 0 1 10 0 1 0 0 0 0 40.0 50.00 60.00500 0 1 1 1 1 1 0 1 0 0 50.0 62.50 75.00599 10 0 1 0 1 0 1 1 1 59.9 74.8789.85 2540最多可分为320段,只要在分段录/放音操作前(不少于300纳秒),给地址A0A9赋值,操作就从该地址开始。2500系列地址空间是这样分配的:地址0599作为分段用(见上表4-4)。4.3.5语音控制电路录音时,按下录音键,单片机通过口线设置语音段的起始地址,再使PD端、P/R端和/CE端为低电平启动录音;结束时,松开按键,单片机又让/CE端回到高电平,即完成一段语音的录制。同样的方法可录取第二段、第三段、 。特别值得注意的是,录音时间不能超过预先设定的每段语音的时间。图4-9 ISD2540语音电路 放音时,根据需播放的语音内容,找到相应的语音段起始地址,并通过口线送出。再将P/R端设为高电平,PD端设为低电平,并让/CE端产生一负脉冲启动放音,这时单片机只需等待ISD2540的信息结束信号,即/EOM的产生。信号为一负脉冲,在负脉冲的上升沿,该段语音才播放结束,所以单片机必须要检测到/EOM的上升沿才能播放第二段,否则播放的语音就不连续,而且会产生啪啪声,这一点在编制软件时一定要注意。 在本设计中,预先用单片机控制语音芯片分别录制好要播放的提示信息,给每段提示信息设置固定的录音时间,这样有利于在分段播放时调用该段语音的首地址,实现在一定的操作结束后会发出相应的语音提示。4.4电平转换电路4.4.1电平转换芯片如果两个51系列单片机系统之间距离很短,可以通过将它们的自带串口直接连接的方法实现双机通信。但若通信距离较远,就可使用RS-232C接口延长通信距离。RS-232C标准是美国EIA与BELL等公司一起开发的,1969年公布的通信协议。由于RS-232C标准规定的逻辑电平与TTL等数字电路的逻辑电平不兼容,因此二者之间进行相互连接时必须先进行串口电平的转换,即必须将单片机的TTL电平和RS-232C标准电平进行转换。能够实现RS-232C电平转换的专用芯片有很多种,如MC1488、SN75150芯片可完成TTL到EIA电平的转换,而MC1489、SN75154可实现EIA到TTL电平的转换。常用的是Maxim公司的MAX232集成芯片,它能完成TTL和RS-232C的双向转换。4.4.2 MAX232芯片(1)MAX232的电路原理图12如图4-10所示, 图4-10 MAX232的电路原理图 图4-11 MAX232的引脚图(2)MAX232的引脚图如图4-11所示,MAX232的引脚主要分为5个部分:l 外接电容:有5个外接电容,进行电压匹配和电源去藕。l TTL的输入:两路TTL电平的输入引脚11和10引脚,连接单片机的TXD的输出端口。l TTL的输出:两路TTL 电平的输出引脚12和9引脚,连接单片机的RXD输出端口。l RS-232的输入:两路RS-232电平的输入引脚13和8引脚,连接RS-232的TXD的输出端口。l RS-232的输出:两路RS-232电平的输出引脚13和8引脚,连接RS-232的RXD的输出端口。4.4.3连接电路图 图4-12 MAX232的电路连接图4.5键盘电路4.5.1 单片机键盘和键盘接口概述单片机使用的键盘可分为独立式和矩阵式两种。独立式实际上就是一组相互独立的按键,这些按键可直接与单片机的I/O接口连接,其方法是每个按键独占一条口线,接口简单13。矩阵式键盘也称行列式键盘,因为键的数目较多,所以键按行列组成矩阵(如图4-13所示)。按一个键到键的功能被执行主要应包括两项工作:一是键的识别,即在键盘中找出被按的是哪个键,另一项是键功能的实现。第一项工作是使用接口电路实现的,而第二项工作则是通过执行中断服务程序来完成。下面来介绍键盘接口问题14。图4-13 键盘接口电路图具体来说,键盘接口应完成以下操作功能:l 键盘扫描,以判定是否有键被按下(称之为“闭合键”)。l 键识别,以确定闭合键的行列位置。l 产生闭合键的键码。l 排除多键、串键(复按)及去抖动。这些内容通常是以软硬件结合的方式来完成的,即在软件的配合下由接口电路来完成。但具体那些由硬件完成由软件完成,要看接口电路的情况。总的原则是,硬件复杂软件就简单,硬件简单软件就得复杂一些。可以为MCS-51单片机实现键盘接口的方法和接口芯片有:l 使用单片机芯片本身的并/串行口l 使用通用接口芯片(例如8255、8155等)/专用接口芯片82794.5.2 单片机键盘接口和键功能的实现(1) 键盘接口处理内容 键扫描键盘上的键按行列组成矩阵,在行列的交点上都对应有一个键。为判定有无键被按下(闭合键)以及被按键的位置,可使用两种方法:扫描法和翻转法,其中以扫描法使用较为普遍。因此下面以扫描法为例,说明查找闭合键的方法。现以图4-14所示的4行4列键盘为例,对键扫描进行说明。输入口11110 1 1 1+5V输出口(a)(b)输入口输出口11111 0 1 1+5V11011 1 0 1输出口输入口+5V(c)图4-14 键扫描法示意图首先是判定有没有键被按下。如图4-14所示,键盘的行线一端经电阻接+5V电源,另一端接单片机的输入口线。各列线的一端接单片机的输出口线,另一端悬空。为判定有没有键被按下,可先经输出口向所有列线输出低电平,然后再输入各行线状态。若行线状态中有低电平,则表示有键被按下。然后再判定被按键的位置。因为在键盘矩阵中有键按下时,被按键处的行线和列线被接通,使穿过闭合键的那条行线变为低电平。假定图4-13中A键被按下,则判定键位置的扫描15是这样进行的:先使输出口输出0EH,然后输入行线状态,测试行线状态中是否有低电平(图4-14(a)。如果没有低电平,再使输出口输出0DH,再测试行线状态(图4-14(b)。到输出口输出0BH时,行线中有状态为低电平者,则闭合键找到(图4-14(c),通过此次扫描的行线值和列线值就可以知道闭合键的位置。至此行扫描似乎可以结束,但实际上扫描往往要继续进行下去,以发现可能出现的多键同时被按下。 去抖动键按下前沿抖动后沿抖动 图4-15 键闭合和断开时的电压抖动当扫描表明有键被按下之后,紧接着应进行去抖动处理。因为常用键盘的键实际上就是一个机械开关结构,被按下时,由于机械接触点的弹性及电压突跳等原因,在触点闭合或断开的瞬间会出现电压抖动,如图4-15所示。抖动时间长短与键的机械特性有关,一般为510ms。而键的稳定的闭合时间和操作者按键动作有关,大约为十分之几到几秒不等。 键码计算被按键确定下来之后,接下来的工作是计算闭合键的键码,因为有了键码,才能通过散转指令把程序执行转到闭合键所对应的中断服务程序上去。也可以直接使用该闭合键的行列值组合产生键码,但这样做会使各子程序的入口地址比较散乱,给JMP指令的使用带来不便。所以通常都是以键的排列顺序安排键号,例如,图4-16所示的键号是按从左到右从上到下的顺序编排的。这样安排,使键码既可以根据行号列号以查表求得,也可以通过计算得到。按图4-16所示的键码编排规律,各行的首号依次是00H,04H,08H,0CH,如列号按03顺序,则键码的计算公式为: 键码=行首号+列号00H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH图4-16 键号排列 等待键释放计算键码之后,再以延时后进行扫描的方法等待键释放。等待键释放是为了保证键的一次闭合仅进行一次处理。综上所述,键盘接口处理的核心内容是测试有无闭合键,对闭合键进行去抖动处理,求得闭合键的键码。这些操作内容通常都是有软硬件相结合的方法实现,但如果使用像8279这样的专用接口芯片,可以大大简化软件。为了使键盘操作更稳定可靠,还可以加一些附加功能,例如屏蔽功能:在对一个闭合键已进行处理时,再按下其它键不会产生影响;对于一个键,不管按下多长时间,仅执行一次键处理子程序等。(2)键盘接口的控制方式在单片机的运行过程中,何时执行键盘扫描和处理,可有以下3种情况: 随机方式,每当CPU空闲时执行键盘扫描程序。 中断方式,每当有键闭合时才向CPU发出中断请求,中断响应后执行键盘扫描程序。 定时方式,每隔一定时间执行一次键盘扫描程序,定时可由单片机定时器完成。(3)键处理子程序在计算机中每一个键都对应一个处理子程序,得到闭合键的键码后,就可以根据键码,转相应的键处理子程序(分支是使用JMP等散转指令实现的),进行字符、数据的输入或命令的处理。这样就可以实现该键所设定的功能。5 系统程序的设计5.1外部单片机发送密码程序的设计首先,进行整个程序的初始化及清屏。当有按键按下时,程序判断是哪个键被按下,然后执行相应的按键功能,并调用显示程序,显示所输入的密码;当没有键按下时,返回键盘扫描,再判断是否有键被按下。如图5-1所示。初始化清屏调用显示键盘扫描N键被按下?Y 根据不同按键 进行相应处理是“清除”?YNN是“确认”?Y串

温馨提示

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

评论

0/150

提交评论