找回密码
 立即注册
查看: 200|回复: 3

STC单片机ADC接口实现8通道霍尔元件直流电流测量

[复制链接]

该用户从未签到

27

主题

24

回帖

302

积分

荣誉版主

积分
302
发表于 2024-3-9 11:40:42 | 显示全部楼层 |阅读模式
1,采用十位二进制分辨率实现了8通道综合显示精度0.5%。
     霍尔元件直流电流测量,实际应用于太阳能控制系统和LED灯具老化测试。
     采用霍尔元件实现完全与被测电路绝缘。
2,由于霍尔元件输出信号弱需要较大的放大倍数,所以测量部分采用了16级滤波算法。
3,尽管采用了高精度电阻但是由于放大倍数高,造成每个通道的实际测量值不一致,
     必须采用每个通道单独进行线性标定。就是确认初始偏移量和显示值与实际安培数相符。
     为了大批量生产还必须实现自动参数标定,标定后参数记忆。
4,实际电流值可以在PLC的主机上的四位数码管上显示,并且与梯形图程序联动。
     下面是模拟量采样相关代码

;/*----------------------------
;Initial ADC sfr
;----------------------------*/
;
;/*Declare SFR associated with the ADC */;
;/*Define ADC operation const for ADC_CONTR*/
ADC_POWER   EQU 80H             ;ADC power control bit
ADC_FLAG    EQU 10H             ;ADC complete flag
ADC_START   EQU 08H             ;ADC start control bit
ADC_SPEEDLL EQU 00H             ;420 clocks
ADC_SPEEDL  EQU 20H             ;280 clocks
ADC_SPEEDH  EQU 40H             ;140 clocks
ADC_SPEEDHH EQU 60H             ;70 clocks
;
ADC_ADRJ    EQU        20H                ;ADRJ in AUXR1 0 As ADC_RES has 8 bits, 1 As ADC_RESL has low 8 bits
ADC_EADC    EQU 20H                ;enable ADC interrupt
;
;ADCCH       DATA 20H            ;ADC channel NO.
;/*----------------------------
;Initial ADC sfr
;----------------------------*/
INIT_ADC:
        clr        ADCSet
        MOV           P1ASF,#0FFH                   ;Open 8 channels ADC function
        orl        PCON2,#ADC_ADRJ                ;set ADC_ADJ to 1
;        anl        AUXR1,#(NOT (ADC_ADRJ))        ;set ADC_ADJ to 0
        MOV           ADC_RES,#0                    ;Clear previous result
        mov        ADC_RESL,#0
        mov        a,ADCChCnt                ;get channel number
        ORL           A,#(ADC_POWER OR ADC_SPEEDLL OR ADC_START)
        MOV           ADC_CONTR,a                ;set control register for ADC
        MOV           A,#2                          ;ADC power-on and delay
        LCALL         Delays
        setb        EADC                        ;enable interrupt
        setb        ea
        RET
;/*----------------------------
;ADC interrupt service routine
;----------------------------*/
;/*----------------------------
;ADC interrupt service routine
;----------------------------*/
BUMP_MASK        equ        0Fh                ;mask out bump index
BUMP_TRIAL        equ        16                ;trial size pointor
ADC_ISR:
        clr        ea
        PUSH          PSW
        PUSH          ACC
        mov        AdcIndex,ADCChCnt
        ANL           ADC_CONTR,#(NOT(ADC_FLAG));Clear ADC interrupt flag
        mov        a,ADC_RESL                ;ADC_RES                ;ADC_RESL                ;get low byte
        mov        CurTl,a
        MOV           A,ADC_RES                     ;Get ADC high 8-bit result
        anl        a,#03h                        ;10 bits Result
        mov        CurTh,a
        INC           ADCChCnt
        ANL           ADCChCnt,#07H
        mov        a,ADCChCnt
        ORL           A,#(ADC_POWER OR ADC_SPEEDLL OR ADC_START)
        MOV           ADC_CONTR,A                   ;ADC power-on delay and re-start A/D conversion
        setb        ADCSet
        POP           ACC
        POP           PSW
        setb        ea
        RETI
1.jpg

2.jpg

3.jpg



1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复 送花

使用道具 举报

  • TA的每日心情
    奋斗
    19 小时前
  • 签到天数: 109 天

    [LV.6]常住居民II

    12

    主题

    508

    回帖

    1536

    积分

    荣誉版主

    积分
    1536
    发表于 2024-3-9 15:04:29 | 显示全部楼层
    看到汇编不由得心中一惊.wc,大神.
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    10 小时前
  • 签到天数: 115 天

    [LV.6]常住居民II

    2

    主题

    276

    回帖

    568

    积分

    高级会员

    积分
    568
    发表于 2024-3-10 22:30:06 来自手机 | 显示全部楼层
    回复 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    半小时前
  • 签到天数: 75 天

    [LV.6]常住居民II

    2

    主题

    151

    回帖

    293

    积分

    中级会员

    积分
    293
    发表于 2024-3-12 14:51:53 | 显示全部楼层
    模块扩展用的SPI?
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-6-13 20:04 , Processed in 0.059811 second(s), 43 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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