单片机讲义第三章PPT讲稿.ppt
《单片机讲义第三章PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《单片机讲义第三章PPT讲稿.ppt(88页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、单片机讲义第三章第1页,共88页,编辑于2022年,星期五3.1 指令系统简介指令周期:完成一条指令操作所需要的机器周期数指令长度:指令代码所占字节数指令代码:是程序指令的二进制数表示方法 89C51指令系统共有111条指令,分5 大类第2页,共88页,编辑于2022年,星期五指令系统指令系统42种操作码助记符描述33种操作功能,形成111条指令:49条单字节、46条双字节、16条三字节;64条单周期、45条双周期、2条四周期。第3页,共88页,编辑于2022年,星期五特点1、可以进行直接地址到直接地址的数据传送(不经ACC或Rn)2、用变址寻址方式访问程序存储器中的表格3、在算术运算指令中有
2、乘法和除法4、对一些I/O口进行操作有读-修改-写功能5、有与布尔处理器相对应的位操作指令第4页,共88页,编辑于2022年,星期五指令格式一、汇编语言指令格式标号:操作码 操作数1,操作数2,操作数3;注释 例:LOOP:MOV A,#40H;A 40H其中操作数其中操作数1 1一般为目的操作数一般为目的操作数。1.标号:指令的符号地址。18个字母或数字,并以冒号“:”结尾。2.操作码:指明指令功能。25个字母。例如:MOV 传送 ANL 逻辑与 MUL 乘法 RR 右循环 RET 子程序返回第5页,共88页,编辑于2022年,星期五指令格式3.操作数:指令操作对象数据、地址、寄存器名及约定
3、符号。4.注释行:说明指令在程序中的作用。操作码和操作数是指令主体。第6页,共88页,编辑于2022年,星期五编写程序时,应注意以下几个问题:(1)标号标号是语句地址的标志符号。有关标号的规定如下:1、标号由18个字母或数字组成,可以使用一个下划线符号“_”。2、第一个字符必须是字母。3、指令助记符或系统中保留使用的字符串不能作为标号。4、标号后面必须跟一个冒号。5、一条语句可以有标号,也可以没有标号。标号的有无取决于本程序中其他语句是否需要访问这条语句。第7页,共88页,编辑于2022年,星期五以下是合法的标号以下是不合法的标号LOOP1:5LOOP:(第一个字符是数字)START:A*5:
4、(“*”不能在标号中出现)Q4_:ADD:(指令助记符)SSS:START(无冒号)L123:L12345678:(超过8个字符)(2)操作码规定语句执行的操作。操作码是以指令助记符或伪指令助记符表示的。操作码是汇编指令中惟一不能空缺的部分。第8页,共88页,编辑于2022年,星期五(3)操作数用于给指令的操作提供数据或地址。在一条指令中,操作数可以为1项、2项或3项,各操作数之间用逗号隔开,操作数也可能空缺。例如:LOOP:INC A ;1项操作数 ADD A,#50H;2项操作数 CJNE A,#5,LOOP;3项操作数 RET;无操作数第9页,共88页,编辑于2022年,星期五(4)注释
5、注释不属于语句的功能部分,它只对语句进行解释说明。在程序汇编时注释字段不被汇编,可有可无,只起说明作用。注释内容以“;”开头。注释符在程序调试时可以使某些指令失效,不起作用,以便查找原因。(5)分隔符分隔符用于分割语句的各个部分,以便于区分。冒号“:”用于标号之后;空格用于操作码和操作数之间;逗号“,”用于操作数之间;分号“;”用于注释之前。第10页,共88页,编辑于2022年,星期五缩写符号 p32缩写符号一定要牢记!会在以后指令的学习中不断加强。第11页,共88页,编辑于2022年,星期五3.2 寻址方式寻找操作数的方法叫寻址方式。寻找操作数的方法叫寻址方式。1、立即寻址2、直接寻址(字节
6、、位)3、寄存器寻址4、寄存器间接寻址5、变址寻址6、相对寻址7、位寻址第12页,共88页,编辑于2022年,星期五立即寻址方式指令中给出实际操作数据(立即数),一般用于为寄存器或存储器赋常数初值。“#”之后为立即数举例:8位立即数:MOV A,#40H;A40H16位立即数:MOV DPTR,#2100H;DPTR2100H第13页,共88页,编辑于2022年,星期五直接寻址方式指令操作数是存储器单元地址,数据在存储器单元中。MOV A,40H;A(40H)例:设存储器两个单元的内容如图所示,执行指令 MOV A,40H 后 A=56H 直接寻址方式对数据操作时,地址是固定值,而地址所指定的
7、单元内容为变量形式。41H 78H40H 56H第14页,共88页,编辑于2022年,星期五直接寻址访问空间(1)内部RAM低128B(2)SFR 访问SFR的唯一方法第15页,共88页,编辑于2022年,星期五寄存器寻址方式指令操作数为寄存器名,数据在寄存器中。例:MOV A,R0;A(R0)设指令执行前 A=20H,R0=40H,执行指令后,A=40H,R0=40H 能用的寄存器有:R0R7、A、B、AB和DPTR第16页,共88页,编辑于2022年,星期五寄存器间接寻址方式指令的操作数为寄存器名,寄存器中的内容为数据的地址。存放地址的寄存器称为间址寄存器或数据指针。例:MOV A,R0;
8、A(R0)设指令执行前 A=20H,R0=40H,地址为40H存储器单元内容如图所示。执行指令后,A=24H,R0=40H,(40H)=34H 41H 67H 40H 34HR0第17页,共88页,编辑于2022年,星期五寄存器间接寻址(1)内部RAM低128B,用R0、R1为间址寄存器(2)外部RAM的两种形式:R0、R1DPTR第18页,共88页,编辑于2022年,星期五变址寻址数据在存储器中,指令给出的寄存器中为数据的基地址和偏移量。数据地址=基地址+偏移量例:MOVC A,A+DPTR;A(A)+(DPTR)设指令执行前 A=09H,DPTR=2000H,存储器单元内容如图所示。执行指
9、令后,A=12H 2008H 89H2009H 12H第19页,共88页,编辑于2022年,星期五相对寻址方式以PC的内容作为基地址,加上偏移量,所得结果送PC寄存器作为转移地址。偏移量在128+127之间。只在相对转移指令中使用。例:SJMP80H;短跳转 PC当前值+80H为转移地址第20页,共88页,编辑于2022年,星期五直接寻址方式之位寻址方式指令给出位地址。一位数据在存储器的位寻址区。例:MOV C,40H;Cy(位地址40H)设指令执行前 Cy=1,位地址40H存储器单元如图,执行指令后,Cy=028H 0110001029H 11010111位寻址区第21页,共88页,编辑于2
10、022年,星期五位地址的表示方式(1)直接使用位地址(2)使用字节地址加位序号(3)用位名称(4)用寄存器符号加位序号第22页,共88页,编辑于2022年,星期五寻址方式小结寻寻址方式址方式存存储储器空器空间间立即立即寻寻址址程序存程序存储储器器ROM直接直接寻寻址址片内片内RAM低低128字字节节和特殊功能寄存器和特殊功能寄存器SFR寄存器寄存器寻寻址址 工作寄存器工作寄存器R0R7,A,B,AB,DPTR,Cy寄存器寄存器间间接接寻寻址址片内片内RAM低低128字字节节(R0,R1,SP),片外),片外RAM(R0,R1,DPTR)变变址址寻寻址址程序存程序存储储器(器(A+PC,A+DP
11、TR)相相对寻对寻址址程序存程序存储储器当前器当前PC-128B+127B字字节节范范围围(PC+rel)位位寻寻址址片内片内RAM的的20H2FH字字节节地址中的所有位和地址中的所有位和SFR中字中字节节地址能被地址能被8整除整除单单元的位元的位第23页,共88页,编辑于2022年,星期五3.3 数据传送类指令把源操作数传送到目的操作数,指令执行后,源操作数不变,目的操作数修改为源操作数。查表指令的寻址空间第24页,共88页,编辑于2022年,星期五数据传送指令理解实现寄存器、存储器之间的数据传送。1、内部传送指令。2、外部传送指令。3、交换指令。4、堆栈操作指令。5、查表指令。注意以下内容
12、中注释后面对指令进行注释的方法以及所用到的缩写符号第25页,共88页,编辑于2022年,星期五存贮器结构与数据传送指令MOVC:程序存储器MOV:片内RAMMOVX:片外RAM第26页,共88页,编辑于2022年,星期五以累加器A为目的操作数的数据传送指令1)MOV A,#data;A data 2)MOV A,direct;A(direct)3)MOV A,Rn;A(Rn)4)MOV A,Ri;A(Ri)n=07 i=0,1第27页,共88页,编辑于2022年,星期五以寄存器Rn为目的操作数的数据传送指令 1)MOV Rn,A;Rn(A)2)MOV Rn,#data;Rn data3)MOV
13、 Rn,direct;Rn (direct)n=07注意:p36最末一行警示例3-1第28页,共88页,编辑于2022年,星期五以直接地址为目的操作数的数据传送指令1)MOV direct,A;direct (A)2)MOV direct,#data;direct data3)MOV direct1,direct2;direct1(direct2)4)MOV direct,Rn;direct (Rn)5)MOV direct,Ri;direct (Ri)n=07 i=0,1例3-2第29页,共88页,编辑于2022年,星期五以间址Ri为目的操作数的数据传送指令以Ri间址单元为目的操作数的数据传
14、送指令1)MOV Ri,A ;(Ri)(A)2)MOV Ri,#data ;(Ri)data3)MOV Ri,direct;(Ri)(direct)i=0,1 注意书中例3-3上一行的警示第30页,共88页,编辑于2022年,星期五以DPTR为目的操作数的数传送指令16位立即数传送指令MOV DPTR,#data16;DPTR data16唯一的一条16位立即数传送指令例3-4第31页,共88页,编辑于2022年,星期五外RAM数据传送指令64K范围:MOVX A,DPTR;(A)(DPTR)MOVX DPTR,A;(DPTR)A 256B范围:MOVX A,Ri ;(A)(Ri)MOVX R
15、i,A ;(Ri)Ai=0,1注意与P2口的关系。P38例3-5倒数第三行的警示第32页,共88页,编辑于2022年,星期五疑难指令详解数据传输指令外部数据存贮器的操作只有6条指令,注意Ri的取值范围在00FFH之间。MOV C,bit MOV A,databit,data都是数字,在00FFH,它们只相差C,A两个符号。MOVX A,Ri MOVX Ri,A与P0口有关,外部RAM地址范围00FFH,如果用P2口作为高位地址,外部RAM地址范围为P2+Ri第33页,共88页,编辑于2022年,星期五查表指令 p39ROM数据传送指令实现从程序存储器读取数据到A累加器,只能使用变址间接寻址方式
16、。多用于查常数表程序,可直接求取常数表中的函数值MOVC A,A+DPTR;A(A)+(DPTR)查表范围为 64KB 程序存储器任意空间,称为远程查表指令。MOVC A,A+PC ;A (A)+(PC)常数表只能在查表指令后256B范围内。(PC内容为下一条指令的起始地址。)例3-6第34页,共88页,编辑于2022年,星期五疑难指令详解查表指令查表指令只用于程序存贮器的操作。X3X2X1X0:MOVC A,A+PC用这条指令优点在于与处理较少,且不影响其他SFR的值,缺点是表格只能靠近这条指令安排,在X3X2X1X0(H)以下的00FFH之中(PC为下条指令首地址)。偏移量放在A中,偏移量
17、=表首地址-(X3X2X1X0+1)第35页,共88页,编辑于2022年,星期五疑难指令详解查表指令X3X2X1X0:MOVC A,A+DPTR这条指令使用广泛,使用时不用计算偏移量,表格可以放在程序存贮器的任何地址空间。缺点是如果DPTR已经被使用,则必须保护,并且在执行完查表后恢复,每次查表时只要置DPTR为表首地址就可以了。第36页,共88页,编辑于2022年,星期五数据交换指令实现片内RAM区的数据双向传送,n=07 i=0,1。XCH A,Rn;(A)(Rn)XCH A,direct;(A)(direct)XCH A,Ri;(A)(Ri)XCHD A,Ri;(A)30(Ri)30 S
18、WAP A;(A)74(Ri)30 例3-7第37页,共88页,编辑于2022年,星期五堆栈操作指令实现对数据或断点地址保护 PUSH direct ;SP(SP)+1,(SP)(direct)POP direct ;direct (SP),SP(SP)-1 注意书上的警示第38页,共88页,编辑于2022年,星期五数据传送指令总结MOV:源操作数和目的操作数都在片内RAM中;MOVX:实现外部RAM与内部累加器A的数据传送;MOVC:两条专用查表指令,ROM与A之间的数据传送;以累加器A为目的寄存器的传送指令会影响PSW中的奇偶标志位,其余传送指令对所有标志位均无影响;Ri中i的范围是0和1
19、;Rn中的n的范围是07每条指令中只能有1个Rn或Ri。如:MOV R1,R0 MOV A,R2 第39页,共88页,编辑于2022年,星期五例:顺序执行下列指令序列,求每一步执行结果MOV A,#30H;A=30HMOV 4FH,A ;(4FH)=30HMOV R0,#20H;R0=20HMOV R0,4FH;(20H)=30HMOV 21H,20H ;(21H)=30H第40页,共88页,编辑于2022年,星期五例:堆栈操作例:设 A=02,B=56H,执行下列指令后,SP=30H,A=02,B=56HSBRSBR:MOV SPMOV SP,#30H#30H;设栈底;设栈底PUSH APU
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 讲义 第三 PPT 讲稿
限制150内