下载此文档

电子时钟程序设计.doc


文档分类:通信/电子 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
该【电子时钟程序设计 】是由【木木在江边】上传分享,文档一共【9】页,该文档可以免费在线阅读,需要了解更多关于【电子时钟程序设计 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。工程施工文档
工程施工文档
工程施工文档

电子时钟是采用数字电路实现对日期、时、分、秒,数字显示的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表,钟表的数字化给人们生产生活带来了极大的方便,,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、,在现代化的进程中,也离不开电子钟的相关功能和原理,比如机械手的控制、家务的自动化、定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,,研究电子时钟及扩大其应用,有着非常现实的意义。


针对要实现的功能,拟采用AT89C51单片机进行设计,AT89C51单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS—,既能做到经济合理又能实现预期的功能。
工程施工文档
工程施工文档
工程施工文档
在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。程序可分为闹钟的声音程序、显示程序、闹钟显示程序、调时显示、定时程序。运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误.
准备器件、搭接电路
熟悉硬件了解各引脚功能
分块设计各部分电路
将分块的电路组合
认真学习单片机汇编语言
完成整体电路图
确定变成结构和思路
综合各程序完成整体程序
编辑各个程序模块
用Proteus画出电路图
调试程序,进行修改
对仿真中出现的问题进行改正
画出仿真图进行仿真
仿真成功
软硬件结合,完成任务书要求
验证硬件电路
成功
进行扩展
工程施工文档
工程施工文档
工程施工文档

元件
规格
数量
单片机
AT89C51
1
晶振
12MHz
1
晶振电容
30pF
2
按键
4
电阻
10K,1K,220欧,
各1,1,15
电容
10uF(+)
1
七段数码管
共阳极四位、两位
各1,1
USB接口
1
USB延长线
1/2
底座
40脚
1

工程施工文档
工程施工文档
工程施工文档
调节分钟中断
ss++
mm++;ss=0
调节小时中断
一分到
一小时到
hh++;mm=0
数码显示
mm++;ss=0
hh++
装入计数值192
一秒到
继续计数
开始
计数单元清零
工程施工文档
工程施工文档
工程施工文档

#include<〉
#include<〉
#include<intrins。h〉
chardatatime[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};
charcodesel[]={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);
}
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()interrupt1 using2
{
TH0=(65535—5000)/256;
TL0=(65535—5000)%256;
count++;
if(count==100)
{
smadd(0);
}
}
voidint0_i()interrupt0using3
{
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(unsignedcharn)
{
delay(80);
if(time[n]>0)
{
工程施工文档
工程施工文档
工程施工文档
time[n]=time[n]—1;
}
elseif(time[n]==0&&(n==3||n==1))
{
time[n]=5;
smsub(n+1);
}
elseif(time[n]==0&&(n==4||n==2||n==0))
{
time[n]=23;
smsub(n+1);
}
elseif(time[n]==0&&(n==5))
{
time[n]=0;
}
}
voidsmadd(unsignedcharn)
{
charflag=0;
delay(80);
if((n==0)||(n==2)||(n==4))
{
if(n==4&&time[5]==2&&time[4]==3)
{
time[4]=0;
time[5]=0;
flag=1;
}
if(time[n]==9)
{
time[n]=0;
smadd(n+1);
}
else if(time[n]<9&&flag==0)
{
time[n]=time[n]+1;
}
}
elseif((n==1)||(n==3))
{
if(time[n]==5)
{
time[n]=0;
工程施工文档
工程施工文档
工程施工文档
smadd(n+1);
}
else
{
time[n]=time[n]+1;
}
}
elseif(n==5)
{
if(time[n]==2&&(time[n-1]==3))
{
time[5]=0;
time[4]=0;
}
else
{
time[n]=time[n]+1;
}
}
}
:
工程施工文档
工程施工文档
工程施工文档

通过这次的设计使我认识到我对单片机方面的知识知道的太少了,对于书本上的很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习,我会在以后的学习生活中弥补我所缺少的知识。本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给我们灌输理论知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争。

电子时钟程序设计 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人木木在江边
  • 文件大小293 KB
  • 时间2023-02-28