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

发布者:备战最新更新时间:2020-07-13 来源: 51hei关键字:PIC单片机  数字可调稳压电源  PROTEUS仿真 手机看文章 扫描二维码
随时随地手机看文章


程序如下:
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

[1] [2]
关键字:PIC单片机  数字可调稳压电源  PROTEUS仿真 引用地址:基于PIC单片机的数字可调稳压电源(1.3-25v)PROTEUS仿真+源程序

上一篇:pic16f877加2块8x8led点阵滚动显示数字时钟Proteus仿真程序
下一篇:PIC16F886跑马灯程序

推荐阅读最新更新时间:2024-11-04 15:21

PIC单片机的中断资源及应用
    摘要: PIC系列单片机是美国Microchip技术公司推出的8位嵌入式控制器。它以其控制速度高、工作电压低、功耗小及性价比高等优点而备受青睐。本文以PIC16CXX系列单片机为例介绍了PIC单片机中断资源的特点、应用及应用中应注意的问题,并给出了具体的应用源程序。     关键词: PIC单片机 中断资源 中断源 唤醒 1 PIC单片机简介 PIC系列单片机是美国Microchip技术公司推出的高性能价格比的8位嵌入式控制器(Embedded Controller),它采用了精简指令集计算机RISC(Reduced Instruction Set Computer)和哈佛(H
[应用]
基于PIC单片机构成的环境温湿度实时测控装置设计
环境条件中的温湿度指标是许多工作场合的重要参数,不论是仓库管理、图书保存还是工业测量与计量检定,都需要符合操作规定的温湿度环境条件。而温湿度也是最不易保障的指标,针对这一情况,研制可靠且实用的温湿度控制器显得非常重要。本文介绍的温湿度实时控制装置可在0~50℃和20%~98%RH(相对湿度)的范围内任意设定温湿度值,其附加的通信接口可方便地实现与计算机的实时通信,而且便于功能的扩展,可保证温度、湿度满足设计指标。此外,该装置还可自动控制多个设备的多点时间控制电路,因而具有更广泛的应用前景。该装置可实现的功能如下: ●在0~50℃和20%~98%RH间可任意设定温湿度控制点; ●可以实时监测环境温湿度的变化情况,并记录、存储
[单片机]
基于<font color='red'>PIC单片机</font>构成的环境温湿度实时测控装置设计
PICC环境写PIC单片机程序的探讨
简介:一般C语言产生的代码是比较繁琐的,所以要写出高质量、实用的C语言程序,就必须对单片机体系结构和硬件资源作详尽的了解. 目前,Microchip公司生产的PIC系列单片机以其低成本、低功耗、高性能、开发速度快且一次性用户可编程等优点迅速占领了国内市场,成为国内销售量最大的单片机.但国内介绍其C语言开发工具的书籍和文章却比较少,在开发过程中给广大程序员带来了许多困难和不便. Microchip公司没有针对中低档系列PIC单片机的C语言编译器,但很多专业的第三方公司 提供众多支持PIC单片机的C语言编译器,常见的有Hitech、CCS、IAR以及Bytecraft等公司.Hitech公司的PICC编译器稳定可靠,编译生
[单片机]
pic单片机编译错误汇总
一、Error : Can't find 0x12C words for psect rbss_1 in segment BANK1   连接器告诉你总共有0x12C(300)个字节准备放到bank1 中但bank1 容量不够。显然,只有把一部分原本定位在bank1 中的变量改放到其它bank 中才能解决此问题。 二、 Error :Fixup overflow in expression_r(...)    Error ; . fixup overflow in expression_r(location 0x1FEE (0x1FE6+8), size 2, value 0xFF5) 既然定义的指针有明确的
[单片机]
PIC单片机实例9:PC机与单片机串行全双工通信
1. 实例目的: 本实例完全建立在计算机软件的基础上,利用PROTEUS软件构建一个单片机系统,利用VB编写一个计算机控制软件和单片机系统串行通信,计算机上的控制软件可以发送一个值在0 999之间的数,在单片机系统上显示出来,单片机系统上也可输入一个相同值域的数并在计算机控制软件上显示出来。本实例主要是为了展示虚拟串行通信的仿真。 2. 系统配置 本实例虽然简单,但是要想看到想要的仿真结果,建立虚拟的串口连接是必不可少的。要想仿真串行通信,必须要把单片机系统上的串行口与计算机上的串行口连接,这样他们之间才能传输数据,但由于是仿真,实际没有相连接,所以需要创建一对虚拟串行口并使他们相连,这里我使用的是这个软件Virtual Ser
[单片机]
<font color='red'>PIC单片机</font>实例9:PC机与单片机串行全双工通信
PIC单片机在线调试中的一些问题
1 在线串行编程   1.1在线串行编程接口   带有Flash闪速存储器的PIC单片机产品一般都具有在线串行编程功能,只需要5根引线就可以把程序下载到单片机的Flash程序存储器中。这5根线的排列顺序是MCLR/Vpp、Vdd、Vss、PD(或PGD)和PC(或PGC),图1是PIC单片机在线串行编程接口图。                         图1PIC单片机在线串行编程接口   1.2引脚含义   上述5根引线的具体含义是:MCLR/Vpp——编程电压(对于PIC单片机一般为13 V左右);Vdd——编程电源(5 V);Vss——地;PD——编程数据信号;PC——编程时钟信号。   有了这
[单片机]
PIC单片机在远程控制中的应用
    摘 要: 介绍了一种用PIC系列单片机控制的简易远程教学系统,着重介绍了远程控制器的组成和工作原理,并给出了软件设计流程。     关键词: PIC16C54 单片机 远程控制       本文介绍了一种用单片机控制的采用电话遥控的简易远程教学系统。它借助于现有的丰富的电话网络资源,具有结构简单,造价低廉,易于操作等特点,可以实现对录像机的各种远距离控制操作。非常适合于贫困地区的电化教育的普及与发展。      1 系统的总体结构     该电话遥控教学系统的总体结构如图1所示。     该系统由电话机、小型程控机、远程控制器和数台录像机、电视机组成,该系统既
[工业控制]
PIC单片机的特点及应用
1概述 Microchip公司生产的PIC16C72是一款基于EPROM的8位高性能微控制器。与其它价格相当的微控制器相比,它在执行速度和代码压缩方面都有很大的改进。由于随时可以买到需要的OPT(一次性编程)产品,因而缩短了利用PIC16C73进行产品设计开发的周期。 PIC16C73微控制器所具有的优越性能主要归功于它的精简指令集(RISC)和所采用的哈佛(Harvard)结构,它具有分离的程序储器空间(12 位宽指令)和数据存储器空间(8位宽数据)。同时可运用两级流水线指令进行取数和执行,除了跳转指令需要两个周期外,其余所有的指令都可在单周期内执行。 PIC16C73分离的程序和数据空间可使指令字优化为任意宽度,从而使指令具有单
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved