单片机开发:流水灯、蜂鸣器
流水灯:
LED灯原理图如下图所示,P2输出低电平时,相应的LED灯被点亮。
#include "reg52.h"
#define LED_PORT P2 //LED灯对应P2端口
typedef unsigned int u16;
void delay_10us(u16 ten_us){ //延时10us
while(ten_us--);
}
void main(){
while(1){
u16 i=0;
for(i=0;i<8;i++){
LED_PORT = ~(0x01<<i);//取反,低电平时导通
delay_10us(50000); //延时0.5s
}
}
}
蜂鸣器:
原理图如下图所示,BEEP对应的输入是P25管脚。
当输入一定频率的脉冲信号时才导通,程序中输入的是周期为2ms的脉冲信号,频率为0.5kHz。
周期不变的情况夏,高电平占比越高,音调越高。
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit BEEP = P2^5; //对应的是P25端口
void delay_10us(u16 ten_us){ //延时10us
while(ten_us--);
}
void main(){
u16 i=2000; //蜂鸣器响的次数
while(1){
while(i--){
// BEEP = !BEEP;
// delay_10us(100);
BEEP=0;
delay_10us(10);
BEEP=1;
delay_10us(190); //输出高电平时间,改变声音大小。
}
i=0;
BEEP=0;
}
}