单片机毕业设计论文.doc
《单片机毕业设计论文.doc》由会员分享,可在线阅读,更多相关《单片机毕业设计论文.doc(69页珍藏版)》请在三一办公上搜索。
1、第1章 概 述1.1 凌阳十六位单片机简介 随着单片机功能集成化的发展,其应用领域也逐渐地由传统的机制,扩展为控制处理、数据处理以及数字信号处理(DSP,Digital SignalProcessing)等领域。凌阳的16位单片机就是为适应这种发展而设计的。它的CPU内核采用凌阳最新推出的nSP(Microcontroller and Signal Processor)16位微处理器芯片(以下简称nSP)。围绕nSP所形成的16位nSP系列单片机(以下简称nSP家族)采用的是模块式集成结构,它以nSP内核为中心集成不同规模的ROM、RAM和功能丰富的各种外设接口部件,如图所示。 nSP内核是一
2、个通用的核结构。除此之外的其它功能模块均为可选结构,亦即这种结构可大可小或可有可无。借助这种通用结构附加可选结构的积木式的构成,便可形成各种不同系列派生产品,以适合不同的应用场合。这样做无疑会使每一种派生产品具有更强的功能和更低的成本。nSP家族有以下特点:1体积小、集成度高、可靠性好且易于扩展 nSP家族把各功能部件模块化地集成在一个芯片里,内部采用总线结构,因而减少了各功能部件之间的连线,提高了其可靠性和抗干扰能力。另外,模块化的结构易于系统扩展,以适应不同用户的需求。2具有较强的中断处理能力 nSP家族的中断系统支持10个中断向量及10余个中断源,适合实时应用领域。3高性能价格比 nSP
3、家族片内带有高寻址能力的ROM、静态RAM和多功能的I/O口。另外,nSP的指令系统提供具有较高运算速度的16位16位的乘法运算指令和内积运算指令,为其应用增添了DSP功能,使得nSP家族运用在复杂的数字信号处理方面既很便利,又比专用的DSP芯片廉价。4功能强、效率高的指令系统 nSP指令系统的指令格式紧凑,执行迅速,并且其指令结构提供了对高级语言的支持,这可以大大缩短产品的开发时间。5低功耗、低电压nSP家族采用CMOS制造工艺,同时增加了软件激发的弱振方式、空闲方式和掉电方式,极大地降低了其功耗。另外,nSP家族的工作电压范围大,能在低电压供电时正常工作,且能用电池供电。这对于其在野外作业
4、等领域中的应用具有特殊的意义。1.2 总述 SPCE061A 是继nSP系列产品SPCE500A等之后凌阳科技推出的又一款16位结构的微控制器。与SPCE500A不同的是,在存储器资源方面考虑到用户的较少资源的需求以及便于程序调试等功能,SPCE061A里只内嵌32K字的闪存(FLASH)。较高的处理速度使nSP能够非常容易地、快速地处理复杂的数字信号。因此,与SPCE500A相比,以nSP为核心的SPCE061A微控制器是适用于数字语音识别应用领域产品的一种最经济的选择。 1.2.1 性能 16位nSP微处理器; 工作电压(CPU) VDD为2.43.6V (I/O) VDDH为2.45.5
5、V CPU时钟:0.32MHz49.152MHz ; 内置2K字SRAM; 内置32K FLASH; 可编程音频处理; 晶体振荡器; 系统处于备用状态下(时钟处于停止状态),耗电仅为2A3.6V; 2个16位可编程定时器/计数器(可自动预置初始计数值); 2个10位DAC(数-模转换)输出通道; 32位通用可编程输入/输出端口; 14个中断源可来自定时器A / B,时基,2个外部时钟源输入,键唤醒; 具备触键唤醒的功能; 使用凌阳音频编码SACM_S240方式(2.4K位/秒),能容纳210秒的语音数据; 锁相环PLL振荡器提供系统时钟信号; 32768Hz实时时钟; 7通道10位电压模-数转
6、换器(ADC)和单通道声音模-数转换器; 声音模-数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能; 具备串行设备接口; 具有低电压复位(LVR)功能和低电压监测(LVD)功能; 内置在线仿真电路ICE(In- Circuit Emulator)接口; 具有保密能力; 具有WatchDog功能。1.2.2 结构概览 SPCE061A的结构如图1.2所示:1.2.3 芯片的引脚排列和说明 SPCE061A有两种封装片,一种为84个引脚,PLCC84封装形式;它的排列如图1.4所示;另一种为80个引脚,LQFP80封装。他3的排列如图所示。 在PLCC84封装中,有15个空余脚,用户使
7、用时这15个空余脚悬浮。在LQFP80封装中有9个空余脚,用户使用时这9个空余脚接地。此处以LQFP80封装管脚功能介绍。【1】可将PFUSE接5V, PVIN接GND并维持1s以上即可将内部保险丝熔化,此后就无法读取和向闪存加载数据。1.2.4 特性 SPCE061A系统的特性参数如表1.2所示。1.2.5 SPCE061A最小系统 最小系统接线如图1.6所示,在OSC0、OSC1端接上晶振及谐振电容,在锁相环压控振荡器的阻容输入VCP端接上相应的电容电阻后即可工作。其它不用的电源端和地端接上0.1F的去藕电容提高抗干扰能力。1.2.6 SPCE061A开发方法 SPCE061A的开发是通过
8、在线调试器PROBE实现的。它既是一个编程器(即程序烧写器),又是一个实时在线调试器。用它可以替代在单片机应用项目的开发过程中常用的软件工具硬件在线实时仿真器和程序烧写器。它利用了SPCE061A片内置的在线仿真电路ICE(In- Circuit Emulator)接口和凌阳公司的在线串行编程技术。PROBE工作于凌阳IDE集成开发环境软件包下,其5芯的仿真头直接连接到目标电路板上SPCE061A相应管脚,直接在目标电路板上的CPU-SPCE061A调试、运行用户编制的程序。PROBE的另一头是标准25针打印机接口,直接连接到计算机打印口与上位机通讯,在计算机IDE集成开发环境软件包下,完成在
9、线调试功能。图1.7是计算机、PROBE、用户目标板三者之间的连接示意图,图1.8是实物连接图。第二章.SPCE061A的硬件结构SPCE061A 芯片内部集成了ICE (在线实时仿真/除错器)、FLASH (闪存)、SRAM (静态内存)、通用I/O 端口、定时器/计数器、中断控制、CPU时钟锁相环(PLL)、ADC (模拟数字转换器)、DAC (数字模拟转换器)输出、UART (通用异步串行输入输出接口)、SIO (串行输入输出接口)、低电压监测/低电压复位等模块。在本章中我们将详细介绍各个模块的结构及应用。 nSP的核心由总线、ALU算术逻辑运算单元、寄存器组、中断系统及堆栈等部分组成。
10、其结构如图2.1所示。2.1 ALU 算术逻辑运算单元 nSP的ALU 非常有特色,除了一般基本的16 位算术逻辑运算,还提供了结合算术逻辑的16 位移位运算。在数字信号处理方面,提供了高速的16 位16 位乘法运算和内积(乘加)运算。2.1.1 16 位算术逻辑运算 nSP与大多数CPU 一样,提供了基本的算术运算与逻辑操作指令,加法、减法、比较、补码、异或、或、与、测试、写入、读出等16 位算术逻辑运算及数据传送操作。2.1.2 结合算术逻辑的16 位移位运算 nSP的移位运算包括:算术右移ASR、逻辑左移LSL、逻辑右移LSR、旋转左移ROL 及旋转右移ROR。 nSP的移位器shift
11、er 就串接在ALU 的前面,也就是说,操作数在经过移位处理后,马上会进入ALU 进行算数逻辑运算。所以,nSP的移位指令都是复合式指令,一个指令会同时完成移位和算术逻辑运算。程序设计者可利用这些复合式的指令,撰写更精简的程序代码,进而增加程序代码密集度(Code Density)。在微控制器应用中,如何增加程序代码密集度是非常重要的问题;提高程序代码密集度可以减少程序代码的大小,进而减少ROM 或FLASH 的需求,以降低系统成本与增加执行效能。2.1.3 16 位 16 位的乘法运算和内积(乘加)运算 除了普通的16 位算数逻辑运算指令外,nSP还提供了高速的16 位 16 位乘法运算指令
12、MUL, 和16 位内积运算指令MULS 。二者都可以用于有符号数相乘(signed signed) 或无符号数与有符号数相乘(unsigned signed)的运算。在nSPISA1.1 指令集下,MUL 指令只需花费12 个时钟周期,MULS 指令花费10n+6 个时钟周期,其中n 为乘加的项数。例如:“MR=R2*R1 ,4”表示求4 项乘积的和,MULS指令只需花费46(104+6=46)个时钟周期。这两条指令大大的提升了nSP的数字信号处理能力。2.2寄存器组 nSP CPU 的寄存器组一共有8 个16 位寄存器,可分为通用寄存器和专用寄存器两大类别。通用寄存器包括:R1R4,作为算
13、术逻辑运算的来源及目标寄存器。专用寄存器包括SP、BP、SR、PC,是与CPU 特定用途相关的寄存器。2.2.1 通用寄存器R1R4 (General-purpose registers) 可用于数据运算或传送的来源及目标寄存器。寄存器R4、R3 配对使用,还可组成一个32 位的乘法结果寄存器MR;其中R4 为MR 的高字符组,R3 为MR 的低字符组,用于存放乘法运算或内积运算结果。2.2.2 堆栈指针寄存器SP (Stack Pointer) SP 是用来纪录堆栈地址的寄存器,SP 会指向堆栈的顶端。堆栈是一个先进后出的内存结构,nSP的堆栈结构是由高地址往低地址的方向来储存的。CPU 执
14、行push、子程序调用call、以及进入中断服务子程序(ISR,Interrupt Service Routine) 时,会在堆栈里储存寄存器内容,这时SP 会递减以反映堆栈用量的增加。当CPU 执行pop 时、子程序返回ret、以及从ISR 返回reti 时,SP 会递增以反映堆栈用量的减少。nSP堆栈的大小限制在2K 字的SRAM 内,即地址为0x0000000x0007FF 的内存范围中。2.2.3 基址指针寄存器BP (Base Pointer) nSP提供了一种方便的寻址方式,即基址寻址方式BP+IM6;程序设计者可通过BP 来存取ROM 与RAM 中的数据,包括:局部变量(Loca
15、l Variable)、函数参数(FunctionParameter)、返回地址(Return Address)等等。BP 除了上述用途外,也可做为通用寄存器R5,用于数据运算传送的来源及目标寄存器。因此,在本书或程序中,BP 与R5 是共享的,均代表基址指针寄存器。2.2.4 程序计数器PC (Program Counter) 它的作用与一般微控制器中的PC 相同,是用来纪录程序目前执行位置的寄存器,以控制程序走向。CPU 每执行完一个指令,就会改变PC 的值,使其指向下一条指令的地址。在nSP里,16 位的PC 寄存器与SR 寄存器的CS 字段,共同组成一个22 位的程序代码地址。2.2.
16、5 状态寄存器SR (Status Pointer) SR内含许多字段,每个字段都有特别的用途,如图2.1所示。其中包含两个6 位的区段选择字段: CS (Code Segment),DS (Data Segment),它们可与其它16 位的寄存器结合在一起形成一个22 位的地址,用来寻址4M字容量的内存。SPCE061A只有32K字的闪存,只占用一页的存储空间,所以CS和DS字段在SPCE061A中都是设为0。 算数逻辑运算的结果会影响CPU 内的标志(flag),标志的内容可以作为条件判断的依据。nSP有四个1 位的标志: N、Z、S、C,即SR 寄存器中间的4 个位(B6B9)。CPU
17、在执行条件跳转指令时,会先测试这些标志位,以控制程序的流向。这些标志的详细说明如下:1 进位标志C C=0 时表示运算过程中无进位或是有借位情况产生;而C=1 表示运算过程中有进位或是无借位情况产生。在无符号数运算中,16 位可以表示的数值范围是0x00000xFFFF,即065535。如果运算结果大于65535(0xFFFF),则标志位C 被置为1。请注意:进位标志C 一般用于无符号数运算的进、借位判断。2 零标志Z Z=0 时表示运算结果不为0,Z=1 时表示运算结果为0。3 负标志N 负标志N 是用来判断运算结果的最高位(B15)是否为1。B15=0 则N=0; B15=1则N=1。4
18、符号标志S S=0 时表示运算结果为正数或是0,S=1 时则表示运算结果(在二进制补码的规则下)为负。对于有符号数运算,16 位所能表示的数值范围是0x80000x7FFF,即-3276832767。若运算结果小于零,则符号标志S 被置为1。有符号数运算的运算结果可能会大于0x7FFF 或小于0x8000。比如:0x7FFF+0x7FFF=0xFFFE(65534),运算结果为正(S=0),且无进位(C=0)发生;在此情况下,负标志N 被置为1(因为最高位为1)。若标志N 与S 不同,则说明了有溢出(overflow)发生,即:S=0,N=1 或S=1,N=0。符号标志S 可用来判断有符号数的
19、正负。而JVC(N=S),JVS(N!=S)则可用来判断溢出。请注意:N,S 的组合用于有符号数溢出的判断。特别需要注意:在运算操作过程中,若目标寄存器是PC,则所有标志位均不会受到影响。总结: 1由于补码可以把有符号数与无符号数的运算统一起来,所以对于同一条加法或减法指令,既可以认为是有符号数运算又可以认为是无符号数运算,只是观察的角度、判断的标准不同而已。 2进位标志C 一般用于无符号数运算的进、借位判断。 3N,S 的组合用于有符号数溢出的判断。 4有符号数的范围为-3276832767,无符号数的范围为065535。若为有符号数,运算前数值的正负应利用负标志N 来判断;运算后结果的正负
20、应利用符号标志S来判断。 2.3 数据总线和地址总线 nSP是16 位单片机,它具有16 位的数据线和22 位地址线。由此决定其基本数据类型是16 位的“字”型,而不是8 位的“字节”型;因此内存都是按“字”操作的,22位的地址线最多可寻址到4M 字的内存空间。地址线中的高6 位A16A21 来自SR 寄存器中的6 位的CS 字段或是6 位的DS 字段,低16 位A0A15 则来自内部寄存器。通常,地址线的高6 位称为内存地址的Page Selector,简称为页码(Page);而低16 位则称为内存地址的偏移量(Offset)。nSP通过对区段(Segment)的编码来实现内存分页的检索,即
21、是说Segment的含义与Page的含义是相等的。因而,通过Segment与Offset的配合即可产生22 位地址,如图2.1中ADDRGEN所示。(注意: SPCE061A只有32K字闪存FLASH,仅占一页存储空间,所以CS字段和DS字段在SPCE061A用不到,都设为0)。2.4 SPCE064A片内存储器结构SPCE061A 的内存地址映像如图2.2 所示。芯片内的内存有2K 字的SRAM(包括堆栈区)和32K 字闪存(FLASH)。2.4.1 RAMSPCE061A 有2K 字的SRAM(包括堆栈区),其地址范围从0x0000 到0x07FF。前64 个字,即0x00000x003F
22、 地址范围内,可采用6 位地址直接地址寻址方法,存取速度为2 个CPU 时钟周期;其余范围内(0x00400x07FF)内存的存取速度则为3 个CPU时钟周期。2.4.2 堆栈 SP 是用来记录堆栈地址的寄存器,SP 会指向堆栈的顶端。堆栈是一个先进后出的内存结构,nSP的堆栈结构是由高地址往低地址的方向来储存的。CPU 执行push、子程序呼叫call、以及进入中断服务子程序(ISR,Interrupt Service Routine) 时,会储存寄存器内容在堆栈里,这时SP 会递减以反映堆栈用量的增加。当CPU 执行pop、子程序返回ret、以及从ISR 返回reti 时,SP 会递增以反
23、映堆栈用量的减少。 nSP堆栈的大小限制在2K 字的SRAM 内,即地址为0x0000000x0007FF 的内存范围中。SPCE061A 系统复位后,SP 初始化为0x07FF,每执行push 指令一次,SP 指针减一。2.4.3 闪存Flash SPCE061A 是一个用闪存替代mask ROM 的MTP(multi-time-programmable)芯片,闪存可以进行多次的擦除与写入,可用来存储程序与数据。SPCE061A 具有32K 字(32K16 位)闪存容量,这32K 字的内嵌闪存被划分为128 个页,每个页存储容量为256 个字。它们在CPU 正常运行状态下均可通过程序擦除或写
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 毕业设计 论文
链接地址:https://www.31ppt.com/p-3936493.html