108 基于51单片机的智能婴儿车设计(声音监测、音乐播放)【毕设课设】

您所在的位置:网站首页 五一是否打开国门 108 基于51单片机的智能婴儿车设计(声音监测、音乐播放)【毕设课设】

108 基于51单片机的智能婴儿车设计(声音监测、音乐播放)【毕设课设】

2023-05-21 17:08| 来源: 网络整理| 查看: 265

本设计由STC89C52单片机电路+声音传感器电路+音乐片控制电路+到位开关+继电器控制电路+太阳能锂电池充电电路+光敏电阻模块电路+风机电路+电磁锁控制电路组成。

1、通过声音传感器检测是否有声音,如果检测到声音超过阈值,音乐片芯片播放音乐,同时继电器闭合。(注,音乐片播放的时候,声音传感器不起作用,当音乐播放结束,声音传感器再次起作用。音乐播放10秒,继电器闭合10秒断开)。

2、在声音传感器没有检测到声音时,拨动开关拨下,继电器断开。拨动开关拨上,则继电器闭合。

3、太阳能电池板给整个系统供电。系统通过锂电池供电。

4、通过风机检测是否有风,通过光敏电阻模块检测白天和晚上。白天,电磁锁打开,晚上有风时电磁锁打开。晚上无风时,电磁锁闭合。

 

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include #include "delay.h" sbit feng = P1^0; //引脚定义 sbit sound = P1^1; sbit yy = P1^2; sbit sw = P1^3; sbit relay = P1^4; sbit ligh = P1^5; sbit dcs = P1^6; unsigned char soundFlag = 0; //检测声音标志 unsigned char soundCount = 0; //声音计数延时 unsigned char soundLater = 0; //声音单次延时处理 unsigned char cfLater = 0; //触发时间 unsigned long time_20ms=0; //定时器计数 void Init_Timer0(void); void main (void) { Init_Timer0(); //定时器0初始化 DelayMs(200); //延时有助于稳定 while (1) //主循环 { DelayMs(50); if(soundFlag == 0) //声音触发后标志 防止连续触发 因为有噪音 { if(sw == 0) relay =1; else relay =0; } if(ligh == 0) //白天 {dcs = 0 ;} //打开电磁锁 } } void Init_Timer0(void) { TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 TH0=(65536-20000)/256; //重新赋值 20ms TL0=(65536-20000)%256; EA=1; //总中断打开 ET0=1; //定时器中断打开 TR0=1; //定时器开关打开 } void Timer0_isr(void) interrupt 1 { TH0=(65536-20000)/256; //重新赋值 20ms TL0=(65536-20000)%256; time_20ms++; if(time_20ms%5==0) //定时处理 { if(soundLater>0)soundLater--; //延时处理 else {soundCount = 0;} if(cfLater > 0) { cfLater--; if(cfLater


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3