OK2单片机毕业设计参考格式_第1页
OK2单片机毕业设计参考格式_第2页
OK2单片机毕业设计参考格式_第3页
OK2单片机毕业设计参考格式_第4页
OK2单片机毕业设计参考格式_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、本科生毕业设计(论文)摘 要公交客车已经在各个城市普及,给人们的出行带来很大方便,传统的公交车是由乘务人员人工报站名,因工作强度大并且其效果也差,随着科学技术的日益发展和进步, 无人售票公交车在很多城市开始使用,自动语音报站器也应运而生,客车自动报站器是安装在客车或公交汽车上,每到一个停车站点,能够向车内外人员报告车辆运行情况的自动化电子报话装置。它在相当大的程度上免除了乘务人员沿途报站的麻烦,更加方便了人们的出行,同时直接提高了公交客车服务的质量。本设计介绍了一种由单片机为控制核心的客车自动报站器,该设计采用AT89S51单片机和专用的语音控制芯片ISD4004以及键盘显示电路构成客车自动报

2、站器系统的硬件电路,文中详细设计了AT89S51单片机的基本电路、ISD4004驱动电路、功能键电路和显示电路的实现方法,采用C语言和汇编语言进行了客车自动报站器的软件设计,完成了系统主程序流程图设计、键盘扫描子程序设计、显示子程序设计和语音播放子程序设计。本设计实现了公交车自动报站器的语音报站和站号显示功能,进站、出站只需由司机按下功能键便完成自动播报站名及服务用语,为市民提供了更人性化,更完善的服务;系统具有稳定可靠、抗干扰性好、性价比高等特点。关键词:自动报站器;51单片机;ISD4004语音芯片;LED数码管AbstractBuses have been popular in ever

3、y city, for people to travel a great convenience, the traditional bus is reported the name of the station by trainman manually, because of work intensity and its effects are poor, with the increasing development and progress of science and technology , Automated collection bus started in many cities

4、, automatic speech stations broadcasting device have emerged, bus stop reporter is installed in the bus or public transportation vehicle, and service in various cities, each to a parking site, report to internal and external personnel of the car's vehicle operation of automated equipment newslet

5、ter. It is to a large extent, eliminates the trainmans trouble to reported along the way, more easy for people to travel, while directly improving the quality of public transport bus service.This design introduce a single-chip microcomputer as central-control of the bus stop reporter, the design use

6、s AT89S51 microcontroller and a dedicated control chip ISD4004 voice and keyboard and display circuitry bus stop reporter hardware circuit, this paper designed AT89S51 SCM basic circuit, ISD4004 drive circuit, function keys circuit and display circuit realization method in detail, using C language a

7、nd assembly language for a bus stop reporter software design, completed the main program flow chart of system design, design of the keyboard scan subroutine, design of the display subroutine and design of the voice broadcast subroutine. The design come true of the bus stop reporter's speech stat

8、ions broadcasting and the station number display, pull in and outbound, the station only by the driver pressing the function key will complete the automatic broadcast station names and service terms, to provide a more personalized and better services; system has a good stable and reliable, good anti

9、-interference and good cost performance. Key words:Automatic stations;51 SCM;ISD4004 voice chip; LED digital tube目 录第1章 绪 论11.1自动报站器的来源与意义11.2自动报站器的发展现状1第2章 客车自动报站器设计方案42.1 客车自动报站器工作原理42.2 客车自动报站器的设计方案4第3章 客车自动报站器硬件设计63.1 单片机的选择及简介63.2 单片机最小系统设计73.2.1 晶振电路73.2.2 复位电路73.2.3 最小系统基本电路83.3 电源电路83.4 键盘电路

10、93.4.1 消除键抖动93.4.2 按键方式103.4.3 按键的设置103.4.4 缓冲器的选择及特点103.4.5 电路连接113.5 语音驱动电路113.5.1 语音芯片123.5.2 音频功放芯片133.5.3 语音驱动电路133.6 显示电路143.6.1 LED简介153.6.2 数码管结构及工作原理153.6.3 驱动器的选择及特点163.6.4 电路连接16第4章 客车自动报站器软件设计174.1 主程序设计174.2 键盘程序设计194.3 显示程序设计204.4 语音录放程序设计21第5章 结论23致谢24参考文献25附录26附录II27IV第1章 绪 论1.1自动报站器

11、的来源与意义如今公交客车已经在各个城市普及,给人们带来很多方便,在公交车上安装自动报站器更加方便了人们的出行,尤其是对不熟悉公交线路的乘客,同时在相当大的程度上免除了乘务人员沿途报站的麻烦。因此,公共汽车的报站直接影响服务的质量。随着科学技术的日益发展和进步, 无人售票公交车在街上多起来了,自动语音报站器被广泛使用,传统由乘务人员人工报站的方式,因其鉴于传统公交车报站系统的不足之处,结合公交车辆的使用特点及实际营运环境,本文拟设计一种由单片机控制的公交车自动报站器。公交车自动报站器的设计主要是为了弥补改变传统语音报站器必须由乘务员报站的落后方式,进站、出站只需由司机按下功能键完成自动播报站名及

12、服务用语,为市民提供更人性化,更完善的服务 。1.2自动报站器的发展现状公共汽车行驶在现代文明程度高的市区,它是一道流动的风景线,因而对整车外形乃至色彩都有更高的要求。作为公共汽车还要求有醒目和减少乘务人员劳动强度的电子报站器,电子显示路牌,无人售票装置,前后电视监视系统等新技术的采用也将越来越普及。作为一个城市的公交企业,它既要代表政府体现当地城市的形象,又要尽一切力量减少政府投资,创造良好的社会效益和经济效益。而传统的公交运营系统的装备和管理模式较难达到这两者的完美结合。随着科学技术的发展,公交应用系统目前公交车报站有三种方式。一种是利用GPS全球卫星定位系统的公交车报站系统。GPS 系统

13、是由美国GPS自动语音报站器具有一下特点:a.b.c. d.e. 目前在美国部分城市GPS卫星定位系统已经投入使用,国内也有此类产品的研制开发,其功能强大,系统稳定,但其投资昂贵,尤其是一些中小城市无法承受。国内GPS 语音自动报站系统处于试验阶段仅有部分发达城市有试验线路采用GPS 语音自动报站器。第二种是基于MP3的自动报站器。随着城市的快速发展,公交线路不时地在进行调整,站名也随之进行变化,因而使研制一种新型汽车报站器显得极为重要。基于MP3报站器可非常方便地更换播放内容,并可播放高品质的音乐基于MP3的新型公交车自动报站器系统以MP3格式作为语音存储方式,具有音质好、抗干扰、功能强、使

14、用简便等一系列优点。采用单片机作为主控CPU及解码MP3数据,实现对报站信息播放、点阵字符显示、文件存储以及用作优盘功能时USB与PC机联机的控制。第三种是基于CPLD 的公共汽车智能语音报站系统。采用复杂可编程逻辑器件(CPLD)和语音芯片ISD2560组成的智能语音报站系统,由于因此系统硬件电路简单、调试和升级方便、可靠性高、实用性强。另外一种是人工报站的方式,这种方式离不开乘务人员,工作强度要求高,且目前主流的是无人售票车,人工报站的方式已经基本被淘汰。38第2章 客车自动报站器设计方案2.1 客车自动报站器工作原理为了实现城市公交车的自动报站,本文设计了一套低廉、高性能的城市公交车自动

15、报站器系统。系统由51单片机控制整个系统的录音、放音与显示部分,首先是键盘输入,当键盘上有键按下时,通过键扫描程序确定按下的键并将键号送单片机,单片机调用对应按键子程序,同时继续进行键扫描,整个过程发挥了报站器的基本功能。即客车每到一站,由司机按下放音键,语音电路自动工作,播报对应的到站信息;并能通过通信接口电路,向语音存储电路更新语音信息。也就是说客车报站器的设计主要包括:(1)键盘输入部分;(2)语音录放部分;(3)LED显示部分;(4)电源部分。2.2 客车自动报站器的设计方案服务于各城市的,每到一个停车站点,都需要报站名;本设计就是针对城市的公交客车设计一款基于单片机系统的客车自动报站

16、器,该客车报站器由单片机做控制器,主要由语音存储电路、语音驱动电路、功能键电路、显示电路、通信接口电路等组成;实现客车每到一站,由司机按下功能键,语音电路自动工作,播报对应的到站信息;并能通过通信接口电路,向语音存储电路更新语音信息。总体结构原理框图如图2.1所示。图2.1 客车自动报站器总体结构原理框图本次设计的主控制芯片选用的是AT89S51,键盘部分是以独立式按键方式构成的键盘电路,设置七个按键对语音录放进行控制,显示部分选择LED数码管进行站号和工作状态的显示,在对键盘及显示电路进行设计时需要两个锁存器:74LS273是一种带清除功能的8D触发器;74LS244缓冲器也就是输入锁存器;

17、在语音报站部分,即语音信号的处理上选择的是ISD4004语音芯片,语音功率放大部分选择LM386语音功放芯片。系统具有如下功能: 可重复性的预报站名、报站名; 可设置上、下行路线; 音量可调; 在语音报站名的同时,用LED 显示站号和上、下行状态。本系统采用51单片机作为CPU,控制ISD4004语音芯片进行语音录放和站名播报等功能,同时通过8段码LED显示器显示站号和系统工作状态,键盘主要用于上、下行报站,播放文明宣传语以及调整上、下行状态和调节音量。第3章 客车自动报站器硬件设计3.1 单片机的选择及简介AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,管脚图如图

18、3.1所示:图3.1 AT89S51管脚图引脚功能如下:P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3.2所示。表3.2 P3口第二功能端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时计数器0外部输入)P3.5T1(定时计数器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)3.2 单片机最小系统设计51系列单片机最小系统一般应该包括:单片机、晶振电路、复位电路。本次设计首先需要搭建最小系统的硬件电路。3.2.1 晶振电路如果说CPU是单片机的心脏,那么石英晶体震荡

19、器就相当于心脏起搏器。单片机系统的各部分都要以时钟频率为基础,才能在CPU指挥下有条不紊一拍一拍的协调工作。AT89S51单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。如图3.2所示。A:内部时钟电路 B:外部时钟电路图3.2 晶振电路本文采用的是内时钟方式。3.2.2 复位电路复位是使CPU和系统其他部件处于一个确定的初始状态,并从这个初始状态开始工作。当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。复位电路根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位如图3.3所示。图 3

20、.3 复位电路3.2.3 最小系统基本电路相应的最小系统电路图,如图3.4所示。图 3.4 最小系统电路图这里设计一个发光二极管,连接在P1.0口,作为简单的工作指示。当单片机的P1.0输出低电平(0V)时,有正向工作电流流过发光二极管,发光二极管就亮;相反,当P1.0输出高电平(5V)时, 3.3 电源电路本文选用7805三端集成稳压块将车载DC12V直流电压变压成DC5V,作为单片机芯片及各种驱动电路的供电电源。电路图如图3.5所示。图3.5 DC5V稳压电源电路图在语音电路部分选用ISD4004语音芯片,ISD4004的工作电压为3V,所以需要一个DC3V的稳压电源,这里设计一个开关电源

21、,作为其供电电源。电路图如图3.6所示。图3.6 DC3V开关电源电路图3.4 键盘电路在本文设计的系统中,为了控制系统的工作状态,系统中设计有功能键盘。在单片机应用系统中,按键或键盘的每个键都赋予特定的功能,它们通过接口电路与单片机相连接,通过软件了解按键的状态及键信息的输入,并转去执行该键的功能处理程序。键盘的接口方法有多种,但键输入过程与软件结构基本是一样的。对一组键或键盘上的每一个键都有一个编号,CPU可以采用中断方式或是查询方式了解有无键输入,并检查是那个键按下,将键号送入累加器A,然后通过键号转移指令执行该键的功能程序。3.4.1 消除键抖动硬件消抖是可以采用简单的R-S触发器或单

22、稳电路构成。软件消除键抖动的方法是用延时来躲过暂态抖动过程,执行一段大于10ms的延时程序后,在读取稳定的键状态。本设计中采取软件去抖动方法。3.4.2 按键方式1、独立式键盘独立式按键是指独立式按键接口电路配置故在按键数量不多时,采用这种见结构。2、行列式键盘行列式键盘又叫矩阵键盘。用I/O口线组成行、列结构,在键数量较多时,采用行列式键盘可以节省I/O口线。因为本次设计用到的按键比较少,在设计中采用独立式按键。3.4.3 按键的设置系统中设有7个功能键,依次为:K0:上、下行选择键,按下此键,选择下行方向或上行方向的站名顺序。K1:特殊语音键,播报服务用语,播报安全提示语。K2:报站键,到

23、站按下此键,播报车辆到站时的服务用语。K3:重复键,按下此键,将重复前一按键的播报内容。K4:音量调节键。音量设定为高、中、低三档,开机时设定为中档,按下此键,音量变为高档,再按则为低档,再按又回到中档,如此循环。K5:快进键,按下此键,则向前越过一个站名,按下n次,则越过n各站名。K6:快退键,按下此键,则向后越过一个站名,依此类推。3.4.4 缓冲器的选择及特点74LS244是一种三态输出的八缓冲器和线驱动器,管脚图如图3.7所示。图3.7 74LS244管脚图管脚功能如下:3.4.5 电路连接根据如上介绍,设计的按键接口电路如图3.8所示。图3.8 按键接口电路3.5 语音驱动电路语音电

24、路由MIC放大电路、语音电路、模拟开关电路、音频功率放大电路等组成,其设计非常重要,其中语音芯片的选择很关键,其音质的优劣决定了报站器的语音效果,其功能的强弱、接口与微控制器的兼容性都对电路的设计有很大影响。本文选用美国ISD公司生产的高保真录放一体化的单片固态语音集成电路ISD4000系列中的ISD4004语音芯片。ISD4004语音芯片是由美国ISD公司推出的新产品。3.5.1 语音芯片1、语音芯片的特点语音芯片应用美国ISD公司制造的语音芯片ISD4004来实现简单的双声道立体声语音录放系统,2、引脚描述ISD4004语音芯片引脚图如图3.9所示。图3.9 ISD4004语音芯片引脚图引

25、脚功能如下:电源: 地线:同相模拟输入(ANA IN+)音频输出(AUD OUT) 3、SPI(串行接口)ISD4004工作于SPI串行接口。SPI协议是一个详见表3.3。表 3.3 SPI 控制寄存器功能表位值功能位值功能RUN=10允许/禁止功能开始停止PU=10电源控制上电掉电P/-R=10录/放模式放录IAB=10操作是否使用指令地址忽略输入地址寄存内容使用输入地址寄存内容MC=10快进模式允许快进禁止P15-P0A15-A0行指针寄存器输出输入地址寄存器3.5.2 音频功放芯片本设计选用LM386作为音频功放芯片,LM386是音频集成功率放大芯片,该芯片具有自身功耗低、电压增益可调整

26、、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。LM386音频功放芯片管脚图如图3.10所示。图3.10 LM386管脚图引脚功能如下:3.5.3 语音驱动电路根据上述ISD4004芯片的介绍,设计出语音驱动部分的电路图,如图3.11所示。图 3.11 语音驱动电路原理图其中SPI串行口协议的I/O分配表如表3.4所示。表3.4 SPI串行口协议的I/O分配表P3.2INTP1.3RACP1.4SSP1.5MOSIP1.6MISOP1.7SCK 3.6 显示电路本次设计根据设计要求设置了显示器,这里设计4个共阳极LED数码管组成显示器,以显示站号和简单工作状态指

27、示。四个数码管中,个位和十位显示站号,显示范围为099;百位显示上、下行状态指示,当下行时,数码管显示“1”;当上行时显示“0”;千位上显示录放音指示,录音时显示“0”,播放报站语音时显示“1”。3.6.1 LED简介LED数码管即发光二极管,由8个发光二极管组成“8”字形的LED显示器,也称数码管。在设计中采用的是8段LED数码管。8段数码管的引脚图如图3.12所示。图3.12 8段发光二极管示意图3.6.2 数码管结构及工作原理本设计LED显示器采用动态显示方式,全部数码管共用一套段码驱动电路, 段码的值与数码管公共引脚的接法(共阴极和共阳极)有关。8段数码管显示十六进制数的数码值在表3.

28、6中列出(仅列出共阳极段码)。本设计采用共阳极接法。表3.6 8位十六进制数段码表数字共阳极段码数字共阳极段码0C0H990H1F9HA88H2A4HB83H3B0HCC6H499HDA1H592HE86H682HF8EH7F8H灭FFH880H为了存放段码,通常要在单片机的内部RAM中设置一个显示缓冲区,存储单元个数与LED显示器的位数相同,一个单元对应一个显示位。本设计中有4个数码管,显示缓冲区就应当有4个单元,表3.7 数码管与LED显示位对应关系LED3LED2LED1LED07CH7BH7AH79H3.6.3 驱动器的选择及特点74LS273是一种带清除功能的8D触发器, 1D8D为

29、数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。管脚图如图3.13所示。图3.13 74LS273管脚图引脚功能如下:3.6.4 电路连接根据设计的要求,设计的显示电路,采用动态显示、软件译码,如图3.14所示。图 3.14 显示电路第4章 客车自动报站器软件设计客车自动报站器的软件设计包括:主程序设计、键盘程序设计、显示程序设计、语音录放程序设计。4.1 主程序设计电路上电后,首先完成程序的初始化,初始化即先清理数据存储器,设置中断,初始化串口和定时计数器。随后查询按键状态,进入系统待机状态。如果有按键按下,则转去执行该按键指向的工作程序。按键包括报站键、快进

30、键、快退键、特殊语键、重复键、上下行选择键以及音量调节键。在待机状态下,如果报站键首次被按下,程序将首先判断是去还是回,即上行还是下行,并点亮相应的指示灯,自动读出第一站的放音内容,站号显示。如果不是首次按下,则首先判断当前站号,并以该站号为依据获得存放该站放音内容的首地址;然后调用放音子程序,读入前面获得的本站放音内容首地址, 开始报站。每一句放音完毕后,ISD4004 的中断引脚(25脚)会自动送一低电平信号。在硬件设计中,该引脚与单片机的P3.2(INT0)连接,因此会引起一次中断, 在中断子程序中有一个计数器记录中断次数,从而判断何时当前一站结束,站号加一并刷新显示。快进键按下后,程序

31、放音内容转向下一站;快退键按下后,则使程序放音内容转向上一站,相应的站号显示也将随之刷新;特殊语键按下后,程序转向执行特殊语放音(譬如“拐弯请注意”等语句);重复键按下,将重复前一按键的播报内容。音量调节键将循环调节设置的三档音量,默认为中档。主程序流程图如图4.1所示。图4.1 主程序流程图4.2 键盘程序设计为使CPU能正确地读出键盘的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:硬件办法和软件办法。本次设计采用的是软件消除抖动的方法。软件法其实很简单,就是在单片机获得键盘被按下的信息后,不是立即认定按键已被按下,而是延时10毫秒或更长一些时间后再次检测

32、,如果按键仍是按下的,说明键键的确是被按下了,这实际上是避开了按钮按下时的抖动时间。而在检测到按钮释放后再延时510个毫秒,消除后沿的抖动,然后再对键值处理。键盘扫描程序流程图如图4.2所示。图 4.2 键盘扫描程序流程图4.3 显示程序设计本设计LED显示器采用动态显示方式,显示时通过位控信号,采用扫描的方法逐位的循环点亮各位数码管。动态显示虽然在任意时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果完全一样。LED显示器动态显示程序的开始要建立显示缓冲区首址,然后位控码初值,查表取字形代码,延时1ms,转向下一缓冲单元后判断是否到最高位,到则保存位控

33、码,不到,向显示器高位移位,继续扫描。为了保证先显示亮度,在扫描过程中,应在每一位数码管上都驻留一段时间(约1ms),以使数码管稳定的点亮一段时间,以保证其显示亮度。为此在扫描过程中,位与位之间要加进一段时间延迟。LED显示程序流程图如图4.3所示。图 4.3 LED显示程序流程图4.4 语音录放程序设计根据ISD4004的硬件部分原理图及上电时序的分析,编写出语音录放程序并绘制出语音录放程序流程图。该部分程序主要完成语音录制和放音操作,把录制的语音存放在ISD4004中,并通过放音程序播放语音。放音和录音程序中,都要严格按照ISD4004 的时序要求编写。放音时,首先要送上电指令,然后等待2

34、5ms 的延迟,再送16位放音起始地址,最后送8位的开始放音指令开始放音,直到出现放音停止信号(EOM)时,停止放音。录音时,首先要送上电指令,然后等待25ms 的延迟,再送上电指令,等待25ms的延迟,再送16位录音起始地址,最后送8位的开始录音指令开始录音,直到出现录音停止信号(OVF)时,停止录音。放音流程图如图4.4所示。图 4.4 放音程序流程图录音流程图如图4.5所示。图 4.5 录音程序流程图第5章 结论本次毕业设计是客车自动报站器的设计,在设计的过程中,首先进行了大量的资料搜集,使得自己对51单片机的了解更加的深刻。最终选择目前使用比较普遍,性能比较好的AT89S51,这样进行

35、程序编写和调试会较为简单,因为它的兼容性较好。语音芯片使用的是ISD公司的ISD4004,此语音芯片的优点在文章中已经做了简单的介绍,即记录声音没有段长度限制,并且声音记录不需要A/D转换和压缩等,这两点关键的选择会使得设计变得比较简单。由于报站器设计中的键盘比较少按照相应的选择原理,选择的是独立式按键的方式进行键盘的设计,与单片机相结合对整个报站器的语音报站和显示部分进行控制,根据有可能发生的情况进行了对键盘相关功能的设计。LED显示部分选择4个共阳极8段码LED数码管进行站号及工作状态的显示。电源部分设计了两个电源,一个是DC3V的开关电源,为语音芯片供电,另一个是用7805搭建的5V直流

36、稳压电源,为除语音芯片外的其他芯片及各部分电路供电。这样就完成了客车自动报站器系统的设计。在进行报站器的资料整理时,根据要设计求与选择的元器件进行了硬件电路的设计,这样会使自己在选择芯片和器件基础上,不断学习芯片的引脚图、引脚作用功能、数据的处理等相关知识。完成了语音存储电路、语音驱动电路、功能键电路、显示电路、通信接口电路等部分的设计,并且进一步进行软件部分的程序编写,在进行程序编写的步骤中,首先进行单片机程序编写的学习,根据硬件电路的工作原理绘制程序流程图,再根据流程图编写相应的程序。这样报站器的硬件设计与软件设计就完成了。实现客车每到一站,由司机按下功能键,语音电路自动工作,播报对应的到

37、站信息;并能通过通信接口电路,向语音存储电路更新语音信息等功能。这样本次设计就已经满足了客车自动报站器的设计要求,由于技术的不断进步,科技的不断发展,人们的需求的提高使得自动报站器在今后的发展中一样会有大的变化,但是它的基本原理是不变的,基本的功能需要是不会变化的,当然是会向更加的便利,更加的人性化,更加的自动化的方向发展。致谢四年的大学生活转眼而过,回首匆匆而过的岁月,心中百感交集,当我写完这篇毕业论文的时候,回首过去的一幕幕,我感慨良多。在这里,感谢在这四年大学生活中给予我支持和帮助的所有人。首先诚挚的感谢我的论文指导老师。其次,感谢在撰写论文过程中帮助过我的同学、朋友们。最后,感谢学校为

38、我提供了良好的学习环境当然,在这四年的大学生活中,我最应该感谢的就是我的父母,焉得谖草,言树之背,养育之恩,无以回报,你们永远健康快乐是我最大的心愿!再一次诚挚的感谢以上提到的所有人,还有我可能没有想起的、给予我很多帮助的人,感谢你们,谢谢!参考文献1 张毅坤.单片微型计算机原理及应用.西安电子科技大学出版社.19982 梅丽凤.单片机原理及接口技术.清华大学出版社.2006.53 朱民雄.计算机语音技术M.北京:北京航空航天大学出版社.2002 4 马忠梅,马岩.单片机的C语言应用程序设计M.北京航空航天大学出版社,1997第一版5 何立民.单片机应用系统设计M.北京:北京航空航天大学出版社

39、,19906 李钟实.实用电子报警器精选百例北京:科学技术文献出版社.2002.47 ISD4004语音芯片说明书8 何希才.新型集成电路及其应用实例.北京:科学出版社.2002,49 肖洪兵.跟我学用单片机J.北京:北京航空航天大学出版社.2002.810 何立民.单片机高级教程.北京.北京航空航天大学出版社.200111 陈爱第.Protel99实用培训教程人民邮电出版社.200012 赵晓安.MCS-51单片机原理及应用.天津:天津大学出版社.2001.313 Modelling passenger demand for parkway rail stations. Transporta

40、tion. Volume 31, Number 2. Springer Netherlands. ISSN 0049-4488 (Print) 1572-9435 (Online). 2004:12515114A Bus Stop. Studies in Fuzziness and Soft Computing. Volume 171/2005. Springer Berlin / Heidelberg. ISSN 1434-9922 (Print) 1860-0808 (Online). 2005: 165-16815Bus rapid transit systems: a comparat

41、ive assessment. Transportation. Volume 35, Number 4. Springer Netherlands. ISSN0049-4488(Print) 1572-9435 (Online).2008: 50151816 Broadcasting in bus interconnection networks. Lecture Notes in Computer Science. Volume 854 Springer Berlin / Heidelberg. ISSN 0302-9743 (Print) 1611-3349 (Online).2006:

42、79780717 张建华,高守玮,杨建国.语音芯片在语音报站器中的应用J.电子技术应用.2008年第3期:10318 韦丽华,系列语音芯片及其在微机系统中的应用J.辽宁师范大学学报(自然科学出版社).2001,24(1):334519 孙佩龙.实现自动报站的新方法J .辽宁省阜新公交公司.2008.6:236620 许连华.基于GPS的自动汽车报站器.济南山东大学计算机科学.2005,12 附录总体硬件电路图附录II 软件清单主程序:#include<reg51.h> /*预处理命令,插入头文件reg51.h*/#include<absacc.h> /*预处理命令,插入

43、头文件absacc.h*/#define uchar unsigned char /*宏定义,将字符串表示内容定义为uchar */#define P273 XBYTE OXFE00#define P244 XBYTE OXFE00uchar i,j;void keyin(void)main( ) i=8; /*定义键盘取值子函数keyin */ switch( P244) case 1:i=0;key1;break;case 2:i=0;key2;break;case 4:i=0;key3;break;case 8:i=0;key4;break;case 16:i=0;key5;break;

44、case 32:i=0;key6;break; case 64:i=0;key7;break;default:break; void delay(void) /*键盘消抖延时子程序 */ for(j=0;j<12000;j+) ;main( ) /*键盘按键处理子程序 */ P3=0xfe; while(1) keyi() P273=LEDi 键盘扫描程序:KEY: ACALL KS JNZ LK1ACALL DIRAJMP KEYLK1:ACALL DIR ACALL DIR ACALL KS JNZ LK2 ACALL DIR AJMP KEYLK2:MOV R2, #FEHLK4:

45、MOV DPTR,#8000H MOV A, R2 MOVX DPTR,A INC DPTR INC DPTTR MOVX A, DPTR JB ACC.0, NEXT MOV A, #00H AJMP LKPLKP:ADD A, R4 PUSH ACCLK3:ACALL DIR ACALL KS JNZ LK3 POP ACCRET NEXT:INC R4 JNB ACC.7, KND AJMP LK4KND:AJMP KEY 判断有无闭合键的子程序:KS: MOV DPTR, #8000HMOV A, #00HMOVX DPTR, AINC DPTRINC DPTRMOVX A, DPTR

46、CPL A ANL A, #0FHRETLED驱动程序:DIR: MOV R0,#79H ;建立显示缓冲区首址 MOV R3,#01H ;从右边开始显示 MOV A, R3 ;位控码初值LD0:MOV DPTR,#8002H ;位控口地址 MOVX DPTR, A ;输出位控码 MOV DPTR, #8000H ;段控口地址 MOV A, R0 ;取出显示数据DIR0: ADD A,#0DH MOVC A,A+PC ;查表取字形代码DIR1: MOVX DPTR,A ;输出段控码 ACALL DL ;调用延时 INC R0 ;转向下一缓冲单元 MOV A,R3 JB ACC.4, LD1 ;判

47、断是否到最高位,到则返回 RL A ;不到,向显示器高位移位 MOV R3,A ;位控码送R3保存 AJMP LD0 ;继续扫描LD1: RET ;子程序结束DSEG:DB 0C0H 0F9H 0A4H 0B0H 99H ;字形代码表 DB 92H 82H 0F8H 80H语音录放程序:#include <reg51.h>#include <delay.h>sbit SCK = P17; /语音模块控制管脚定义sbit SS = P14;sbit MOSI = P15;sbit MISO = P16;sbit INT = P12;sbit RAC = P13;sbit

48、PLAY = P11; /录音/放音 按键sbit STOP = P21;/复位按键sbit P_R = P22;/录音/放音跳线/*ISD4003 SPI串行发送子程序 8位数据*/向语音芯片发送数据函数void spi_send(unsigned char isdx)unsigned char i;SS = 0;SCK = 0;for(i = 0;i < 8;i+) /先发低位再发高位,依次发送if(isdx&0x01) = 1) MOSI = 1;else MOSI = 0;isdx>>=1;SCK = 1;delay_us(2);SCK = 0;delay_u

49、s(2);void isd_stop(void) /发送STOP指令delay_us(10);spi_send(0x30);SS = 1;delay_ms(50);void isd_pu(void) /发送上电指令,延时50msdelay_us(10);SS = 0;spi_send(0x20);SS = 1;delay_ms(50);void isd_pd(void) /发送掉电指令delay_us(10);spi_send(0x10);SS = 1;delay_ms(50);void isd_play(void) /发送放音指令LED=0;spi_send(0xf0);SS = 1;voi

50、d isd_rec(void) /发送录音指令LED=0;spi_send(0xb0);SS = 1;void isd_setplay(unsigned char adl,unsigned char adh) /发送放音地址指令spi_send(adl); /发送放音起始低地址adh = adh|0xe0;spi_send(adh); /发送放音起始高地址SS = 1;void isd_setrec(unsigned char adl,unsigned char adh) /发送录音地址指令spi_send(adl); /发送录音起始低地址adh = adh|0xa0;spi_send(adh

51、); /发送录音起始高地址SS = 1;void isd_overflow(void) /芯片溢出警告函数while(0 = PLAY) LED = 0;delay_ms(300);LED = 1;delay_ms(300);unsigned char chk_isdovf() /检测芯片溢出函数SS = 0;delay_us(2);SCK = 0;delay_us(2);SCK = 1;SCK = 0;delay_us(2);if (1 = MISO)SCK = 0; /SS = 1; /关闭SPI通信端isd_stop(); /发送STOP指令return (1); /OVF为1 返回 1 else SCK = 0;SS = 1; /关闭SPI通信isd_stop(); /发送STOP指令return (0); /OVF为0 ,返回 0void sect_play(unsigned char adl,unsigned char adh) /放音函数isd_s

温馨提示

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

评论

0/150

提交评论