您现在所在的是:

单片机论坛

回帖:5个,阅读:1068 [上一页] [1] [下一页]
1059
woodyxue
文章数:66
年度积分:50
历史总积分:1059
注册时间:2006/2/5
发站内信
发表于:2006/2/8 13:54:00
#0楼
程序写的很烂很粗糙,还请各位大侠耐心看完多给点建议!!
(一)要求:查找在内部RAM的20H~50H单元中是否有0AAH这一数据。若有,则将51H单元置为01H;未找到,则使51H单元置0。
程序:
MOV   R0   #20H
MOV   R5    #30H
LOOP:MOV   A   #00H
       MOV    A   @R0
        SUBB   A   #AAH
       JZ    LOOP1
        INC     R0
       DJNZ    R5    LOOP
       MOV    A    @R0
       SUBB   A   #AAH
       JZ   LOOP1
       MOV   51H   #00H
LOOP1:MOV   51H   #01H
END
(二)要求:查找内部RAM的20H~50H单元中出现00H的次数,并将查到的结果存入51H单元。
程序:
MOV   R0   #20H
MOV   R2   #00H
MOV   R5   #30H
LOOP1:ADDC   R2    #01H
LOOP:MOV   A   #00H
        MOV   A   @R0
        ADD   A   #00H
        JZ      LOOP1
        INC    R0
        DJNZ   R5   LOOP
        MOV   A   @R0
        ADD    A   #00H
        JZ   LOOP1
SUBB   R2   #01H
MOV   51H   R2
END

908
qigod
文章数:1
年度积分:50
历史总积分:908
注册时间:2004/10/9
发站内信
发表于:2006/2/8 18:12:00
#1楼
对(1)的修改
MOV   R0,#20H
MOV   R5,#31H
LOOP: MOV   A,#00H
mov  psw,#00h
  MOV    A,@R0
       SUBB A,#0AAH      
       JZ    LOOP1
        INC     R0
       DJNZ    R5,LOOP
       MOV 51H,#00H
       SJMP LOOP2
LOOP1:MOV   51H,#01H
LOOP2:END
我觉得用subb不好,会影响到psw位,不如用XRL
MOV   R5,#31H
MOV   A,#00H
LOOP:    MOV    A,@R0
        XRL A,#0AAH      
       JZ    LOOP1
        INC     R0
       DJNZ    R5,LOOP
       SJMP LOOP2
LOOP1:MOV   51H,#01H
LOOP2:END
对(2)程序为:
MOV   R5,#31H
MOV   A,#00H
MOV   51H,#0
LOOP:    MOV    A,@R0
        XRL A,#00        
        INC     R0
        JNZ    LOOP1
        INC    51H
LOOP1:   DJNZ    R5,LOOP
LOOP2:END
希望对你有帮助表情
1059
woodyxue
文章数:66
年度积分:50
历史总积分:1059
注册时间:2006/2/5
发站内信
发表于:2006/2/9 10:25:00
#2楼
谢谢,很有帮助!!!
我个人是觉得用在这个程序段里是可以用SUBB的,因为只是减一的操作,我是从30H开始减的,不会出现溢出,这样应该不会有什么问题吧!!你提到的用XRL,我不是很明白,还请大侠指点一下!!表情
1185
85880527
文章数:136
年度积分:50
历史总积分:1185
注册时间:2006/1/16
发站内信
发表于:2006/2/9 21:14:00
#3楼
看看这个呢
MOV  R0,#020H
LOOP: MOV A,@R0
 CJNE A,#0AAH,LOOP1
 MOV  51H,#01H
AJMP LOOP2
LOOP1: INC R0
 MOV A,R0
CJNE  A,#051H,LOOP
 MOV  51H,#00H
LOOP1:
END
1185
85880527
文章数:136
年度积分:50
历史总积分:1185
注册时间:2006/1/16
发站内信
发表于:2006/2/9 21:16:00
#4楼
纠正一下,最后一个LOOP1应该是LOOP2
1059
woodyxue
文章数:66
年度积分:50
历史总积分:1059
注册时间:2006/2/5
发站内信
发表于:2006/2/11 17:27:00
#5楼
多谢了!!
我看了你回给我的另一个帖子,我也知道这样学太慢了!我最近看了写keil的资料,你觉得用这个软件模拟开发学起来怎么样??

多谢你给我的程序的修改,以后要是有什么程序还请你多指点!!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004