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

3章程序设计〔本科〕.ppt

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

例3-4 分解压缩式BCD码,使其成为非压缩式BCD码。 如把 65H→06H和05H,见图 ORG 0000H MOV R0,#40H ;设指针 MOV A,@R0 ;取一个字节 MOV R2,A ;暂存 ANL A,#0FH ;清0高半字节 INC R0 MOV @R0,A ;保存数据个位 ORG 0000H MOV A, 40H CJNE A, 41H, NEQ ;两数不等转 NEQ MOV GR, A ;两数相等,GR单元和LE单元均存此数 MOV LE, A SJMP $ NEQ: JC LESS ;A小则转LESS MOV GR, A ;A大,大数存GR单元 MOV LE, 41H ;小数存LE单元 SJNE $ LESS: MOV LE, A ;A小,小数存LE单元 MOV GR, 41H ;大数存GR单元 SJMP $ GR EQU 30H LE EQU 31H END [例 3-6】 设变量X以补码形式存放在片内RAM的30H单元, 函数Y与X有如下关系式: X X0 Y= 20H X=0 X+5 X0 试编制程序,根据X的取值求出Y,并放回原单元。 分析 取出变量后进行取值范围的判断,对符号的判断可用位操作类指令,也可用逻辑运算类指令,本例用逻辑运算指令,程序框图及程序如下: ORG 0000H MOV A, 30H JZ NEXT ;判断是否为零 ANL A, #80H ;判断符号位 JZ ED ;X0转ED MOV A, #05H ;X0完成X+5 ADD A, #30H MOV 30H, A SJMP ED NEXT: MOV 30H, #20H ;X=0, Y=20H ED: SJNE $ 例 用单片机加重力传感器作磅秤,秤出重量后算出行李运费价格,其秤出的重量以10kg为1个计价单位G , G已存入40H单元。 计价方法为50kg以内按3元, 50kg以上分段计价: 50kg按3元计价,超过部分 按2元计价。 由此列出算式: 1. 利用转移地址表实现转移 例3-7 根据R3的内容转向对应的程序,R3的内容为0~n,处理程序的入口符号地址分别为PR0~PRn (n128)。 分析:将PR0—PRn入口地址列在表格中,每一项占两个单元,PRn在表中的偏移量为2n,因此将R3的内容乘2即得PRn在表中的偏移地址,从偏移地址2n和2n+1两个单元分别取出PRn的高八位地址和低八位地址送DPTR寄存器,用JMP @A+DPTR指令(A先清零)即转移到PRn入口执行。设PR0—PRn入口地址分别为0110H,0220 H, 0330 H, ……。程序如下: MOV A,R3 ;R3→A ADD A,ACC ;A*2 MOV DPTR,#TAB PUSH ACC MOVC A,@A+DPTR ;取地址表中高字节 MOV B,A ;暂存于B INC DPL ;表地址加1 POP ACC MOVC A,@A+DPTR ;取地址表中低字节 MOV DPL,A MOV DPH,B ;DPTR为表中地址 CLR A ;A=0 JMP @A+DPTR ;转移 TAB:DW PR0,PR1,PR2,…..,PRn ;转移地址表 END  2. 利用转移指令表实现转移 例3-8 设有五个按键 0、1、2、3、4其编码分别为3AH、47H、65H、70H、8BH,要求根据按下的键转向不同的处理程序,分别为PR0

文档评论(0)

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

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

1亿VIP精品文档

相关文档