历史上的今天
返回首页

历史上的今天

今天是:2025年07月13日(星期日)

正在发生

2020年07月13日 | 基于PIC单片机的数字可调稳压电源(1.3-25v)PROTEUS仿真+源程序

2020-07-13 来源:51hei


程序如下:
list      p=12c672           ; list directive to define processor
#include         ; 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

推荐阅读

史海拾趣

C&K公司的发展小趣事

通过不断的努力和创新,C&K在90年代中期已经成为世界领先的开关制造商之一,也是业内最受信赖的品牌之一。这一成就的取得离不开公司对产品质量的严格把控和对技术创新的持续追求。同时,C&K还积极与全球各地的客户合作,根据他们的需求量身定制开关产品,赢得了广泛的赞誉。

淩志比高公司的发展小趣事

为了进一步提升公司的知名度和影响力,淩志比高开始注重品牌建设和市场推广。公司积极参与行业展会、举办产品发布会等活动,与客户和合作伙伴建立了紧密的联系。同时,淩志比高还通过广告宣传、社交媒体营销等方式,提升了品牌知名度和美誉度。

Anpec(茂达)公司的发展小趣事

Anpec(茂达电子)自1997年创立之初,就肩负着提升国内电源模拟设计环境、建立自主模拟及电源相关产业的使命。初期,公司规模虽小,但志向远大。面对国内外市场的激烈竞争,茂达电子凭借对技术的执着追求和对市场的敏锐洞察,逐步在模拟集成电路设计领域站稳脚跟。

Hong Kong X'Tals Ltd公司的发展小趣事
由于环境温度和元件参数的变化,实际定时时间可能会有所偏差。在设计时需要考虑这一因素,并留出适当的裕量。
Anaren Ceramics公司的发展小趣事

Anaren Ceramics公司在电子行业中崭露头角,首先得益于其在陶瓷材料技术方面的重大突破。公司研发了一种新型的陶瓷材料,具有优异的绝缘性能和高温稳定性,这为当时的电子行业提供了前所未有的解决方案。随着这种新型陶瓷材料在市场上的广泛应用,Anaren Ceramics公司的知名度逐渐提升,逐渐成为了行业内的佼佼者。

FTCAP Fischer & Tausche Capacitor Group公司的发展小趣事

为了确保产品质量的稳定性和可靠性,Anaren Ceramics公司建立了一套完善的质量管理体系。公司严格按照国际标准进行生产和管理,从原材料的采购到产品的出厂,每一个环节都经过严格的检测和把控。这种对质量的严格把控不仅赢得了客户的信任,也为公司在电子行业中树立了良好的口碑。

问答坊 | AI 解惑

FPGA防拷贝技术讨论

众所周知,用FPGA开发产品有好多优势,对于主流SRAM结构的FPGA在防拷贝,盗版方面,不安全甚至非常脆弱,是因为一旦系统上电,盗版者就能轻而易举地获取FPGA的位流。   Altera从StratixII只是在高端器件中对于配置比特流提供了128bit AE ...…

查看全部问答>

关于ALTIUM DESIGNER的snippets选项

1.右键单击的时候无snippets选项 2.在右下角system选项卡中选中snippets后,creat snippet from selection,无反应。 请指教。…

查看全部问答>

合众达网站几年里的精华问答

合众达网站几年里的精华问答…

查看全部问答>

各位高手帮帮忙啊!电子密码锁

课程设计弄要求做电子密码锁,可我做的时不能改密码和断电保护的。老师说不合格!    高手们帮忙传个电路图和程序到我的邮箱里~   gaoyabei1985@163.com 万分感谢啊!…

查看全部问答>

空调遥控器采用的什么红外编码协议?

有人知道 空调采用的什么协议不? 我通过测试,也不是NEC的和RC-5的协议 用示波器查看,波形很乱,根本就没有规律 我用软件测试,0.1ms采集一次接口管IO口的电平状态,得到字节数据,然后再转换成波形, 我分析得到的波形,也不是规律的 大部分 ...…

查看全部问答>

做个仿POS的设备

手持式设备的要求 1.        内置打印机,有外置打印机接口,可使用外部打印机快速打印 2.        支持MODEM 电话拨号连接 3.        有ETHernet 网络接口 4.      ...…

查看全部问答>

看门狗问题请教

                                 STM32F101C8T6芯片,没有打开看门狗时,JLINK仿真器仿真一直正常,但是今天增加了看门狗看门狗后(IWDG),第一次程 ...…

查看全部问答>

保持时间为负怎样理解

保持时间为什么负值,是时钟频率太高吗? 对了,在ALTAER的提供的DATASHEET上可以看到保持时间最小位0。 从保持时间的定义来讲,就是这个数据不需要保持时间,只需要建立时间,D触发器就可以 正确采样LE.  不知到,这个D触发器怎样做到这 ...…

查看全部问答>

从CC2530 到 CC2530+CC2591

从CC2530 到 CC2530+CC2591 程序中除了将 #define xHAL_PA_LNA 改为 #define HAL_PA_LNA   还有什么设置?…

查看全部问答>

我们需要检测俯仰角度和平面左右移动角度,求教。

     小弟需要检测的两个方向是俯仰和左右转动的两个角度值,看了很多关于加速度传感器的帖子,一般都是传感器X和Y轴的倾角计算,但是没有看到过绕Z轴旋转左右的,我现在需要的是一个X轴倾角和一个Z轴的转动角,因为对加速度传 ...…

查看全部问答>