微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于单片机设计的音乐马桶

基于单片机设计的音乐马桶

时间:11-28 来源:互联网 点击:

程序:


//12MHZ
#include

sbit sound_mod = P2^1;

#define uchar unsigned char
uchar second;
uchar minute;
bit play_flag; //音乐模块播放控制位
sbit shine = P2^0; //仿真时秒闪烁LED

void run(void);

void init(void) //定时器,中断初始化函数
{
sound_mod = 0;
TH0 = -50000/256;
TL0 = -50000%6;
TMOD = 0x01;
TR0 = 1;
IE = 0x83;
IT0 = 1;
}

void main(void)
{
init();
while (1)
{
run();
}
}
void run(void)
{
if (play_flag) //播放标志为1时,音乐模块供电
{
sound_mod = 1;
}
else if (!play_flag) //播放标志为0时,音乐模块不供电,同时为重新计时3分钟复位
{
minute = 0;
sound_mod = 0;
}
}

void timer(void) interrupt 1
{
static uchar counter;

counter++;
if (20 == counter) //20个定时器溢出为1秒
{
counter = 0;
second++;
shine = !shine;
if (60 == second) //分进位
{
second = 0;
minute++;
{
if (3 == minute)//定时器定时3分钟后,播放标志位清0
{
minute = 0;
play_flag = 0;
}
}
}
}


}
void shake(void) interrupt 0
{
play_flag = 1; //震动开关跳变触发中断,播放标志位置1
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top