pic pwm 占空比可调 源码_PIC单片机实现带反馈控制的PWM信号发生器源码

该博客介绍了一种使用PIC16F877A单片机实现带反馈控制的PWM信号发生器,通过源码展示了如何调整PWM占空比,并利用ADC读取电位器和PWM输出的模拟值,进行实时调整。
摘要由CSDN通过智能技术生成

LIST p=PIC16F877A,r=hex    ;microcontroller & base

INCLUDE    "P16F877A.inc"    ;register memory mapping file

;************************

; global variables

;************************

i        equ        0x21        ;general purpose counter 1

j        equ        0x22            ;general purpose counter 2

pot_ana_value    equ        0x23        ;Analog value of the potentiometer

pwm_ana_value    equ        0x24        ;Analog value of the PWM output after low filtering

#define        timer_trigger    0x25,    0    ;This bit indicating the timer has been triggered

w_temp        equ        0x26        ; temp variable for W register

status_temp    equ        0x27        ; status variable for STATUS register

temp        equ        0x28        ; general temp variable

;************************

; port definitions

;************************

#define        led_data    PORTD        ;portD outputs 7-segment data

#define        led_pot_high    PORTB,    0    ;portB.0 selects high 4-bit value of pot

#define        led_pot_low    PORTB,    1    ;portB.1 selects low 4-bit value of pot

#define        led_pwm_high    PORTB,    2    ;portB.2 selects high 4-bit value of pwm

#define        led_pwm_low    PORTB,    3    ;portB.3 selects low 4-bit value of pwm

#define        led_inc        PORTB,    4    ;portB.4 drive the LED indicating PWM

;duty cycle increasing.

#define        led_dec        PORTB,    5    ;portB.5 drive the LED indicating PWM

;duty cycle decreasing.

;************************

; reload value of TMR0

; Timer 0 Interval = 5000 us

; 64 * ( 256 - TMR0 ) = 5000, TMR0 = 178 (0xB2)

;************************

tmr0_reload    equ    0xB2

;************************

; 7-segment LED definitions

;               a

;         +----------+

;         |          |

;        f|          |b

;         |     g    |

;         +----------+

;         |          |

;        e|          |c

;         |          |

;         +----------+ o dp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值