20xx级单片机接口技术-数字系统设计课程总结模板

《单片机接口技术与实验》课程总结

《现代数字系统设计》课程总结

姓名:

学号:

年级:

专业:

20xx年秋季学期

每个实验都应该包含以下内容:

实验一(三号字,宋体,居中)

1. 功能要求(一级标题:四号字,楷体,加黑,顶格) 本实验……(正文:小四号字,仿宋)

2. 硬件设计思路

3. 软件程序流程

4. 实验体会

所有实验写完后,

要有一部分: 课程心得及建议

 

第二篇:单片机课程总结

u'nSPtm家族具有共享的微处理器核心,把各功能部件模块化地集成在一个芯片里。

SPCE061A内嵌入32K字的闪存(FLASH)是数字语音辨识产品的最经济选择

SPCE061A的主要性能特点:116位μ'nSP微处理器核心;2工作电压 (CPU) VDD为3.0~3.6V, (I/O)接口电压 VDDH为3.0~5.5V3 CPU工作时钟频率为:0.32MHz~49.152MHz ;4 内置 2K字静态内存(SRAM);5内置 32K 字闪存(FLASH);6可编程音频处理;7晶体振荡器8省电模式:系统处于备用状态下 ,时钟停止,耗电仅为2 μ A/3.6V92个16位可编程定时器/计数器;102个10位DAC(数-模转换)输出通道; 1132位通用可编程输入/输出端口1214个中断源可来自定时器A / B,时基,2个外部时钟源输入,按键唤醒;13具备触键唤醒的功能; 14锁相环回路提供系统时钟;1532768Hz(倍频)实时时钟167通道10位电压模-数转换器(ADC)和单通道声音模-数转换器; 17声音模 -数转换器输入通道内置麦克风放大器和自动增益控制(AGC)功能;18具备串行设备接口;具有低电压复位 (LVR)功能和低电压监测(LVD)功能;19内置在线仿真电路 ICE(In- Circuit Emulator)接口;20具有保密能力;具有 WatchDog功能。

SPCE061A的最小系统:在OSC32O,OSC32I端街上晶体振荡器及谐振电容,在VCOIN端接上相对应的电容和电阻后即可工作。在其他不用的Vdd端和GND端接上0.1uf的耦合电容以提高抗干扰能力。

SPCE061A的开发方式:SPCE061A加上PROBE的开发方式,可以代替一般单片机应用项目中价格不菲的开发工具:ICE和EPROM烧录器。

SPCE061A的结构:在芯片内集成了ICE仿真电路接口,FLASH程序存储器,SRAM数据存储器,通用I/O接口,定时器/计数器,中断控制,CPU时钟,模/数转化器A/D,数/模转化器DAC输出,通用异步串行输入输出接口,串行输入输出接口和底电压监测/低电压复位等。

u'nSPtm的内核结构:总线,算数逻辑运算单元,寄存器组,中断系统及堆栈。

u'nSPtm的ALU前面串接了一个移位器SHIFTER。移位包括算数右移,逻辑左移,逻辑右移,循环左移,循环右移。

μ’nSP. CPU的寄存器组一共有8个16位寄存器,可分为通用寄存器和专用寄存器

两大类别。通用寄存器包括:R1~R4,作为算术逻辑运算的来源及目标寄存器。专用寄存

器包括SP、BP、SR、PC,是与CPU特定用途相关的寄存器。堆栈指针寄存器SP是用来纪录堆栈地址的寄存器,SP会指向堆栈的顶端. 基址指针寄存器BP 提供了一种方便的寻址方式,即基址寻址方式[BP+IM6],程序设计者可通过BP来存取ROM与RAM中的数据.,可做为通用寄存器R5,用于数据运算传送的来源及目标寄存器. 程序计数器PC:用来纪录程序目前执行位置的寄存器,以控制程序走向,16位的PC寄存器与SR寄存器的CS字段,共同组成一个22位的程序代码地址。段寄存器SR:SR内含许多字段,每个字段都有特别的用途,其中包含两个6位的区段选择字段: CS (Code Segment),DS (Data Segment),它们可与其它16位的寄存器结合在一起形成一个22位的地址,用来寻址 4M字容量的内存

μ’nSP.有四个1位的标志: N、Z、S、C,即SR寄存器中间的4个位(B6~B9),CPU在执行条件跳转指令时,会先测试这些标志位,以控制程序的流向。

进位标志C:C=0时表示运算过程中无进位或是有借位情况产生;而C=1表示运算过程中有进位或是无借位情况产生。零标志Z Z=0时表示运算结果不为0,Z=1时表示运算结果为0。负标志N :负标志N是用来判断运算结果的最高位(B15)是否为1。 B15=0则N=0; B15=1则N=1。 符号标志S S=0时表示运算结果为正数或是0,S=1时则表示运算结果(在二进制补码的规则下)为负。总结[1].由于补码可以把有符号数与无符号数的运算统一起来,所以对于同一条加法或减法指令,既可以认为是有符号数运算又可以认为是无符号数运算,只是观察的角度、判断的标准不同而已。[2]进位标志C一般用于无符号数运算的进、借位判断。[3].N,S的组合用于有符号数溢出的判断。 [4].有符号数的范围为-32768~32767,无符号数的范围为0~65535。若为有符号数,运算前数值的正负应利用负标志N来判断;运算后结果的正负应利用符号标志S来判断。

十μ’nSP.是16位单片机,它具有16位的数据线22位地址线内存都是按“字”操作的地,22位的地址线最多可寻址到4M字的内存空间址线的高6称为内存地址的Page Selector,简称为页码(Page);16则称为内存地址的偏移量(Offset)。

RAM SPCE061A有2K字的SRAM(包括堆栈区),其地址范围从0x0000到0x07FF。

闪存:具有32K字(32K×16位)闪存容量,这32K字的内嵌闪存被划分为128个页,每个页存储容量为256个字。

要保证擦除操作的正确完成,必须考虑以下几个参数:1. 该闪存的内部分页结构2. 每个页分区的擦除时间。

擦除一页的流程是:先对命令用户接口地址0x7555送出0xAAAA,然后再对命

令用户接口地址0x7555送出0x5511,再来对要擦除的记忆页地址写入任意数据,

约20ms即可完成擦除操作,之后就可以再进行其它操作。

写入一个字的流程是:先对命令用户接口地址0x7555送出0xAAAA,然后

再对命令用户接口地址0x7555送出0x5533,再来对要写入字的地址写入数

据,约40us即可完成写入操作,之后就可以再进行其它操作。

连续写入多个字的流程是:先对命令用户接口地址0x7555送出0xAAAA,

然后再对命令用户接口地址0x7555送出0x5544,再给要连续写入字的起始

地址写入字数据,约40us即可完成1个字的写入操作。再对命令用户接口地

址0x7555送出0x5544,再对后续要写入的字地址写入字数据,等待40us,

循环操作即可完成连续字的写入。

延时等待是由硬件完成,不需要软件延时,以上所介绍的闪存擦除及写入操作,一般用于执行中数据的储存。

输入端口:负责从外界接收检测信号、键盘信号等各种开关量信号。输出端口负责向外界传送由内部电路产生的处理结果、显示信息、控制命令、驱动信号等。μ’nSP.内有并行和串行两种方式的I/O口。并行口线路成本较高,但是传输速率也较高;与并行口相比,串行端口的传输速率较低但可以节省大量的线路成本。SPCE061A有两个16位的通用并行I/O口:A口和B。这两个端口的每一位都可通过编程单独定义成输入或输出口。A口的IOA0~IOA7作为输入端口时,具有唤醒功能,即当输入电平发生变化时,会触发CPU中断。

SPCE061A提供了位控制结构的I/O端口,每一位都可以单独用于数据输入或输出。每个独立的位可通过以下3种控制向量来作设定:1. 数据向量Data 2. 属性向量Attribution 3. 方向控制向量Direction。A口和B口的Data、Attribution和Direction的设定值均在不同的寄存器里,用户在进行I/O端口设置时要特别注意这一点。

 

P_IOA_Data(读/写)(7000H) :A端口的数据单元,用于向A口写入或从A端口读出数据

P_IOA_Buffer (读/写) (7001H) :A端口的数据向量单元,用于向数据向量寄存器写入或从该寄存器读出数据。

对输出而言,P_IOA_Data与P_IOA_Buffer是一样的.对输入而言,P_IOA_Data读

的是IO的值,P_IOA_Buffer读的是buffer内的值。

P_IOA_Dir(读/写)(7002H) :A端口的方向向量单元,用于用来设置A口是输入还是输出,该方向控制向量寄存器可以写入或从该寄存器内读出方向控制向量。Dir位决定了端口位的输入/输出方向:即‘0’为输入,‘1’为输出。

P_IOA_Attrib(读/写)(7003H) :A端口的属性向量单元,用于A端口属性向量的设置。

P_IOA_Latch(读)(7004H) :读该单元以锁存A端口上的输入数据,用于进入睡眠状态前的触键唤醒功能的启动.

方向向量_Dir、属性向量_Attrib和数据向量_Data分别代表三个控制口。这三个端口

中每个对应的字节合在一起,形成一个控制字,来定义相对应I/O端口位的输入/输出状态

和方式。可以得出以下一些结论:1 _Dir位决定了端口位的输入/输出方向:即‘0’为输入,‘1’为输.2. _Attrib位决定了在端口位的输入状态下是为悬浮式输入还是非悬浮式输入:即‘0’为带上拉或下拉电阻式输入,而‘1’则为悬浮式输入。在端口位的输出状态下则决

定其输出是反相的还是同相的;‘0’为反相输出,‘1’则为同相输出。3. _Data位在端口位的输入状态下被写入时,与_Attrib字节合在一起形成输入方式的控制字‘00’、‘01’、‘10’、‘11’,以决定输入端口是带唤醒功能的上拉电阻式、下拉电阻式或悬浮式以及不带唤醒功能的悬浮式输入。_Data位在端口位的输出状态下被写入的是输出数据,不过,数据是经过反相器输出还是经过同相寄存器输出要由_Attrib位来决定。A口的IOA0~IOA7作为唤醒来源,常用于键盘输入.

P_FeedBack(写)(7009H) :B端口工作方式的控制单元,用于决定B口的IOB2 (IOB3)和IOB4 (IOB5)是用来作为普通I/O端口,或是作为特殊功能端口.

[例]:以下程序说明如何通过编程在IOB2和IOB4增加一个外部RC电路形成反馈

回路,以获得振荡源频率。

//将 IOB4 设置成悬浮式输入口,IOB2 设置成反相输出口

R1=0x0004;

[P_IOB_Dir]=R1;

R1=0x0010;

[P_IOB_Attrib]=R1;

[P_IOB_Data]=R1

// 写入P_FeedBack口,设定IOB2,IOB4为特殊功能端口

R1=0x0004;

[P_FeedBack]=R1

时钟电路 :μ’nSP.的时钟电路是采用晶体振荡器电路.外接晶振采用32768Hz。推荐使用外接32768Hz晶振,因RC阻容振荡的电路时钟不如外接晶振准确。

实时时钟RTC: 32768Hz实时时钟通常用于钟表、实时时钟延时以及其它与时间相关类产品.SPCE061A通过对32768Hz实时时钟来源分频,而提供了多种实时时钟中断。 PLL锁相环PLL锁相环的作用是将系统提供的实时时钟基频(32768Hz)进行倍频,调整至49.152MHz、40.96MHz、32.768MHz、24.576MHz或20.480MHz。系统预设的PLL振荡频率为24.576MHz.

系统时钟 :32768Hz的实时时钟经过PLL倍频电路以后,产生系统时钟频率Fosc,Fosc再经

过分频得到CPU时钟频率(CPUCLK),可通过设定P_SystemClock(写)(7013H)单元来控制。

预设的Fosc、CPUCLK分别为24.576MHz和Fosc/8。32768Hz RTC振荡器有两种工作方式:强振模式和自动弱振模式。

时间基准信号:简称时基信号,来自于32768Hz实时时钟,通过频率选择组合而成,P_Timebase_Setup(写)(700EH):时基信号发生器通过对。P_Timebase_Setup(写)(700EH)单元的编程来进行频率选择。P_Timebase_Clear(写)(700FH) :是控制端口,设置该单元可以完成时基计数器复位和时间校准。向该单元写入任一数值后,时基计数器将被设为“0”,可利用此单元对时基信号产生器进行精确的时间校准。

Timer定时器/计数器: SPCE061A提供了两个16位的计时/计数器:TimerA和TimerB。TimerA为通用计数器;TimerB为多功能计数器。TimerA的时钟源由时钟源A和时钟源B进行“与”操作而形成;TimerB的时钟源仅为时钟源C。

定时器发生溢出后,会产生一个溢出信号(TAOUT/TBOUT),它会传送到CPU中断系统以产生定时器中断信号;定时器溢出信号还可以用于触发ADC输入的自动转换过程,和DAC输出的数据锁存。

时钟源A与时钟源C是高频时钟来源,来自PLL锁相环的晶体振荡器输出Fosc;时钟源B的频率来自32768Hz实时时钟系统,也就是说,时钟源B可以作为精确的定时器。例如,2Hz可以作为实时计数器。

P_TimerA_Data(读/写)(700AH) :TimerA的数据单元,用于向16位预设寄存器写入数据(预设计数初值)或从其中读取数据。在写入数值以后,计数器便会在所选择的频率下进行加一计数,直至计数到0xFFFF产生溢出。.溢出后P_TimerA_Data中的值将会被复位,再以设置的值继续加一计数。怎样计算计数初值呢?1. 选择需要的计数频率。 2. 计算相对应的计数初值。

P_TimerA_Ctrl(写)(700BH) TimerA的控制单元如表2.12所示。用户可以通过设置该单元的第0~5位来选择TimerA的时钟源(时钟源A、B)。设置该单元的第6~9位(如表2.13所示),TimerA将输出不同频率的脉宽调制信号,即对脉宽占空比输出APWMO进行控制。

P_TimerB_Data(读/写)(700CH) :TimerB的数据单元,用于向16位预设寄存器写入数据(预设计数初值)或从其中读取数据。写入数据后,计数器就会以设定的数值往上累加直至溢出。计数初值的计算方法和TimerA相同。

P_TimerB_Ctrl(写)(700DH) :TimerB的控制单元。用户可以通过设置该单元的第0~2位来选择TimerB的时钟源。设置第6~9位,TimerB将输出不同频率的脉宽调制信号,即对脉宽占空比输出BPWMO进行控制。

相关推荐