51单片机期中复习
1.8051单片机的硬件资源有哪些?
(1)微处理器(8位CPU)
(2)程序存储器(ROM、EPROM或Flash等)
(3)数据存储器(RAM、E2PROM)
(4)4个8位并行可编程I/O端口(P0、P1、P2、P3)
(5)1个串行口(UART)
(6)2个16位定时器/计数器
(7)中断系统(包含5~8个中断源、2个优先级)
(8)特殊功能寄存器(SFR)
2.如何检测一个单片机是否正常工作
EA引脚是否周期性脉冲
或
单片机时针信号输出是否正常
(EA引脚功能:为内部或外部程序存储器选择控制端)(EA=1时单片机访问内部程序存储器,EA=0时只访问外部程序存储器)
3.并行I/O口特点(P0、P1、P2、P3)
- P0口内部没有拉高电路,是三态双向I/O口。
- P1、P2和P3口内部有拉高电路,称为准双向口。
- P1、P2、P3口可以驱动四个LS型TTL负载,P0口可以驱动八个LS型TTL负载。
4.8051中央处理器的组成
运算器+控制器
运算器功能:进行算术运算、逻辑运算和位运算
控制器功能:是单片机的指挥部件,主要任务是识别指令。并根据指令的性质控制单片机各功能部件,从而保证单片机各部分能自动有序地工作
5.指令执行过程
取指令、指令译码、执行指令
6.8051单片机的存储器结构
分类
物理结构分类:
内部:片内程序存储器、片内数据存储器
外部:片外程序存储器、片外数据存储器
寻址空间分布:
程序存储器、内部数据存储器、外部数据存储器
功能作用:
程序存储器、内部数据存储器、特殊功能寄存器、位地址空间存储器、外部数据存储器
注:上面的所有存储器各自的最大总容量为64KB,因为是16位地址(不同型号的单片机存储器不同大小不同)
如何知道访问的是片内/片外数据/程序存储器?
按指令区分:
如果是MOV是用于片内数据存储器
如果是MOVX是用于片外数据存储器
MOVC是程序存储器
7.8051单片机6种中断源的中断服务程序入口地址
中断源 | 入口地址 |
---|---|
INTO(外部中断0) | 0003H |
T0(定时器/计数器0) | 000BH |
INT1(外部中断1) | 0013H |
T1(定时器/计数器1) | 001BH |
串行口 | 0023H |
T2(定时器/计数器2) | 002BH(8052和STC89C51存在有) |
8.通过晶振获得时钟周期、指令周期
例题:
10.单片机的三种工作模式(正常和省电)
- 正常工作方式
- 空闲模式:CPU处于休眠状态,但振荡器和所有片内外围电路仍然在正常工作,片内RAM和SFR中的内容保持不变
- 掉电模式:振荡器停止工作,由于没有时钟信号,所有的功能部件都停止工作
11.指令系统的寻址方式(七种寻址方式)(举例说明)
- 立即寻址
- 直接寻址
- 寄存器寻址
- 寄存器间接寻址
- 基址加变址间接寻址
- 相对寻址
- 位寻址
立即寻址:操作数以常数的形式直接出现在指令中
1
2MOV A,#1FH ;用十六进制表示的立即数
MOV A,#31 ;用十进制表示的立即数直接寻址:操作数直接用一个单元地址的形式给出,对该单元地址进行取数或存数的寻址方式
1
MOV A,30H ;将30H单元中存的数据传送给累加器A
把片内RAM存储单元30H的内容取出送到累加器A中
寄存器寻址:指令中包含寄存器名,并通过寄存器来读取或存储操作数的指令
1
2MOV A,R0
MOV R7,A表示把工作寄存器R0中的内容传送给寄存器A,也可以把累加器A的内容传送给工作寄存器R7
寄存器间接寻址:指令中指出一个寄存器存储操作数的地址,通过寄存器访问该地址的方法称为寄存器间接寻址
我们在寄存器寻址中,寄存器存放的是操作数,而在寄存器间接寻址中,寄存器存放的是操作数的地址
1
2
3
4MOV R0,#30H ;把立即数30H存入R0寄存器中(即把R0指针指向30H单元)
MOV A,@R0 ;用R0作间接寻址,即把R0中存储的数据30H当做地址,把这个地址的内容5FH取出来送入累加器A中
INC R0 ;R0自加1为31H,即R0指向31H单元
MOV @R0,A ;用R0作间接寻址,作为目标操作数,即从A取出数据,存储到R0指向的地址单元中(即把A中的内容存储到31H单元,执行后30H和31H单元的内容都是5FH基址加变址间接寻址
这里不再用MOV而是MOVC
相对寻址
在80C51的7种寻址方式中,前面讲述的6种主要用来解决操作数的给出问题,而第7种相对寻址方式则是为解决程序转移而设置的,只为转移指令所采用。
位寻址
1
MOV C,3AH ;把3AH位的状态送入进位位C
位寻址区:20H~2FH
和直接寻址的区别???
11.单片机指令系统
一共有111条指令,按功能分为五大类:
数据传送类指令、算术运算类指令、逻辑运算类指令、控制转移类指令和位操作(布尔操作)类指令
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!