您的当前位置:首页正文

PIC单片机学习笔记之PWM信号输出

来源:个人技术集锦


实现功能:通过键盘(BUTTON)控制蜂鸣器发生,键盘按下,通过RC2/CCP1接口输出PWM信号(频率880Hz,脉宽50)驱动蜂鸣器发声。

实验环境: Proteus

编程语言:汇编

编程环境: MPLAB

单片机: PIC16F877

晶振: 20MHz

Proteus仿真电路如图。

实验源程序:

LIST P=16F877

;设置pwm为880Hz,50%占空比

INCLUDE P16F877.INC

ORG 0000H

START

BANKSEL TRISC;进入TRISC所在BANK

BCF TRISC,2;清零TRIC的bit2,以使CCP1引脚成为输出

MOVLW D'70'

MOVWF PR2;将70写入PR2以设置PWM周期

BANKSEL CCPR1L

MOVLW D'35'

MOVWF CCPR1L

MOVLW 0X06

MOVWF T2CON;bit2=1,使能Timer2,bit1-1,预分频值为16

CHECKBUTTON

BTFSC PORTA,4

GOTO BUTTONOFF

BUTTONON

MOVLW H'0C'

MOVWF CCP1CON;设置CCP1为PWM模式

GOTO CHECKBUTTON

BUTTONOFF

CLRF CCP1CON

GOTO CHECKBUTTON

END

因篇幅问题不能全部显示,请点此查看更多更全内容