




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字钟设计 专业:电子信息 班级:092 组员:陈浩均 江辉 於晶晶 目 录一、任务目的.3二、系统方案选择 1、单片机选型 2、设计方案.4 3、显示方案 4、系统方案确定.55、系统硬件设计.6 6、系统软件设计.77、总结.10三、数字钟源程序.12任务目的很多单片机产品具有实时时钟的功能,例智能化仪器仪表、工业过程控制系统及家用电器等。这里要求实现一个具有实时时钟显示和闹钟控制功能的数字钟。通过数字钟的设计与制作,将前面所学的单片机内部定时器资源、I/O端口、键盘和显示接口等知识融会贯通,锻炼独立设计、制作和调试应用系统的能力,深入领会单片机应用系统的硬件设计、模块化程序设计及软硬件调试方法等,并掌握单片机应用系统的开发过程。产品的设计要求: (1)自动计时,由4位LED显示器显示时、分。 (2)具备校准功能,可以设置当前时间。 (3)具备定时启闹功能,可以设置启闹时间,启闹1分钟后自动关闭闹铃,也可以按退出按钮退出闹铃。 (4)设计时间或闹铃时要求有加一和减一功能。 系统方案选择1、 单片机选型选用MCS-52系列主流芯片89c52,内部带有4KB Flash ROM,无须扩展程序存储器。由于数字钟没有大量运算和暂存数据,片内128B的RAM可以满口设计要求,无须外扩片外RAM。2、 设计方案(1) 采用实时时钟芯片。针对应用系统对实时时钟的普遍需求,各大芯片生产厂家陆续推出了一系列实时时钟集成电路,如DS1287、DS112887、DS1302、PCF8563、S35190等。这些实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能和多点定时功能,计时数据每秒自动更新一次,不需程序干预。单片机可通过中断或者查询方式读取计时数据。实时时钟芯片的计时功能无须占用CPU时间,功能完善,精度高,软件程序设计简单,在实时工业测控系统中多采用这一类专用芯片来实现。(2) 软件控制。利用89c52内部定时/计数器进行中断定时,配合软件延时实现时、分、秒的计时。该方案节省硬件成本,且能够使读者对前面所学知识进行综合运用,因此,本系统设计采用这一方案。3、 显示方案(1) 利用串行口扩展LED,实现LED静态显示。(2) 利用单片机并行I/O端口,实现LED动态显示。本方案就是选用了这一显示方案。4、 系统方案确定综合上述方案分析,本系统选用主流芯片89c52单片机作为主控制器,采用单片机内部定时器实现计时、用七个按键控制时钟的各项功能和动态LED显示(4位)。按键功能定义。与P1口相连的7个按键定义如下: K1键:启动设置时间的功能。K2键:实现分位加一功能。K3键:实现时位加一功能。K4键:启动设置闹钟的功能。K5键:实现分为减一功能。K6键:实现时位减一功能。K8键:实现退出设置和闹铃功能。 K7键:复位。5、 系统硬件设计 系统硬件设计电路如下图所示,单片机的P0口作为4位LED显示的段选口,P1.0P1.7分别接4个LED的ag。,单片机P2口的P0.0P0.3分别连接4个LED的段选口。P3.2口作为蜂鸣器的引脚。电子元器件列表序号名称数量序号名称数量1单片机89c521片2晶振1个10瓷片电容2只3共阳数码管6只4PNP管85505只1210UF1只580508个132K电阻4只6蜂鸣器1个1410K电阻10只7微动按键8个15150电阻8只81000UF电容1只数字钟硬件电路图技术帮助:七段数码管分共阳管和共阴管,使用时要注意区分,本项目使用共阳数码管即公共端接正极。数码管引脚示意图如下:6、 系统软件设计主程序函数LED显示函数设置时间函数设置闹铃函数启动闹铃函数加一修改函数减一修改函数定时器函数闹钟响铃图在程序执行的时候,由于在protus中不容易看到闹钟响铃的情形,所以我在显示上加了一个闪烁程序,只要闹铃定时一到,4个LED 就会同时闪烁,一分钟后就会停止,当然,在中途过程中你也可以按K8退出键,退出响铃程序。程序说明:第一步:主程序开始时,显示23:59第二步:当需要修改时间时,可以按下K1键,程序跳到调时函数。此时4个LED显示的时间暂停,定时器被关闭。按下K2键可以让分位加一。按下K3键可以让时位加一。按下K5键可以让分位减一。按下K6键可以让时位减一。如修改好后,可以按下K8键退出。定时器被打开,计时正常显示第三步:当需要定闹钟时,可以按下K4键,程序跳到调闹函数。此时4个LED显示的时间暂停,定时器被关闭。按下K2键可以让分位加一。按下K3键可以让时位加一。按下K5键可以让分位减一。按下K6键可以让时位减一。如修改好后,可以按下K8键退出,定时器被打开,同时恢复时钟时间,计时正常显示。时间设置:按下K1键后,秒位停止走动分位加一两次为1,时位加一一次为1,秒位开始走动闹钟设置:K4键按下后,并将分位加一按下K8键后退出闹钟设置函数,显示恢复正常总 结通过完成数字钟的设计与制作调试,掌握单片机应用系统的设计过程。单片机应用系统开发的一般工作流程包括:项目任务的需求分析(确定任务),制定系统软件、硬件方案(总体设计),系统硬件设计与制作,系统软件模块划分与设计,系统软、硬件联调,程序固化,脱机运行等。 学习自顶向下的模块化程序设计方法,构建出程序设计的整体框架,包括主程序流程和子模块流程的设计、各功能模块之间的调用关系。在细化流程图的基础上,合理分配系统变量资源,即可轻松编写程序代码。在调试程序前,一定要先将源程序分析透彻,这有助于再系统调试过程中,通过现象分析判断产生故障的原因及故障可能存在的大致范围,快速有效地排查和缩小故障范围。 虽然我们的这个程序比老师的要差的很远,不够精炼,而且也不够完整,但基本功能都可以实现,让我们对以后的学习更加有信心了。我们认真分析了一下与老师的程序差距有以下几点:1、 对定时器中断的能理解还是不够。2、 对C语言的学习依然不够,例如切换按键,不会用,不免使得电路按键过多,操作麻烦。其实,只要定义几个变量,就可以解决这个问题3、 在调时间上,每次加一或减一,LED总是同时闪烁,而且无法实现让所调的位闪烁。这说明,我们对定时器中断认识还不够深入,没有充分利用,还需要好好学习一下。4、 设置闹铃的时候也会闪烁数字钟源程序#includeunsigned char a,b,sec,fen,shi;unsigned char fen_l,shi_l,fen_h,shi_h,naoshi,naofen,naowei,count;unsigned char led=0x3f,0x09,0xa7,0x8f,0x99,0x9e,0xbe,0x0b,0xbf,0x9f; unsigned char led1=0x7f,0x49,0xe7,0xcf,0xd9,0xde,0xfe,0x4b,0xff,0xdf;sbit k1=P20; /调时sbit k2=P23; /分加一sbit k3=P24; /时加一sbit k4=P21; /调闹sbit k8=P27; /退出sbit k5=P22; /分减一sbit k6=P25; /时减一sbit naoling=P32;void jiayi();void tiaoshi();void tiaonao();void naozhong();void display();void jianyi();/延时函数 参数表示延时t秒void delay(unsigned int t) int i,j; for(i=t;i0;i-) for(j=110;j0;j-); void ledscan() /显示 P0=0xf7; P1=ledshi/10; delay(2); P0=0xfb; P1=led1shi%10; delay(2); P0=0xfe; P1=ledfen%10; delay(2); P0=0xfd; P1=ledfen/10; delay(2); if(naowei=1) if(sec60) if(naoshi=shi) if(naofen=fen) naozhong(); void jiayi() if(k2=0) delay(100); if(k2=0) fen+; delay(10); if(fen=60) fen=0; shi+; if(shi=24) shi=0; if(k3=0) delay(100); if(k3=0) shi+; delay(10); if(shi=24) shi=0; void jianyi()/减一 if(k5=0) delay(100); if(k5=0) fen-; delay(10); if(fen=0) fen=59;if(k6=0) delay(100); if(k6=0) shi-; delay(10); if(shi=0) shi=23; void tiaonao() /调闹 a=shi; b=fen; TR0=0; naowei=1; while(TR0=0) P0=0xf7; P1=ledshi/10; delay(10); P0=0xfb; P1=led1shi%10; delay(10); P0=0xfe; P1=ledfen%10; delay(10); P0=0xfd; P1=ledfen/10; delay(10); if(k2=0) jiayi(); if(k3=0) jiayi(); if(k8=0) TR0=1;shi=a;fen=b;break; if(k5=0) jianyi(); if(k6=0) jianyi(); naoshi=shi; naofen=fen; void naozhong()/响铃 if(naoshi=shi) if(naofen=fen) P0=0xff; delay(2); P0=0xf7; P1=ledshi/10; delay(10); P0=0xfb; P1=led1shi%10; delay(10); P0=0xfe; P1=ledfen%10; delay(10); P0=0xfd; P1=ledfen/10; delay(2); /P0=0x00; delay(2); naoling=0;delay(30);naoling=1;delay(30);if(k8=0)naowei=0;void tiaoshi() /调时 TR0=0; while(TR0=0) P0=0xf7; P1=ledshi/10; delay(10); P0=0xfb; P1=led1shi%10; delay(10); P0=0xfe; P1=ledfen%10; delay(10); P0=0xfd; P1=ledfen/10; delay(10); if(k2=0) jiayi(); if(k3=0) jiayi(); if(k8=0) TR0=1; if(k5=0) jianyi(); if(k6=0) jianyi(); void int0(void) interrupt 1 /中断 TH0=0x3c; TL0=0xb0; count+; if(count=20
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司环境与安全培训课件
- 行政人事转正工作总结
- 卤菜店铺转让合同6篇
- 新农村建设工作总结
- 《祖国在我心中》课件
- 2025建筑施工租赁合同范本
- 解读义务教育均衡发展
- 第二季度护理工作总结
- 广东省肇庆市德庆县2022-2023学年高三上学期期中考试地理题库及答案
- 广东省汕头市金平区2023-2024学年高二上学期第二次月考思想政治试题及答案
- T/CCMA 0015-2023高处作业吊篮和擦窗机检查、维护保养和安全操作规则
- DB32/T 3946-2020平原水网地区闸控航道通航标准
- 国际压力性损伤溃疡预防和治疗临床指南(2025年版)解读
- 2025年初级银行从业资格之初级个人理财考试题库
- 2025-2030年中国核子及核辐射测量仪器行业竞争格局及发展趋势分析报告
- 2024年4月全国自考00054管理学原理真题
- 银行保险机构安全保卫工作自查操作手册
- 社保培训课件视频
- 2025-2030中国咖喱粉市场消费调查及投资效益趋势预测研究报告
- 餐饮食堂“十统一六到位”管理培训
- 工业生产许可证实施细则
评论
0/150
提交评论