网站大量收购独家精品文档,联系QQ:2885784924

单片机31研讨.ppt

  1. 1、本文档共131页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机31研讨

位操作指令中的位地址有4 种表示形式,假设表示的都是PSW中的位5 ,则这四种表示方式如下: 直接地址方式(如,0D5H); 点操作符方式(如,0D0H.5、PSW.5等); 位名称方式(如,F0); 伪指令定义方式(如,MYFLAG BIT F0)。 伪指令定义方式应用举例: 在交通灯控制程序中,我们把P1.0定义为LEFT,把P1.1定义位RIGHT,分别代表左转和右转信号灯,编程如下: LEFT BIT P1.0 RIGHT BIT P1.1 ORG 0100H …… SETB LEFT ;左转 LCALL WAIT30S ;等待30秒 CLR LEFT SETB RIGHT ;右转    可见这种方法编写的程序可读性较强。 【例】编程统计片内RAM 30H开始的20个带符号数中负数的个数,结果存入50H单元。 程序如下: MOV R2,#20 ;置循环次数放R2 MOV R3, #0 ;计数初值 MOV R0, #30H ;首单元地址放R0 LOOP:MOV A,@R0 ;取数至A JNB ACC.7, L1 ;最高位为0表示是非负数则转L1,不统计 ;注意这里判别累加器A的最高位使用的是ACC.7 INC R3 ;否则,最高位为1表示是负数,则统计,R3←R3+1 L1: INC R0 DJNZ R2,LOOP;R2←R2-1 若R2≠0继续循环 MOV 50H,R3 RET 【例】利用位逻辑指令,模拟下图所示的逻辑电路功能。 程序如下: PR2:MOV C,P1.1 ;(CY) ←(P1.1) ORL C, P1.2 ;(CY) ←(P1.1)V (P1.2) ,得出A点逻辑状态 ANL C, P1.0 ;(CY) ←(P1.0)∧A点状态 CPL C ; 取反,得出B点逻辑状态 MOV F0, C ;F0内暂存B点状态 MOV C,P1.3 ;(CY) ←(P1.3) ANL C, P1.4 ;(CY) ←(P1.3)∧(P1.4) CPL C ; 取反,得出C点逻辑状态 ORL C, F0 ;B点状态与C点状态进行逻辑或 MOV P1.5, C ;运算结果送入P1.5 RET 【例】设X存在30H单元中并以补码形式表示,根据下式 X+2,X0 Y = 100,X=0 ;求出Y值,将Y值存入31H单元。 ∣X∣,X0 分析:根据数据的符号位判别该数的正负,若最高位为0,再判别该数是否为0。 ORG 1000H MOV A,30H ;取数 JB ACC.7,NEG;负数,转NEG JZ ZER0 ;为零,转ZER0 ADD A,#02H ;为正数,求X+2 AJMP SAVE ;转到SAVE,保存数据 ZER0:MOV A,# 64H ;数据为零,Y=100 AJMP SAVE ;转到SAVE,保存数据 NEG:DEC A ; CPL A ;求∣X∣ SAVE:MOV 31H,A ;保存数据 例 ( A)=01××××

文档评论(0)

yy558933 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档