单片机知识点整理(高级) - 图文

更新时间:2023-09-20 08:55:01 阅读量: 医药卫生 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机知识点整理

一、 书本课后练习

第1章P35, 3、4、5、7、8、9

1、MCU是英文Micro Controller Unit的缩写,中文含义是 微控制器。P1 2、MCU选型时主要应该注意哪三个方面的因素?各自含义是什么?P11 适用性:主要考虑MCU的片内资源能否满足实际需要 可开发性:所选择的的MCU是否有足够的开发手段

可购买性:MCU是否容易购买;MCU是否有足够的供应量;MCU是否仍然在生产之中;MCU是否在改进之中 3、Freescale S08系列MCU的HCS08核由哪些部分组成?CPU寄存器有哪几个、位数是多少、各有什么作用?P27-P31

HCS08核由下面四部分组成:HCS08CPU,背景调试器,支持高达32个中断/复位源的中断/复位机制,片级地址解码器。

AW60CPU寄存器包括一个8位的累加器A、一个16位的变址寄存器H:X、一个16位的堆栈指示器SP、一个16位的程序计数器PC和一个8位的条件码寄存器CCR。

累加器A(Accumulator):8位通用寄存器,用来存放操作数和运算结果

变址寄存器HX(Index Pointer) :16位寄存器,H是高8位,X是低8位,可单独使用

堆栈指针SP(Stack Pointer) :指向下一个栈地址的16位寄存器,堆栈指针SP采用递减的结构,即进栈时SP减1,出栈时SP加1

程序计数器PC(Program Counter) :也是16位的,可寻址范围达64KBPC存放下一条指令的地址,在执行转移指令时存放转移地址,在执行中断指令时存放中断子程序入口地址

条件码寄存器CCR(Condition Code Register) :8位的寄存器,其中5位(除了中断屏蔽位I)用于指示执行完指令的结果状态,这些位可由程序来测试

补充:AW60的功能结构及其存储器映像,AW60最小系统及其构成内容。 AW60的功能结构组成P24

存储器映像P38

所谓存储器映像,是指地址$0000 ~ $FFFF这个64KB空间,哪些地址被何种存储器所占用,或者说AW60的RAM、Flash、I/O映像寄存器各使用$0000 ~ $FFFF这个64KB空间中的哪些地址。简单地说,就是$0000 ~ $FFFF这个64KB空间是如何分配的。 AW60最小系统及其构成内容P19

AW60芯片的硬件最小系统包括AW60、电源及其滤波电路、复位电路、晶振电路及PLL滤 波电路、写入器接口电路。

4、Freescale S08系列MCU复位时SP的初值为$00FF,PC会自动装入位于$FFFE和$FFFF存储单元中的复位向量值,MCU产生中断时CPU寄存器自动入栈顺序从先到后依次是程序计数器的低字节PCL、程序计数器的高字节PCH、

变址寄存器的低字节X、累加器A、CCR寄存器,为了和HC08系列保持兼容,H寄存器并不会被自动压入堆栈。P30、31

补充:CPU和数字电路复位的不同点和相同点 CPU的复位有两个要素:初始化和启动

程序复位:所谓程序执行,从硬件角度就是给出入口地址。 例复位矢量:ORG $FFFE DW MainInit

5、CCR中的I位为0表示CPU允许中断,I位为1表示CPU禁止中断,I位的上电复位默认值为1。在响应中断时,CCR被自动入栈保存后I位会被自动设为1以阻止不必要的中断嵌套。P31-P32

6、如何把SP初始化到RAM末地址?P30

一般初始化SP的值指向片内RAM空间的末字节,以便释放出0页地址空间的一些存储单元作为通用作为通用存储区使用。

LDHX #RAMEnd+1 ;指向RAM末 TXS ;H:X-1 ->SP 第2章P49 1、2、3、5、6、8

7、存储器独立编址和统一编址的含义是什么? 各有什么特点?P37

CPU读/写存储器需要通过存储器的地址来进行读写,CPU和片内外围模块通信需要通过外围模块的地址(寄存器地址)来进行访问。 CPU和存储器、外围模块通信本质上都是CPU和不同地址通信,不同地址可以代表不同对象。 存储器独立编址方式:哈佛结构。 RAM和Flash的地址各自独立编址。如MCS-51系列MCU。

独立编址的好处是可以生成双倍的存储器空间,独立编址的寄存器地址出现重叠,但通过不同的控制线并配合不同的指令就可以区分不同存储器。

例如在MCS-51指令系统中,用MOVC指令访问Flash存储器,用MOV或MOVX指令访问RAM存储器。 存储器统一编址方式:普林斯顿结构。 RAM和Flash的统一编址在一个地址范围内,分段使用。如Freescale的08、S08、S12等系列MCU,Microchip的PIC系列MCU。 统一地址所获得的存储器空间比分离编址减半,但通过同一指令再配合不同地址参数就可以区分不同存储器。

8、MCU内部的RAM作用主要是什么?P40 Flash的主要作用是什么?P47内部寄存器的主要作用是什么?P47CPU如何访问片内,外围模块?P37

RAM空间主要用于存放用户程序中的各种变量,另外系统的堆栈也处于用户RAM空间。FLASH存储器主要用作程序存储器,存放用户程序机器码和常数、表格等。CPU读/写存储器需要通过存储器的地址来进行读/写,CPU和片内外围模块通信需要通过外围模块的地址(寄存器地址)来进行访问。

9、MC9S08AW60的整个$0000~$FFFF范围64KB的空间分成“寄存器”、RAM、Flash三大区域。寄存器又分成三组:直接页寄存器(地址从$0000到$006F)、高页寄存器(地址从$1800到$185F)和非易失性寄存器(地址从$FFB0到$FFBF。FLASH又分成两组:用户程序FLASH区(地址从$0870到$17FF、从$1860到$FFAF)和中断复位矢量区(地址从$FFCO到$FFFF)。 10、S08系列MCU的每个中断向量表占用2字节,其中的中断复位向量地址为

$FFFE和$FFFF。P48

11、MC9S08AW60内部地址从$00到$FF的区域的每一位都可以通过位操作指令进行访问。P40

12、若MC9S08AW60上电复位之后PC=1860H,则FFFEH存储单元中的值为 18H,FFFFH存储单元中的值为60H。P48 第6章1、2、3、5 13、HCS08系列单片机的CPU时钟频率是总线频率的2倍,HCS08系列单片机的最高总线频率可达 20MHz,CPU频率最高可达 40MHz。P160

14、除了关断模式外,ICG模块具有四种工作模式:SCM 、 FEI 、FBE和FEE 。MCU上电复位之后的默认模式是SCM,此时不需要外接晶振,CPU频率约为8MHz,总线频率约为4MHz。P165

15、ICG模块的输出有四个时钟:ICGOUT、FFE、ICGLCLK和 ICGERCLK,其中的 ICGOUT用于生成CPU时钟和系统总线时钟。P163

16、ADC模块可以选择两个时钟源作为ADC时钟:ICGERCLK 和 BUSCLK 。P163 第9章 1、2、5、7、9、16

17、MC9S08AW60内部具有2 个16位的TPM模块,每个模块都支持传统的四种功能:计数定时、 输入捕捉、输出比较和 脉宽调制PWM。P226 18、MC9S08AW60复位之后,CLKSB:CLKSA= 0:0 ,因此没有选中TPM时钟源,TPM不工作。通常设定CLKSB:CLKSA= 0:1 ,让总线时钟驱动定时器。每一个TPM模块的时钟源能够独立选定三种时钟源总线时钟 、固定系统时钟或外部时钟。P228 19、MC9S08AW60包含两个独立的TPM模块:TPM1和TPM2,TPM1具有 6 个通道,TPM2具有 2 个通道。每个模块的每一个通道引脚都可以单独配置为输入捕捉

、 输出比较 或 带缓冲的边缘对齐PWM功能。每个模块的所有通道引脚都可以配置 为带缓冲的中心对齐PWM 功能。P227

20、当CPWMS=0,TPMxCNT从0开始每隔一个TPMx计数周期就加1计数,加到0xFFF或TPM时,重新从0X0000开始加1计数。P228

21、当计数器溢出标志TOF为1时,若中断信号TOIE= 1 则允许向CPU产生中断请求。P228

22、清零TPM中断标志位通过两个步骤完成:首先 读标志位 ,然后 写0到标志位 。P231 第11章 2、3、4、5、6

23、SCI模块采用总线时钟(BUSCLK)作为时钟源P284

24、若要允许SCI的发送器,可以设置寄存器SCIxC2中 TE 位为1。

允许发送器之后,寄存器SCIxS1中TDRE位为1时就可以写发送数据到寄存器

SCIxD 中,寄存器 SCIxS1 中 TC 位为0时表明正在发送,为1表明发送完成。P286 25、若要允许SCI的接收器,可以设置寄存器 SCIxC2 中 RE 位为1。允许接收器之后,寄存器 SCIxS1中RDRF 位为1时表明SCI接收到了数据。P288

26、每一个SCI模块具有 SCI发送中断 、 SCI接收中断 和 SCI错误中断 三种中断,可以根据实际灵活选用。P290

27、如何清零RDRF标志位?P290

RDRF是SCI状态寄存器1(SCIxS1)的标志位,为“接收数据寄存器满标志”。当一个字符从接收移位寄存器传送到接收数据寄存器SCIxD时,该位变为1。在8位模式中,要清零RDRF,可以在RDRF=1时,先读SCIxS1,然后读SCI数据寄存器SCIxD。 例如,在SCI2接收中断服务子程序中: LDA SCI2S1 LDA SCI2D

二、 课堂知识点整理

1、 一般系统的描述设计:(研究计算机系统的方法) 功能—结构—组织—系统 逐一分层(12个字) 2、 计算机的层次观点—功能观点 用户级应用程序、高级语言、汇编语言/机器代码、微程序/硬连线控制、功能单元(存储器、ALU等)、逻辑门、晶体管和连线。

3、 计算机系统包括硬件、软件和专业背景。 4、 组织与结构的关系 组织是“个性”,结构是“共性”;组织是“具体”,结构是“抽象”

5、 控制器包含指令寄存器IR、指令译码器ID和可编程逻辑阵列(也称定时与控制电路)。 6、 内部寄存器阵列包括累加器A、数据寄存器DR、程序计数器PC、地址寄存器AR和标志寄存器F。

7、 存储器的扩充包括位的扩充和容量的扩充。 8、 嵌入式系统的架构:嵌入式处理器(核心)、嵌入式外围设备、嵌入式操作系统、嵌入式应用软件。 嵌入式应用软件 嵌入式操作系统 嵌入式处理器 嵌入式外围设备 嵌入式硬件平台 9、 8086操作时序

1)系统的复位和启动操作(冷启动>50微秒;热启动至少4个时钟周期) 2)总线操作(R;W/M)

3)暂停操作(HLT暂停,直到中断和复位) 4)中断操作

5)总线保持请求/响应或总线请求/允许/释放 10、汇编指令P51 10.1数制表示

1)规定在数字前面加前缀#表示立即数(若无#则表示地址)

例:LDA #011010 ;将二进制数011010送到累加器A中

LDA #$10 ;将十六进制数$10送到累加器A中 2)括号‘’或“”表示单个ASCII码字符串或字符串 3)用符号*或$作为操作数时表示当前存储器地址

4)符号*处于汇编语句中第一列时表示该行为为注释语句 10.2汇编语句格式

标号 操作码 操作数 注释

10.3汇编指令的机器码和执行周期的关系

例如:LDA #$10 ;机器码A610H,2个总线周期(查阅书本P365)

若上述指令为2个字节,表面它要占用2B的程序FLASH空间(1800H—0FFFFH),若总线时钟=4MHZ,则上述指令需要1/4*2=0.5us时间才能执行完 10.4寻址方式P52

1)指令中操作数的类型,单片机指令系统中的操作数类型有3种,即立即数操作数、寄存器操作数(有时间接)和存储器操作数。 2)寻址方式的概念

所谓寻址方式,就是寻找指令中操作数所在地址的方式

3)寻址方式又可以从二方面看:源和目的操作数看,多种寻址方式是为了编程的方便。 微控制器常用的寻址方式有: 隐含寻址、立即寻址、直接寻址、寄存器间接寻址、变址寻址、相对寻址和位寻址七种方式。

指令是指示微控制器执行操作的命令, 微控制器全部指令的集合称为指令系统。 例如:MOV 源操作数,目的操作数

11、根据基本指令的功能,将它们分为以下各大类:数据传送类指令、算术运算类指令、逻辑操作类指令、位操作类指令、转移类指令、堆栈相关指令和其他指令。P63 补充:MCU能够直接识别和执行的都是机器指令码。

12、映像寄存器地址的定义P42(掌握表格中地址为$0000—$000D) 数据方向寄存器(D触发器) 数据寄存器(三态门) PTADD equ $0001 PTAD equ $0000 PTBDD equ $0003 PTBD equ $0002 PTCDD equ $0005 PTCD equ $0004 补充:BCLR 0,PTBDD ;设置PTB,0为输入 BSET 1,PTBDD ;设置PTB,1为输出 12、I/0地址译码技术

本质:1、AB译码2、限制条件3、控制信号 低电平:1、AB 2、R/W 3、限制条件(总线) 1、限制条件

A9=1,用于设计槽口接口板,即内部本身用; A9=0,用于扩充插槽用,即外部扩展口 AEN=1,DMA控制总线; AEN=0,CPU控制总线; 2、I/O口地址译码电路举例 例题1:

三、补充知识点

1、 何为CPU?如何理解CPU?

课程的核心框架:计算机五大部分:CPU(运算器、控制器)、存储器(RAM、ROM)、I/O(输入设备、输出设备)

以下是一个计算机或MCU的核心框架:

AW60的微处理器工作过程:程序的执行过程;

设程序的指令代码已存放在存贮器中。为执行程序,CPU按照时钟节拍,产生一系列微操作控制信号,有规则地重复进行以下过程。

(1)BIU从存贮器中取出一条指令码存入指令队列。

(2)EU从指令队列取指令码并执行指令。BIU利用总线空闲时间,从内存取第二条指令或取第三条指令存入指令队列。

(3)EU执行下一条指令。如果前面一条指令有写存贮器的要求,则通知BIU把前条指令结果写到存贮器中,然后再取指令存入指令队列。

2、按位控制、按位跳转(注意字节和位的区别)P84

PTAD

B7 B0 指的是字节

BTSET n,opr8a,rel ;n指的是0—7bit,其中oper8a为端口 3、简述LED显示编程原理

6.2 数码管LED编程实例?对数码管编程需要了解的两个问题:?所用LED是几段,是共阴还是共阳? a b c d e f g dp 15 a b c d e f g dp (a)共阴极 Gnd (b) 共阳极 Vcc 数码管电路?所选LED的电气参数怎样?如额定功率、额定电流是多少? 4、已知MC9S08AW60单片机系统的总线时钟频率为4MHz,写出利用TPM1模块精确定时500ms的初始化子程序,并解释。 (改变参数)P237

答:选定总线时钟作为TPM1的时钟源,需要设定TPM1SC中的CLKSB:CLKSA=01,若选取分频因子为64,即PS[2:0]=110,那么TPM1的计数脉冲周期为64/4MHz=16μs,500ms需要500ms/16μs=32250=7A12H个计数周期,这就需要把TPM1MOD设置为7A12H,TPM1MODH和TPM1MODL两个寄存器都要写。当TPM1CNT计数值和TPM1MOD值相等时,TPM1CNT在下一个计数周期回到0重新开始计数,同时TOF位为1,如果允许TPM1溢出中断,将向CPU产生TPM1溢出中断请求。 参考代码如下:

TPM1_Init: ; TPM1模块中断方式初始化子程序l MOV #$4E, TPM1SC ; BUSCLK为TPM1中断源,64分频, ; 允许TPM1中断

MOV #$7A,TPM1MODH

MOV #$12, TPM1MODL ; 500ms对应的模数值 CLI ; 开总中断 RTS

5、比较MCU与CPU的区别与联系。

答:CPU是一个单独的PC处理器。而MCU,则有微处理器,存储器(RAM/ROM等)、定时器/计数器及多种输入输出(I/O)接口的比较完整的数字处理系统。所以可以这么说,MCU是一个包含微处理器的嵌入式系统,而CPU紧紧是一个处理器而已。

三、 实验(加法、输入输出、定时器)

输入:

ORG $0870

Main: LDA #$10 ;把10、55、 01、 66这四个数放在地址为0070H-0073H STA $0070 ;的存储单元中去 LDA #$55 STA $0071 LDA #$01 STA $0072 LDA #$66 STA $0073

ORG $FFFE ;复位矢量 DC.W Main

加法:

M1 EQU $0070 M2 EQU $0073 M3 EQU $0076 ORG $0070

DC.B $10,$20,$80,$72,$23,$32 ORG $8000 Main: LDA M1+2 ADD M2+2 DAA

STA M3+3 LDA M1+1 ADC M2+1 DAA

STA M3+2 LDA M1 ADC M2 DAA

STA M3+1 LDA $0 ADC $0 STA M3 ORG $FFFE DC.W Main

延时程序

Tcount EQU _____;需计算

JSR Delay1 ;4TB Delay:PSHX ;2TB LDX #Tcount;3TB Dloop:DEX ;1TB

BEZ Dloop ;x≠0时跳转,1/3 TB; PULX ;3TB RTS ;5TB

t(总执行时间)=N(总时钟周期数)* TB(总线时钟周期)

(计算方法)

N=(4+2+3)+(1+3)(Tcount-1)+(1+1)+(3+5)

循环前 循环及次数 出循环 出循环后

N= 15+4(Tcount)

N= (15+4*Tcount) ①

N= 延时/TB = 延时/125ns ②

根据 ① ② 算出Tcount 放入赋值语句中.

本文来源:https://www.bwwdw.com/article/xwgh.html

Top