大工20秋《单片机原理及应用》复习资料六
单片机原理及应用辅导资料六主 题:课件第三章第3节学习时间:2020年5月4日--5月10日
“不忘初心、牢记使命”主题理论学习:
每周文摘:我们党要始终成为时代先锋、民族脊梁,始终成为马克思主义执政党,自身必须始终过硬。全党要更加自觉地坚定党性原则,勇于直面问题,敢于刮骨疗毒,消除一切损害党的先进性和纯洁性的因素,清除一切侵蚀党的健康肌体的病毒,不断增强党的政治领导力、思想引领力、群众组织力、社会号召力,确保我们党永葆旺盛生命力和强大战斗力。
摘选自《决胜全面建成小康社会,夺取新时代中国特色社会主义伟大胜利》
课程内容:
我们这周主要学习课件第三章单片机寻址方式第3节的相关内容。希望通过下面的内容能使同学们加深对单片机相关知识的理解。一、学习要求
掌握指令系统中各种寻址方式的操作过程;了解指令的功能和对状态标志位的影响。二、主要内容
1.数据传送类指令(29条)
传送类指令占有较大的比重。数据传送是进行数据处理的最基本的操作,这类指令一般不影响标志寄存器PSW的状态。
传送类指令可以分成两大类。一是采用MOV操作符,称为一般传送指令;二是采用非MOV操作符,称为特殊传送指令,如:MOVC、MOVX、PUSH、POP、XCH、XCHD及SWAP。
(1)一般传送
①16位传送
这条指令的功能是将源操作数data16(通常是地址常数)送入的操作数DPTR中。源操作数的寻址方式为立即寻址。
例如执行指令 MOVDPTR,#1234H 后,(DPH)=12H,(DPL)=34H。
②8位传送
8位的传送指令属于字节传送,指令完成的任务是将源字节内容拷贝到目的字节,而源字节的内容不变。通用格式为:MOV<目的字节> ,<源字节>。
由于在5种源字节中,只有#data不能用做目的字节。所以可以用4种目的字节为基础构造4类指令。相应的源字节选择依据是:源字节与目的字节不相同(除direct外);寄存器寻址与寄存器间接寻址间不相互传送。
(2)特殊传送指令
特殊传送指令的操作符为: MOVC、MOVX、PUSH、POP、XCH、XCHD和 SWAP。
功能分别为:ROM查表、外部RAM读写、堆栈操作和交换指令。
ROM查表
DPTR内容为基址
该指令首先执行16位无符号数加法,将获得的基址与变址之和作为16位的程序存储器地址,然后将该地址单元的内容传送到累加器A。指令执行后DPTR的内容不变。
PC内容为基址
取出该单字节指令后PC的内容增1,以增1后的当前值去执行16位无符号数加法,将获得的基址与变址之和作为16位的程序存储器地址。然后将该地址单元的内容传送到累加器A。指令执行后PC的内容不变。
读写片外RAM
读片外RAM
MOVXA,@DPTR;A ←((DPTR))。该指令以16位DPTR为间址寄存器读片外RAM,可以寻址整个64K字节的片外RAM空间。指令执行时,在DPH中的高8位地址由P2口输出,在DPL中的低8位地址由P0口分时输出,并由ALE信号锁存在地址锁存器中。
MOVXA,@Ri;A ←((Ri)。该指令以R0或R1为间址寄存器,也可以读整个64K字节的片外RAM空间。指令执行时,低8位地址在R0或R1中由P0口分时输出,ALE信号将地址信息锁存在地址锁存器中(多于256字节的访问,高位地址由P2口提供)。
读片外RAM的MOVX操作,使P3.7引脚输出的信号选通片外RAM单元,相应单元的数据从P0口读入累加器中。
写片外RAM
MOVX@DPTR,A;((DPTR))←(A)。该指令以16位DPTR为间址寄存器写外部RAM,可以寻址整个64K字节的片外RAM空间。指令执行时,在DPH中高8位地址由P2口输出,在DPL中的低8位地址,由P0口分时输出,并由ALE信号锁存在地址锁存器中。
MOVX@Ri,A;((Ri))←(A)。该指令以R0或R1为间址寄存器,也可以写整个64K字节的片外RAM空间。指令执行时,低8位地址在R0或R1中由P0口分时输出,ALE信号将地址信息锁存在地址锁存器中(多于256字节的访问,高位地址由P2口提供)。
写片外RAM的“MOVX”操作,使P3.6引脚的信号有效,累加器A的内容从P0口输出并写入选通的相应片外RAM单元。
③堆栈操作
堆栈是在内部RAM中按“后进先出”的规则组织的一片存储区。此区的一端固定,称为栈底;另一端是活动的,称为栈顶。栈顶的位置(地址)由栈指针SP指示(即SP的内容是栈顶的地址)。在80C51中,堆栈的生长方向是向上的(地址增大)。
系统复位时,SP的内容为07H。通常用户应在系统初始化时对SP重新设置。SP的值越小,堆栈的深度越深。
PUSHdirect;SP ←(SP)+ 1,(SP)←(direct)。
POPdirect;direct←((SP)),SP ←(SP)-1。
例如:若(SP)=07H,(40H)=88H,执行指令 PUSH40H 后,(SP)=08H,(08H)=88H。若(SP)=5FH,(5FH)=90H,执行指令 POP70H 后,(SP)=5EH,(70H)=90H。
④数据交换
对于单一的MOV类指令,传送通常是单向的,即数据是从一处(源)到另一处(目的)的拷贝。而交换类指令完成的传送是双向的,是两字节间或两半字节间的双向交换 。
字节交换
例如:若(R0)=80H,(A)=20H。执行指令 XCHA,R0 后,(A)=80H,(R0)=20H。
半字节交换
XCHD指令的功能是间址操作数的低半字节与A的低半字节内容互换。
SWAP指令的功能是累加器的高低4位互换。
例如:若(R0)=30H,(30H)=67H, (A)=20H。执行指令 XCHDA,@R0 指令后,(A)=27H,(30H)=60H。若(A)=30H,执行指令SWAPA后,(A)=03H。三、习题
1.若A=00H,(40H)=FFH,指令“MOV A,40H”执行后,累加器A和40H单元的内容分别为( )。
A.00H,FFH
B.00H,00H
C.FFH,FFH
D.FFH,00H
答案:C2. 设原累加器A中的内容为D7H,执行MOV A,#09H后,A中为( )。
A.00H B.09H C.D7H D.D9H
答案:B3. 设原来A中的内容为C8H,R0中内容为65H,内部RAM 65H单元中内容为55H,则执行MOV A,@R0后A的内容变为( )。
A.55H B.65H C.C8H D.00H
答案:A4.设R1=30H,(30H)=26H,A中内容为0,则执行指令MOV@R1,A后,30H中内容为( )。
A.26H B.30H C.56H D.0
答案:D5.当(SP)=62H,(62H)=70H,则执行指令POPA后,(SP)=( )。
A.61H B.62H C.63H D.70H
答案:A6.设原来SP中内容为43H,90H单元内容为34H,则执行PUSH90H指令后,SP中内容变为( )。
A.42H B.43H C.44H D.34H
答案:C
转载注明无忧答案网QQ 761296021
页:
[1]