资源描述:
《大工10秋《单片机原理及应用》辅导资料六》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、单片机原理及应用辅导资料六主题:课件第三章第3节学习时间:2016年门月7日一门月13日内容:我们这周主要学习课件第三章单片机寻址方式第3节的相关内容。希望通过下面的内容能使同学们加深对单片机相关知识的理解。一、学习要求掌握指令系统中各种寻址方式的操作过程;了解指令的功能和对状态标志位的影响。二、主要内容1.数据传送类指令(29条)传送类指令占有较大的比重。数据传送是进行数据处理的最基本的操作,这类指令一般不影响标志寄存器PSW的状态。传送类指令可以分成两大类。一是采用MOV操作符,称为一般传送指令;二是采用非MOV操作符,称为
2、特殊传送指令,如:MOVC、MOVX、PUSH、POP、XCH、XCHD及SWAPo(1)一般传送①16位传送这条指令的功能是将源操作数data16(通常是地址常数)送入的操作数DPTR中。源操作数的寻址方式为立即寻址。例如执行指令MOVDPTR,#1234H后,(DPH)=12H,(DPL)二34H。②8位传送8位的传送指令属于字节传送,指令完成的任务是将源字节内容拷贝到目的字节,而源字节的内容不变。通用格式为:MOV〈目的字节〉,<源字节>。由于在5种源字节中,只有#data不能用做目的字节。所以可以用4种目的字节为基础构造
3、4类指令。相应的源字节选择依据是:源字节与目的字节不相同(除direct外);等存器寻址与等存器间接寻址间不相互传送。(2)特殊传送指令特殊传送指令的操作符为:MOVC、MOVX、PUSH、POP、XCH、XCHD和SWAPo功能分别为:ROM查表、外部RAM读写、堆栈操作和交换指令。①ROM查表•DPTR内容为基址该指令首先执行16位无符号数加法,将获得的基址与变址之和作为16位的程序存储器地址,然后将该地址单元的内容传送到累加器Ao指令执行后DPTR的内容不变。•PC内容为基址取出该单字节指令后PC的内容增1,以增1后的当前
4、值去执行16位无符号数加法,将获得的基址与变址之和作为16位的程序存储器地址。然后将该地址单元的内容传送到累加器A。指令执行后PC的内容不变。②读写片外RAM•读片外RAMMOVXA,@DPTR;A—((DPTR))。该指令以16位DPTR为间址寄存器读片外RAM,可以寻址整个64K字节的片外RAM空间。指令执行时,在DPH中的高8位地址由P2口输岀,在DPL中的低8位地址由P0口分时输出,并由ALE信号锁存在地址锁存器中。MOVXA,@Ri;A-((Ri)。该指令以R0或R1为间址等存器,也可以读整个64K字节的片外RAM空间
5、。指令执行时,低8位地址在R0或R1中由P0口分时输岀,ALE信号将地址信息锁存在地址锁存器中(多于256字节的访问,高位地址由P2口提供)。读片外RAM的MOVX操作,使P3.7引脚输出的RD信号选通片外RAM单元,相应单元的数据从P0口读入累加器中。•写片外RAMMOVX@DPTR,A;((DPTR))J(A)。该指令以16位DPTR为间址寄存器写外部RAM,可以寻址整个64K字节的片外RAM空间。指令执行时,在DPH中高8位地址由P2口输出,在DPL中的低8位地址,由P0口分时输出,并由ALE信号锁存在地址锁存器中。MOV
6、X@Ri,A;((Ri))J(A)。该指令以RO或R1为间址寄存器,也可以写整个64K字节的片外RAM空间。指令执行时,低8位地址在R0或R1中由P0口分时输出,ALE信号将地址信息锁存在地址锁存器中(多于256字节的访问,高位地址由P2口提供)。写片外RAM的“MOVX”操作,使P3.6引脚的WR信号有效,累加器A的内容从P0口输出并写入选通的相应片外RAM单元。①堆栈操作堆栈是在内部RAM中按“后进先出”的规则组织的一片存储区。此区的一端固定,称为栈底;另一端是活动的,称为栈顶。栈顶的位置(地址)由栈指针SP指示(即SP的内
7、容是栈顶的地址)。在80C51中,堆栈的生长方向是向上的(地址增大)。系统复位时,SP的内容为07H。通常用户应在系统初始化时对SP重新设置。SP的值越小,堆栈的深度越深。PUSHdirect;SP-(SP)+1,(SP)J(direct)。POPdirect;direct-((SP)),SP-(SP)-1O例如:若(SP)二07H,(40H)二88H,执行指令PUSH40H后,(SP)二08H,(08H)二88H。若(SP)二5FH,(5FH)二90H,执行指令POP70H后,(SP)二5EH,(70H)二90H。②数据交换对
8、于单一的MOV类指令,传送通常是单向的,即数据是从一处(源)到另一处(目的)的拷贝。而交换类指令完成的传送是双向的,是两字节间或两半字节间的双向交换。•字节交换例如:若(R0)二80H,(A)二20H。执行指令XCHA,R0后,(A)二80H,(R0)二20H。