OK2单片机毕业设计参考格式.docx
《OK2单片机毕业设计参考格式.docx》由会员分享,可在线阅读,更多相关《OK2单片机毕业设计参考格式.docx(33页珍藏版)》请在冰豆网上搜索。
OK2单片机毕业设计参考格式
摘要
公交客车已经在各个城市普及,给人们的出行带来很大方便,传统的公交车是由乘务人员人工报站名,因工作强度大并且其效果也差,随着科学技术的日益发展和进步,无人售票公交车在很多城市开始使用,自动语音报站器也应运而生,客车自动报站器是安装在客车或公交汽车上,每到一个停车站点,能够向车内外人员报告车辆运行情况的自动化电子报话装置。
它在相当大的程度上免除了乘务人员沿途报站的麻烦,更加方便了人们的出行,同时直接提高了公交客车服务的质量。
本设计介绍了一种由单片机为控制核心的客车自动报站器,该设计采用AT89S51单片机和专用的语音控制芯片ISD4004以及键盘显示电路构成客车自动报站器系统的硬件电路,文中详细设计了AT89S51单片机的基本电路、ISD4004驱动电路、功能键电路和显示电路的实现方法,采用C语言和汇编语言进行了客车自动报站器的软件设计,完成了系统主程序流程图设计、键盘扫描子程序设计、显示子程序设计和语音播放子程序设计。
本设计实现了公交车自动报站器的语音报站和站号显示功能,进站、出站只需由司机按下功能键便完成自动播报站名及服务用语,为市民提供了更人性化,更完善的服务;系统具有稳定可靠、抗干扰性好、性价比高等特点。
关键词:
自动报站器;51单片机;ISD4004语音芯片;LED数码管
Abstract
Buseshavebeenpopularineverycity,forpeopletotravelagreatconvenience,thetraditionalbusisreportedthenameofthestationbytrainmanmanually,becauseofworkintensityanditseffectsarepoor,withtheincreasingdevelopmentandprogressofscienceandtechnology,Automatedcollectionbusstartedinmanycities,automaticspeechstationsbroadcastingdevicehaveemerged,busstopreporterisinstalledinthebusorpublictransportationvehicle,andserviceinvariouscities,eachtoaparkingsite,reporttointernalandexternalpersonnelofthecar'svehicleoperationofautomatedequipmentnewsletter.Itistoalargeextent,eliminatesthetrainman’stroubletoreportedalongtheway,moreeasyforpeopletotravel,whiledirectlyimprovingthequalityofpublictransportbusservice.
Thisdesignintroduceasingle-chipmicrocomputerascentral-controlofthebusstopreporter,thedesignusesAT89S51microcontrollerandadedicatedcontrolchipISD4004voiceandkeyboardanddisplaycircuitrybusstopreporterhardwarecircuit,thispaperdesignedAT89S51SCMbasiccircuit,ISD4004drivecircuit,functionkeyscircuitanddisplaycircuitrealizationmethodindetail,usingClanguageandassemblylanguageforabusstopreportersoftwaredesign,completedthemainprogramflowchartofsystemdesign,designofthekeyboardscansubroutine,designofthedisplaysubroutineanddesignofthevoicebroadcastsubroutine.
Thedesigncometrueofthebusstopreporter'sspeechstationsbroadcastingandthestationnumberdisplay,pullinandoutbound,thestationonlybythedriverpressingthefunctionkeywillcompletetheautomaticbroadcaststationnamesandserviceterms,toprovideamorepersonalizedandbetterservices;systemhasagoodstableandreliable,goodanti-interferenceandgoodcostperformance.
Keywords:
Automaticstations;51SCM;ISD4004voicechip;LEDdigitaltube
第1章绪论
1.1自动报站器的来源与意义
如今公交客车已经在各个城市普及,给人们带来很多方便,在公交车上安装自动报站器更加方便了人们的出行,尤其是对不熟悉公交线路的乘客,同时在相当大的程度上免除了乘务人员沿途报站的麻烦。
因此,公共汽车的报站直接影响服务的质量。
随着科学技术的日益发展和进步,无人售票公交车在街上多起来了,自动语音报站器被广泛使用,传统由乘务人员人工报站的方式,因其
鉴于传统公交车报站系统的不足之处,结合公交车辆的使用特点及实际营运环境,本文拟设计一种由单片机控制的公交车自动报站器。
公交车自动报站器的设计主要是为了弥补改变传统语音报站器必须由乘务员报站的落后方式,进站、出站只需由司机按下功能键完成自动播报站名及服务用语,为市民提供更人性化,更完善的服务。
1.2自动报站器的发展现状
公共汽车行驶在现代文明程度高的市区,它是一道流动的风景线,因而对整车外形乃至色彩都有更高的要求。
作为公共汽车还要求有醒目和减少乘务人员劳动强度的电子报站器,电子显示路牌,无人售票装置,前后电视监视系统等新技术的采用也将越来越普及。
作为一个城市的公交企业,它既要代表政府体现当地城市的形象,又要尽一切力量减少政府投资,创造良好的社会效益和经济效益。
而传统的公交运营系统的装备和管理模式较难达到这两者的完美结合。
随着科学技术的发展,公交应用系统
目前公交车报站有三种方式。
一种是利用GPS全球卫星定位系统的公交车报站系统。
GPS系统是由美国
GPS自动语音报站器具有一下特点:
a.
b.
c.
d.
e.
目前在美国部分城市GPS卫星定位系统已经投入使用,国内也有此类产品的研制开发,其功能强大,系统稳定,但其投资昂贵,尤其是一些中小城市无法承受。
国内GPS语音自动报站系统处于试验阶段仅有部分发达城市有试验线路采用GPS语音自动报站器。
第二种是基于MP3的自动报站器。
随着城市的快速发展,公交线路不时地在进行调整,站名也随之进行变化,
因而使研制一种新型汽车报站器显得极为重要。
基于MP3报站器可非常方便地更换播放内容,并可播放高品质的音乐基于MP3的新型公交车自动报站器系统以MP3格式作为语音存储方式,具有音质好、抗干扰、功能强、使用简便等一系列优点。
采用单片机作为主控CPU及解码MP3数据,实现对报站信息播放、点阵字符显示、文件存储以及用作优盘功能时USB与PC机联机的控制。
第三种是基于CPLD的公共汽车智能语音报站系统。
采用复杂可编程逻辑器件(CPLD)和语音芯片ISD2560组成的智能语音报站系统,由于
因此系统硬件电路简单、调试和升级方便、可靠性高、实用性强。
另外一种是人工报站的方式,这种方式离不开乘务人员,工作强度要求高,且目前主流的是无人售票车,人工报站的方式已经基本被淘汰。
第2章客车自动报站器设计方案
客车自动报站器工作原理
为了实现城市公交车的自动报站,本文设计了一套低廉、高性能的城市公交车自动报站器系统。
系统由51单片机控制整个系统的录音、放音与显示部分,首先是键盘输入,当键盘上有键按下时,通过键扫描程序确定按下的键并将键号送单片机,单片机调用对应按键子程序,同时继续进行键扫描,整个过程发挥了报站器的基本功能。
即客车每到一站,由司机按下放音键,语音电路自动工作,播报对应的到站信息;并能通过通信接口电路,向语音存储电路更新语音信息。
也就是说客车报站器的设计主要包括:
(1)键盘输入部分;
(2)语音录放部分;(3)LED显示部分;(4)电源部分。
客车自动报站器的设计方案
服务于各城市的,每到一个停车站点,都需要报站名;本设计就是针对城市的公交客车设计一款基于单片机系统的客车自动报站器,该客车报站器由单片机做控制器,主要由语音存储电路、语音驱动电路、功能键电路、显示电路、通信接口电路等组成;实现客车每到一站,由司机按下功能键,语音电路自动工作,播报对应的到站信息;并能通过通信接口电路,向语音存储电路更新语音信息。
总体结构原理框图如图2.1所示。
图2.1客车自动报站器总体结构原理框图
本次设计的主控制芯片选用的是AT89S51,键盘部分是以独立式按键方式构成的键盘电路,设置七个按键对语音录放进行控制,显示部分选择LED数码管进行站号和工作状态的显示,在对键盘及显示电路进行设计时需要两个锁存器:
①74LS273是一种带清除功能的8D触发器;
②74LS244缓冲器也就是输入锁存器;
在语音报站部分,即语音信号的处理上选择的是ISD4004语音芯片,语音功率放大部分选择LM386语音功放芯片。
系统具有如下功能:
①可重复性的预报站名、报站名;
②可设置上、下行路线;
③音量可调;
④在语音报站名的同时,用LED显示站号和上、下行状态。
本系统采用51单片机作为CPU,控制ISD4004语音芯片进行语音录放和站名播报等功能,同时通过8段码LED显示器显示站号和系统工作状态,键盘主要用于上、下行报站,播放文明宣传语以及调整上、下行状态和调节音量。
第3章客车自动报站器硬件设计
单片机的选择及简介
AT89S51是美国ATMEL公司生产的低功耗,高性能CMOS8位单片机,
管脚图如图3.1所示:
图3.1AT89S51管脚图
引脚功能如下:
P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3.2所示。
表3.2P3口第二功能
端口引脚
第二功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
(外中断0)
P3.3
(外中断1)
P3.4
T0(定时/计数器0外部输入)
P3.5
T1(定时/计数器1外部输入)
P3.6
(外部数据存储器写选通)
P3.7
(外部数据存储器读选通)
单片机最小系统设计
51系列单片机最小系统一般应该包括:
单片机、晶振电路、复位电路。
本次设计首先需要搭建最小系统的硬件电路。
晶振电路
如果说CPU是单片机的心脏,那么石英晶体震荡器就相当于心脏起搏器。
单片机系统的各部分都要以时钟频率为基础,才能在CPU指挥下有条不紊一拍一拍的协调工作。
AT89S51单片机的时钟信号通常用两种电路形式得到:
内部振荡方式和外部振荡方式。
如图3.2所示。
A:
内部时钟电路B:
外部时钟电路
图3.2晶振电路
本文采用的是内时钟方式。
复位电路
复位是使CPU和系统其他部件处于一个确定的初始状态,并从这个初始状态开始工作。
当MCS-5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。
复位电路
根据应用的要求,复位操作通常有两种基本形式:
上电复位和上电或开关复位。
上电复位如图3.3所示。
图3.3复位电路
最小系统基本电路
相应的最小系统电路图,如图3.4所示。
图3.4最小系统电路图
这里设计一个发光二极管,连接在P1.0口,作为简单的工作指示。
当单片机的P1.0输出低电平(0V)时,有正向工作电流流过发光二极管,发光二极管就亮;相反,当P1.0输出高电平(5V)时,
电源电路
本文选用7805三端集成稳压块将车载DC12V直流电压变压成DC5V,作为单片机芯片及各种驱动电路的供电电源。
电路图如图3.5所示。
图3.5DC5V稳压电源电路图
在语音电路部分选用ISD4004语音芯片,ISD4004的工作电压为3V,所以需要一个DC3V的稳压电源,这里设计一个开关电源,作为其供电电源。
电路图如图3.6所示。
图3.6DC3V开关电源电路图
键盘电路
在本文设计的系统中,为了控制系统的工作状态,系统中设计有功能键盘。
在单片机应用系统中,按键或键盘的每个键都赋予特定的功能,它们通过接口电路与单片机相连接,通过软件了解按键的状态及键信息的输入,并转去执行该键的功能处理程序。
键盘的接口方法有多种,但键输入过程与软件结构基本是一样的。
对一组键或键盘上的每一个键都有一个编号,CPU可以采用中断方式或是查询方式了解有无键输入,并检查是那个键按下,将键号送入累加器A,然后通过键号转移指令执行该键的功能程序。
消除键抖动
硬件消抖是可以采用简单的R-S触发器或单稳电路构成。
软件消除键抖动的方法是用延时来躲过暂态抖动过程,执行一段大于10ms的延时程序后,在读取稳定的键状态。
本设计中采取软件去抖动方法。
按键方式
1、独立式键盘
独立式按键是指
独立式按键接口电路配置
故在按键数量不多时,采用这种见结构。
2、行列式键盘
行列式键盘又叫矩阵键盘。
用I/O口线组成行、列结构,
在键数量较多时,采用行列式键盘可以节省I/O口线。
因为本次设计用到的按键比较少,在设计中采用独立式按键。
按键的设置
系统中设有7个功能键,依次为:
K0:
上、下行选择键,按下此键,选择下行方向或上行方向的站名顺序。
K1:
特殊语音键,播报服务用语,播报安全提示语。
K2:
报站键,到站按下此键,播报车辆到站时的服务用语。
K3:
重复键,按下此键,将重复前一按键的播报内容。
K4:
音量调节键。
音量设定为高、中、低三档,开机时设定为中档,按下此键,音量变为高档,再按则为低档,再按又回到中档,如此循环。
K5:
快进键,按下此键,则向前越过一个站名,按下n次,则越过n各站名。
K6:
快退键,按下此键,则向后越过一个站名,依此类推。
缓冲器的选择及特点
74LS244是一种三态输出的八缓冲器和线驱动器,
管脚图如图3.7所示。
图3.774LS244管脚图
管脚功能如下:
电路连接
根据如上介绍,设计的按键接口电路如图3.8所示。
图3.8按键接口电路
语音驱动电路
语音电路由MIC放大电路、语音电路、模拟开关电路、音频功率放大电路等组成,其设计非常重要,其中语音芯片的选择很关键,其音质的优劣决定了报站器的语音效果,其功能的强弱、接口与微控制器的兼容性都对电路的设计有很大影响。
本文选用美国ISD公司生产的高保真录放一体化的单片固态语音集成电路ISD4000系列中的ISD4004语音芯片。
ISD4004语音芯片是由美国ISD公司推出的新产品。
语音芯片
1、语音芯片的特点
语音芯片应用美国ISD公司制造的语音芯片ISD4004来实现简单的双声道立体声语音录放系统,
2、引脚描述
ISD4004语音芯片引脚图如图3.9所示。
图3.9ISD4004语音芯片引脚图
引脚功能如下:
电源:
地线:
同相模拟输入(ANAIN+)
音频输出(AUDOUT)
3、SPI(串行接口)
ISD4004工作于SPI串行接口。
SPI协议是一个
详见表3.3。
表3.3SPI控制寄存器功能表
位
值
功能
位
值
功能
RUN
=
=
1
0
允许/禁止功能
开始
停止
PU
=
=
1
0
电源控制
上电
掉电
P/-R
=
=
1
0
录/放模式
放
录
IAB
=
=
1
0
操作是否使用指令地址
忽略输入地址寄存内容
使用输入地址寄存内容
MC
=
=
1
0
快进模式
允许快进
禁止
P15-P0
A15-A0
行指针寄存器输出
输入地址寄存器
音频功放芯片
本设计选用LM386作为音频功放芯片,LM386是音频集成功率放大芯片,该芯片具有自身功耗低、电压增益可调整、电源电压范围大、外接元件少和总谐波失真小等优点,广泛应用于录音机和收音机之中。
LM386音频功放芯片管脚图如图3.10所示。
图3.10LM386管脚图
引脚功能如下:
语音驱动电路
根据上述ISD4004芯片的介绍,设计出语音驱动部分的电路图,如图3.11所示。
图3.11语音驱动电路原理图
其中SPI串行口协议的I/O分配表如表3.4所示。
表3.4SPI串行口协议的I/O分配表
P3.2
INT
P1.3
RAC
P1.4
SS
P1.5
MOSI
P1.6
MISO
P1.7
SCK
显示电路
本次设计根据设计要求设置了显示器,这里设计4个共阳极LED数码管组成显示器,以显示站号和简单工作状态指示。
四个数码管中,个位和十位显示站号,显示范围为0~99;百位显示上、下行状态指示,当下行时,数码管显示“1”;当上行时显示“0”;千位上显示录放音指示,录音时显示“0”,播放报站语音时显示“1”。
LED简介
LED数码管即发光二极管,由8个发光二极管组成“8”字形的LED显示器,也称数码管。
在设计中采用的是8段LED数码管。
8段数码管的引脚图如图3.12所示。
图3.128段发光二极管示意图
数码管结构及工作原理
本设计LED显示器采用动态显示方式,全部数码管共用一套段码驱动电路,
段码的值与数码管公共引脚的接法(共阴极和共阳极)有关。
8段数码管显示十六进制数的数码值在表3.6中列出(仅列出共阳极段码)。
本设计采用共阳极接法。
表3.68位十六进制数段码表
数字
共阳极段码
数字
共阳极段码
0
C0H
9
90H
1
F9H
A
88H
2
A4H
B
83H
3
B0H
C
C6H
4
99H
D
A1H
5
92H
E
86H
6
82H
F
8EH
7
F8H
灭
FFH
8
80H
为了存放段码,通常要在单片机的内部RAM中设置一个显示缓冲区,存储单元个数与LED显示器的位数相同,一个单元对应一个显示位。
本设计中有4个数码管,显示缓冲区就应当有4个单元,
表3.7数码管与LED显示位对应关系
LED3
LED2
LED1
LED0
7CH
7BH
7AH
79H
驱动器的选择及特点
74LS273是一种带清除功能的8D触发器,1D~8D为数据输入端,1Q~8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。
管脚图如图3.13所示。
图3.1374LS273管脚图
引脚功能如下:
电路连接
根据设计的要求,设计的显示电路,采用动态显示、软件译码,如图3.14所示。
图3.14显示电路
第4章客车自动报站器软件设计
客车自动报站器的软件设计包括:
主程序设计、键盘程序设计、显示程序设计、语音录放程序设计。
主程序设计
电路上电后,首先完成程序的初始化,初始化即先清理数据存储器,设置中断,初始化串口和定时计数器。
随后查询按键状态,进入系统待机状态。
如果有按键按下,则转去执行该按键指向的工作程序。
按键包括报站键、快进键、快退键、特殊语键、重复键、上下行选择键以及音量调节键。
在待机状态下,如果报站键首次被按下,程序将首先判断是去还是回,即上行还是下行,并点亮相应的指示灯,自动读出第一站的放音内容,站号显示。
如果不是首次按下,则首先判断当前站号,并以该站号为依据获得存放该站放音内容的首地址;然后调用放音子程序,读入前面获得的本站放音内容首地址,开始报站。
每一句放音完毕后,ISD4004的中断引脚(25脚)会自动送一低电平信号。
在硬件设计中,该引脚与单片机的P3.2(INT0)连接,因此会引起一次中断,在中断子程序中有一个计数器记录中断次数,从而判断何时当前一站结束,站号加一并刷新显示。
快进键按下后,程序放音内容转向下一站;快退键按下后,则使程序放音内容转向上一站,相应的站号显示也将随之刷新;特殊语键按下后,程序转向执行特殊语放音(譬如“拐弯请注意”等语句);重复键按下,将重复前一按键的播报内容。
音量调节键将循环调节设置的三档音量,默认为中档。
主程序流程图如图4.1所示。
图4.1主程序流程图
键盘程序设计
为使CPU能正确地读出键盘的状态,对每一次按钮只作一次响应,就必须考虑如何去除抖动,常用的去抖动的办法有两种:
硬件办法和软件办法。
本次设计采用的是软件消除抖动的方法。
软件法其实很简单,就是在单片机获得键盘被按下的信息后,不是立即认定按键已被按下,而是延时10毫秒或更长一些时间后再次检测,如果按键仍是按下的,说明键键的确是被按下了,这实际上是避开了按钮按下时的抖动时间。
而在检测到按钮释放后再延时5~10个毫秒,消除后沿的抖动,然后再对键值处理。
键盘扫描程序流程图如图4.2所示。
图4.2键盘扫描程序流程图
显示程序设计
本设计LED显示器采用动态显示方式,显示时通过位控信号,采用扫描的方法逐位的循环点亮各位数码管。
动态显示虽然在任意时刻只有一位数码管被点亮,但是由于人眼具有的视觉残留效应,看起来与全部数码管持续点亮的效果完全一样。
LED显示器动态显示程序的开始要建立显示缓冲区首址,然后位控码初值,查表取字形代码,延时1ms,转向下一缓冲单元后判断是否到最高位,到则保存位控码,不到,向显示器高位移位,继续扫描。
为了保证先显示亮度,在扫描过程中,应在每一位数码管上都驻留一段时间(约1ms),以使数码管稳定的点亮一段时间,以保证其显示亮度。
为此在扫描过程中,位与位之间要加进一段时间延迟。
LED显示程序流程图如图4.3所示。
图4.3LED显示程序流程图
语音录放程序设计
根据ISD4004的硬件部分原理图及上电时序的分析,编写出语音录放程序并绘