电子时钟程序设计.doc

电子时钟程序设计.doc

ID:49952649

大小:323.50 KB

页数:9页

时间:2020-03-03

电子时钟程序设计.doc_第1页
电子时钟程序设计.doc_第2页
电子时钟程序设计.doc_第3页
电子时钟程序设计.doc_第4页
电子时钟程序设计.doc_第5页
资源描述:

《电子时钟程序设计.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.1.设计目的电子时钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表的报时功能。电子时钟已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。不仅如此,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路

2、灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。而且是控制的核心部分。因此,研究电子时钟及扩大其应用,有着非常现实的意义。2.设计内容2.1设计思想针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS-资料.51指令系统及80C51引脚结构。这样,既能做到经济合理又能实现预期的功

3、能。在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。准备器件、搭接电路熟悉硬件了解各引脚功能分块设计各部分电路将分块的电路组合认真学习单片机汇编语言完成整体电路图确定变成结构和思路综合各程序完成整体程序编辑各个程序模块用Proteus画出电路图调试程序,进行修改对仿真中出现的问题进行改正画出仿真图进行仿真仿真成功软硬件结合,完成任务

4、书要求验证硬件电路成功进行扩展资料.2.2设计元件元件规格数量单片机AT89C511晶振12MHz1晶振电容30pF2按键4电阻10K,1K,220欧,各1,1,15电容10uF(+)1七段数码管共阳极四位、两位各1,1USB接口1USB延长线1/2底座40脚12.3设计图资料.调节分钟中断ss++mm++;ss=0调节小时中断一分到一小时到hh++;mm=0数码显示mm++;ss=0hh++装入计数值192一秒到继续计数开始计数单元清零资料.2.4设计程序#include#include

5、h>#includechardatatime[6];voiddelay(unsignedchark);sbitcheck=P0^0;sbitinter0=P3^2;sbitinter1=P3^3;chardatawhich=0;chardatacount=0;voidsmadd(unsignedchark);voidsmsub(unsignedcharn);charcodebuf[]={0x00,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0xff,0x6f};charco

6、desel[]={0x01,0x02,0x04,0x08};voidmain(){chari;for(i=0;i<500;i++);time[0]=0;time[1]=1;time[2]=8;time[3]=0;time[4]=2;time[5]=1;TMOD=0X01;TH0=(65535-5000)/256;TL0=(65535-5000)%256;IP=0x07;IE=0X87;TR0=1;while(1){for(i=0;i<6;i++){P1=sel[i];P2=buf[time[i]];delay(10);}

7、if(check==0){delay(8);TR0=0;资料.which=(which+1)%3;while(check==0);TR0=1;}}}voiddelay(unsignedchark){chari;for(;k>0;k--)for(i=0;i<80;i++){;}}voidtime_tr0()interrupt1using2{TH0=(65535-5000)/256;TL0=(65535-5000)%256;count++;if(count==100){smadd(0);}}voidint0_i()inter

8、rupt0using3{TR0=0;smadd(which*2);TR0=1;while(inter0==0);}voidint1_i()interrupt2using1{TR0=0;delay(20);smsub(which*2);;TR0=1;while(inter1==0);}voidsmsub(unsigne

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。