单片机技术第3章.ppt

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
【例3-21】编程实现16位数的算术左移。设16位数一次存放在内RAM 22H 21H单元中,高位在前。 解:算术左移是将操作数整体左移一位,最低位补充0,相当于完成16位数的乘2操作,如图3-13所示。 图3-13 16位数算术左移示意图 程序如下: CLR C ;清Cy位 MOV A, 21H ;取操作数低8位 RLC A ;低8位带Cy左移一位 MOV 21H, A ;回存 MOV A, 22H ;指向操作数高8位 RLC A ;高8位带Cy左移一位 MOV 22H, A ;回存 3.2.4 位操作类指令 在MCS-51的硬件结构中,有一个位处理器(布尔处理器)和一套位变量处理的指令子集。在进行位操作时,Cy位为位累加器。位存储器是片内RAM字节地址20H~2FH单元中连续的128个位(位地址位00H~7FH)和特殊功能寄存器中字节地址能被8整除的那部分SFR,这些SFR都具有可寻址位。位操作指令包括位变量的传送、修改或逻辑操作。 1.位传送指令(2条) MOV C,bit ;(bit)→Cy 如 MOV C,12H MOV bit,C ;Cy→bit 如 MOV 24H.1,C 2.位修正指令(6条) (1)清零指令 CLR C ;0→C CLR bit ;0→bit (2)取反指令 CPL C ;→C CPL bit ;()→bit (3)置1指令 SETB C ;1→C SETB bit ;1→bit 说明: (1)这两条指令的寻址方式都为变址寻址方式,都是单字节指令,都只影响标志位P。 (2)MOVC A, @A+DPTR的寻址以DPTR为基址,可以寻址整个64 KB的ROM空间。 (3)MOVC A, @A+PC的寻址以当前指令的PC值为基址寄存器,其寻址范围为该指令后256 B的ROM空间。 (4)在实际应用中,MOVC A, @A+DPTR寻址范围广,不用修正A值,比较方便,采用较多。 【例3-8】在单片机应用系统中,常用LED数码管显示数码,但显示数字(≤9)与显示数字编码并不相同,需要将显示数字转换为显示字型(段)码,通常是用查表的方法。现要求将30H中的显示数字转换为显示字型(段)码并存入30H。已知共阴字段码表首址为TAB。 解:编程如下。 CHANG: MOV DPTR,#TAB ;置共阴字段码表首址 MOV A,30H ;读显示数字 MOVC A,@A+DPTR ;查表,转换为显示字段码 MOV 30H,A ;存显示字段码 RET TAB: DB 3FH,06H,5BH,4FH,66H ;0~4共阴字段码表 DB 6DH,7DH,07H,7FH,6FH ;5~9共阴字段码表 5.堆栈操作指令 PUSH direct;SP+1→SP,(direct)→SP;如PUSH 20H POP direct;(SP)→direct,SP-1→SP;如POP 30H 说明:(1)入栈操作过程。先将堆栈指针SP的内容加1,指向堆栈顶的一个空单元;然后将指令指定的直接寻址单元中的数据送到该空单元中。假如PUSH 30H,(30H)=2BH,SP=0FH,则其操作过程如图3-9所示。 图3-9 指令PUSH操作示意图 (2)出栈操作过程。先将SP所指单元(栈顶地址)中的数据弹出,送到指定的内RAM单元;然后SP-1→SP,SP仍指向栈顶地址。以POP 30H,SP=0FH,则其出栈操作过程如图3-10所示。 图3-10 指令POP操作示意图 (3)后面所跟的操作数只能是直接地址,如PUSH R0,PUSH A都是错误的,应该为PUSH 00H (设RS1=RS0=0),PUSH ACC。 【例3-9】将片内RAM 30H单元与40H单元中的内容互换。 解: 方法1(直接地址传送法): MOV 31H,30H MOV 30H,40H MOV 40H,31H SJMP $ 方法2(间接地址传送法): MOV R0,#40H MOV R1,#30H MOV A,@R0 MOV B,@R1 MOV @R1,A MOV @R0,B SJMP $ 3.2.2 算术运算类指令 算术运算类指令共24条,这类指令基本都会影响标志位Cy、OV、AC、P。 1.加法指令 (1)不带进位位Cy加法指令(4条) ADD A,Rn ;A+Rn→A,(n=0~7) 有进位,Cy=1,无进位,Cy=0 ADD A,@Ri ;A+(Ri)→A,(i=0、1) 有

文档评论(0)

一天一点 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档