打印

如何把下面得几句汇编变成c51啊

[复制链接]
2021|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyhkerry|  楼主 | 2008-8-1 09:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如下面得一段程序,汇编实现起来挺容易得,但是想用c51去改如何写啊,才能更好得优化呢 各位高手看看啊 谢谢!

关键是如何实现 延时得同时还要判断,然后跳转,大家看看啊 谢谢~!

GAINWAITY:
     MOV R1,#0ffH
       MOV R2,#0ffH
       MOV R3,#10
GAINWAITAY:
    MOVX A,@DPTR
    RR A
    RR A
    ANL A,#03H
        CJNE A,#01H,NGAINWAITAY  ;01  不等于01则继续执行
        jb gainbitY,gainwaita0Y
        DJNZ R1,GAINWAITAY
        MOV R1,#255
        DJNZ R2,GAINWAITAY
        mov r2,#0ffh
        djnz r3,gainwaitaY
        setb gainbitY
        CLR EX0
gainwaita0Y: 
    clr gainbitY
        LJMP LOOP            ;等于01则等待

GAINJUDGE2Y1:


NGAINWAITAY:
    MOV R1,#0ffH
        MOV R2,#0ffH
        mov r3,#10
GAINJUDGE1Y:
        clr gainbitY  
        MOVX A,@DPTR
    RR A
    RR A
    ANL A,#03H
        CJNE A,#00H,GAINJUDGE2Y1  ;00  不等于00则继续执行
        jb gainbitY,gainwaita0Y
        DJNZ R1,GAINJUDGE1Y
        MOV R1,#255
        DJNZ R2,GAINJUDGE1Y
        mov r2,#0ffh
        djnz r3,GAINJUDGE1Y
        setb gainbitY
        CLR EX0
        LJMP LOOP 

相关帖子

沙发
Etual| | 2008-8-1 09:25 | 只看该作者

写C不是为了优化吧?

楼主是用习惯了汇编?
慢慢转换思维就OK。

使用特权

评论回复
板凳
wyhkerry|  楼主 | 2008-8-1 09:43 | 只看该作者

这是别人写的汇编啊

我想改成c语言,学习下啊,可是没有找到有么好的方法啊 谢谢!

使用特权

评论回复
地板
wyhkerry|  楼主 | 2008-8-1 09:48 | 只看该作者

xiexie !

只是觉得这段程序实现起来,逻辑思维考虑的比较周全,不会出现死循环的现象,演示时间太久就会跳到loop主程序,想了想,如果用c语如何实现呢,请教下哈 呵呵  谢谢

使用特权

评论回复
5
computer00| | 2008-8-1 09:48 | 只看该作者

把思路整出来,然后用C写。

使用特权

评论回复
6
小试牛刀| | 2008-8-1 11:06 | 只看该作者

一直用汇编

刚开始学单片机的时候就用汇编,所以用c会觉得有点不适应 慢慢来吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

32

主题

92

帖子

1

粉丝