ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:210.75KB ,
资源ID:7858308      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7858308.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易数字钟的制作.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易数字钟的制作.docx

1、简易数字钟的制作简易数字钟的设计 完成人:2011-12-26【摘要】数字钟在我们的日常生活中随处可见,应用非常广泛。本文就是设计一款多功能数字钟,以AT89C52单片机为核心,配备有液晶显示模块,时钟芯片DS1302等功能模块,数字钟采用24小时制显示秒、分、时,并且显示年月日以及星期,具有整点报时以及闹铃设定的功能,完成了全部的基本要求和发挥 部分的要求。 本文主要从硬件设计和软件编程两个方面叙述,硬件电路设计由中央处理单元电路、时钟电路、人机接口电路、执行电路等几部分组成。软件由C语言编程,通过KEIL软件仿真,主要包括主程序、键盘扫描程序、时间设置子程序等软件模块。关键词: AT89C

2、52 液晶显示 时钟芯片 整点报时一、方案比较与论证方案一:利用FPGA+液晶显示器+语音芯片 这种方法实现比较难,如果嵌入IP核或NOISLL可能会简单些但是学习FPGA的一种很好途径,此方案成本高,实现较难,故这里不选择该方案。方案二:利用ARM+语音芯片 这种方法容易实现,而且ARM本身有实时时钟,不需外加时钟芯片,而且ARM芯片功能较强大,但成本太高,不现实,故不选择此方案。方案三:利用51单片机+DS1302+液晶显示 这种方案成本较低,并且容易实现,程序较简单完成,且效果不错,故采用此方案。二、设计要求1、单片机控制日历时钟芯片实现年份、月份、日期、星期、时间信息的获取;2、在LC

3、D上对年份、月份、日期、星期、时间信息进行显示;3、可以对年份、月份、日期、星期、时间进行修改;4、具有掉电后时间信息不丢失的功能;5、具有整点报时功能;6、具有闹铃功能。三、硬件设计3.1、系统组成: 本设计的硬件框图如下:3.2各部分工作原理及芯片资料:3.2.1、液晶部分:液晶1602主要技术参数:16*2个字符;芯片工作电压:4.5V-5.5V工作电流:2.0mA(5V)模块最佳工作电压:5.0V引脚功能说明:编号符号引脚说明编号符号引脚说明1Vss电源地9D2数据口2Vdd电源正极10D3数据口3VO液晶显示对比度调节端11D4数据口4RS数据、命令选择(H/L)12D5数据口5R/

4、读写选择端13D6数据口6E使能信号14D7数据口7D0数据口15BLA背光电源正极8D1数据口16BLK背光电源负极基本操作时序:读状态 输入:RS=L,R/W=H,E=H 输出:D0-D7=状态字读数据 输入:RS=H,R/W=H,E=H 输出:无写指令 输入:RS=L,R/W=L,D0-D7=指令码,E=高脉冲 输出:D0-D7=数据写数据 输入:RS=H,R/W=L,D0-D7=数据,E=高脉冲 输出:无状态字说明:STA7 D7STA6 D6 STA5 D5STA4 D4STA3 D3STA2 D2STA1D1STA0D0 STA0-STA6当前地址指针的数据 STA7读/写操作使能

5、1-禁止;0-允许注意:原则上每次对控制器进行读/写操作之前,都必须进行读/写检测,确保STA7为0.实际上,由于单片机的操作速度慢于液晶控制器的反应速度,因此可以不进行读/写检测,或只进行简短时延即可。液晶模块程序:见软件设计部分3.2.2复位电路: 本电路采用的是手动复位,电路如下图所示:3.2.3 时钟芯片DS1302 DS1302 简介: DS1302是美国 DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态 RAM,采用 SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和 RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个

6、月小与31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.55.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。DS1302的外部引脚分配如图1所示及内部结构如图2所示。DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。各引脚的功能为: Vcc1:主电源;Vcc2:备份电源。当 Vcc2Vcc1+0.2V时,由 Vcc2向 DS1302供电,当 Vcc2 Vcc1时,由 Vcc1向 DS1302供电。SCLK:串行时钟,输入,控制数据的输入与输出;

7、I/O:三线接口时的双向数据线; CE:输入信号,在读、写数据期间,必须为高。该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。 读写时序说明 :DS1302是 SPI总线驱动方式。它不仅要向寄存器写入控制字,还需要读取相应寄存器的数据。要想与 DS1302通信,首先要先了解 DS1302的控制字。 DS1302的控制字如下图。7654321 0 1RAM A4 A3A2A1 A0RDCKWR 控制字的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到 DS1302中。 位6:如果为0,则表示存取日历时钟数据,为1表示存

8、取 RAM数据; 位5至位1(A4A0):指示操作单元的地址; 位0(最低有效位):如为0,表示要进行写操作,为1表示进行读操作。 控制字总是从最低位开始输出。在控制字指令输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从最低位(0位)开始。同样,在紧跟8位的控制字指令后的下一个 SCLK脉冲的下降沿,读出 DS1302的数据,读出的数据也是从最低位到最高位。芯片与单片机连接图:电路原理图如下图, DS1302与单片机的连接也仅需要3条线: CE引脚、SCLK串行时钟引脚、I/O串行数据引脚,Vcc2为备用电源,外接32.768kHz 晶振,为芯片提供计时脉冲。驱动程序:

9、见软件设计部分3.2.4 蜂鸣电路: 蜂鸣器电路主要实现的是整点报时和闹铃的功能,电路连接如下:3.2.5按键电路: 本设计采用的是独立按键方式,分别由单片机的P3.0,P3.1,P3.2,P3.3控制,P3.0控制加,P3.1控制减,P3.2控制修改时间等信息,P3.3控制闹铃的定。单片机通过扫描键盘,读取信息,完成相应的动作。相关程序见软件部分。 3.2.6 稳压电源电路 本电源采用桥式全波整流、大电容滤波、三端稳压器件7805稳压的方法,产生给单片机、液晶、DS1302等供电的+5V电压,输出的纹波较小,供电较稳定。稳压电源电路图下图所示: 7805相关资料78*系列是三端正电源稳压电路

10、,它的封装形式为TO-220,它有一系列固定的电压输出,应用非常的广泛。每种类型由于内部电流的限制,以及过热保护和安全工作区的保护,使它基本上不会损坏。如果能提供足够的散热片,它们就能够提供大于1.5A的输出电流。虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就能够获得各种不同的电压和电流。7805特点:最大输出电流为1.5A;输出电压为5V;热过载保护;短路保护;输出晶体管安全工作区保护;7805引脚图四、软件设计4.1软件设计内容本设计的软件包括主程序、时钟显示子程序、键盘扫描程序、闹铃子程序、整点报时子程序等等,另外由于电路中有独立按键,因此还设计了防抖动程序来防止干扰。4.

11、2 软件流程图4.2.1主程序:void main() /主函数 init(); Initial(); /初始化DS1302 while(1) keyscan(); 4.2.2时钟初始化:void Initial(void) Write1302 (WRITE_PROTECT,0X00); /禁止写保护 Write1302 (WRITE_SECOND,0x56); /秒位初始化 Write1302 (WRITE_MINUTE,0x59); /分钟初始化 Write1302 (WRITE_HOUR,0x23); /小时初始化 Write1302 (WRITE_day,0x31); /tian位初始

12、化 Write1302 (WRITE_month,0x12); /yue初始化 Write1302 (WRITE_year,0x11); /nian初始化 Write1302 (WRITE_week,0x06); Write1302 (WRITE_PROTECT,0x80); /允许写保护 void init() uchar num; lcden=0; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); write_com(0x80); for(num=0;num15;num+

13、) write_date(tablenum); delay(5); write_com(0x80+0x40); for(num=0;num12;num+) write_date(table1num); delay(5); 五、调试及结果5.1 结果报告:本多功能数字钟最终完成了简易数字钟的所有基本要求和所有发挥部分的内容。具体结果如下:1、 上电后,按下复位键,电路即开始工作;2、 按下S1,选择对分、时、月份、日期、年份的修改,而星期是随着年份、月份和日期的修改而做出相应的变化的,所以不需要再修改;S1与S2按键分别表示加和减;修改完成后即可进行数字钟的显示;3、 因为加了整点报时的功能,所

14、以每到整点时,蜂鸣器电路就会工作,蜂鸣器响的次数就代表了现在是几点,完成整点报时的要求;4、 按下S4,即进入闹铃设置界面;通过按S4选择秒、分、时的设定,即设置闹铃时间,当闹铃时间到的时候,蜂鸣器电路工作,就开始闹铃;这时再按S1就可关闭闹铃;这样便完成了闹铃功能的要求。 5.2 调试中遇到的问题以及解决方法:1、首先是硬件方面,本设计的电路不是十分复杂,所以我们先在PROTEL中画出了原理图,做好了在板子上的走线布局。但在实际过程中,遇到不少问题。 比如,电路焊完之后,接好线,可是液晶上总是不显示字,我们以为是单片机芯片坏了,可是换了几个还是不成功;后来我们觉得可能是液晶的焊接错了,可是用

15、万用表查了好几遍电路,都是没问题的。试了很多次之后,我们才发现,液晶的3脚接的是电位器,而3脚是液晶显示对比度调节端,所以它的大小关系到液晶是不是可以显示字。单片机学习板上焊的是5K的,我们焊的是20K,用万用表测量阻值,大概15K,这样肯定不显示字。所以我们调节了电位器,成功了。 还比如,在调试的过程中,液晶常会突然变暗,然后就像断电了似的,过了会就又被初始化了。检查电路是没有问题的,后来我们分析,老师在上课的时候提到过,自己做的电源有可能存在带载能力不强的问题,而且我们的电路把所有的电源线都并到一个输出端,而且我们的板上还有三块没参与工作的芯片,但都练到电源线上了,所以需要供电,这就可能导

16、致供电不足,所以液晶就无法正常工作。所以我们把不需要的电源线都拆掉,而且从电源那块板上多引了一根线直接供给液晶。这样,就再也没发生过这种情况。 硬件调试中还有其他很多的情况出现,在这里就不再过多赘述了。2、下面是软件方面,本数字钟的设计核心部分还是软件部分及编程。其中涉及到每个部分的编写:主程序、时钟程序、液晶程序、键盘扫描、以及对日期之类的修改,整点报时、闹铃等,工作量的比较大的,而且,将程序下到芯片中工作的时候,发生了按键不起作用、加减不起作用、闹铃无法实现等方面的问题,说明编程有很多地方出错,这些错误经过一点点改进之后也都完成了。六、心得与收获 首先,通过这学期对单片机的学习和最后这个作品的完成,我们对单片机有了更进一步的了解,比以前进步了很多,也从中学习到了不少知识。做这个设计花费了我们很多的时间,主要还是因为平时基础没打牢,所以以后我们会不断锻炼自己的动手能力,努力将书本上的知识运用与实践,争取做的更好!参考文献:51单片机C语言教程 郭天祥 电子工业出版社 单片机原理及应用 姜志海 电子工业出版社 电子设计从零开始 杨欣 清华大学出版社 C语言程序设计 谭浩强 清华大学出版社

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1