基于51单片机、时钟芯片、语音芯片的数字时钟设计与实现

上传人:F****n 文档编号:88036604 上传时间:2019-04-17 格式:PPT 页数:44 大小:5MB
返回 下载 相关 举报
基于51单片机、时钟芯片、语音芯片的数字时钟设计与实现_第1页
第1页 / 共44页
基于51单片机、时钟芯片、语音芯片的数字时钟设计与实现_第2页
第2页 / 共44页
基于51单片机、时钟芯片、语音芯片的数字时钟设计与实现_第3页
第3页 / 共44页
基于51单片机、时钟芯片、语音芯片的数字时钟设计与实现_第4页
第4页 / 共44页
基于51单片机、时钟芯片、语音芯片的数字时钟设计与实现_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《基于51单片机、时钟芯片、语音芯片的数字时钟设计与实现》由会员分享,可在线阅读,更多相关《基于51单片机、时钟芯片、语音芯片的数字时钟设计与实现(44页珍藏版)》请在金锄头文库上搜索。

1、基于51单片机、DS1302和ISD1420数字时钟,设计说明书,09级通信工程 罗强 胡自健 覃咏辉,2012年5月4日,目录 一、引言 二、总体设计 三、硬件设计 四、软件设计 五、数字钟制作过程中遇到的问题 六、总结 附录:作品图片展示 附录:DS1302时钟芯片的工作原理和使用方发 附录:参考资料,一、引言,此次是科技学院举办的首届“电子设计与程序设计”大赛,我们班的同学积极参加,设计出属余自己的满意作品。 为了进一步熟悉51单片机的编程以及学习数字钟的相关设计方法,我们进行了本次数字钟的设计。我们在规定的一个多星期时间里,基于51单片机STC89C52单片机、时钟芯片DS1302及语

2、音芯片ISD1420设计并实现了数字时钟。在硬件焊接完成并且调试成功之际,为了进一步提高自己动手能力和编程能力,对这次数字钟的设计和制作的过程中遇到的问题及设计思路做一总结。 随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。现在,最具代表性的计时产品就是电子万年历除了原有的显示时间、日期等基本功能外,还具有闹铃,语音报时、报警等功能。其利用STC89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制LED数码管输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。在21世纪的今天,单

3、片机仍然有着它不可替代的地位和独,为了进一步学习51单片机的控制和编程,我们利用51单片机自己设计并制作数字钟。,二、总体设计,此数字钟主要利用单片机STC89C52、时钟芯片DS1302和语音芯片ISD1420设计完成。 2.1设计与运行环境 数字钟的程序设计和调试均在Keil uVision2环境下完成的。设计并完成的程序下载至STC89C52单片机后,即可初始化时钟芯片DS1302从而开始计时,系统开始正常运行。 2.2硬件功能描述 数字钟能够完成24小时制计时,计时初始化值设为12:30:30,用户可以通过按键调整时钟的初值实现校时功能,可以通过软件设定3个24小时以内任意时刻的闹铃,

4、且能进行语音报时,用户可以手动选择闹铃的开或者关两种状态。,三、硬件设计,3.1 系统硬件框图,80c52,DS1302,ISD1420,74ls234,共阳数码管,闹铃,LM386,speaker,MIC,3.2、硬件设计 数字钟的电路主要有电源模块、显示模块、按键模块、复位电路模块、时钟芯片模块、语音芯片模块、主控芯片STC89C52模块和闹铃模块等大模块组成。 3.2.1、电源 电源模块采用7805进行稳压,保证+5V电压的稳定输出,进一步提高系统的抗干扰能力和稳定性。,7.4v,c,c,+,-,+,-,+,电源,稳压芯片,+,-,3.2.2、独立按键模块 系统有6个独立按键,独立按键S

5、1、S2、S3分别接至单片机P3.2、P0.0、P0.3口,S4、S5、S6分别接至语音芯片P27、P25、P24。,s1,s2,s3,s4,s5,s6,调时按键,语音芯片录放音按键,P3.2,P0.0,P0.3,P27,P25,P24,3.2.3、显示模块 一个良好的显示模块对一个系统非常重要,所有操作结果和计时结果,都要通过显示模块来显示出来。常用的显示模式有LED 7段数码管显示、点阵显示和液晶显示。 液晶显示屏(LCD)具有轻薄短小、低耗电量、无辐射危险,可视面积大,分辨率高,抗干扰能力强等特点。但由于液晶其成本也偏高。在使用时,不能有静电干扰,否则易烧坏液晶的显示芯片。鉴于LED 7

6、段数码管成本低,也比较容易实现的特点,最终确定使用共阴极数码管来显示。 本系统显示模块电路由一块74ls245、和两个四位一体7段数码管组成。74ls245用来驱动数码管,74ls245的A0A7分别接四位一体数码管的段选。,74LS245,P2,3.2.4、复位电路模块 复位电路主要的功能是是整个系统初始化,在每次上电时系统自动初始化,如果在程序运行的过程中程序没有响应或者需要进行一次初始化,这是可以通过按复位开关来实现需要的有效操作。,3.2.5时钟芯片模块 DS1302时钟芯片是本系统实现高精度计时的关键。利用DS1302时钟芯片独立于单片机来计时,在提高计时进度的同时也提高了整个系统的

7、抗干扰能力。DS1302通过SCLK、I/O、RES端口和单片机STC90C52进行通信。SCLK接至单片机P3.4口,在读写操作时给DS1302提供相应的时钟脉冲;I/O接至P3.5用来传送所有的数据;RES接至单片机P3.6上用来控制单片机与时钟芯片间的数据传送的开始与结束。 DS1302的工作原理及使用方法见附录。,3.2.6语音芯片模块 ISD1420模块单片录放时间20秒,音质好。芯片采用CMOS技术,内含振荡器、话筒前置放大、自动增益控制、防混淆滤波器、平滑滤波器、扬声器驱动及 EEPROM 阵列。最小的录放系统仅需麦克风、喇叭、两个按钮、电源及少数电阻和电容。 其性能特点如下:

8、(1)使用方便的单片20秒语音录放 (2)高质量、自然的语音还原技术 (3)边沿/电平触发放音 (4)自动节电,维持电流0.5A (5)不耗电信息保存100年(典型值) (6)100,000 次录音周期(典型值) (7)多段信息处理,可分1至160 段 (8)片内免调整时钟,也可选用外部时钟 (9)无需开发系统 (10)5V 单电源工作,ISD1420的内部结构框图,ISD1420固定地址录放音电路,3.1.7、主控模块 主控模块的核心组成部分是单片机STC89C52, 承担着所有操作任务的调控与分派工作。,3.2.8、闹铃模块 闹铃模块由蜂鸣器和蜂鸣器的驱动(三极管)组成。在有闹铃发生的时候

9、,蜂鸣器的驱动电路驱动蜂鸣器发声,产生闹铃的效果。,四、软件设计 4.1、程序设计流程图 4.1.1、主程序流图,开始,DS1302初始化,读一次DS1302计数值,判断闹铃是否发生?,闹铃响,Y,语音报时,动态显示扫描,N,INTO是否中断?,中断校时,Y,N,4.1.2、DS1302读写流程图,结束,结束,写DS1302,读DD1302,4.2、源程序 本程序主要实现的功能:利用时钟芯片DS1302、语音芯片ISD1420和STC89C52进行高精度计时,能够实现时、分、秒的显示,具有校时、定时、闹铃和语音报时的功能。 #include #include typedef unsigned

10、char uchar; /驱动程序定义 #define WRITE_SECOND 0x80 #define WRITE_MINUTE 0x82 #define WRITE_HOUR 0x84 #define READ_SECOND 0x81 #define READ_MINUTE 0x83 #define READ_HOUR 0x85 #define WRITE_PROTECT 0x8E uchar second,minute,hour; / 定义三个全局量 uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/

11、共阳 h-a /位寻址寄存器定义 sbit ACC_7 =ACC7; sbit SCLK =P34; /DS1032时钟信号 sbit DIO =P35; / DS132数据信号 sbit CE =P36; / DS1032片选 sbit P2_0=P10; sbit P2_1=P21; sbit P2_2=P22; sbit P2_3=P23; sbit P2_4=P24;,sbit P2_5=P25; sbit P2_6=P26; sbit P2_7=P27; sbit P0_0=P00; sbit P0_1=P01; sbit P0_2=P02; sbit P0_3=P03; sbit

12、P0_4=P04; sbit P0_5=P05; sbit P0_6=P06; sbit P0_7=P07; sbit P3_0=P30; sbit P3_1=P31; sbit P3_3=P33; sbit P3_7=P37; /地址、数据发送子程序 void Write1302(uchar address,uchar dat) uchar i,temp; CE=0; /数据传送终止 SCLK=0; /清零时钟总线 CE=1; /发送地址 for(i=8;i0;i-) /循环8次移位 SCLK=0; temp=address; DIO=(bit)(temp ,/发送数据 for(i=8;i0

13、;i-) SCLK=0; temp=dat; DIO=(bit)(temp ,CE=0; data1=ACC; data2=data1/16;/数据进制的转换 data1=data1%16; /16进制转换10进制 data1=data1+data2*10; return(data1); /初始化DS1302 void DS1302Initial() Write1302(WRITE_PROTECT ,0x00); / 禁止写保护 Write1302(WRITE_SECOND ,0x30); / 秒初始化 Write1302(WRITE_MINUTE ,0x30); / 分初始化 Write13

14、02(WRITE_HOUR ,0x12); / 小时初始化 Write1302(WRITE_PROTECT,0x80); / 允许写保护 /定时器延时 void delay( uchar delaytime) uchar i; TMOD=0X02; /T0定时器,方式2 ,自动重装初值 TL0=0XA3; /每次0.1ms TH0=0XA3; TR0=1; /启动T0 for( i=delaytime;i0;i-) while(!TF0); TF0=0; /溢出标志清零 TR0=0; ,/加一操作 uchar INC(uchar time) uchar data1,data2; time+;

15、data1=time%10; data2=time/10; data1=data2*16+data1; /10进制转16进(逆) return(data1); /语音芯片地址 void IDS1420_add(uchar a0,uchar a1,uchar a2,uchar a3,uchar a4,uchar a5,uchar a6,uchar a7) P0_4=a0; P0_5=a1; P0_6=a2; P0_7=a3; P0_1=a4; P0_2=a5; P3_1=a6; P3_7=a7; ,void IDS1420_play() P3_3=0; delay(20); P3_3=1; /数码管显示 void display(uchar sec,uchar min,uchar hou ) P2_7=1; P1=tablesec%10; delay(30); P2_7=0; P2_6=1; P1=tablesec/10; /显示秒 delay(30); P2_6=0; P2_5=1; P1=tablemin%10; delay(30); P2_5=0; P2_4=1; P1=tabl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号