1、,程序状态字寄存器PSW,用于存放运算结果的一些特征,进位标志,辅助进位标志,用户标志,工作寄存器组选择,溢出标志,奇偶校验标志,6,2控制器,控制器包括定时控制逻辑、指令寄存器、指令译码器、程序计数器PC、数据指针DPTR、堆栈指针SP、地址寄存器和地址缓冲器等。,它的功能是对逐条指令进行译码,并通过定时和控制电路在规定的时刻发出各种操作所需的内部和外部控制信号,协调各部分的工作。,程序计数器PC:用于存放下一条将要执行指令的地址。当一条指令按PC所指向的地址从程序存储器中取出之后,PC的值会自动增加,即指向下一条指令。PC不属于特殊功能寄存器,不能被访问。,堆栈指针SP:用来指示堆栈的起始
2、地址。,指令译码器:当指令送入指令译码器后,由译码器对该指令进行译码,即把指令转变成为所需要的电平信号,CPU根据译码器输出的电平信号使定时控制电路产生执行该指令所需要的各种控制信号。,7,1.2 8051单片机的存储器结构,8051单片机在物理上它有4个存储器空间:片内程序存储器(4k)和片外程序存储器;片内数据存储器和片外数据存储器。,图1.5 8051单片机存储器结构,8,8051单片机通过不同的信号来选通ROM或RAM。当从外部ROM中取指令时,用选通信号PSEN,而从外部RAM中读写数据时则采用读写信号RD或WR来选通,因此不会因地址重叠而发生混乱。,8051系列单片机的片内数据存储
3、器RAM有256个字节,其中00H-7FH地址空间是直接寻址区,该区域内00H-1FH地址为工作寄存器区,安排了4组工作寄存器,每组占用8个地址单元,记为R0-R7,在某一时刻,CPU只能使用其中任意一组工作寄存器,究竟选择哪一组工作寄存器由程序状态字寄存器PSW中RS0和RS1的状态决定。,片内RAM的20H-2FH地址单元为位寻址区,共16个字节,每个字节的每一位都规定了位地址,该区域内每个地址单元除了可以进行字节操作之外,还可进行位操作,右图所示为片内RAM的位地址分配。,9,P0.0-P0.7(39-32):双向I/O口P0。其第二功能是在访问外部存储器时,可分时用做低8位地址和8位数
4、据线。P0口能以吸收电流的方式驱动8个LS型TTL负载。,P1.0-P1.7(1-8):双向I/O口P1。P1口能驱动(吸收或输出电流)4个LS型TTL负载。在8052单片机中,P1.0还用作定时器2的计数触发输入端T2,P1.1还用作定时器2的外部控制端T2EX。,P2.0-P2.7(21-28):双向I/O口P2。P2口可以驱动(吸收或输出电流)4个LS型TTL负载。其第二功能是在访问外部存储器时,输出高8位地址。,P3.0-P3.7(10-17):双向I/O口P3。P3口能驱动(吸收或输出电流)4个LS型TTL负载。P3口的每条引脚都有各自的第二功能。,第 2 章 Proteus快速入门
5、,11,英国Labcenter公司推出的Proteus软件采用虚拟仿真技术,很好地解决了单片机及其外围电路的设计和协同仿真问题。,2.1集成环境ISIS,Proteus软件包提供一种界面友好的人机交互式集成环境ISIS,其设计功能强大,使用方面。,该软件已有近20年的历史,它针对单片机应用,可以直接在虚拟模型上进行软件编程和虚拟仿真,配合虚拟示波器、逻辑分析仪等,用户能看到单片机系统运行后的输入输出效果。,ISIS在Windows环境下运行,它的主界面,由下拉菜单、快捷工具栏、预览窗口、原理图编辑窗口、元器件列表窗口等组成。,File菜单:包括常用的文件功能,如创建一个新设计、打开己有设计、保
6、存设计、导入导出文件、打印设计文档等。,View菜单:包括是否显示网格、设置网格间距、缩放原理图、显示与隐藏各种工具栏等命令。,Edit菜单:包括撤销恢复操作、查找与编辑、剪切、复制、粘贴元器件、设置多个对象的层叠关系等命令。,第 3 章 指令系统复习,13,2414 ADD A,#14H;累加器A中的内容与14H相加,3.1 指令助记符和字节数,指令本身是一组二进制数代码,助记符一般采用有关英文单词的缩写。,740A MOV A,#0AH;将十六进制数0AH放入累加器A中,指令,助记符,一条指令通常由两部分组成:操作码和操作数。,操作码用来规定这条指令完成什么操作。操作数则表示这条指令所完成
7、的操作对象,即是对谁进行操作。,操作码,操作数,14,在8051单片机中,对于不同的指令,指令的字节数不相同。8051单片机有单字节,双字节或三字节指令。,1、单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。在80C51系列的指令系统中,共有49条单字节指令。,操作码+地址码,如 MOV A,Rn 指令机器码为单字节,其中rrr可表示为000111,分别代表R0R7,(1)单字节指令中既包含操作码信息,也包含操作数信息。,例如数据指针加1指令:INC DPTR,由于操作的内容和对象都很明确,故不必再加操作数字节,其指令码为:,(2)用一个字节中的几位来表示操作数或操作数所在的位置。
8、,11101rrr,10100011,15,例如 把8位二进制数传送到累加器A的指令:MOV A,#data其中#data表示8位二进制数,也叫立即数,这就是双节指令,其指令码为:,01110100,#data,2 双字节指令:其中一个字节为操作码,另一个字节是操作数。,操作码,数据或地址码,在80C51系列的指令系统中,共有45条双字节指令。,16,3.三字节指令则是一个字节的操作码,两个字节的操作数。操作数可以是数据,也可以是地址,因此,可能有四种情况:,操作码,立即数,立即数,操作码,操作码,操作码,地 址,立即数,立即数,地 址,地 址,地 址,8051单片机共有17条三字节指令,只占
9、全部指令的15%。一般而言,指令的字节数越则其执行速度越快,从这个角度来说,8051单片机的指令系统是比较合理的。,ANL direct,#data,MOV DPTR,#1234H,17,3.2 寻址方式,所谓寻址,就是寻找操作数据的地址。例如:MOV A,R0,所谓寻址方式就是通过确定操作数据所在的地址把操作数据提取出来的方法。,在8051单片机中,有7种寻址方式:1寄存器寻址 2直接寻址 3立即寻址 4寄存器间接寻址 5变址寻址 6相对寻址 7位寻址,目的字节,源字节,18,3.3指令分类详解,算术运算类指令(24条);逻辑运算类指令(25条);数据传送类指令(28条);控制转移类指令(1
10、7 条);布尔操作(位)类指令(17条)。,8051单片机共有111条指令,按指令功能可分为算术运算指令、逻辑运算指令、数据传送指令、控制转移指令及位操作指令等5大类。,19,3.3.1算术运算指令,算术运算指令包括加、减、乘、除法指令,加法指令又分为普通加法指令、带进位加法指令和加1指令。,1普通加法指令,ADD A,Rn;Rn(n=0-7)为工作寄存器 ADD A,direct;direct为直接地址单元 ADD A,Ri;Ri(i=0-1)为工作寄存器 ADD A,#data;#data为立即数,这组指令的功能是将累加器A的内容与第二操作数的内容相加,结果送回到累加器A中。,在执行加法的
11、过程中,如果位7有进位,则置“1”进位标志CY,否则清“0”CY。如果位3有进位,则置“1”辅助进位标志AC。如果位6有进位而位7没有进位,或者位7有进位而位6没有进位,则置“1”溢出标志OV,否则清“0”OV。,20,2带进位加法指令,ADDC A,Rn;Rn(n=0-7)为工作寄存器,3加1指令,INC A 不影响任何标志。,4十进制调整指令,DA A,5带进位减法指令,SUBB A,Rn;Rn(n=0-7)。指令意义(A)(Rn)(CY)(A),6减1指令,DEC A,7单字节乘法指令 MUL AB,8单字节除法指令 DIV AB,乘积的低8位存放在累加器A中,高8位存放在寄存器B中。,
12、商的整数部分存放在累加器A中,余数部分存放在寄存器B中,21,3.3.2逻辑运算指令,逻辑运算指令分为简单逻辑操作指令、逻辑与指令、逻辑或指令以及逻辑异或指令。,1简单逻辑指令,CLR A;对累加器A清“0”,不影响标志位。,SWAP A;将A的高半字节(A.7-A.4)与低半字节(A.3-A.0)交换,CPL A;对进行累加器的内容逐位取反,结果仍存在A中。,RL A;累加器A的内容向左环移一位 RLC A;累加器A的内容带进位位CY向左环移一位 RR A;累加器A的内容向右环移一位 RRC;累加器A的内容带进位位CY向右环移一位,2逻辑与指令 ANL A,Rn,3逻辑或指令 ORL A,R
13、n,4逻辑异或指令 XRL A,Rn,22,3.3.3数据传送指令,8051单片机的存储器区域可分为如下3个部分,即:程序存储器 0000H-FFFFH 内部RAM 00H-FFH 外部RAM/IO区 0000H-FFFFH,对于程序存储器ROM,只能通过变址寻址方式采用MOVC指令访问。,外部数据存储器RAM只能通过间接寻址方式用MOVX指令访问。,1数据传送到累加器A的指令,MOV A,Rn;n=0-7 MOV A,direct MOV A,Ri;i=0或1 MOV A,#data,这组指令的功能是把源操作数的内容送入累加器A。,23,4堆栈操作指令,PUSH direct;进栈 POP
14、direct;出栈,在8051单片机的特殊功能寄存器中有一个堆栈指针寄存器SP,进栈(PUSH)指令的功能是首先将堆栈指针SP的内容加1,然后将直接地址所指出的内容送入SP指出的内部RAM单元。,5累加器A与外部数据存储器RAM之间的数据传送指令,MOVX A,DPTR;(DPTR)A,6查表指令,MOVC A,A+PCMOVC A,A+DPTR,7字节交换指令,XCH A,Rn;n=0-7,8半字节交换指令,XCHD A,Ri;i=0或1,将累加器A的低4位内容和R(i)的低4位内容相互交换。,24,3.3.4控制转移指令,1无条件短跳转指令,AJMP addrll,这是2K字节范围内的无条件跳转指令。,2相对转移指令,SJMP rel,执行时跳转至(PC)+rel+2。因此转移的目标地址可以在这条指令前128个字节到后127个字节之间。,3长跳转指令,LJMP addr16,4散转指令,JMP A+DPTR,25,5条件转移指令,JZ rel;(A)=0时转移JNZ rel;(A)#0时转移JC rel;CY=1时转移JNC rel;CY=0时转移JB bit,rel;(bit)=1时转移JNB bit,rel;(bit)=0时转移JBC bit,rel;(bit)=1时转移,并清“0 bit位,6比较不相等转移指令:CJ
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1