带语音报时功能的万年历的设计.docx
《带语音报时功能的万年历的设计.docx》由会员分享,可在线阅读,更多相关《带语音报时功能的万年历的设计.docx(55页珍藏版)》请在冰豆网上搜索。
带语音报时功能的万年历的设计
诚信申明
本人申明:
我所呈交的本科毕业设计(论文)是本人在导师指导下对四年专业知识而进行的研究工作及全面的总结。
尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中创新处不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京化工大学或其它教育机构的学位或证书而已经使用过的材料。
与我一同完成毕业设计(论文)的同学对本课题所做的任何贡献均已在文中做了明确的说明并表示了谢意。
若有不实之处,本人承担一切相关责任。
本人签名:
年月日
带语音报时功能的的万年历的设计
孟超
电子信息工程专业0706班学号*********
指导教师鲁小利讲师
摘 要
万年历是现代人类生活中必不可少的工具,带语音功能的万年历在电子万年历多功能化发展的今天更是必不可少的一个方向。
语音万年历有突出的播报时间功能,它被广泛用在生活中的各种领域。
本设计就是从日常生活着手,通过对语音万年历的设计,让我对单片机已经进入到我们生活的每个领域有了更深的了解。
本系统采用凌阳公司的SPCE061A单片机为控制核心;语音报时系统使用凌阳单片机本身具有的特色语言功能。
本设计从语音万年历设计原理、设计方案着手,详细介绍了系统的硬件设计、软件设计和调试。
在语音万年历的设计中,要处理好:
语音的识别,D/A(数/模)的转换,人机接口,程序的设计。
语音的识别技术和D/A(数/模)影响到时间的正确播报,播报时间和调整时间的关键是人机接口。
关键词:
实时万年历 SPCE061A单片机 语音报时
TheDesignoftheSpeechCalendar
Abstract
Calendarisanessentialtooltothemodernhumanlife.Thecalendarwithspeechfunctionisanindispensabledirectioninthedevelopmentofvariousfunctionsofelectroniccalendartoday.Speechcalendarhaveprominentbroadcastingtimefunction,whichiswidelyusedinvariousfieldsoflife.Thisdesignisstartingfromthedailylife.DesigningthespeechcalendarletmehaveadeeperunderstandingofSCMwhichhasbeingcomingtooureveryareasoflife.
ThesystemusesSPCE061Aofthesunpluscompanyascontrolcore.Phonetictimesystemsusethecharacteristicspeechfunctionofsunplusmicrocontrolleritself.Thedesignisfromthestartthatprincipleofdesign,designschemeofspeechcalendartointroduceinhardwaredesign,softwaredesignandcommissioningofthesystemindetail.Inthedesignofspeechcalendar,weshoulddealwithspeechrecognition,D/A(number/die)conversion,man-machineinterfaceandtheprogramdesign.SpeechrecognitiontechnologyandD/A(number/die)affectthecorrecttimebroadcasts,andthekeyofbroadcasttimeandadjusttimeisman-machineinterface.
Keywords:
CalendarSPCE061ASpeechFunction
前 言
单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。
由于单片机集成度高、功能强、可靠性高、体积小、功耗地、使用方便、价格低廉等一系列优点,目前已经渗入到人们工作和生活的方方面面,几乎“无处不在,无所不为”。
单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机得到了蓬勃的发展,功能也日趋完善。
它集成的资源越来越多,内部资源也存储的日益丰富,用户无需扩充资源即可完成项目的开发,小巧精美,开发简单,系统稳定性也越来越好。
其抗干扰能力的不断加强,使之更适合工业领域的控制。
具有了更广阔的市场前景。
随着人们对事物要求越来越高,单片机也发生了巨大的变化,尤其是应用软件技术上,从汇编语言到C语言开发,大大提高了语言的结构性、可读性,也方便了跨平台的移植操作。
第1章课题研究价值
第1.1节选题背景
近些年来我们的生活中广泛出现带语音功能的电子器件和电子设备。
语音万年历是现在电子万年历发展的必然趋势,把语音加入到万年历中实现时间的语音播报功能。
本设计基于凌阳61A单片机的语音报时系统,利用凌阳61A板是一个本身带有语音识别、播放功能的单片机来进行时间播报。
以及用SPLC501液晶显示器来显示当前时间、农历、日期、星期、闹铃开关。
单片机的应用能实现各种控制策略和算法。
具有功耗低,体型小,低成本,功能好的特点,在国内受到广大用户的重视和广泛的应用。
伴随着单片机集成化程度的提高,目前单片机已经具备了数字信号处理的功能。
SPCE061A是由信号处理器芯片以及u’nSPTM16位微控制器组成内核的16位单片机,模块式集成结构,片内集成了2KB的RAM、32KB的Flash、DAC、ADC和并行I/O等。
第1.2节本设计的工作安排
本设计是基于凌阳单片机,系统设计是以单片机的语音电子万年历为基础。
利用凌阳单片机的方便、处理速度快、具有语音功能等优点,结合了SPLC501的强大的显示功能,设计出的功能多、精度高的语音电子万年历。
设计安排如下:
第一章提出设计原理和方案。
第二章按设计方案进行语音电子万年历的硬件设计,电路原理图的各模块利用Prote1199绘制。
第三章深入研究语音电子万年历的功能。
画出各部分的程序流程图,据流程图编写源程序。
第四章硬件测试和软件调试。
源程序调试通过集成开发环境IDE来进行。
第五章总结全文,写出设计体会和设计不足的地方。
简述对本设计用途的前景。
第2章语音电子万年历的原理和方案
第2.1节设计原理
带语音的电子万年历要具备的以下功能:
(1)时间和日期的语音播报。
(2)日期、星期、时间、农历、闹钟可以在SPLC501液晶模组上面显示。
(3)能够整点报时。
(4)具备闹钟功能。
2.1.1万年历功能
万年历功能的设计利用SPCE061A芯片的定时/计数器和时钟频率。
16位节后的微控制器能够为语音电子万年历提供一个频率稳定的方波信号(32768Hz),另外其特有的校正电容还可以进行温度补偿,来提高稳定度和频率精确度,保证了语音万年历的走时准确及稳定。
系统工作时,整个系统的时基信号是秒信号产生器,秒信号器采用60进制计数,它能将标准秒信号送入秒信号器。
每60秒发出一个分脉冲信号,该信号会作为分计数器的时钟脉冲。
分计数器也采用60进制计数器,每60分钟,发出一个时脉冲信号,此信号会被送到时计数器。
时计数器采用24进制计数器,能对一天24小时进行累计,每累计24小时发出一个天脉冲信号。
周计数器采用7进制计时器,能对一周7天进行累计,每累计7天会发出一个周脉冲信号,该信号将被送到周计数器。
由中断程序控制年计数器,年计数器用365进制或366进制计数,对年进行累计。
显示电路将年、星期、时、分、秒计数器的输出状态发送到SPLC501液晶显示器来显示。
2.1.2语音输出功能
音频输出利用外接喇叭和SPY0030A芯片的语音输出功能进行。
凌阳公司专门开发了SY0030A芯片用于语音信号放大。
插针外接喇叭和语音输出接口J3,通过DAC输出引脚22或21经SPY0030A芯片语音集成放大器进行放大输出。
第2.2节设计方案
经分析,本设计采用模块结构来实现。
语音电子万年历的组成主要有:
SPLC501液晶模组、压缩编码模块和D/A(数/模)转换模块、语音输入与A/D(模/数)转换模块、输入按键信息模块、系统初始化模块。
能够实现定时功能,调整和单独播报时、分和年、月、日,以及复位键对设定值的清零操作。
各模块的功能如下:
(1)SPLC501液晶模组:
能够显示当前的时间、日期、农历、星期、闹钟。
(2)压缩编码模块:
数字信号输入,进过压缩函数处理,压缩编码输出。
(3)D/A(数/模)转换模块:
数字信号输入,D/A(数/模)转换,模拟信号输出。
(4)语音输入及A/D(模/数)转换模块:
语音信号输入,A/D(模/数)转换,数字信号输出。
(5)输入按键信息模块:
先进行输值,等待系统中断并做出中断处理,把调用相应的处理程序进行输出。
(6)系统初始化模块:
输入子小模块和一些变量,赋初值处理,把模块的初始状态和变量输出。
第3章语音电子万年历的硬件设计
第3.1节系统硬件结构
3.1.1万年历功能
语音电子万年历的系统结构如下图,整个系统的控制中心是61板,它能负责液晶显示的驱动;年、月、日、星期以及时间的计算;控制键盘扫描;液晶显示模组能够显示:
功能选择菜单和时间日期的调整菜单以及显示当前的时间、日期;播报当前的日期或者时间。
61板
图3.1 带语音功能电子万年历的系统结构图
硬件连接:
IOA的高八位以及IOB的4、5、6连接液晶模组。
还用到了语音输出模块以及三个按键。
喇叭
图3.2 带语音功能电子万年历的电路连接图
3.1.2按键功能的描述
带语音功能的电子万年历的按键功能介绍如下:
首界面:
(1)按KEY1键:
进入功能选择界面。
(2)按KEY2键:
播报当前的时间。
(3)按KEY3键:
播报当前的日期。
(4)KEY2、KEY3键同时按下:
控制闹钟的开与关。
进入功能选择菜单,KEY1:
确定键,KEY2:
下翻键,KEY3:
上翻键。
分别显示以下选项:
(1)时间日期调整。
(KEY1:
确定键,KEY2:
加一键,KEY3:
减一键,液晶显示器上闪烁的部分为正在调整的选项,设置完成后,按KEY1自动退出设置界面。
)
(2)闹钟设置。
(KEY1:
确定键,KEY2:
加一键,KEY3:
减一键,液晶显示器上闪烁的部分为正在调整的选项,设置完成后,按KEY1自动退出设置界面。
)
(3)秒表功能。
(KEY1:
退出键,KEY2:
开始/暂停键,KEY3:
清零键,秒表停止运行时KEY3有效。
)
(4)返回。
(KEY1:
确认键,按下后,系统回到显示界面。
)
图3.3 按键功能结构图
第3.2节系统硬件结构
SPCE061A芯片内部集成了FLASH(闪存)、SRAM(静态内存)、ICE(在线实时仿真/出错器)、通用I/O端口、ADC(模拟数字转换器)、DAC(数字模拟转换器)输出、定时器/计数器、CPU时钟锁相环(PLL)中断控制、SIO(串行输入输出接口)、UART(同步串行输入输出接口)、低电压监测/低电压复位模块。
u`nSP的核心由总线、寄存器组、ALU算数逻辑运算单元、堆栈及中断系统等组成。
3.2.1SPCE061A的性能简介
(1)工作电压为3.0-3.6V,VDDH为3.0-5.5V。
(2)16位微处理器。
(3)CPU时钟:
0.32-49.152MHz.
(4)内置32KFLASH。
(5)内置2KSRAM。
(6)晶体振荡器。
(7)可编程音频处理。
(8)32位通用可编程输出、输入通道。
(9)两个10位DAC输出通道。
(10)可播放压缩的语音资源。
(11)内置麦克风放大器,并有自动增益控制功能
(12)内置在线仿真电路接口。
3.2.2SPCE061A的引脚
实物图如下:
图3.4 SPCE061A的实物图
结构图如下:
图3.5 SPCE061A的引脚图
3.2.3SPCE061A内核的结构
SPCE061A内核由总线、寄存器组、算数逻辑运算单元(ALU)、中断体统和堆栈等组成。
ALU功能特色:
(1)16位基本算数逻辑运算。
(2)带移位操作的16位算数逻辑运算。
3.16*16位的乘法运算和内积运算。
(1)算数逻辑运算器
ALU前面串接一个SHIFTER移位器,可以使操作数先进行移位处理,再经ALU进行逻辑运算。
移位包括:
算数右移、逻辑右移、逻辑左移、循环右移以及循环左移。
因此,SPCE061A指令系统里有一组能完成移位和逻辑运算操作两项功能的复合式移位算术逻辑操作指令。
(2)片内存储器结构
2K的SRAM,地址范围:
0x0000-0x07FF,其中0x0000-0x003F地址可直接寻址,速度为2个时钟周期,0x0040-0x07FF速度为3个时钟周期。
堆栈是RAM按照“先进后出”原则存储数据的工作方式。
用于中断处理断电的保护及返回和子程序调用及返回,最大容量为2K。
注意,系统复位,SP初始化:
0x07FF,每执行PUSH一次,SP指针减一。
32K闪存容量的SPCE061A是一个用闪存代替ROM的MTP芯片。
可用闪存存储程序。
用户通过向P-Flash-Ctrl单元写入0xAAAA;激活闪存存取功能,进而访问闪存。
向P-Flash-Ctrl单元写入0xAAAA擦除页的内容。
而写入0x5533,对闪存变成。
中断、ICE的单步跟踪等任何其他程序都不能打断。
闪存控制器必须让闪存处于编程状态。
。
若其他进程插到当前执行队伍,闪存状态改变,编程和擦除页操作不能继续进行。
另外,用户必须在编程前擦除页内容。
第一页地址范围为:
0x8000-0x80FF,最后一页地址范围为:
0xFF00-0xFFFF.页大小0x100。
系统保留0xFC00-0xFFFF范围内的地址,用户不要用此范围内地址。
32K内嵌式闪存划分成128页,CPU运行正常时均可通过程序写入或擦除。
上电后,芯片就处于读存储单元状态,操作与SRAM相同。
(3)输入/输出接口
输入端口从外界接收键盘信号、检测信号等开关量信号。
输出端口向外界输送产生的处理结果、控制命令、显示信息、驱动信号等。
u`nSP内有串行和并行两种方式的I/O口。
串行口传输速率较低但可以节省大量的电路成本,与串行口相比,并行口线路成本高,但传输速率也高。
SPCE061A有A口和B口两个16位通用并行I/O口,他们每一位都可以通过编程单独定义为输入口或输出口。
A口的I0A0-I0A7当输入口时有唤醒功能,当输入电平变化时CPU中断。
CPU的睡眠模式可以降低功耗,需要时按键唤醒,使之进入工作状态,广泛用于电池供电、低耗能的场合。
SPCE061A的I/O口每一位都可以被单独定义,用于输入、输出数据。
对某一位设定包括三个基本项:
数据向量、属性向量、方向控制向量。
三个端口内每个对应的组位合起来形成一个控制字,来定义输入状态和方式。
每个对应的状态下,I/O端口性质电路都是内置的,实际电路中不需再接。
P_IOA/B_Buffer(读)
上拉
P_IOA/B_Dater(写)
数据寄存器和逻辑控制
P_IOA/B_Buffer(写)
P_IOA/B_Dir(读/写)
P_IOA/B_Attrib(读/写)
P_IOA/B_Buffer(读)
图3.6 I\O端口的结构
表3.1I\O组合控制设置表
方向
属性
数据
功能
是否有唤醒功能
功能描述
0
0
0
下拉*
是**
带下拉电阻的输入管脚
0
0
1
上拉
是**
带下拉电阻的输入管脚
0
1
0
悬浮
是**
悬浮式输出管脚
0
1
1
悬浮
否
悬浮式输出管脚***
1
0
0
高电平输出
否
带数据反相器的高电平输出
1
0
1
高电平输出
否
带数据反相器的高电平输出
1
1
0
高电平输出
否
带数据缓存器的低电平输出
1
1
1
高电平输出
否
带数据缓存器的低电平输出
注:
*:
默认带下拉电阻的输入管脚。
**:
控制字是000,001,010时,才有唤醒功能。
***:
ADCIOA(0—6)输入。
3.2.4时钟电路
系统的时钟是由时间基准信号、锁相环、时钟发生器组成的。
(1)首先由实时时钟(32768Hz)经过PLL倍频电路产生了系统时钟频率,系统时钟频率再经过分频得到CPU时钟频率,它可通过对P-SystemClock单元编程来控制。
系统时钟频率和时钟频率分别为24.576MHz和Fosc/8.可以通过对P-SystemClock单元编程来完成对系统时钟以及CPU时钟频率定义。
SPCE061A
X1/RX0
20pf20pf
图3.7 时钟电路图
RTC振荡器的工作方式有两种:
自动弱振模式和强振模式。
当处于自动弱振模式,系统会在上电复位后的前7.5s内处于强振模式,之后由于需要降低功耗会自动切换到弱振模式。
当处于强振模式,RTC振荡器就会始终的运行于高耗能状态下。
当CPU被唤醒,此时默认的始终频率是Fosc/8,可以根据需要进行调整。
唤醒进过32个时钟周期的缓冲后再进行其他操作。
(2)锁相环PLL振荡器,系统默认的PLL自激震荡频率是24.576MHz。
PLL电路可以将实时时钟的基频进行倍频,调节为20.480MHz、24.576MHz、32.768MHz、40.96MHz、49.152MHz。
(3)时间基准信号,简称为时基信号,它的选频逻辑TMB1为中断源系统提供中断信号并为TimerA的时钟源提供各种频率选择信号。
另外,时基信号发生器还可以为中断系统提供各种实施中断源信号。
(4)定时器/计数器
两个16位定时/计数器分别是:
TimerA通用计数器和TimerB多功能计数器。
TimerB的时钟源仅为时钟源A,而TimerA的时钟源是由时钟源A和B进行与操作形成的。
定时器溢出后产生溢出信号。
(1)它作为4位计数器计数的时钟源信号,会输出一个4位可调脉宽调制占空比输出信号,调控马达或其他设备的速度。
(2)它会传输给CPU中断系统。
(3)可用于DAC输出的数据锁存和触发ADC输出的自动转换过程。
在向定时器的P-TimerA-Data单元或P-TimerB-Data单元写入计数值N后,选择合适时钟源,定时/计数器在所选时钟频率下以递增方式计数。
当达到0xFFFF后溢出,产生中断请求信号,CPU响应,送入中断控制器处理。
同时,N被重新载入定时/计数器重新计数。
通过写入P-TimerA-Ctrl单元的6-9位,可以选择设置APWMO的输出波形脉宽占空比;同理适合P-TimerB-Ctrl.
时钟源A来自带锁相环的晶体振荡器输出Fosc,是高频时钟源;而时钟源B则来自时钟系统,可以作为精确计数器。
3.2.5中断系统
SPCE061A单片机可提供14个中断源,有两个中断优先级,能实现两级中断嵌套功能。
用户可用开中断指令使CPU接受中断请求,也可以用关中断指令屏蔽所有中断请求。
每个中断源可用软件独立控制开或关中断状态,但中断级别不能用软件设置。
中断类型:
异常中断、软件中断和事件中断。
(1)异常中断
异常中断(复位)一旦发生,CPU立即进行处理。
异常中断可由三种情况引起:
上电、系统电源低于电压底线以及看门狗计数器溢出。
无论哪种情况引起复位,复位引脚的电位都会变低,程序指针PC由复位向量所指的系统复位程序入口地址。
(2)软件中断
软件中断是由软件指令产生的中断,向量地址为FFF5H
(3)事件中断
此中断的禁止或开通,由相应的FIQ或IRQ总使能控制和相应的独立使能控制。
事件中断产生于外设中断输入引脚引入的某事件或片内设部件。
中断采用两种方式:
FIQ快速中断请求和IRQ中断请求,他,他们都有相应的总使能。
SPCE061A设有9个中断向量,分别为IRQ0-IRQ6、FIQ、UART以及IRQ。
他们可安置14个中断源使用。
其中四个可安置在IRQ0-IRQ2中,其他十个安置在IRQ3-IRQ6中。
14个中断源分为两个外部中断、两个定时器溢出中断、一个串行口中断、一个触键唤醒中断、PWM音频输出中断和7个时基信号中断。
其中,快速中断高于普通中断优先级,IRQ中断中IRQ1优先级高于IRQ2,IRQ2高于IRQ3,序号越高中断优先级越低,中断优先级最低的是UART。
IRQ中,中断查询有先后,但不能进行中断嵌套。
在同中断向量中,中断源中断优先级相同。
中断响应的过程
中断发生到被响应再到执行中断服务程序是一个复杂的过程。
此过程都是在CPU控制下有序完成的。
(1)中断的查询
61板会把所有中断请求汇集到P-INT-Ctrl和P-UART-Command2寄存器中。
其中音频输出中断、定时中断、串行异步中断、触键唤醒、时基中断的请求因为发生在内部,可直接去置位P-INT-Ctrl和P-UART-Command2中各自的中断请求来标着,没有采样问题,而外中断需要采样将中断请求锁定在P-TNT-Ctrl寄存器的相应标志位。
中。
查询就是CPU分别测试P-INT-Ctrl和P-UART-Command2中各自的标志位状态,以确定中断请求是否发生以及是哪个,中断请求的汇集是查询变得更加简单,只需对两个寄存器分别查询。
每一个指令周期结束后中断查询开始发生,按中断优先级查询,即先查询FIQ高级中断在查询IRQ低级中断,IRQ0-IRQ1-IRQQ3-IRQ4IRQ5-IRQ6-UART顺序查询。
若有标志位为“1”,则有中断请求发生。
中断请求随即发生,CPU无法预知,所以在每个指令结束后需不停的进行。
(2)中断响应
中断响应就是中断查询后CPU检测到有效中断请求,接收中断请求并进行中断响应。
主要内容为硬件自动生成的一条格式为CALLaddR16(中断入口,由系统设定)的调用指令。
中断响应并不是查询到中断请求都能立即响应,当存在以下情况,中断响应会被封锁:
CPU处在高级或同级的中断服务中。
中断响应的时间由两部分组成,即中断信号出现到CPU响应和CPU响应到进入中断程序所用的时间之和。
中断响应后,P-INT-Ctrl和P-UART-Command2中中断请求标志需立即清除,否则会造成重复查询和响应。
图3.8 中断流程图
3.2.6最小体统和开发方法
(1)
图3.9 最小系统电路图
最小系统如上图所示,晶振和谐振电容连接在OSC0、OSC1上,锁相环压控振荡器的阻容输入端上接对应的电容电阻。
地端和不用的电容接上0.1uF的去耦电容,用以提高抗干扰能力。
(2