单片机语音控制电子钟.doc_第1页
单片机语音控制电子钟.doc_第2页
单片机语音控制电子钟.doc_第3页
单片机语音控制电子钟.doc_第4页
单片机语音控制电子钟.doc_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

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

文档简介

毕 业 设 计(论文)(说 明 书)题 目: 单片机语音控制电子钟姓 名: 编 号: 平顶山工业职业技术学院年 月 日平顶山工业职业技术学院毕 业 设 计 (论文) 任 务 书姓名 专业 电气自动化专业 任 务 下 达 日 期 2011 年 09 月 28 日设计(论文)开始日期 2011 年 10 月 28 日设计(论文)完成日期 年 月 日设计(论文)题目:单片机语音控制电子钟A编制设计 B设计专题(毕业论文) 指 导 教 师 刘昆磊 系(部)主 任 郭宗跃 年 月 日平顶山工业职业技术学院毕业设计(论文)答辩委员会记录 自动化与信息工程系 电气自动化专业,学生 曾海楠 于 2011 年 月 日进行了毕业设计(论文)答辩。设计题目: 单片机语音控制电子钟 指导老师: 刘昆磊 答辩委员会根据学生提交的毕业设计(论文)材料,根据学生答辩情况,经答辩委员会讨论评定,给予学生 毕业设计(论文)成绩为 。答辩委员会 人,出席 人答辩委员会主任(签字): 答辩委员会副主任(签字): 答辩委员会委员: , , , , , , , , , 平顶山工业职业技术学院毕业设计(论文)评语第 4 页共 37 页学生姓名: 专业 电气自动化 年级 09级 毕业设计(论文)题目:单片机语音控制电子钟 评 阅 人: 指导教师: 刘昆磊 (签字) 2011 年 月 日成 绩: 系(科)主任: 郭宗跃 (签字) 2011 年 月 日毕业设计(论文)及答辩评语: 摘 要钟是现代人类日常生活必不可少的工具,语音时钟更是现在电子时钟多功能化发展的一个方向。语音电子钟具有突出的播报时间的功能,它被广泛用在生活中的各种场合。本设计就是从日常生活中常见的事物入手,通过对语音电子钟的设计,让我认识到单片机已经深入到我们生活的每个领域。本文从语音电子钟的设计原理、设计方案入手,详细介绍了系统硬件设计、软件设计及调试。在语音电子钟的设计中,要处理好以下几个关键:D/A(数/模)转换,语音识别,人机接口,程序设计。D/A(数/模)和语音识别技术关系到时间的正确播报,人机接口是播报时间和调整时间的关键。利用凌阳SPCE061A单片机在语音识别和处理方面的优点,结合实践,设计出有特色的语音电子钟。关键字: SPCE061A单片机 SPLC501液晶显示器 语音报时目 录第一章 绪 论第一节 选题的目的和意义带有语音功能的电子产品和电子设备近年来广泛地出现在我们的生活中。语音时钟是现在电子时钟多功能化发展的一个方向,将语音引入到时钟中实现时间的语音播报。本设计是一个基于凌阳61A单片机的语音报时系统,利用凌阳61A板这样一种本身就带有语音识别和播放功能的单片机来进行时间的播报。并且用SPLC501液晶显示器显示当前的时间、日期、星期、农历、闹铃开关。单片机是实现各种控制策略和算法的载体。因其功耗低,超小型,低成本,功能完整,非常适用于便携式仪表和就地式显示控制仪表,在国内越来越受到用户的重视和广泛的应用。随着单片机集成化程度的不断提高,现代单片机已经具备了数字信号处理功能,使语音信号处理用单片机实现成为可能。SPCE061A是以nSP TM16位微控制器及信号处理器芯片为内核的16位单片机,采用模块式集成结构,片内集成了2KB RAM、32KB Flash、ADC、DAC、并行I/O等。第二节 单片机的介绍单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。一、单片机的发展如果将8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段。1.第一阶段(1976-1978):单片机的控索阶段。以Intel公司的MCS48为代表。MCS48的推出是在工控领域的控索,参与这一控索的公司还有Motorola 、Zilog等,都取得了满意的效果。这就是SCM的诞生年代,“单机片”一词即由此而来。 2.第二阶段(1978-1982)单片机的完善阶段。Intel公司在MCS48 基础上推出了完善的、典型的单片机系列MCS51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。 1)完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。 2)CPU外围功能单元的集中管理模式。 3)体现工控特性的位地址空间及位操作方式。 4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。3.第三阶段(1982-1990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。随着MCS51系列的广泛应用,许多电气厂商竞相使用80C51为内核,将许多测控系统中使用的电路技术、接口技术、多通道A/D(模/数)转换部件、可靠性技术等应用到单片机中,增强了外围电路的功能,强化了智能控制的特征。4.第四阶段(1990现在):微控制器的全面发展阶段。随着单片机在各个领域全面深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。单片机的主要发展趋势。1.CMOS化。近年,由于CHMOS技术的进步,大地促进了单片机的CMOS化。单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产。CMOS电路的特点是低功耗、高密度、低速度、低价格。2.低功耗化。单片机的功耗已从Ma级,甚至1uA以下;使用电压在3V-6V之间,完全适应电池工作。3.低电压化。几乎所有的单片机都有WAIT、STOP等省电运行方式。目前0.8V供电的单片机已经问世。4.低噪声与高可靠性。5.大容量化。目前,单片机内ROM最大可达64KB,RAM最大为2KB。6.高性能化。主要是指进一步改进CPU的性能,加快指令运算的速度和提高系统控制的可靠性。7.小容量、低价格化。以4位、8位机为中心的小容量、低价格化也是发展动向之一。8.外围电路内装化。随着集成度的不断提高,有可能把众多的各种处围功能器件集成在片内。片内集成的部件还有模/数转换器、DMA控制器、声音发生器、监视定时器、液晶显示驱动器、彩色电视机和录像机用的锁相电路等。二、单片机的组成及特点单片机是微型机的一个主要分支,在结构上的最大特点是把CPU、存储器、定时器和多种输入/输出接口电路集成在一块超大规模集成电路芯片上。就其组成和功能而言,一块单片机芯片就是一台计算机。1.单片机的组成它通过内部总线把计算机的各主要部件接为一体,其内部总线包括地址总线、数据总线和控制总线。其中,地址总线的作用是在进行数据交换时提供地址,CPU通过它们将地址输出到存储器或I/O接口;数据总线的作用是在CPU与存储器或I/O接口之间,或存储器与外设之间交换数据;控制总线包括CPU发出的控制信号线和外部送入CPU的应答信号线等。2.单片机的特点 1)有优异的性能价格比。 2)集成度高、体积小、有很高的可靠性。 3)控制功能强。 4)低功耗、低电压,便于生产便携式产品。 5)外部总线增加了IC(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。 6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。三、单片机的应用 1.单片机在智能仪表中的应用2.单片机在机电一体化中的应用3.单片机在实时控制中的应用 第二章 语音电子钟的原理和方案第一节 设计原理根据设计要求,语音电子钟要具备的功能:1.可以语音播报日期和时间。2.可以在SPLC501液晶模组上面显示时间、日期、农历、星期、闹钟。3.整点报时功能。 4.具备闹钟功能。5.闹钟的铃声可以选择。 6.具备秒表功能。一、时钟功能时钟功能是利用SPCE061A芯片的时钟频率和定时/计数器设计。SPCE061A芯片为语音电子钟提供一个频率稳定准确的32768Hz方波信号,此外还有一校正电容可以对温度进行补偿,以提高频率准确度和稳定度,可保证语音电子钟的走时准确及稳定。整个系统工作时,秒信号产生器是整个系统的时基信号,它直接决定计时系统的精度,将标准秒信号送入“秒计数器”,“秒计数器”采用60进制计数。每累计60秒发出一个“分脉冲”信号,该信号将作为“分计数器”的时钟脉冲。“分计数器”也采用60进制计数器,每累计60分钟,发出一个“时脉冲”信号,该信号将被送到“时计数器”。“时计数器”采用24进制计时器,可实现对一天24小时的累计, 每累计24小时,发出一个“星期脉冲”信号,该信号将被送到“星期计数器”,“星期计数器” 采用7进制计时器,可实现对一周7天的累计。每累计24小时发出一个“天脉冲”信号。该信号将作为“年计数器”的时钟脉冲信号。由中断程序控制“年计数器”采用365或366进制计数,实现对年的累计。显示电路将“时”、“分”、“秒”、“星期”、“年”计数器的输出状态送到SPLC501液晶显示器显示出来。二、语音输出功能语音输出功能利用SPY0030A芯片和外接喇叭进行音频输出。SPY0030A是凌阳公司开发的专门用于语音信号放大的芯片。J3是语音输出接口,一个2pin的插针外接喇叭,由DAC 输出引脚21 或22经语音集成放大器SPYOO30A放大,然后输出。SPY0030A相当于LM386,但是比386 音质好,它可以工作在2.4-6.0V 范围内,最大输出功率可达700mW。第二节 设计方案通过对设计要求和设计原理的仔细分析,本次设计采用模块结构实现。语音电子钟主要由系统初始化模块、输入按键信息模块、语音输入与A/D(模/数)转换模块、压缩编码模块和D/A(数/模)转换模块、SPLC501液晶模组组成。实现单独播报年、月、日和时、分,实现定时功能,并且能够对它们分别进行调整。设计复位键对设定值进行清零操作。组成电路板各模块应具有如下功能: 1.系统初始化模块: 输入一些变量与子小模块,进行赋初值等处理,输出变量和模块的初始状态。2.输入按键信息模块:输入键值,等待系统中断并进行相应的中断处理,输出为调用相应的键处理程序。 3.语音输入与A/D(模/数)转换模块:输入语音信号,进行A/D(模/数)转换,输出语音的数字信号。 4.压缩编码模块:输入语音的数字信号,经过语音压缩函数的处理,输出语音的压缩编码。 5.D/A(数/模)转换模块:输入语音的数字信号,进行D/A(数/模)转换输出语音的模拟信号。6.SPLC501液晶显示器:显示当前的时间、日期、农历、星期、闹钟。 第三章 语音电子钟的硬件设计第一节 系统总体硬件结构一、系统结构语音电子钟的系统结构如图3.1,61板作为整个系统的控制中心,负责控制键盘扫描;年、月、日、星期以及时间的计算; SPLC501A 液晶显示的驱动;并根据按键值播报当前的日期或者时间。图3.1 语音电子钟的系统结构图硬件功能模块连接:用61板控制语音电子钟系统,使用IOA 口的高八位、IOB 的4、5、6 共11 个I/O 口连接SPLC501A液晶模组,另外使用了61板的语音输出模块;以及61 板上的三个按键。硬件连接如图3.2 所示:图3.2 语音电子钟的电路连接图语音电子钟的连接示意图见图3.2,IOA 的高八位接到液晶模组的八个数据端,同时也连接了液晶模组的电源,即直接用一根10pin 的排线连接61 板“+”、IOA8-15、“-”与SPLC501A 液晶显示模组的“+”、DB0-7、“-”,主要用来向液晶模组传送命令和数据;IOB6 接EP,IOB5 接R/W,IOB4接AO,用来控制液晶的显示和工作方式。二、按键的功能描述语音电子钟的各个按键功能如图3.3所示,按KEY1键:进入功能选择界面。按KEY2 键:播报当前的时间。按KEY3键:播报当前的日期。KEY2、KEY3 键同时按下:控制闹钟的开与关。 在时间显示界面上按KEY1键会进入功能选择菜单,功能菜单界面上有4个选项。分别是时间日期调整、闹钟设置、秒表功能、返回。功能选择菜单界面里KEY1为确定键,KEY2为下翻键,KEY3为上翻键。可以随意选择所要实现的操作。时间日期调整界面里KEY1为确定键,KEY2为加一键,KEY3为减一键,SPLC501液晶显示器上闪烁的部分表示当前正在调整的选项,当设置完成后,按KEY1会自动退出设置界面。闹钟设置界面里KEY1为确定键,KEY2为下翻键,KEY3为上翻键。闹钟设置界面里有闹钟时间设置和闹钟铃声选择两个选项。闹钟时间设置界面KEY1为确定键,KEY2为加一键,KEY3为减一键,SPLC501液晶显示器上闪烁的部分表示当前正在调整的选项,当设置完成后,按KEY1会自动退出设置界面。.闹钟铃声设置界面里KEY1为确定键,KEY2为选择键,KEY3为播放当前选择的铃声键。当闹钟响时,按下三个键中的任何一个都可以关闭闹钟。 秒表功能界面里KEY1为退出键,KEY2为开始/暂停键,KEY3为清零键,只有当秒表停止运行时KEY3 才有效。 返回功能里KEY1为确认键,按下后,系统会回到显示界面。图3.3 语音电子钟的按键功能结构图硬件设计按照SPCE061A、程序下载区、音频输出、语音输入、数模转换、电源分模块设计。利用Protel 99来绘制各个部分的电路原理图。第二节 SPCE061A芯片SPCE061A 芯片内部集成了ICE (在线实时仿真/除错器)、FLASH (闪存)、SRAM (静态内存)、通用I/O 端口、定时器/计数器、中断控制、CPU 时钟锁相环(PLL)、ADC (模拟数字转换器)、DAC (数字模拟转换器)输出、UART (同步串行输入输出接口)、SIO (串行输入输出接口)、低电压监测/低电压复位模块。nSP的核心由总线、ALU算术逻辑运算单元、寄存器组、中断系统及堆栈等部分组成。一、SPCE061A性能简介1.16位nSP 微处理器 。2.工作电压(CPU)VDD为3.0-3.6V,(I/O)VDDH为3.0-5.5V。 3.CPU时钟:0.32-49.152MHz。 4.内置2K字SRAM 。5.内置32K字FLASH 。6.可编程音频处理。 7.晶体振荡器。 8.系统处于备用状态下(时钟处于停止状态),耗电仅为2uA/3.6V 。9.2个16位可编程定时器/计数器(可自动预置初始计数值)。 10.2个10位DAC(数/模转换)输出通道。 11.32位通用可编程输入/输出通道。 12.14个中断源可来自定时器A/B、时基、2个外部时钟源输入和键唤醒。 13.具备触键唤醒的功能。 14.用凌阳音频编码SACM_S480可以播放压缩的语音资源。 15.锁相环PLL振荡器提供系统时钟信号。 16、32768Hz实时时钟。17.7通道10位电压模/数转换器(ADC)和单通道声音模/数转换器。 18.声音模/数转换器输入通道内置麦克风放大器,并具有自动增益控制(AGC)功能。 19.具备串行设备接口。 20.具备低电压复位功能和低电压检测功能。 21.内置在线仿真电路接口。22.具有WatchDog功能。二、SPCE061A芯片的引脚SPCE061A实物如图3.4所示。 图3.4 SPCE061A实物排列图SPCE061A的结构如图3.5所示:图3.5 SPCE061A的PLCC84封装引脚SPCE061A的PLCC84封装管脚说明如表3.1所示。引脚说明IOA0-IOA15(41-48、53、54-60)I/O口A,共16个IOB0-IOB15(5-1、81-76、68-64)I/O口B,共16个OSCI(13脚)32768Hz 晶振输入管脚OSCO(12脚)32768Hz 晶振输出管脚RES_B(6脚)复位输入XICE(16脚)ICE使能端,接PROBE的使能脚ICE_ENXICECLK(17脚)ICE时钟端,接PROBE的时钟脚ICE_SCKXICESDA(18脚)ICE数据端,接PROBE的数据脚ICE_SDAPVIN(20脚)程序保密设定脚PFUSE(29脚)程序保密设定脚DAC1(21脚)音频输出通道1DAC2(22脚)音频输出通道2VREF2(23脚)2V参考电压输出脚AGC(25脚)语音输入自动增益控制引脚OPI(26脚)Microphone的第二运放输入脚MICOUT(27脚)Microphone的第一运放输出脚MICN(28脚)Microphone的负向输入脚MICP(33脚)Microphone的正向输入脚VRT(35脚)A/D转换外部参考电压输入脚VCM(34脚)ADC参考电压输出脚VMIC(37脚)Microphone的电源XSLEEP(63脚)睡眠状态指示脚VCP(8脚)锁相环压控振荡器的阻容输入XROMT、PVPP、XTEXST(61、69、14)出厂测试引脚,悬空即可VDDH(51、52、75脚)I/O电平参考。VDD(7脚)PLL锁相环电源VSS(9脚)锁相环地VSS(19、24脚)模拟地VSS(38、49、50、62脚)数字地VDD(15、36脚)数字电源注:在PLCC84封装中,有15个空余脚,使用时这15个空余脚悬浮。可将PFUSE接5V, PVIN接GND并维持1s以上即可将内部保险丝熔化,此后就无法读取和向闪存加载数据。 表3.1 SPCE061A的PLCC84封装管脚说明三、SPCE061A特性参数SPCE061A系统的特性参数如表3.2所示:特性参数SPCE061A工作电压2.6V-3.6V最大工作速率49.152MHzCPU16 位SRAM 容量2K字ROM容量(字)32K闪存并行I/O端口AIOA15-0并行I/O端口BIOB15-0音频输出DAC2中断源TimerA/B 时基信号发生器 外部中断 触键唤醒唤醒源IOA7-0其它中断定时器/计数器双16位加计数定时器/计数器双通道PWM输出UART7通道10位电压模数转换器(ADC) 单通道声音模数转换器 (ADC)串行SRAM接口具备晶振具备低电压复位具备低电压监测具备内置ICE接口具备上电复位具备麦克风放大器和自动增益控单通道节电功能具备中断控制功能具备触键唤醒功能具备表3.2 系统特性参数四、SPCE061A内核结构SPCE061A的内核由总线、算术逻辑运算单元、寄存器组、中断系统及堆栈等部分组成。算术逻辑运算单元ALU:SPCE061A的ALU在运算能力上很有特色,它不仅能做16位基本的算术逻辑运算,也能做带移位操作的16位算术逻辑运算,同时还能做用于数字信号处理的16位16位的乘法运算和内积运算。1.算术逻辑运算器SPCE061A的ALU前面串接有一个移位器SHIFTER,也就是说,操作数在经过ALU的算数逻辑操作前可先进行移位处理,然后再经ALU完成算逻运算操作。移位包括:算术右移、逻辑左移、逻辑右移、循环左移以及循环右移。所以,SPCE061A的指令系统里专有一组复合式的移位算术逻辑操作指令;此一条指令完成移位和算术逻辑操作两项功能。 SPCE061A的CPU寄存器组里有8个16位寄存器,可分为通用型寄存器和专用型寄存器两大类别。通用型寄存器包括:R1-R4,作为算术逻辑运算的源及目标寄存器。专用型寄存器包括SP、BP、SR、PC,是与CPU特定用途相关的寄存器。2.SPCE061A片内存储器结构SPCE061A单片机的存储器有2K字的SRAM(包括堆栈区)和32K字闪存(FLASH)。SPCE061A有2K字的SRAM(包括堆栈区),其地址范围从0x0000到0x07FF。前64个字,即0x0000-0x003F地址范围内可采用6位地址直接地址寻址方法,寻访速度为2个CPU时钟周期;其余0x0040-0x07FF地址范围内存储器的寻访速度则为3个CPU时钟周期。堆栈是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式,主要用于子程序调用及返回和中断处理断点的保护及返回。堆栈的最大容量范围限制在2K字RAM内,即其地址范围从0X07FF到0X0000的存储器范围中。值得注意的是堆栈的生长方向,SPCE061A系统复位后,SP初始化为0x07FF,每执行PUSH指令一次,SP指针减一。SPCE061A是一个用闪存替代掩膜ROM的MTP(多次编程)芯片,具有32K字闪存容量。用户可用闪存来存储用户程序。为了安全起见,不对用户开放整体擦除功能。用户必须通过向P_Flash_Ctrl (写) ($7555H)单元写入0xAAAA来激活闪存的存取功能,从而访问闪存。然后,向P_Flash_Ctrl (写) ($7555H)单元写入0x5511,来擦除页的内容。写入0x5533,对闪存编程。这些指令不能被任何其他的操作包括中断、ICE的单步跟踪动作打断。这是因为闪存控制器必须保证闪存处于编程状态。如果一些其它的进程插入到当前的执行队列里,闪存的状态将发生改变,擦除页和编程的操作不能再继续进行。此外,为保证程序的正确编写,用户必须在编程之前擦除页的内容。页大小为0x100。第一页地址范围:0x8000-0x80FF,最后一页的地址范围:0xFF00-0xFFFF。0xFC00-0xFFFF范围内的地址由系统保留,用户最好不要用本范围内的地址。32K字的内嵌式闪存被划分为128个页,它们在CPU正常运行状态下均可通过程序擦除或写入。全部32K字闪存均可在ICE工作方式下被编程写入或被擦除。在芯片上电以后,芯片就处于读存储单元状态,读存储单元的操作与SRAM相同。3.SPCE061A输入/输出接口输入/输出接口是单片机与外设交换信息的通道。输入端口负责从外界接收检测信号、键盘信号等各种开关量信号。输出端口负责向外界输送由内部电路产生的处理结果、显示信息、控制命令、驱动信号等。nSP内有并行和串行两种方式的I/O口。并行口线路成本较高,但是传输速率也很高;与并行口相比,串行口的传输速率较低但可以节省大量的线路成本。SPCE061A有两个16位通用的并行I/O口:A口和B口。这两个口的每一位都可通过编程单独定义成输入或输出口。A口的IOA0-IOA7用作输入口时具有唤醒功能,即具有输入电平变化引起CPU中断功能。在那些用电池供电、追求低能耗的应用场合,可以应用CPU的睡眠模式(通过软件设置)以降低功耗,需要时以按键来唤醒CPU,使其进入工作状态。I/O 端口结构如图3.6所示,SPCE061A提供了位控制结构的I/O端口,每一位都可以被单独定义用于输入或输出数据。通常,对某一位的设定包括以下3个基本项:数据向量Data、属性向量Attribution和方向控制向量Direction。I/O端口组合控制设置如表3.3所列。3个端口内每个对应的位组合在一起,形成一个控制字,用来定义相应I/O口位的输入输出状态和方式。与其它的单片机相比,除了每个I/O端口可以单独定义其状态外,每个对应状态下的I/O端口性质电路都是内置的,在实际的电路中不需要再次外接。 P_IOA/B_Buffer (读)P_IOA/B_Date (写)P_IOA/B_Buffer (写)P_IOA/B_Dir(读/写)P_IOA/B_Attrib(读/写)P_IOA/B_Date (读)数据寄存器和逻辑控制上拉下拉I/O管脚图3.6 I/O 端口结构方向属性数据功能是否带有唤醒功能功能描述000下拉*是*带下拉电阻的输入管脚001上拉是*带上拉电阻的输入管脚010悬浮是*悬浮式输入管脚011悬浮否悬浮式输入管脚*100高电平输出否带数据反相器的高电平输出101低电平输出否带数据反相器的低电平输出110低电平输出否带数据缓存器的低电平输出111高电平输出否带数据缓存器的高电平输出注: *:口位默认为带下拉电阻的输入管脚; *:只有当IOA 7-0内位的控制字为000,001和010时, 相应位才具有唤醒的功能;*:此种悬浮输入作为ADC IOA6-0 的输入。表3.3 I/O端口的组合控制设置P_IOA_Data(读/写)(7000H)A口的数据单元,用于向A口写入或从A口读出数据。当A口处于输入状态时,读出是读A口管脚电平状态;写入是将数据写入A口的数据寄存器。当A口处于输出状态时,写入输出数据到A口的数据寄存器。P_IOA_Buffer (读/写) (7001H)A口的数据向量单元,用于向数据向量寄存器写入或从该寄存器读出数据。当A口处于输入状态时,写入是将A口的数据向量写入A口的数据寄存器;读出则是从A口数据寄存器内读其数值。当A口处于输出状态时,写入输出数据到A口的数据寄存器。P_IOB_Data(读/写)(7005H)B口的数据单元,用于向B口写入或从B口读出数据。当B口处于输入状态时,读出是读B口管脚电平状态; 写入是将数据写入B口的数据寄存器。当B口处于输出状态时,写入输出数据到B口的数据寄存器。P_IOB_Buffer(读/写)(7006H)B口的数据向量单元,用于向数据寄存器写入或从该寄存器内读出数据。当B口处于输入状态时,写入是将数据写入B口的数据寄存器;读出则是从B口数据寄存器里读其数值。当B口处于输出状态时,写入数据到B口的数据寄存器。4.SPCE061A时钟电路SPCE061A 的系统时钟由时钟发生器(32768Hz晶振)、锁相环(PLL)和时间基准信号(RTC)组成。SPCE061A时钟电路的接线图如图3.7所示:1.32768Hz的实时时钟经过PLL倍频电路产生系统时钟频率(Fosc),Fosc再经过分频得到CPU时钟频率(CPUCLK)可通过对P_SystemClock(写)(7013H)单元编程来控制。默认的Fosc、CPUCLK分别为24.576MHz和Fosc/8。用户可以通过对P_SystemClock单元编程完成对系统时钟和CPU时钟频率的定义。图3.7 SPCE061A时钟电路的接线图32768Hz RTC振荡器有两种工作方式:强振模式和自动弱振模式。处于强振模式时,RTC振荡器始终运行在高耗能的状态下。处于自动弱振模式时,系统在上电复位后的前7.5s内处于强振模式,然后自动切换到弱振模式以降低功耗。CPU被唤醒后默认的时钟频率为Fosc/8,用户可以根据需要调整该值。CPU被唤醒后经过32个时钟周期的缓冲时间后再进行其它的操作,这样可以避免在系统被唤醒后造成ROM读取错误。2.锁相环PLL (Phase Lock Loop)振荡器,PLL电路的作用是将系统提供的实时时钟的基频(32768Hz)进行倍频,调整至49.152MHz、40.96MHz、32.768MHz、24.576MHz或20.480MHz。系统默认的PLL自激振荡频率为24.576MHz。3.时间基准信号,简称时基信号,来自于32768Hz实时时钟,通过频率选择组合而成。时基信号发生器的选频逻辑TMB1为TimerA的时钟源B提供各种频率选择信号并为中断系统提供中断源(IRQ6)信号。此外,时基信号发生器还可以通过分频产生2Hz、4Hz、1024Hz、2048Hz以及4096Hz的时基信号,为中断系统提供各种实时中断源(IRQ4、IRQ5)信号。5.SPCE061A定时器/计数器SPCE061A提供了两个16位的定时/计数器:TimerA和TimerB。TimerA为通用计数器;TimerB为多功能计数器。TimerA的时钟源由时钟源A和时钟源B进行“与”操作而形成;TimerB的时钟源仅为时钟源A。定时器发生溢出后会产生一个溢出信号(TAOUT/TBOUT)。一方面,它会作为定时器中断信号传输给CPU中断系统;另一方面,它又会作为4位计数器计数的时钟源信号,输出一个具有4位可调的脉宽调制占空比输出信号APWMO或BPWMO(分别从IOB8 和IOB9输出),可用来控制马达或其它一些设备的速度。此外,定时器溢出信号还可以用于触发ADC输入的自动转换过程和DAC输出的数据锁存。向定时器的P_TimerA_Data(读/写)(700AH)单元或P_TimerB_Data(读/写)(700C H)单元写入一个计数值N后,选择一个合适的时钟源,定时器/计数器将在所选的时钟频率下开始以递增方式计数N,N+1,N+2,0xFFFE,0xFFFF。当计数达到0xFFFF后,定时器/计数器溢出,产生中断请求信号,被CPU响应后送入中断控制器进行处理。同时,N值将被重新载入定时器/计数器并重新开始计数。通过写入P_TimerA_Ctrl(700BH)单元的第6-9位,可选择设置APWMO输出波形的脉宽占空比;同理,写入P_TimerB_Ctrl(700DH)单元的第6-9位,便可选择设置BPWMO输出波形的脉宽占空比。时钟源A是高频时钟源,来自带锁相环的晶体振荡器输出Fosc;时钟源B的频率来自32768Hz实时时钟系统,也就是说,时钟源B可以作为精确的计时器。例如,2Hz定时器可以作为实时时钟的时钟源。五、SPCE061A中断系统SPCE061A系列单片机中断系统是单片机中中断功能较强的一种,它可以提供14个中断源,具有两个中断优先级,可实现两级中断嵌套功能。用户可以用关中断指令(或复位)屏蔽所有的中断请求,也可以用开中断指令使CPU接受中断申请。每一个中断源可以用软件独立控制为开或关中断状态;但中断级别不可用软件设置。 SPCE061A的中断类型SPCE061A的结构给出了三种类型的中断:软件中断、异常中断和事件中断。1.软件中断软件中断是由软件指令break产生的中断。软件中断的向量地址为FFF5H2.异常中断异常中断表示为非常重要的事件,一旦发生,CPU必须立即进行处理。目前SPCE061A定义的异常中断只有复位一种。通常,SPCE061A系统复位可以由以下三种情况引起:上电、看门狗计数器溢出以及系统电源低于电压低限。不论什么情况引起复位,都会使复位引脚的电位变低,进而使程序指针PC指向由一个复位向量(FFF7H)所指的系统复位程序入口地址。3.事件中断事件中断一般产生于片内设部件或由外设中断输入引脚引入的某个事件。这种中断的开通/禁止,由相应独立使能和相应的IRQ或FIQ总使能控制。SPCE061A的事件中断可采用两种方式:快速中断请求即FIQ中断和中断请求即IRQ中断。这两种中断都有相应的总使能。SPCE061A共有9个中断向量即FIQ、IRQ0-IRQ6及UART IRQ。这9个中断向量共可安置14个中断源供使用,其中有4个中断源可安置在FIQ或IRQ0-IRQ2中,另有10个中断源则可安置在IRQ3-IRQ6中。还有一个专门用于通用异步串行口UART的中断源,须安置在UARTIRQ向量中。SPCE061A单片机的中断系统有14个中断源分为两个定时器溢出中断、两个外部中断、一个串行口中断、一个触键唤醒中断、7个时基信号中断、PWM音频输出中断。SPCE061A单片机中,快速中断的优先级高于普通中断的优先级,在IRQ中断中IRQ1的中断优先级高于IRQ2,IRQ2的中断优先级高于IRQ3,按照IRQ的序号,序号越高则中断优先级越低,UART的中断优先级最低。在IRQ中断中,只是中断查询有先后,不能进行中断嵌套。同中断向量内的中断源中断优先级相同。中断响应过程从中断请求发生到被响应,从中断响应到转向执行中断服务程序,完成中断所要求的操作任务,是一个复杂的过程。整个过程都是在CPU的控制下有序进行的, SPCE061A单片机中断响应过程。1.中断查询SPCE061A把所有的中断请求都汇集到P_INT_Ctrl和P_UART_Command2(该寄存器用于检测串行传输中断标志位)寄存器中。其中外中断是使用采样的方法将中断请求锁定在P_INT_Ctrl寄存器的相应标志位中,而音频输出中断、触键唤醒、定时中断、时基中断、串行异步中断的中断请求由于都发生在芯片的内部,可以直接去置位P_INT_Ctrl和P_UART_Command2中各自的中断请求标志,不存在采样的问题,所谓查询就是由CPU测试P_INT_Ctrl和P_UART_Command2中各标志位的状态,已确定有没有中断请求发生以及是哪一个中断请求,中断请求汇集使中断查询变得简单,因为只需对两寄存器查询即可。SPCE061A中断查询发生在每一个指令周期结束后,按中断优先级顺序对中断请求进行查询,即先查询高级中断后,再查询低级中断,即先查询FIQ再查询IRQ,同级中断按IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6UART的顺序查询。如果查询到有标志位为“1”,则表明有中断请求发生。因为中断请求是随机的发生的,CPU无法预先得知,因此在程序执行过程中,中断查询要在每个指令结束后不停的进行。2.中断响应中断响应就是CPU对中断源提出的中断请求的接受,是在中断查询后进行的,当查询到有效的中断请求时,紧接着就进行中断响应。中断响应的主要内容可以理解为是硬件自动生成一条调用指令,其格式为CALL addR16,这里的addR16就是存储器中断区中相应中断入口地址。在SPCE061A单片机中,这些入口地址已经由系统设定。中断响应是有条件的,并不是查询到所有中断请求都能被立即响应,当存在下列情况时,中断响应被封锁:CPU正处在为一个同级或高级的中断服务中。因为当一个中断被响应时,要求把对应的优先级触发器置位,封锁低级和同级中断。中断响应的时间应首先从中断信号出现到CPU响应的时间与CPU响应中断信号到进入中断服务程序的时间之和。首先中断信号出现,CPU查询到后,再执行下一条指令结束后去响应中断,这个时间可以根据指令周期长短来确定;一般指令周期最长为182个时钟周期,原因是累乘加指令需要的时间最长为182个时钟周期;其次CPU响应中断后,到CPU执行中断服务程序又需要8个时钟,原因是需要堆栈PC指针和SR寄存器及将中断向量赋值给PC及跳转到中断服务程序,这些操作共需要8个时钟周期。因此,SPCE061A从中断信号出现到进入中断服务最长需要190个时钟周期。当然,如果出现有同级或高级中断正在响应或服务中须等待的时候,那么响应时间是无法计算的。中断响应后,P_INT_Ctrl和P_UART_Command2中的中断请求标志应及时清除。否则就意味着中断请求仍然存在,弄不好就会造成中断的重复查询和响应,因此就存在一个中断请求的撤销问题。在SPCE061A中断中,中断撤销只是标志位的置“0”问题。SPCE061A中断除UART中断外,所有的中断均需软件清除标志位,即将P_INT_Ctrl中相应的中断位清零。即可将中断请求撤销。而UART中断,则是硬件自动清零,不需要软件操作。如当接收到数据后,P_UART_Command2中的接收标志位自动置“1”,进入UART中断,在UART中断中读出数据,P_UART_Command2相应的中断标志位自动清零。SPCE061A单片机的中断服务流程图3.8所示 图3.8 中断服务流程图所谓中断的入口即中断的入口地址,每个中断源都有自己的入口地址,中断入口地址表如表3.4:中断向量中断优先级别FFF7H(复位向量)RESETFFF6HFIQFFF8HIRQ0FFF9HIRQ1FFFAHIRQ2FFFBHIRQ3FFFCHIRQ4FFFDHIRQ5FFFEHIRQ6FFFFHUART IRQ表3.4 中断入口地址表当CPU响应中断后,

温馨提示

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

评论

0/150

提交评论