当前位置:文档之家› 单片机期末总结材料 最完整版

单片机期末总结材料 最完整版

单片机期末复习总结1.MCS-51单片机芯片包含哪些主要功能?8051单片机是个完整的单片微型计算机。

芯片部包括下列主要功能部件:1)8位CPU;2)4KB的片程序存储器ROM。

可寻址64KB程序存储器和64KB外部数据存储器;3)128B部RAM;4)21个SFR;5)4个8位并行I/O口(共32位I/O线);6)一个全双工的异步串行口;7)两个16位定时器/计数器;08)5个中断源,两个中断优先级;9)部时钟发生器。

2.MCS-51单片机的4个I/O口在使用上各有什么功能?1)P0口:8位双向三态端口,外接上拉电阻时可作为通用I/O口线,也可在总线外扩时用作数据总线及低8位地址总线。

2)P1口:8位准双向I/O端口,作为通用I/O口。

3)P2口:8位准双向I/O端口,可作为通用I/O口,也可在总线外扩时用作高8位地址总线。

4)P3口:8位准双向I/O端口,可作为通用I/O口,除此之外,每个端口还有第二功能。

实际应用中常使用P3口的第二功能。

P3的第二功能:【注】:P0口必须接上拉电阻;I/O口准双向:MCS-51单片机I/O口做输入之前要先输出1.这种输入之前要先输出1的I/O口线叫做准双向I/O口,以区别真正的输入,输出的双向I/O口。

3. MCS-51单片机的存储器分为哪几个空间?是描述各空间作用?8051存储器包括程序存储器和数据存储器,从逻辑结构上看,可以分为三个不同的空间:1)64KB片片外统一编址的程序存储器地址空间,地址围:0000H~FFFFH,对于8051单片机,其中地址0000H~0FFFH围为4KB的片ROM地址空间,1000H ~ FFFFH为片外ROM 地址空间;2)256B的部数据存储器地址空间,地址围为00H~FFH,对于8051单片机,部RAM分为两部分,其中地址围00H ~ 7FH(共128B单元)为部静态RAM的地址空间,80H~FFH为特殊功能寄存器的地址空间,21个特殊功能寄存器离散地分布在这个区域;对于8052系列单片机还有地址围为80H~FFH的高128B的静态RAM。

3)64KB的外部数据存储器地址空间:地址围为0000H~FFFFH,包括扩展I/O端口地址空间。

4.数据存储器MCS-51基本型单片机部数据存储器有256B的存储空间,地址为00H~FFH;外部数据存储器的地址空间最大为64KB,编址为0000H~FFFFH。

256B的部存储器按功能划分为两部分:地址为00H~7FH的低128B的基本RAM区和地址为80H~FFH的高128B的特殊功能寄存器(SFR)区基本RAM区分为工作寄存器区,位寻址区,用户RAM区工作寄存区(00H~1FH):共分为4组,每组由8个工作寄存器,编号R0~R7位寻址区(20H~2FH):16个单元,既可以作为普通RAM单元使用,有可以对单元中的每一位进行位操作。

用户RAM区(30H~7FH):用于存放随机数据及运算的中间结果。

程序状态字寄存器(PSW ):RS1,RS0(PSW.4,PSW.3):工作寄存器组选择控制位。

可用软件对它们置1或清0,以选择当前工作寄存器的组号。

堆栈指针寄存器SP:堆栈只允许在其一端进行数据插入和数据删除操作的线性表。

PUSH ,数据写入堆栈称为插入运算(入栈);POP ,从堆栈中读出数据称为删除运算(出栈)。

堆栈的特点:后进先出 LIFO (Last-In Firt-Out)。

堆栈有两种类型:向上生长型,向下生长型。

进栈操作:先SP 加1,后写入数据出栈操作:先读出数据,后SP 减1MCS-51单片机复位后,SP 的初值自动设为07H;5.什么是振荡周期,时钟周期,机器周期和指令周期?如何计算机器周期的确切时间?1) 振荡周期是指为单片机提供脉冲信号的振荡源的周期,是单片机最基本的时间单位。

通常由外接晶振与部电路来提供振荡脉冲信号,其频率记为OSC f ,此频率的倒数即是振荡周期。

2) 振荡脉冲经过二分频后就是单片机的时钟信号,时钟信号的周期称为时钟周期,又定义为状态,用S 表示。

时钟周期是振荡周期的二倍。

3)机器周期是指令执行过程中完成某一个基本操作所需的时间。

一个机器周期等于12个振荡周期。

即OSC M f T 12 。

4)指令周期是指执行一条指令所需要的时间,根据指令不同,可包含1、2、4个机器周期。

常用符号说明:寻址方式:(1)立即寻址。

操作数直接在指令中给出,它可以是二进制、十进制、十六进制数,也可以是带单引号的字符,通常把这种操作数称为立即数,它的寻址围就是指令本身所在的程序存储单元。

例:MOV A,#25H;MOV DPTR,#1234H;(2)直接寻址。

在指令中直接给出存放操作数的存单元的地址。

寻址围为:部RAM低128字节单元,特殊功能寄存器。

例:MOV A,25H;(3)寄存器寻址。

指令中给出的是操作数所在的寄存器。

寻址围为:4组工作寄存器(R0 ~R7),部分特殊功能寄存器,如A、B、DPTR。

例:MOV A,R7;(4)寄存器间接寻址。

存放操作数的存单元的地址放在寄存器中,指令只给出寄存器(包括Ri和DPTR),寄存器名称前加“”前缀标志。

寻址围:地址围从00 ~FFH的全部部RAM 单元,包括堆栈区,但不包括特殊功能寄存器,以及地址围从0000 ~FFFFH的全部片外RAM。

例:MOV A,R7;(5)变址寻址。

将基址寄存器与变址寄存器的容相加,结果作为操作数的地址。

变址寻址主要用于查表操作。

寻址围:64KB的程序存储空间。

例:MOVC A,A+DPTR;(6)相对寻址。

指令中给出的操作数是程序相对转移的偏移量。

偏移量是一个带符号的单字节数,围为-128 ~+127。

例:SJMP 50H;(7)位寻址。

操作数是位地址。

寻址围:部RAM位寻址区共128位(位地址:00 ~7FH),11个特殊功能寄存器中的可寻址位(对于8051,有83位)。

MCS-51单片机指令系统I.数据传送类(29条)1.普通传送指令MOV:部ROM;MOVC:外部ROM;MOVX:程序存储器。

1)片数据存储器传送指令(16条)(1)以A为目的操作数指令(4条)MOV A,#data;MOV A,direct;MOV A,Rn;MOV A,Ri;(2)以Rn为目的操作数的指令(3条)MOV Rn,#data;MOV Rn,direct;MOV Rn,A;(3)以直接地址为目的操作数的指令(5条)MOV direct,#data;MOV direct,direct;MOV direct,A;MOV direct,Rn;MOV direct,Ri;(4)以寄存器间接寻址为目的操作数的指令(3条)MOV Ri,#data;MOV Ri,direct;MOV Ri,A;(5)16位书库传送指令(1条)MOV DPTR,#data16;2)片外数据存储器传送指令(4条)(1)使用DPTR进行间接寻址MOVX A , DPTR ;A←((DPTR))MOVX DPTR , A ;(DPTR)←A(2)使用Ri进行间接寻址MOVX A , Ri ;A←((Ri))MOVX Ri ,A ;(Ri)←A例3.6 要求把外部RAM 60H单元中的数据8BH传送到部RAM 50H中,试编程。

解法1:MOV R0 , #60H ;(R0)=60HMOVX A , R0 ;(A)=8BHMOV 50H , A ;(50H)=8BH解法2:MOV DPTR , #0060H ;(DPTR)=0060HMOVX A , DPTR ;(A)=8BHMOV 50H , A ;(50H)=8BH3)程序存储器传送指令(2条)MOVC A , A+DPTR ;A←((A)+(DPTR))MOVC A , A+PC ;A←((A)+(PC))例3.7已知程序存储器中以TAB为起点地址的空间存放着0~9的ASCII码,累加器A中存放着一个0~9之间的BCD码数据。

要求用查表的方法获得A中数据的ASCII码。

解法1: MOV DPTR , #TABMOVC A , A+DPTRRETTAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H解法2: INC AMOVC A , A+PCRETTAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H2.数据交换指令(5条)(1)整字节交换指令源操作数与累加器A进行8位数据交换,共有3条指令:XCH A , Rn ;(A)←(Rn)XCH A , direct ;(A)←(direct)XCH A , Ri ;(A)←((Ri))(2)半字节交换指令源操作数与累加器A进行低4位的半字节数据交换,只有1条指令:XCHD A , Ri ;(A)3~0 ((Ri))3~0(3)累加器高低半字节交换指令累加器A的高低半个字节进行数据交换,只有1条指令:SWAP A ;(A)3~0 (A)7~43.堆栈操作指令PUSH direct; --SP+1,SP←(direct)POP direct; --direct←(SP),SP←(SP-1)II.算术运算类指令1.加法指令1)不带进位的加法指令ADD A , #data ;A←(A)+dataADD A , direct ;A←(A)+(direct)ADD A , Rn ;A←(A)+(Rn)ADD A , Ri ;A←(A)+((Ri))加法运算的结果会影响程序状态字寄存器PSW,其中包括:①如果运算结果的最高位第7位有进位,进位标志CY置“1”,反之,CY清“0”;②如果运算结果的第3位有进位,辅助进位标志AC置“1”,反之,AC清“0”;③如果运算结果的第6位有进位而第7位没有进位或者第7位有进位而第6位没有进位,则溢出标志OV置“1”(即OV=C7⊕C6),反之,OV清“0”;④奇偶标志P随累加器A中1的个数的奇偶性而变化。

例3.10已知(A)=97H,(R0)=89H,执行指令:ADD A , R0解:1001 0111+ 1000 10011←0010 0000运算结果:(A)=20H,CY=1,AC=1,OV=1,P=1。

若97H和89H是两个无符号数,则结果是正确的;反之,若97H和89H是两个带符号数(即负数),则由于有溢出而表明相加结果是错误的,因为两个负数相加结果不可能是正数。

2)带进位的加法指令ADDC A , #data ;A←(A)+data+(CY)ADDC A , direct ;A←(A)+(direct)+(CY)ADDC A , Rn ;A←(A)+(Rn)+(CY)ADDC A , Ri ;A←(A)+((Ri))+(CY)例3.11已知当前(CY)=1,(A)=97H,(R0)=89H,执行指令:ADDC A , R0解:1001 01111000 1001+ 11←0010 0001运算结果:(A)=21H,CY=1,AC=1,OV=1,P=0。

相关主题