




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上单片机课程设计报告设计题目:简易电子时钟的设计院别: 专业班级: 学号: 姓名: 指导教师: 摘要通过一学期单片机的学习,对其已经有了初步的了解,但是随着社会的不断发展,单片机的应用正在不断地走向深入,它特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。我们也借此课程设计的机会,对单片机有更深一步的了解与学习。本次课程课程设计的目的是设计一个简易的电子时钟,通过一个8位共阴极数码管进行时、分、秒的显示,
2、另外设置7个按键,一个用来调整小时,一个用来调整分钟,一个开关控制是否调整时间。关键词:AT89C51,数码管,按键,DS1303时钟芯片1. 概述 本设计是锻炼我们的自学能力合作能力,依靠团队的力量去完成一项具体的任务系统的训练了所学知识,设计的过程必将是难忘的,这也将是大学向社会工作过度的一个重要阶段。本阶段过后要去能够熟练的运用单片机中的计数器、定时器、中断、数码管显示等参考教材或者相关资料,采用C语言实现数字时钟功能,在数码管上实时显示,并运用Protues软件绘制电路原理图,并进行仿真验证和误差分析。2. 系统总体方案设计2.1 系统方案的确定用6位数码管,可以显示出时、分、秒;用P
3、2端口控制位选,由定时器进行时间的控制(秒);当总按键按下时可以进行时间调整;2.2 方案分析2.3 系统总框图时钟芯片DS1302AT89C51单片机控制器复位电路数码管显示时钟电路按键74LS245控制数码管段选蜂鸣器发声图2.13. 系统硬件系统设计3.1 复位电路 单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程跑飞的时候,按下复位按钮内部的程序自动从头开始执行。复位电路的工作原理:在单片机系统中,系统上电启动的时候复位一次,当按键按下的时候系统再次复位,如果释放后再按下,系统还会
4、复位。所以可以通过按键的断开和闭合在运行的系统中控制其复位。单片机复位电路如下图图3.13.2 时钟电路 单片机运行需要时钟支持就像计算机的CPU一样,如果没有时钟电路来产生时钟驱动单片机,那单片机就不能执行程序。单片机可以看成是在时钟驱动下的时序逻辑电路。 以5l单片机为例随明:51单片机为l2个时钟周期执行一条指令。也就是说单片机运行一条指令,必须要用r2个时钟周期。没有这个时钟,单片机就跑不起来了,也没有办法定时和进行和时间有关的操作。 时钟电路是微型计算机的心脏,它控制着计算机的二个节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。51的时钟信号可以由两种方式产生:一种是内部方式
5、,利用芯片内部的振荡电路,产生时钟信号:另一种为外部方式,时钟信号由外部引入。如果没有时钟电路来产生时钟驱动单片机,单片机是无法工作的。单片机时钟电路是用来配合外部晶体实现振荡的电路,这样可以为单片机提供运行时钟,如果运行时钟为0 的话,单片机就不工作,当然超出单片机的工作频率的时钟也会导致单片机不工作。3.3 数码管显示器 LED数码显示器是1种由LED发光二极管组合显示字符的显示器件。它使用了8个LED发光二极管,其中7个用于显示字符,1个用于显示小数点。 LED数码显示器有两种连接方法: (1)共阳极接法。把发光二极管的阳极连在一起构成公共阳极,使用时公共阳极接+5V,每个发光二极管的阴
6、极通过电阻与输入端相连。当阴极端输入低电平时,段发光二极管就导通点亮,而输入高电平时则不点亮。(2)共阴极接法。把发光二极管的阴极连在一起构成公共阴极,使用时公共阴极接地。每个发光二极管的阳极通过电阻与输入端相连。当阳极端输入高电平时,段发光二极管就导通点亮,而输入低电平时则不点亮。在本设计中所采用的是共阴极LED数码显示器,其引脚排列如图3.3所示:图3.33.4 74HC573锁存器 74LS245是我们常用的芯片,用来驱动led或者其他的设备,他是8路同相三态双向总线收发器,可双向传输数据。74LS245还具有双向三态功能,既可以输出,也可以输入数据。当8051单片机的P0口总线负载达到
7、或超过P0最大负载能力时,必须接入74LS245等总线驱动器。当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收)*DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。在应用系统中,所有的系统扩展的外围芯片都需要总线驱动,本设计时钟芯片是系统扩展外围芯片,所以就需要总线驱动器,3.5 DS1302时钟芯片1.简介DS1302 是DALLAS 公司推出的涓流充电时钟芯片,内含有一个实时时钟/日历和31 字节静态RAM,通过简单的串行接口与单片机进行通信实时时钟/日历电路.提供秒分时日日期.月年的信息,每月的天数和闰年的天数可自动调整时钟操作可通过AM
8、/PM 指示决定采用24 或12 小时格式.DS1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需用到三个口线:1 RES 复位,2 I/O 数据线,3 SCLK串行时钟.时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信.DS1302 工作时功耗很低,保持数据和时钟信息时功率小于1mW.DS1302 是由DS1202 改进而来,增加了以下的特性.双电源管脚用于主电源和备份电源供应Vcc1,为可编程涓流充电电源附加七个字节存储器.它广泛应用于电话传真便携式仪器以及电池供电的仪器仪表等产品领域.2. DS1302 的基本组成和工作原理DS1302 的引脚功能排列及
9、描述如下图所示.ds1302引脚图管脚描述X1 X2 32.768KHz 晶振管脚GND 地RST 复位脚I/O 数据输入/输出引脚SCLK 串行时钟Vcc1,Vcc2 电源供电管脚DS1302 串行时钟芯片8 脚DIPDS1302S 串行时钟芯片8 脚SOIC 200milDS1302Z 串行时钟芯片8 脚SOIC 150mil3.DS1302 内部寄存器CH: 时钟停止位 存器2 的第7 位12/24 小时标志CH=0 振荡器工作允许 bit7=1,12 小时模式CH=1 振荡器停止 bit7=0,24 小时模式WP: 写保护位 寄存器2 的第5 位:AM/PM 定义WP=0 寄存器数据能
10、够写入 AP=1 下午模式WP=1 寄存器数据不能写入 AP=0 上午模式TCS: 涓流充电选择 DS: 二极管选择位TCS=1010 使能涓流充电 DS=01 选择一个二极管TCS=其它 禁止涓流充电 DS=10 选择两个二极管DS=00 或11, 即使TCS=1010, 充电功能也被禁止RS位电阻典型位00没有没有01R12K10R24K11R38K4. 系统软件设计4.1 程序设计思路 总体程序主要有主程序,中断定时程序,数码管显示程序,按键扫描程序,74HC595的读写程序,数据更新程序,蜂鸣器程序。 先数码管显示(中断定时,当一秒时间到时,数码管加一),当总按键按下时,计时停止,执行
11、按键扫描程序,等待调时按键的按下,当有按键按下时,进行相应的改变,再次按下总按键,继续显示时间。特别再有按键按下时,蜂鸣器发声。4.2 主要程序(1) 主函数void main()show();write_ds1302(0x84,0x12); /初始化write_ds1302(0x82,0x00);write_ds1302(0x80,0x00);while (1) set_rtc();read_rtc();display();(2) 显示函数void display()/显示时间函数unsigned int a=1;P2=0x01;P0=data_7seghour/16;delay(a);P2
12、=0x02;P0=data_7seghour%16;P0_7=0;delay(a);P2=0x04;P0=data_7segmin/16;delay(a);P2=0x08;P0=data_7segmin%16;P0_7=0;delay(a);P2=0x10;P0=data_7segsec/16;delay(a);P2=0x20;P0=data_7segsec%16;delay(a);4.3 流程图开始设置初始值13.00.00自动显示时间否判断总按键是否按下是定时器关闭 否判断其他按键是否按下是数码管显示值改变是否判断总按键是否按下是5. 调试及仿真软件运行效果和预期一致。6. 总结 通过此次
13、电子时钟的设计,我对单片机又进行了复习与巩固,在此过程中,也学到了新的知识,比如时钟芯片的应用。关于这次课程设计,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便。除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分
14、歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或C语言。要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知
15、识综合运用起来才能真正的设计好。7. 致谢课程设计是培养我们工作能力的一个实践性的学习环节。它不但是我们在大学学习中所学知识的一次综合复习与考查,同时也是理论联系实际的一个过程,为以后从事专业技术工作的一次准备。 通过此次课程设计,培养了我综合运用所学的基础理论课、技术基础课、专业课的知识和实践技能去分析和解决实际工作中的一般工程技术问题的能力,使我建立了正确的设计思想,学会了如何把平时所学的理论知识运用到实践当中去。掌握了单片机的数字时钟设计的一般程序、规范和方法,并进一步巩固、扩大和深化了我所学的基本理论,基本知识和基本技能,提高了我设计计算、计算机制图、设计说明书、正确使用技术资料,标准
16、手册等工具书的能力。 在课程设计的过程中,虽然本人在指导老师的帮助下对所设计的问题有初步的了解。但由于本人缺少实际工作经验,遇到了一些设计和实际制作中的问题,受到同学和指导老师的指导与帮助,从而得到了全面的解决同时也受到各位老师优良工作作风的影响,培养了我严肃认真、一丝不苟和实事求是的工作作风,并树立了正确的生产观、经济观和全局观。 在设计中,由于个人能力有限,设计中漏洞和错误在所难免,敬请各位老师指正批评,以使我对自己的不足得到及时发现并修正。 通过此次毕业设计,希望能把所学的知识有机的联系起来,培养自己分析问题,解决问题的能力,为充实自己,并在未来工作岗位上好好工作打下坚实的基础。 在这里
17、,向在这次课程设计中给予过帮助我的老师表示衷心的谢意。8. 附件源程序#include #include #define uchar unsigned char#define uint unsigned intuchar data_7seg10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar hour,min,sec;sbit shi=P10;sbit fen=P11;sbit miao=P12;sbit P1_3=P13;sbit rst=P14;sbit sck=P15;sbit io=P16;sbit fm=P17;sbit
18、 P0_7=P07;/*函数声明:*/void write_ds1302_byte(uchar dat);void write_ds1302(uchar add,uchar dat);uchar read_ds1302(uchar add);void read_rtc();void set_rtc();void display();void delay(int n);void show();void main()show();write_ds1302(0x84,0x13); /初始化write_ds1302(0x82,0x00);write_ds1302(0x80,0x00);while (1
19、) set_rtc();read_rtc();display();/*DS1302单字节写入:*/void write_ds1302_byte(uchar dat)uchar i;for (i=0;i1;sck=1;/*DS1302多字节写入:*/void write_ds1302(uchar add,uchar dat)rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);write_ds1302_byte(dat);rst=0;_nop_();io=1;sck=1;/*DS1302读取:*/uchar read_d
20、s1302(uchar add)uchar i,value;rst=0;_nop_();sck=0;_nop_();rst=1;_nop_();write_ds1302_byte(add);for (i=0;i1;sck=0;if (io) value=value|0x80;sck=1;rst=0;_nop_();sck=0;_nop_();sck=1;io=1;return value;void set_rtc() /调整时间 if(P1_3=0) rst=0;/if (shi=0) delay(100);if (shi=0)hour=(hour4)*10+(hour&0x0f);hour+;if (hour=24) hour=0;hour=(hour/10)4)*10+(min&0x0f);min+;if (min=60) min=0;min=(min
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 模具行业法律法规与标准考核试卷
- 玻璃涂层技术考核试卷
- 电气安装工程的监理与验收程序规范标准考核试卷
- 相机购买指南与消费建议考核试卷
- 玻璃太阳能集热器考核试卷
- 景区旅游市场秩序维护考核试卷
- 玩具设计中的故事性与品牌塑造考核试卷
- 成人高等教育计算机图形学与虚拟现实考核试卷
- 粮油企业绿色采购与供应链管理考核试卷
- 宁夏财经职业技术学院《地质资源与地质工程进展与创新》2023-2024学年第二学期期末试卷
- 店铺装修施工方案
- 2025火灾报警产品强制性产品认证实施细则
- 中考数学《数与式》专题训练(含答案)
- 新生儿呼吸窘迫综合征的护理查房
- 体外诊断试剂培训课件
- 《ICC概述》课件:揭秘国际刑事法院的职能与运作
- 《建筑装饰工程施工图设计》学习领域课程标准
- DB33T 1214-2020 建筑装饰装修工程施工质量验收检查用表标准
- 消化内科诊疗指南及操作规范
- 液体配制安全
- 《电动航空器电推进系统技术规范》
评论
0/150
提交评论