实现功能:通过键盘(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
因篇幅问题不能全部显示,请点此查看更多更全内容