欢迎来到天天文库
浏览记录
ID:854304
大小:280.02 KB
页数:35页
时间:2017-09-20
《基于51单片机控制的语音报时万年历课程设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于51单片机控制的语音报时万年历基于51单片机控制的语音报时万年历一.实验要求运用单片机及相关外设实现以下功能:1)万年历及时钟显示2)时间日期可调3)可对时间进行整点报时和随机报时二.方案分析根据实验要求,选用STC公司的8051系列,STC12C5A16S2增强型51单片机。此单片机功能强大,具有片内EEPROM、1T分频系数、片内ADC转换器等较为实用功能,故选用此款。实验中,对日期和时间进行显示,显示的字符数较多,故选用12864LCD屏幕。该屏幕操作较为便捷,外围电路相对简单,实用性较强。为了实现要求中的时间日期可调,故
2、按键是不可缺少的,所以使用了较多的按键。一方面,单片机的I/O口较为充足;另一方面,按键较多,选择的余地较大,方便编程控制。实验中,并未要求对时间和日期进行保存和掉电续运行,所以并未添加EEPROM和DS12C887-RTC芯片。实际上,对万年历来说,这是较为重要的,但为了方便实现和编程的简单,此处并未添加,而是使用单片机的定时器控制时间,精度有差别。且上电默认时间为2014-01-0109:00:00之后需要手动调整为正确时间。要求中的语音报时功能,这里选用ISD1760芯片的模块来帮助实现。此模块通过软件模拟SPI协议控制。先将
3、所需要的声音片段录入芯片的EEPROM区域,之后读出各段声音的地址段,然后在程序中定义出相应地址予以控制播放哪一声音片段。三.电路硬件设计实际效果图四.程序代码部分基于51单片机控制的语音报时万年历Main.h#ifndef_MAIN_H#define_MAIN_H#include"reg52.h"#include"INTRINS.H"#include"math.h"#include"string.h"#include"key.h"#include"led.h"#include"12864.h"#include"main.h"#in
4、clude"isd1700.h"#include"sound.h"externunsignedintcount;externunsignedintkey_time[8];externunsignedcharkey_new;externunsignedcharkey_old;externunsignedcharstop_flag;externunsignedcharkey_follow[8];externunsignedintkey_num[8];sbitBEEP=P3^7;sbitISD_SS=P0^7;sbitISD_MISO=P
5、0^4;sbitISD_MOSI=P0^5;sbitISD_SCLK=P0^6;externunsignedchardate_show[];externunsignedchartime_show[];externunsignedcharsec;externunsignedcharmin;externunsignedcharhour;externunsignedcharday;externunsignedcharmonth;externunsignedcharyear_f;externunsignedcharyear_l;extern
6、unsignedcharleap_year_flag;基于51单片机控制的语音报时万年历externunsignedcharupdate_flag;externunsignedcharadjust_flag;externunsignedcharkey;unsignedcharreport();#endifMain.c#include"main.h"unsignedintcount=0;unsignedintkey_num[8]=0;unsignedcharkey_new=0;unsignedcharkey_old=0;unsigne
7、dcharstop_flag=0;unsignedcharkey_follow[8]=0;unsignedcharsec=1;unsignedcharmin=0;unsignedcharhour=9;unsignedcharday=1;unsignedcharmonth=1;unsignedcharyear_f=20;unsignedcharyear_l=14;unsignedcharleap_year_flag=0;unsignedchardate_show[]="2014-01-01";unsignedchartime_show
8、[]="09:00:00";unsignedcharupdate_flag=1;unsignedcharkey=0;unsignedcharadjust_flag=0;unsignedcharadjust_pos=0;unsigned
此文档下载收益归作者所有