您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机课程设计-语音留言模块设计
单片机课程设计一、设计名称多功能电子钟二、元件清单元件名称说明元件名称说明AT89S52单片机最小系统LCD1602液晶显示模块ISD1820语音录音模块DS18B20温度传感器SW-1801P高灵敏振动传感器单片机开发板1块基于LM398雨滴模块雨滴传感器杜邦线若干三、模块说明语音录音模块(ISD1820)右图为ISD1820语音录音模块的实际电路图:下图为ISD1820语音录音模块的电路原理图:可将话筒下端的偏置电阻和220uF电容的负端接到RECLED端(虚线),这样在平时由于RECLED端为高电平,话筒没有电压电流,整个电路的耗电几乎为零。但这种方式下直通模式不能工作若需放大,可用LM386、D2283、D2822、TA7368、MC34119等功率放大器。信号由SP+或SP-通过电容耦合输入,SP+或SP-不用的一端必须悬空,不能接地。使用LM386作放大器的连线图如下由于种种原因,使用功放之后会有很大的噪音,所以还需要一个滤波电路进行滤波降噪,具体电路需要根据实际情况选择,再次将不在详细说明。雨滴传感器下图为雨滴传感器模块的实际电路图:电源与开发板电源接通后电源灯亮,感应板上没有水滴时,DO输出为高电平,开关指示灯灭,滴上一滴水,DO输出为低电平,开关指示灯亮,刷掉上面的水滴,又恢复到,输出高电平状态。AO模拟输出,可以连接单片机的AD口检测滴在上面的雨量大小。DO数字输出,可以连接单片机检测是否有雨。DO输出有效信号为低电平.驱动能力100MA左右,可直接驱动继电器,蜂鸣器,小风扇等等,此次我们将作为一个输入信号使用。下图为雨滴传感器主电路部分的电路原理图高灵敏振动传感器下图为语音录音模块的实际电路图:模块不震动时,震动开关呈断开状态,DO输出端输出高电平,绿色指示灯不亮;模块震动时,震动开关瞬间导通,输出端输出低电平,绿色指示灯亮;DO输出端可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境是否有震动,起到报警作用。其主电路部分与雨滴传感器相同,在此将不再赘述。主电路部分实物图四、设计思路此次试验所拿到的传感器是随机的,根据传感器设计的产品功能灵活多变,而难度相对较大,我们得到的传感器为雨滴传感器、高灵敏振动传感器和语音录音模块,这三个传感器并没有什么联系,所以我们添加了液晶显示模块,将这三个传感器联系到一起,最终做出了多功能电子钟。下图为多功能电子钟概念模型:五、产品说明这款多功能电子钟功能非常强大,若加入温度传感器后它可以实时检测环境温度;由雨滴传感器可以实时检测室外是否有降雨,而且有降雨时除了液晶显示屏会提示外,产品周围的流水灯也会随着雨滴的节拍闪烁;同时它还兼具闹钟、语音留言、防盗功能,甚至还可根据需要扩展其他功能。六、程序流程图开始初始化按键扫描工作模式扫描时间扫描蜂鸣器状态扫描扫描模式变量其值为0时仅有时钟、留言和降雨显示;其值为1时,在模式0的基础上加入了闹钟提示功能;其值为2时,在模式0的基础上加入了振动报警功能,可以用于防盗或留言提醒。扫描按键状态以及按键缓存区变量判断按键动作,并根据动作次数(存储在按键缓存区变量中),执行相应的操作扫描定时器进位变量根据进位变量的值确定时间‘秒’是否加1,继而判断时与分,然后显示到液晶显示屏扫描蜂鸣器逻辑变量的值,并赋给蜂鸣器直接变量,让蜂鸣器动作。多功能电子钟概念模型88:88:880088:88:8800雨滴传感器高灵敏振动传感器七、电路图下图为实验中实际操作的电路图:矩阵按键功能说明:1,1时钟暂停1,2时钟位选1,3闹钟位选1,4关闭蜂鸣器2,1数值加2,2数值减2,3数值加2,4数值减3,1模式03,2模式13,3模式23,4播放语音留言八、功能说明这款多功能电子钟功能非常强大,若加入温度传感器后它可以实时检测环境温度;由雨滴传感器可以实时检测室外是否有降雨,而且有降雨时除了液晶显示屏会提示外,产品周围的流水灯也会随着雨滴的节拍闪烁;高灵敏振动传感器可以提供报警功能,当打开防盗模式,如果触发高灵敏振动传感器则蜂鸣器会立刻报警,直至手动过解除警报;语音录音模块可以提供语音留言功能,当有家庭成员需要留言的时候,只需要按下留言按钮,之后打开防盗模式,当其他家庭成员回到家中触发报警,即可知晓有语音留言等待收听;时钟方面,出于节约成本考虑,时钟方面并没有另外使用高精度时钟芯片,而是采用单片机内部的定时器功能实现高精度时钟功能,计时误差为1秒/20分钟;另外,此电子钟还支持闹钟功能,由于技术所限,只能使用一个闹钟,闹钟不会自动关闭,必须手动解除。2时钟暂停3时钟位选4时钟数值加5时钟数值减6闹钟位选7闹钟数值加8闹钟数值减9点按播放留言10长按留言11模式012模式113模式2九、分析讨论本次设计我们抽到的是雨滴传感器、高灵敏振动传感器和语音录音模块这三个传感器。通过查询我们了解了三个传感器的工作原理,但是本次设计实验中遇到的最大的问题是这三个传感器之间并没有什么联系,所以我们加入了液晶显示模块,将这它们联系到一起,最终做出了多功能电子钟,其主要有数字时钟、定时闹钟、雨滴检测、语音留言和防盗报警等功能;设计的过程中最大的困难是编写程序,三个传感器分开写其实还好,但是将它们联系在一起编写程序就是一项比较大的工程。在大家的共同努力下,将近用了一周的时间完成了设计。虽然还是存在很多不足,但我们会在以后的实验中更加努力,做到最好。十、实验心得我觉得在这次单片机的课程设计的过程中获益良多,通过这次课程设计我发现,只有理论水平提高了;才能够将课本知识与实践相整合,理论知识服务于教学实践,从而辅助动手能力,通过这次课程设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的巩固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。88:88:880088:88:8800雨滴传感器高灵敏振动传感器雨滴闪烁灯按住留言留言播放闹钟设置时钟设置关闭报警模式选择闹钟时间时钟时间模式显示降水显示12345678910111213十一、程序源代码///////////////////////////////////////////////////////////////////////////////////程序名称:多功能数字闹钟////功能说明:////数字时钟(误差:1秒/20分钟)////定时闹钟////雨滴检测////电子便签原声留言////防盗报警////日期:2016.12.10///////////////////////////////////////////////////////////////////////////////////#includereg52.h#defineucharunsignedchar#defineuintunsignedintucharflag11=0,flag12=0,flag13=0,flag14=0;bitflag21=0,flag22=0,flag23=0,flag24=0;bitflag31=0,flag32=0,flag33=0,flag34=0;bitnum0=0;sbityudi=P3^1;//雨滴传感器sbitmen=P3^2;//振动传感sbitlcdrs=P3^3;//数据/命令选择端(h/l)sbitlcdrw=P3^4;//读/写选择端(h/l)sbitlcden=P3^5;//使能端sbityuyin=P3^6;//语音播放sbitbeep=P3^7;//蜂鸣器sbitled=P2^7;//LEDuchark1,k2,k3,k4,mode,bep,i,tt;intmiao,fen,shi,miao1=0,fen1=0,shi1=0;voidworkmode();voidshijian();ucharcodea[]=23:59:50;//定义液晶第一行ucharcodeb[]=00:00:00;//定义液晶第二行///////////////////////////////////////////////////////////////////////////////voiddelay(ucharz)//延时子函数{ucharx,y;for(x=125;x1;x--)for(y=z;y1;y--);}///////////////////////////////////////////////////////////////////////////////voidinit()//初始化子函数{yuyin=1;mode=0;bep=1;}///////////////////////////////////////////////////////////////////////////////voidwrite_com(ucharcom)//向液晶写入命令{delay(5);lcdrs=0;lcdrw=0;P0=com;delay(1);lcden=1;delay(1);lcden=0;}///////////////////////////////////////////////////////////////////////////////voidwrite_date(uchardate)//写入数据函数{delay(5);lcdrs=1;lcdrw=0;P0=date;delay(1);lcden=1;delay(1);lcden=0;}///////////////////////////////////////////////////////////////////////////////voidinit_lcd()//液晶初始化{lcden=0;lcdrw=0;write_com(0x38);//显示模式设置;write_com(0x01);//清除屏幕;write_com(0x0c);//开显示;write_com(0x06);//显示光标移动设置write_com(0x80);//设置数据地址指针for(i=0;i16;i++)//写入数据{write_date(a[i]);}write_com(0x80+0x40);//第二行首地址for(i=0;i16;i++)//写入数据(第二行){write_date(b[i]);}}///////////////////////////////////////////////////////////////////////////////voidinit_t0()//定时器t0的初始化{TMOD=0x01;TH0=(65536-51150)/256;TL0=(65536-51150)%256;ET0=1;TR0=1;EA=1;tt=0;miao=50;fen=59;shi=23;}///////////////////////////////////////////////////////////////////////////////voidtimer0()interrupt1//定时器T0中断服务函数{TH0=(65536-51150)/256;TL0=(65536-51150)%256;tt++;if(tt==18){tt=0;num0=1;}}///////////////////////////////////////////////////////////////////////////////voidwrite_sfm1(ucharadd,uchardate)//向液晶第一行写数据{ucharshi,ge;shi=date/10;ge=date%10;write_com(0x80+add);write
本文标题:单片机课程设计-语音留言模块设计
链接地址:https://www.777doc.com/doc-5077428 .html