找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于PIC单片机的数字可调稳压电源(1.3-25v)PROTEUS仿真+源程序

[复制链接]
跳转到指定楼层
楼主






程序如下:
        list      p=12c672           ; list directive to define processor
        #include <p12c672.inc>        ; processor specific variable definitions
w_temp                EQU        0x70
status_temp        EQU        0x71
pclath_temp        EQU        0x72
reg0                EQU        0x75
reg1                EQU        0x76
advalue                EQU        0x77
advflag                EQU        0x78
bank0        macro
bcf        STATUS,5
endm
bank1        macro
bsf        STATUS,5
endm
        ORG        0x00
        nop
        nop
        goto        start
        ORG     0x004
       
       
start
        bank0
        clrf        GPIO
        bcf        INTCON,GIE
        bank1
        movlw        0xc0
        movwf        OPTION_REG
        movlw        0x06
        movwf        ADCON1
        movlw        0xc9
        TRIS        GPIO
       
       
        movlw        0x00
        movwf        reg0
        movlw        0x08
        movwf        reg1
       
       
        bank0
        movlw        b'00110000'
        iorwf        GPIO,f
        movlw        0xc1
        movwf        ADCON0
       
        bsf        ADCON0,GO
        goto        mainlp
mainlp
        btfsc        ADCON0,GO_DONE
        goto        $-1
        movlw        HIGH(tablev)
        movwf        PCLATH
       
        clrf        advflag
        movlw        0xab
        subwf        ADRES,w
        btfss        STATUS,C
        goto        $+3
        bsf        advflag,1
        goto        gratethan20
        movlw        0x56
        subwf        ADRES,w
        btfsc        STATUS,C
        bsf        advflag,0
gratethan20               
        movf        ADRES,w
       
        call        tablev
        movwf        advalue
        clrf        PCLATH
        bsf        ADCON0,GO
        call        refreshled
        goto        mainlp
refreshled
        movlw        0x0
        btfss        advflag,0
        goto        refreshled0
        movlw        b'01100000'
        goto        refreshled2
refreshled0
        btfsc        advflag,1
        movlw        b'11011010'       
refreshled2
        movwf        reg0
mainlp0
        bcf        GPIO,1
        rrf        reg0
        btfsc        STATUS,C
        goto        $+3
        bcf        GPIO,2
        goto        $+2
        bsf        GPIO,2
        bsf        GPIO,1
        decfsz        reg1
        goto        mainlp0
       
       
        ;bcf        INTCON,GIE
        movlw        b'11001111'
        andwf        GPIO,f
        swapf        advalue,w
        andlw        0x0f
        call        tableseg
        movwf        reg0
        bsf        reg0,0
        movlw        0x08
        movwf        reg1
        movlw        b'00110000'
        iorwf        GPIO,f
        ;bsf        INTCON,GIE
mainlp1
        bcf        GPIO,1
        rrf        reg0
        btfsc        STATUS,C
        goto        $+3
        bcf        GPIO,2
        goto        $+2
        bsf        GPIO,2
        bsf        GPIO,1
        decfsz        reg1
        goto        mainlp1
        ;bcf        INTCON,GIE
        movlw        b'11011111'
        andwf        GPIO,f
        movf        advalue,w
        andlw        0x0f
        call        tableseg
        movwf        reg0
        movlw        0x08
        movwf        reg1
        movlw        b'00110000'
        iorwf        GPIO,f
        ;bsf        INTCON,GIE
mainlp2
        bcf        GPIO,1
        rrf        reg0
        btfsc        STATUS,C
        goto        $+3
        bcf        GPIO,2
        goto        $+2
        bsf        GPIO,2
        bsf        GPIO,1
        decfsz        reg1
        goto        mainlp2
        ;bcf        INTCON,GIE
        movlw        b'11101111'
        andwf        GPIO,f
        movlw        0x08
        movwf        reg1
        nop
        nop
        nop
        nop
        movlw        b'00110000'
        iorwf        GPIO,f
        ;bsf        INTCON,GIE
        return
;
;abcdefgp
tableseg
        addwf        PCL,f
        retlw        b'11111100'        ;0
        retlw        b'01100000'        ;1
        retlw        b'11011010'        ;2
        retlw        b'11110010'        ;3
        retlw        b'01100110'        ;4
        retlw        b'10110110'        ;5
        retlw        b'10111110'        ;6
        retlw        b'11100100'        ;7
        retlw        b'11111110'        ;8
        retlw        b'11110110'        ;9
       
        ORG        0x100
tablev
        addwf        PCL,f
        retlw        0x00
        retlw        0x01
        retlw        0x02
        retlw        0x03
        retlw        0x00
        retlw        0x01
        retlw        0x02
        retlw        0x03
        retlw        0x00
        retlw        0x01
        retlw        0x02
        retlw        0x13       
        retlw        0x14
        retlw        0x15
        retlw        0x16
        retlw        0x17
        retlw        0x18
        retlw        0x19
        retlw        0x20
        retlw        0x22
        retlw        0x24
        retlw        0x25
        retlw        0x26
        retlw        0x27
        retlw        0x28
        retlw        0x29
        retlw        0x30
        retlw        0x31
        retlw        0x33
        retlw        0x34
        retlw        0x35
        retlw        0x36
        retlw        0x37
        retlw        0x38
        retlw        0x39
        retlw        0x40
        retlw        0x42
        retlw        0x43
        retlw        0x44
        retlw        0x45
        retlw        0x46
        retlw        0x48
        retlw        0x49
        retlw        0x50
        retlw        0x52
        retlw        0x53
        retlw        0x54
        retlw        0x55
        retlw        0x56
        retlw        0x57
        retlw        0x58
        retlw        0x59
        retlw        0x60
        retlw        0x62
        retlw        0x63
        retlw        0x64
        retlw        0x65
        retlw        0x66
        retlw        0x68
        retlw        0x70
        retlw        0x71
        retlw        0x72
        retlw        0x74
        retlw        0x75
        retlw        0x76
        retlw        0x77
        retlw        0x79
        retlw        0x80
        retlw        0x81
        retlw        0x82
        retlw        0x83
        retlw        0x84
        retlw        0x85
        retlw        0x86
        retlw        0x87
        retlw        0x88
        retlw        0x89
        retlw        0x90
        retlw        0x91
        retlw        0x93
        retlw        0x94
        retlw        0x96
        retlw        0x97
        retlw        0x98
        retlw        0x99
        retlw        0x02
        retlw        0x02
        retlw        0x03       
        retlw        0x04
        retlw        0x05
        retlw        0x06
        retlw        0x07
        retlw        0x08
        retlw        0x09
        retlw        0x10
        retlw        0x11
        retlw        0x13
        retlw        0x14
        retlw        0x15
        retlw        0x16
        retlw        0x17
        retlw        0x19
        retlw        0x20
        retlw        0x22
        retlw        0x23
        retlw        0x24
        retlw        0x25
        retlw        0x26
        retlw        0x27
        retlw        0x28
        retlw        0x29
        retlw        0x30
        retlw        0x32
        retlw        0x33
        retlw        0x34
        retlw        0x35
        retlw        0x36
        retlw        0x37
        retlw        0x39
        retlw        0x41
        retlw        0x42
        retlw        0x43
        retlw        0x44
        retlw        0x45
        retlw        0x46
        retlw        0x47
        retlw        0x48
        retlw        0x49
        retlw        0x50
        retlw        0x52
        retlw        0x53
        retlw        0x54
        retlw        0x55
        retlw        0x56
        retlw        0x57
        retlw        0x59
        retlw        0x61
        retlw        0x62
        retlw        0x63
        retlw        0x64
        retlw        0x65
        retlw        0x66
        retlw        0x67
        retlw        0x69
        retlw        0x70
        retlw        0x71
        retlw        0x72
        retlw        0x73
        retlw        0x74
        retlw        0x75
        retlw        0x76
        retlw        0x77
        retlw        0x79
        retlw        0x80
        retlw        0x82
        retlw        0x83
        retlw        0x84
        retlw        0x85
        retlw        0x86
        retlw        0x87
        retlw        0x88
        retlw        0x89
        retlw        0x90
        retlw        0x92       
        retlw        0x93
        retlw        0x94
        retlw        0x95
        retlw        0x96
        retlw        0x98
        retlw        0x99
        retlw        0x01
        retlw        0x02
        retlw        0x03
        retlw        0x04
        retlw        0x05
        retlw        0x06
        retlw        0x07
        retlw        0x08
        retlw        0x09
        retlw        0x10
        retlw        0x11
        retlw        0x13
        retlw        0x14
        retlw        0x15
        retlw        0x16
        retlw        0x17
        retlw        0x19
        retlw        0x20
        retlw        0x22
        retlw        0x23
        retlw        0x24
        retlw        0x25
        retlw        0x26
        retlw        0x27
        retlw        0x28
        retlw        0x29
        retlw        0x30
        retlw        0x31
        retlw        0x32
        retlw        0x33
        retlw        0x34
        retlw        0x35
        retlw        0x36
        retlw        0x39
        retlw        0x40
        retlw        0x41
        retlw        0x42
        retlw        0x43
        retlw        0x45
        retlw        0x46
        retlw        0x47
        retlw        0x48
        retlw        0x49
        retlw        0x50
        retlw        0x52
        retlw        0x53
        retlw        0x54
        retlw        0x55
        retlw        0x56
        retlw        0x57
        retlw        0x58
        retlw        0x60
        retlw        0x61
        retlw        0x62
        retlw        0x63
        retlw        0x65
        retlw        0x66
        retlw        0x68
        retlw        0x69
        retlw        0x70
        retlw        0x71
        retlw        0x72
        retlw        0x73
        retlw        0x74
        retlw        0x76
        retlw        0x77
        retlw        0x78
        retlw        0x79
        retlw        0x79
        retlw        0x80       
        retlw        0x00
        retlw        0x01
        retlw        0x02
        retlw        0x03
        retlw        0x00
        retlw        0x01
        retlw        0x02
        retlw        0x03       
        retlw        0x00
        retlw        0x01
        retlw        0x02
        retlw        0x03
        retlw        0x01
        retlw        0x02
        retlw        0x03
END


可调稳压电源仿真资料.zip

72.06 KB, 下载次数: 54, 下载积分: 黑币 -5

评分

参与人数 2黑币 +59 收起 理由
zwk34 + 9 赞一个!
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:18297 发表于 2020-4-20 17:01 | 只看该作者
,用PIC汇编越来越少了,赞一个!
回复

使用道具 举报

板凳
ID:300077 发表于 2020-4-25 09:55 | 只看该作者
兄弟,为啥我导入进去的就是只有48mv啊?
回复

使用道具 举报

地板
ID:33634 发表于 2020-4-26 08:49 | 只看该作者
谢谢分享。
回复

使用道具 举报

5#
ID:1018429 发表于 2022-4-14 17:55 | 只看该作者
请问楼主这个怎么调节电压的
回复

使用道具 举报

6#
ID:228452 发表于 2022-9-18 20:06 | 只看该作者
"May I ask how do you adjust the voltage"
By pot RV2
PIC controller is only for measuring voltage
like Voltmeter no regulation...
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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