找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3081|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机查找相同数个数

[复制链接]
跳转到指定楼层
楼主
ID:603745 发表于 2019-8-26 09:18 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
实验8  查找相同数个数
一、实验目的
熟悉汇编语言编程
二、实验内容
在2000~200FH中查出有几个字节是零,把零的个数放在2100H中。
三、程序框图
四、实验步骤
在2000~200FH的几个单元中填入零,运行本程序后检查2100H单元中的数是否与2000~200FH中零的个数相同。
实验代码:
ORG 00H      
AJMP MAIN
ORG 30H
MAIN:
MOV R0,#16
MOV R6,#00H
MOV R7,#00H
LOOP1:
MOV A,R7
MOV DPTR,#0FFH
INC A
MOV R7,A
MOVC A,@A+DPTR
MOV DPH,#20H
MOV DPL,R6
MOVX @DPTR,A
INC R6
DJNZ R0,LOOP1
MOV R1,#16
MOV R2,#00H
MOV DPTR,#2000H
LOOP2:
MOVX A,@DPTR
INC DPTR
CJNE A,#00h,NEXT
INC R2
NEXT:
DJNZ R1,LOOP2
MOV A,R2
MOV DPTR,#2100H
MOVX @DPTR,A
ORG 100H
TAB:
DB 12H,34H,24H,00H,00H,11H,00H,56H
DB  23H,0BH,2FH,00H,0A2H,00H,25H,45H
END
实验截图:
五、实验体会
通过本次实验,我熟悉了汇编语言编程,并且对c51单片机有了更深一步的认识。
六、思考题
在1000~100FH的几个单元中填入8H,检查8H的个数,并填入1100H单元中,如何来修改程序?
修改后代码:
ORG 00H      
AJMP MAIN
ORG 30H
MAIN:
MOV R0,#16
MOV R6,#00H
MOV R7,#00H
LOOP1:
MOV A,R7
MOV DPTR,#0FFH
INC A
MOV R7,A
MOVC A,@A+DPTR
MOV DPH,#10H
MOV DPL,R6
MOVX @DPTR,A
INC R6
DJNZ R0,LOOP1
MOV R1,#16
MOV R2,#00H
MOV DPTR,#1000H
LOOP2:
MOVX A,@DPTR
INC DPTR
CJNE A,#08h,NEXT
INC R2
NEXT:
DJNZ R1,LOOP2
MOV A,R2
MOV DPTR,#1100H
MOVX @DPTR,A
ORG 100H
TAB:
DB  12H,34H,24H,08H,00H,11H,00H,56H
DB  23H,0BH,2FH,00H,0A2H,00H,25H,45H
END
七、参考程序
ORG     0AA0H
L5800: MOV   R0,#10H       ;查找16个字节
               MOV   R1,#00H
           MOV  DPTR,#2000H
       L5811: MOVX  A,@DPTR
             CJNE  A,#00H,L5816;取出内容与00H相等吗?
              INC   R1          ;取出个数加1
       L5816: INC   DPTR
               DJNZ  R0,L5811    ;未完继续
             MOV   DPTR,#2100H
               MOV   A,R1
               MOVX  @DPTR,A     ;相同数个数送2100H
       L581E: SJMP  L581E
               END

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表