新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于单片机设计的音乐马桶

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

作者: 时间:2016-11-28 来源:网络 收藏




音乐马桶实现图:
椭圆标注的陶瓷壁内为音乐马桶控制模块的安装位置。适合开口更换电池。能更好地传导震动。


结束语

接触学习单片机已经有一段时间了,回想刚开始的时候,觉得单片机牵涉到太多领域的知识,有电子,有微机原理,有程序编写等等。而且在起初的理论学习阶段,有好多晦涩难懂的概念。通过这次课程设计实践,让我思考了理论与实践的相互关系。
在初期阶段,面对一个全新的,庞然大物般的新知识体系,理论的引导作用无法替代,起码要先建立起对它的兴趣,爱好,进而规划发展。否则面对再好的前景规划也无从下手。
虽然现在我还处在入门的阶段,但是也能深刻的感受到,正是由于单片机涉及的知识面很广,所以带来了无比的自由性,适应性,灵活性。从模块、IC的琳琅满目,到数不尽的周边电子元件组合方式,更有基本上没有限制的软件编程实现。这一切都使得单片机解决问题的途径不是唯一,更使得解决实际问题游刃有余,能够贴合各种实际情况、环境。
这次课程设计,要求设计一种音乐马桶,解决人们在上厕所发出声响遭遇尴尬的实际问题。在学习过程中,我也做过一些题目和小实物。最大的区别是,在这次课程设计之前,我是为了应用某个特定的知识点,才去实践。而这次是为了解决某个实际问题,去应用所学知识。或许这才是工程人的基本出发点。
按照老师给出的解决思路。声控电路、声控感应,这些生活中常见常用的功能模块,确实也像第一时间就给出了清晰明了的答案。但是经过深入的分析,日常所见的东西存在于某个地方,或许我们都习以为常,其实它们都是很好的贴合了所在环境实际要求,才成为习惯的。那么对于马桶、厕所,这些少有接触的环境,这些模块,这些电路又是否合适呢?
试想厕所、马桶肯定是常常接触水的,假如电路复杂,模块不够紧凑导致不能很好地放湿,防水,肯定是不能适应环境的。在我看来,这一点是声控控制不能满足的,若加上了防水防湿的外保护,更会影响其灵敏度。更进一步,在公共场合嘈杂的环境中,声控控制会工作不理想。
基于以上一些分析,最后决定了用简单可靠地震动传导来作为触发。当然,单片机的解决方案多种多样,并不能说这个就更加贴切,但是只有不断思考和论证才有更好,没有最好的答案。这就是单片机、嵌入式的魅力。

附录:

程序:


//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
}

上一页 1 2 3 4 下一页

关键词: 音乐马桶单片

评论


相关推荐

技术专区

关闭