找回密码
 立即注册
查看: 94|回复: 2

NTC温度计算代码疑问

[复制链接]

该用户从未签到

14

主题

33

回帖

204

积分

中级会员

积分
204
发表于 2024-3-6 22:24:23 | 显示全部楼层 |阅读模式
以下代码是在STC的参考例程里面的,ADC查表计算,有没有老师能详细解释下这段代码?我自己的理解以下几个点,不知道对不对?
1,这段代码是R4.R5,R6,R7的4个字节高低位置顺序排列的数据除以R2,R3两个字节的除法运算,结果保存在R4,R5,R6,R7由高到底的4个字节中对吧?
2,余数(R2,R3)在后面的计算中视乎没什么作用了,是不是可以忽略掉了?忽略掉有什么影响?
3,另外备注写的(use R0~R7,B,DPL)是什么意思?那位老师方便解释下吗?
F_ULDIV:
F_DIV32:                            ; (R4,R5,R6,R7)/(R2,R3)=(R4,R5,R6,R7),余数在(R2,R3),use R0~R7,B,DPL
        CJNE    R2,#0,F_DIV32_16    ; L_0075

F_DIV32_8:                          ;R3非0,(R4,R5,R6,R7)/R3=(R4,R5,R6,R7),余数在 R3,use R0~R7,B
        MOV     A,R4
        MOV     B,R3
        DIV     AB
        XCH     A,R7
        XCH     A,R6
        XCH     A,R5
        MOV     R4,A
        MOV     A,B
        XCH     A,R3
        MOV     R1,A
        MOV     R0,#24
L_0056:
        MOV     A,R7
        ADD     A,R7
        MOV     R7,A
        MOV     A,R6
        RLC     A
        MOV     R6,A
        MOV     A,R5
        RLC     A
        MOV     R5,A
        MOV     A,R4
        RLC     A
        MOV     R4,A
        MOV     A,R3
        RLC     A
        MOV     R3,A
        JBC     CY,L_006B
        SUBB    A,R1
        JC      L_006F
L_006B:
        MOV     A,R3
        SUBB    A,R1
        MOV     R3,A
        INC     R7
L_006F:
        DJNZ    R0,L_0056
        CLR     A
        MOV     R1,A
        MOV     R2,A
        RET


;***************************************************************************
F_DIV32_16:                     ;R2非0,(R4,R5,R6,R7)/(R2,R3)=(R5,R6,R7),余数在 (R2,R3),use R0~R7
L_0075:
        MOV     R0,#24          ;开始R1=0
L_0077:
        MOV     A,R7            ;左移一位
        ADD     A,R7
        MOV     R7,A
        MOV     A,R6
        RLC     A
        MOV     R6,A
        MOV     A,R5
        RLC     A
        MOV     R5,A
        MOV     A,R4
        RLC     A
        MOV     R4,A
        XCH     A,R1
        RLC     A
        XCH     A,R1
        JBC     CY,L_008E   ;如果C=1,肯定够减
        SUBB    A,R3
        MOV     A,R1        ;测试是否够减
        SUBB    A,R2
        JC      L_0095
L_008E:
        MOV     A,R4
        SUBB    A,R3
        MOV     R4,A
        MOV     A,R1
        SUBB    A,R2
        MOV     R1,A
        INC     R7
L_0095:
        DJNZ    R0,L_0077
        CLR     A
        XCH     A,R1
        MOV     R2,A
        CLR     A
        XCH     A,R4
        MOV     R3,A
        RET

回复 送花

使用道具 举报

该用户从未签到

14

主题

33

回帖

204

积分

中级会员

积分
204
 楼主| 发表于 2024-3-7 11:01:40 | 显示全部楼层
没有那我老师帮忙吗?
回复 支持 反对 送花

使用道具 举报

该用户从未签到

14

主题

33

回帖

204

积分

中级会员

积分
204
 楼主| 发表于 2024-3-8 09:13:44 | 显示全部楼层
看来这贴要沉了
回复 支持 反对 送花

使用道具 举报

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

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-5-20 16:54 , Processed in 0.058048 second(s), 36 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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