单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx

上传人:b****5 文档编号:7779500 上传时间:2023-01-26 格式:DOCX 页数:18 大小:119.83KB
下载 相关 举报
单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx_第1页
第1页 / 共18页
单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx_第2页
第2页 / 共18页
单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx_第3页
第3页 / 共18页
单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx_第4页
第4页 / 共18页
单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx

《单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx(18页珍藏版)》请在冰豆网上搜索。

单片机原理及应用期末课程设计基于单片机的公交车报站器设计.docx

单片机原理及应用期末课程设计基于单片机的公交车报站器设计

目录

第1节引言……………………………………………………………………………1

1.1公交车报站器设计概述…………………………………………………………1

1.2SPCE061A单片机简介…………………………………………………………1

1.3外扩存储器芯片简介……………………………………………………………1

1.4系统实现的主要功能……………………………………………………………2

1.5自动报站功能实现方案…………………………………………………………2

第2节系统主要硬件电路设计…………………………………………………………3

2.1硬件框图…………………………………………………………………………3

2.2主控板电路模块…………………………………………………………………3

2.2.1单片机工作电路及语音输出电路……………………………………3

2.2.2电源电路模块…………………………………………………………5

2.2.3存储器工作电路及下载线接口电路…………………………………5

2.2.4键盘显示电路模块……………………………………………………6

2.2.5无线收发电路模块……………………………………………………6

第3节系统软件设计…………………………………………………………………7

3.1系统主程序设计…………………………………………………………………7

3.2录音子程序设计………………………………………………………………13

3.3动态扫描显示子程序设计……………………………………………………15

第4节结束语…………………………………………………………………………16

参考文献…………………………………………………………………………17

基于单片机的公交车报站器设计

数理与信息工程学院08计算机专升本方莎娜

指导教师:

余水宝

第1节引言

随着城市交通的快速发展,公交汽车为外出的人们提供了方便快捷的服务。

而公交汽车的报站共识直接影响其服务的质量。

传统报站方式是由乘务人员进行人工报站,该方式因其效果太差和工作程度太大,在很多大城市已经被淘汰。

近年来,微机技术与各种语音芯片相结合,即可完成语音的合成技术,使得公交车报站器的实现成为可能,从而为市民提供了更加人性化得服务。

该公交车报站器的系统设计原理,提出了以61单片机为核心,控制SPR4096语音芯片电路以及LED数码管显示的硬件设计和软件设计方案。

该系统语音音质好,功能强,是提供公交服务的一种较好的手段。

1.1公交车报站器设计概述

集成有录音和语音提示功能的智能电子设备已经得到越来越多广泛的应用,比如电话的自动语音留言和提示功能、汽车的倒车提示、公交车和城市地铁的语音报站器、儿童玩具、智能门铃、节日礼品等等都集成有语音录放功能,目前实现语音录放功能一般都是通过集成语音芯片来实现的。

该设计就选用SPCE061A单片机,SPCE061A单片机是凌阳科技公司研发生产的一款性价比很高的十六位单片机,使用它可以非常方便灵活的实现语音的录放。

由于凌阳单片机强大的语音处理能力使得系统设计有所简化,外围电路较少;另外具有易学易用的效率较高的一套指令系统和集成开发环境。

在此环境中,支持环境C语言,可以实现C语言与凌阳汇编语言的互相调用,并且提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件。

1.2SPCE061A单片机简介

SPCE061A是凌阳科技公司研发的性价比很高的一款十六位单片机,使用它可以非常方便灵活的实现语音的录放。

该芯片拥有8路10位精度的ADC,其中一路为音频转换通道,并且内置有自动增益电路。

这为实现语音录入提供了方便的硬件条件。

两路10位精度的DAC,只需要外接功放SPY0030A即可完成语音的播放

1.3外扩存储器芯片简介

SPR4096芯片是一款性价比较高的512K*8位的高性能FLASH存储器,同时内嵌4K*8位的SRAM。

具有BMI(BusMemoryInterface)接口与SI(SerialInterface)接口。

SPR4096提供两种电源供电VDDI与VDDQ。

VDDI供电范围在2.25V到2.75V,是对内部的FLASH与逻辑控制器供电。

VDDQ供电范围在2.25V到3.6V,只对I/O口供电。

SPR4096的最大工作频率为5.0MHZ,最大读取电流为2mA,最大擦除、烧录电流为6mA。

图1-1设计方案图

1.4系统实现的主要功能

本设计完成的公交车报站器主要具有以下功能。

①可以设置上、下行路线。

②可以显示当前站数、时间和日期,并能进行对时间/日期设置。

③具有手动报站、自动报站两种哦那个功能。

④备有下载口,用户可直接下载更新站名和站数,更新快捷方便

1.5自动报站功能实现方案

自动报站是目前公交车报站器重要的发展方向之一,在此也考虑加入自动报站功能。

目前实现自动报站功能有多种方式,在此选择无线收发电路来实现。

该方式应用简单,报站准确。

第2节系统主要硬件电路设计

2.1硬件框图

本报站器以SPCE061A单片机为核心,划分为键盘输入、数码管显示、SPR4096存储、语音播放和无线收发电路几大部分,硬件框图如下图所示。

SPCE061A是整个设计的核心,主要负责控制数码管界面输出,键盘信息和无线信号的处理。

LED显示键盘模块主要起人机界面的作用,显示报站器的信息,同时向操作者提供操作界面。

无线收发电路的接入实现自动报站功能,从而无需人工操作。

图2-1单片机原理框图

2.2主控板电路模块

主控板电路包括:

单片机工作电路、电源电路、语音输出电路、存储器电路、下载线接口电路和近距离无线收发电路。

2.2.1单片机工作电路及语音输出电路

SPCE061A单片机的最小应用系统构成非常简单,只需在OSCO、OSCI端接石英晶体振荡器及谐振电容,在复位端接复位电路,在锁相环压控振荡器的阻容输入VCP端接上相应的电容、电阻后即可工作。

其它不用的电源端和接地端可接上104pF小电容和100μF的去耦电容,以提高抗干扰能力。

另外SPCE061A内置2路10位精度的DAC,只需要外接功放电路即可完成语音的播放,可以直接听到喇叭输出的声音。

图中的音频功放SPY0030也是凌阳公司的产品。

SPY0030仅需2.4V即可工作,其输出功率约700mW。

IOA0-IOA1

IOB0-IOB1

图2-2单片机工作及语音输出电路图

该部分程序主要完成放音操作,把获得的放音内容的地址送到SPCE061A中,完成放音。

下面给出的就是放音部分程序。

放音子程序:

PLAY:

ACALLPOWERUP;上电子程序

ACALLDELAY25;延迟子程序,至少延迟25ms

CLRP1.6;选中ISD4004

MOVPLAY2,#11100000B;存放SETPLAY命令

MOVA,PLAY0;送放音地址低8位

ACALLSEND;调用送地址子程序

MOVA,PLAY1;送放音地址高8位

ACALLSEND

MOVA,PLAY2;送SETPLAY命令

ACALLSEND

SETBP1.6

CLRP1.6

MOVPLAYING,#11110000B;送入放音指令

MOVAPLAYING

ACALLSEND

SETBP1.6

RET

POWERUP:

;送上电指令子程序

MOVPOWING,#00100000B;送入语音芯片上电信号

MOVA,POWUPING

CLRP1.6

ACALLSEND

SETBP1.6

RET

SEND:

;向ISD4004送指令,地址等的子程序

CLRMOSI

CLRP3.2

MOVR1,#8

OUTBIT1:

CLRP3.2;时钟下降

RRCA

MOVMOSI,C;输出1位

NOP

NOP

NOP

SETBP3.2;时钟上升沿到

NOP

NOP

NOP

DJNZR1,OUTBIT1

RET

2.2.2电源电路模块

61单片机的内核工作电压是3.3V,而I/O口电压可以是3.3V也可以是5V。

车载12V直流电压经过7805产生5V电压再经过SPY0029后产生3.3V电压分别给系统供电。

2.2.3存储器工作电路及下载线接口电路

下载口电路可单独对语音资源进行烧写,整机工作时通过SCK与SDA与单片机的IOB0和IOB1口相连,其中SPR4096的CF0~CF2接高电平,选择串行接口模式;CF7接低电平,选中FLASH。

下载线接口电路主要起到控制SCK、SDA的作用,完成对芯片的烧写。

2.2.4键盘显示电路模块

该模块提供人机界面作用,通过段码SGE、位选DIG和1*7KEY接口与主控板连接。

主要用于显示时间/日期、站数和提供设置操作界面。

其结构框图如下所示。

图2-3键盘模块结构框图

2.2.5无线收发电路模块

公交车报站器自动报站功能可以有效的减轻乘务人员的负担并能防止误操作,具有很强的应用价值。

目前采用的方法有很多,如GPS、门控自动报站等方式,这里我们采用无线收发电路实现。

收发电路由无线发射芯片TX-2B和无线接收芯片RX-2B组成。

无线发射电路安放在车站站牌里,当公交车行驶到靠近站台时,报站器接收到无线电信号就会自动播报当前车站站名,实现自动报站。

一片TX-2B可实现5路独立的无线电发射,若将多片TX-2B与多片RX-2B并联应用,仅需改变相配套的TX-2B/RX-2B电路外接ROSC的阻值,进而改变其基准频率,即可方便地实现10路、15路、20路甚至更多路的无线发射,这样就可以实现一个站台多路公交车自动报站的需要。

第3节系统的软件设计

同硬件设计一样,软件设计也是分模块进行的。

主要包括系统主程序、录音子程序模块、键盘扫描程序模块、时间/日期调整程序、动态扫描显示子程序模块等。

各部分程序由主程序调用,组成一个整体。

这里不一一举例,就说重点说系统主程序、录音子程序和动态扫描显示子程序。

3.1系统主程序设计

图3-1是系统总流程图。

首先需要进行系统初始化设置,初始化后就进入循环。

在这里通过判断相应的键值来进入各子程序。

N

Y

N

Y

图3-1是系统总流程图

系统程序清单:

SCLEQUP2.0

DATAEQUP2.1

RSTEQUP2.2

ORG0000H

LJMPMAIN;转主程序

ORG0003H;外部中断0中断服务程序入口地址

LJMPINTA;转外部中断0中断程序入口地址

ORG000BH;T0定时中断服务程序入口地址

LJMPT0-SEV

ORG0013H;外部中断1中断服务程序入口地址

LJMPINTB;转外部中断1中断服务程序

ORG001BH;T1定时中断服务程序入口地址

LJMPT1_SEV;转T1中断服务程序

ORG0030H;设置主程序起始地址=0030H

MAIN:

MOVSP,#60H;设置堆栈指针

MOVR7,#10H;系统初始化

MOVR0,#30H

MOVA,#0

MOV@R0,A

INCR0

DJNZR7,LOP

MOV35H,#01H;设置上电后的初始和日期

MOV36H,#01H

MOV37H,#06H

MOV38H,#00H

MOV3CH,33H

MOV3DH,34H

MOV3EH,#01H

MOV44H,#10H;LED位选择码

MOV45H,#20H

MOV46H,#40H

MOV47H,#80H

CLRRS1

CLRRS0

MOVR5,#00H

MOVR6,#00H

MOVR7,#06H

LCALLSET1302

SETBRS1

CLRRS0

MOVR0,#4AH

MOVTMOD,#10H;设置T0T1工作方式;定时器,工作方式1

MOVTH1,#3CH

MOVTL1,#0B0H;T1计数初值=3CB0H

MOVTH0,#40H

MOVTL0,#098H

MOVIP,#08H;设置中断优先级

MOVTCON,#40H;启动定时器T1

MOVIE,#8DH;开中断

LOP:

LCALLCHANGE;当前时间送显示缓冲区

LCALLDISPLAY;显示当前时间

SETBRS1

CLRRS0

MOV3AH,@R0

INCR0

MOV3BH,@RO;判断设置定时时间到否?

MOVA,3AH

CJNEA,#0,NT

MOVA,3BH;取当前时间与定时时间比较

CJNEA,#0,NT;判断定时时间到否?

NTM:

INCR0

INTR0

CJNER0,#59H,LOP

MOVR0,#4AH

SJMPBBX

NT:

MOVA,3BH

CJNEA,34H,NTM

MOVA,3AH

CJNEA,33H,NTM

DECR0

DECR0

MOV39H,@R0

INCR0

INCR0

INCR0

INCR0

CJNER0,#59H,NT1

MOVR0,#4AH

NTI:

MOVA,39H;若定时时间到

CJNEA,#05H,BBXX

LCALLYUYIN;发出语音提示

CLRP2.7;启动蜂鸣器发出“嘟嘟嘟”报警信号

SJMPLP-0

BBX:

SETBP2.7

SJMPLP-0

BBXX:

LCALLYUYIN

SJMPLP-0

LP-0:

JBP3.0,LP-6;扫描键盘,判断切换显示日期按键按下否?

LCALLDISPLAY

JBP3.0,LP-0

LP-1:

JNBP3.0,LP-1

SETBP2.7

MOV5EH,#06H

LP-1A:

MOV3CH,35H

MOV3DH,36H

LCALLCHANGE

LCALLDISPLAY;切换显示日、月

LP-1B:

JBP3.0,LP-1C

LCALLDISPLAY

JBP3.0,LP-1B

LP-1D:

JNBP3.0,LP-1B

SJMPLP-2

LP-1C:

MOVA,5EH

CJNEA,#00H,LP-1A

LJMPFUZHI

LP-2:

MOV5EH,#06H

LP-3A:

MOV3CH,38H

MOV3DH,#20H

LCALLCHANGE

LCALLDISPLAY;切换显示年份

LP-3B:

JBP3.0,LP-3C

LCALLDISPLAY

JBP3.0,LP-3B

LP-3D:

JNBP3.0,LP-3D

SJMPLP-4

LP-3C:

MOVA,5EH

CJNEA,#00H,LP-3A

LJMPFUZHI

LP-4:

MOV5EH,#06H

LP-5A:

MOV3CH,37H

MOV3DH,#0BBH

LCALLCHANGE

LCALLDISPLAY;切换显示星期

LP-5B:

JBP3.0,LP-5C

LCALLDISPLAY

JBP3.0,LP-5B

LP-5D:

JNBP3.0,LP-5D

LIMPFUZHI

LP-5C:

MOVA,5EH

CJNEA,#00H,LP-5A

LJMPFUZHI

LP-6:

JBP3.1,LP-6A

SJMPLP-6B

LP-6A:

LJMPLOP

LP-6B:

LCALLDISPLAY;切换显示当前时间

JBP3.1,LP-6

LP-7:

LCALLDISPLAY

JNBP3.1,LP-7

SETBP2.7

MOV3CH,32H

MOV3DH,#0FFH

LCALLCHANGE

LCALLDISPALY

JBP3.1,LP-7

LCALLDISPLAY

JBP3.1,LP-7

LP-8:

LCALLDISPLAY

JNBP3.1,LP-8

FUZHI:

MOV3CH,33H

MOV3DH,34H

LJMPLOP

CHANGE:

MOVA,3DH;将当前时间小时、分送显示缓冲区

PUSHA

ANLA,#0FH

MOV42H,A

POPA

SWAPA

ANLA,#0FH

MOV43H,A

MOVA,3CH

PUSHA

ANLA,#0FH

MOV40H,A

POPA

SWAPA

ANLA,#0FH

MOV40H,A

POPA

SWAPA

ANLA,#0FH

MOV41H,A

RET

YUYIN:

MOVA,3FH

CJNEA,#0,CC1

CLRP3.4

MOV3FH,#01H

CC1:

RET

3.2录音子程序设计

RECORD:

MOV3EH,#01H

RECORD1:

MOV3CH,3EH

MOV3DH,#0AFH

LCALLCHANGE

NEXTA:

LCALLDISPALY

JBP3.1,NEXTA

LCALLDISPLAY

JBP3.1,NEXTA

MOVA,3EH

CJNEA,#01H,TRY1

LJMPREC1

TRY1:

CJNEA,#02H,TRY2

LJMPREC2

TRY2:

CJNEA,#03H,TRY3

LJMPREC3

TRY3:

CJNEA,#04H,TRY4

LJMPREC4

TRY4:

CJNEA,#05H,TRY5

LJMPREC5

TRY5:

LJMPETB

REC1:

MOV58H,#40H

LCALLCLRP0

REC11:

LCALLRECM

CJNEA,#48H,REC11

LCALLCLRP0

INC3EH

SJMPNE1

REC2:

MOV58H,#48H

LCALLCLRP0

REC22:

LCALLRECM

CJNEA,#50H,REC22

LCALLCLRP0

INC3EH

SJMPNE1

REC3:

MOV58H,#50H

LCALLCLRP0

REC33:

LCALLRECM

CJNEA,#58H,REC33

LCALLCLRP0

INC3EH

SJMPNE1

REC4:

MOV58H,#58H

LCALLCLRP0

REC44:

LCALLRECM

CJNEA,#60H,REC44

LCALLCLRP0

INC3EH

SJMPNE1

REC5:

MOV58H,#60H

LCALLCLRP0

REC55:

LCALLRECM

CJNEA,#68H,REC55

LCALLCLRP0

INC3EH

SJMPNE2

NE1:

JNBP3.1,RECORD2

LCALLDISPLAY

JNBP3.1,NE1

SJMPNE1

NE2:

JBP3.1,ETB1

LJMPETB

ETB1:

LCALLDISPALY

JNBP3.1,NE2

SJMPNE2

RECORD2:

JNBP3.1,RECORDX

LJMPRECORD1

RECORDX:

LCALLDISPLAY

SJMPRECORD2

3.3动态扫描显示子程序设计

DISPLAY:

SETBRS1

SETBRS0

MOVR2,#04H

MOVR0,#40H

MOVR1,#44H

GO-ON:

MOVA,@R1

ADDA,@R0

MOVP1,A

LCALLDELAY1

INCR0

INCR1

DJNZR2,GO-ON

RET

DELAY1:

MOVR3,#14H

AGAIN:

MOVR4,#19H

DELAY:

DJNZR4,DELAY

DJNZR3,AGAIN

RET

结束语

随着国民经济的高速发展,城市公交事业发展的很快,很多城市都在实行无人售票,原来靠售票员报站的方式以不能满足实际需要。

如何实现报站的自动化是一个需要解决的问题。

本设计应用单片机技术和语音合成技术,鉴于传统公交车报站系统的不足之处,结合公交车辆的使用特点及实际营运环境,考虑到性价比和实用性设计的一种由单片机控制的公交车报站系统。

通过进站、出站播报站名及服务用语,为市民提供更人性化,更完善的服务。

通过这次期末课程设计,我感慨颇多,学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

的确,从选题到定稿,虽然只有两天时间,但是这短短的时间里,在很大程度上提高了自己的独立思考能力和对单片机的专业知识的了解,也深刻了解写一篇课程设计的步骤和格式,有过这样的一次训练,相信在以后我就不怕自己排版、设计,特别是格式方面。

因此感谢余老师给我们这次课程设计的机会,让我从中学到很多。

在课程设计过,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好等等。

通过这次课程设计之后,一定把以前所学过的知识重新温故。

同时,也感谢在这过程中帮助我的同学和老师。

参考文献

[1]张培仁,张志坚,高修峰等编.十六位单片微处理器原理及应用(凌阳SPCE061A).清华大学出版社,2005

[2]薛钧义等编.凌阳十六位单片机原理及应用.北京航天航空大学出版社,2003

[3]王庆利,刘奎,袁建敏.单片机设计标准教程.北京邮电大学出版社,2008

[4]张鑫主编.单片机原理及应用.电子工业出版社,2008,11

[5]求是科技.单片机典型模块设计实例导航.人民邮电出版社,2004

[6]王为青,程国钢.单片机KeilCx51应用开发技术.人民邮电出版社,2007

[7]黄俊.电力电子变流技术.机械工业出版社,2005

[8]王化祥.传感器原理及应用.天津大学出版社,2004

[9]温钢云,黄道平.计算机控制技术.华南理工大学出版社,2002

总体评价

得分

总体还不错,格式规范,态度端正,但拼凑痕迹很明显,给出的程序与单片机不配

15

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1