课程设计电子时钟.doc

上传人:laozhun 文档编号:3993273 上传时间:2023-03-30 格式:DOC 页数:21 大小:99KB
返回 下载 相关 举报
课程设计电子时钟.doc_第1页
第1页 / 共21页
课程设计电子时钟.doc_第2页
第2页 / 共21页
课程设计电子时钟.doc_第3页
第3页 / 共21页
课程设计电子时钟.doc_第4页
第4页 / 共21页
课程设计电子时钟.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《课程设计电子时钟.doc》由会员分享,可在线阅读,更多相关《课程设计电子时钟.doc(21页珍藏版)》请在三一办公上搜索。

1、大型作业专业:班级:姓名:学号:指导老师:前言单片计算机即单片微型计算机。RAM ,ROM,CPU构成,定时,计数和多种接口于一体的微控制器。它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。而51系列单片机是各单片机中最为典型和最有代表性的一种。这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。单片机电子时钟,是利用单片机技术实现计时、时间显示、时间调整、定时调整、闹铃等功能。完成该项目能够有效的训练大家的单片机应用能力,电子时钟的设计过程中,除了应用单片机前六课题的基础知识外,还使用了外部中断技术、定时器中断技术、键盘查询及动态显示技术,希望大家通过该项目的

2、设计,对单片机应用技术有一个较深的认识。目录前言2摘要4硬件描述及系统设计构思51.单片机电子时钟功能52. 电路流程图63. 数码管显示工作原理74.电子时钟工作原理7单片机电子时钟91.电路原理图92.工作现象93.单片机实物图10电子时钟程序11实习小结20参考文献21摘要设计目的: 通过课程设计,熟悉 89C51定时器、8255扩展接口,中断初始化编程方法,解定时器应用在时时控制中程序的设计技巧。使学生巩固和加深对单片机基本知识的理解,学会查寻资料、方案设计、方案比较,以及单元电路设计计算等环节,进一步提高学生综合运用所学知识的能力,提高分析解决实际问题的能力。锻炼分析、解决电子电路问

3、题的实际本领,通过此综合训练,为以后毕业设计打下一定的基础。设计要求:(1)上电以后自动进入计时状态,起始于00:00。(2)设计调整时间,完成时间设计。(3)定时时间为1秒,采用定时器实现。(4)采用LED数码管显示,时、分采用数字显示。(5)查表,中断等方式实现目的。硬件描述及系统设计构思1.单片机电子时钟功能单片机电子时钟计 时 功 能计 时 调 整定 时 显 示定 时 调 整定 时 闹 铃计 时 显 示控制器用AT89S51 , 12M晶振数码管动态扫描驱动P2口数码管段码驱动P1口闹铃驱动P1.0调整键K1P3.2(外部中断0, 正常、调时、调分、调秒)定时/正常切换键K2P3.3时

4、间参数低位加1键K3P3.4时间参数高位加1键K4P3.52. 电路流程图3. 数码管显示工作原理数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的阳极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。而多位数码管,除某一位的公共端会连接在一起,不同位的数码管的相同端也会连接在一起。即,所有的

5、A段都会连在一起,其它的段也是如此,这是实际最常用的用法。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度大于视觉暂留速度时,显示就会清晰显示出来。4.电子时钟工作原理该电子时钟由89C51,BUTTON,六段数码管等构成,采用晶振电路作为驱动电路,由延时程序和循环程序产生的一秒定时,达到时分秒的计时,六十秒为一分钟,六十分钟为一小

6、时,满二十四小时为一天。而电路中唯一的一个控制键却拥有多种不同的功能,按下又松开,可以实现屏蔽数码管显示的功能,达到省电的目的;直接按下不松开,则可以通过按键实现分钟的累加,每按一次分钟加一;而连续两次按下按键不放松,则可实现小时的调节,同样每按一次小时加一。 单片机电子时钟1.电路原理图2.工作现象单片机电子时钟,是利用单片机技术实现计时、时间显示、时间调整、定时调整、闹铃等功能。完成该项目能够有效的训练大家的单片机应用能力,电子时钟的设计过程中,除了应用单片机前六课题的基础知识外,还使用了外部中断技术、定时器中断技术、键盘查询及动态显示技术,希望大家通过该项目的设计,对单片机应用技术有一个

7、较深的认识。3.单片机实物图电子时钟程序#include #include uchar H=0,M=0,S=0,T_Count=0;/设置时间初值,进行时间计数 uchar H_Set=11,M_Set=11,S_Set=11;/设定闹铃时间 uchar *Sp=&S,*Mp=&M,*Hp=&H;/时间指针 uchar Select2Seg=0;/调时闪烁位号 uchar Select2Seg_=0;/定时闪烁位号 uchar *Select2SegP;/闪烁位号指针 uchar H_h=0,H_l=0,M_h=0,M_l=0,S_h=0,S_l=0;/时分秒的各位的数值-用于显示 uchar

8、 SaveH_h=0,SaveH_l=0,SaveM_h=0,SaveM_l=0,SaveS_h=0,SaveS_l=0;/ 时分秒的各位的数值-用于调时间时的数据保护 uchar light=0; /灯亮bit Key3Down=1;/允许 KEY3 按键值增加1 的标志(个位加一) bit Key4Down=1;/允许 KEY4 按键值增加1 的标志(十位加一) bit SetTime=0;/定时标志 1 为定时 24 /*蜂鸣器报警*/ void SPK(void) if(SetTime=0)spk=0; /闹铃响 void TunOffSPK(void) spk=1;/闹铃不响 /*外

9、部中断 0 初始化*/ void init_INT0(void)EA=1; /打开中断总允许位EX0=1;/打开外部中断0允许位PX0=0;/设定外部外部中断0为低优先级中断 IT0=1;/设置外部中断0为边沿(下降沿)触发方式 /*t0-初始化为 50mS 定时,并启动*/ void init_t0() TMOD=(TMOD&0xF0)|0x01;/定时器 0,方式 1:16位定时。 TH0=0x3C;/设置定时器T0初值TL0=0xB0; EA=1; /打开中断总允许位ET0=1;/允许T0中断 PT0=1;/设定定时器T0为高优先级中断 TR0=1;/启动T0 /*外部中断 1 初始化*

10、/ void init_INT1(void) EA=1; /打开中断总允许位EX1=1; /打开外部中断1允许位PX1=0; /设定外部外部中断1为低优先级中断IT1=1; /设置外部中断1为边沿(下降沿)触发方式 /*t1-初始化为 50mS 定时,并启动*/ void init_t1(void) TMOD=(TMOD&0x0F)|0x10;/定时器 1,方式 1:16位定时TH1=0x3C; /设置定时器T1初值TL1=0xB0; EA=1; /打开中断总允许位ET1=1; /允许T1中断PT1=0; /设定定时器T1为高优先级中断TR1=1; /启动T1 /*外部中断 0 子程序*/ v

11、oid Int0(void) interrupt 0 using 2 if(SetTime)Select2SegP=&Select2Seg_;/若设时间则把定时闪烁位号赋值给闪烁位号指针else Select2SegP=&Select2Seg;/若设时间则把调时闪烁位号赋值给闪烁位号if(+(*Select2SegP)=4) *Select2SegP=0;/如果闪烁位号闪烁四次则停止闪烁 TunOffSPK(); /*T0 定时 1S 中断子程序 1*/ void Timer0() interrupt 1 using 1 TH0=0x3C;/ 设置定时器T0初值TL0=0xB0; if(T_C

12、ount+)=20) S+; T_Count=0; spk=spk ; /如果计数到订制,蜂鸣器会隔一秒响一次if(S=60)M+;S=0;/秒计数六十次进一位到分if(M=60)H+;M=0; /分钟计数六十次进一位到时if(H=24)H=0;/当时计数到二十四时清零 if(H=H_Set)&(M=M_Set)&(S=S_Set) SPK();/当时、分、秒到某一时刻时,蜂鸣器响 /*外部中断 1 子程序*/ void Int1(void) interrupt 2 SetTime=SetTime; *Select2SegP=0; TunOffSPK(); /*T1 定时 50mS 中断子程序

13、 1*/ void Timer1() interrupt 3 using 3 TH1=0x3C; /设置定时器T1初值TL1=0xB0; if(light+8) light=0;灯亮 /*数码管数据定义*/ uchar code DIY_data=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xBF,0xFF;/0-9,-,不亮 uchar code WX_data=0xfe,0xFd,0xfb,0xf7,0xef,0xdf;/自左到右分别是面板(自右到左 1-6个数码管) /*数码管循环显示,N 为位序号,D为数据序号*/ void D

14、SP_Data(uchar N,uchar D) uchar i=N,j=D; seg7_data=DIY_dataN; wx=WX_dataD; /*软件延时 N mS*/ void DLYmS(uchar N) uchar k=125; for(;N0;N-) for(;k0;k-); void testKey2(void) if(SetTime) Sp=&S_Set;Mp=&M_Set;Hp=&H_Set; Select2SegP=&Select2Seg_; else Sp=&S;Mp=&M;Hp=&H; Select2SegP=&Select2Seg; /*检测 KEY3(调整时间个位

15、键)子程序*/ void Scan_kl(void) if(kl=0)&( Key3Down=1)Key3Down=0; testKey2(); TunOffSPK(); switch(*Select2SegP) case 0:break; case 1:SaveS_h=*Sp/10;/保护 秒 十位 *Sp+=1; *Sp=SaveS_h*10+*Sp%10; break;case 2:SaveM_h=*Mp/10;/保护 分 十位 *Mp+=1; *Mp=SaveM_h*10+*Mp%10; break; case 3:SaveH_h=*Hp/10;/保护 时 十位 *Hp+=1; if(

16、SaveH_h3) *Hp=SaveH_h*10; break; default:break; if(kl=1)Key3Down=1; /*检测 KEY4(调整时间十位键)子程序*/ void Scan_kh(void) if(kh=0)&( Key4Down=1) Key4Down=0; testKey2(); TunOffSPK(); switch(*Select2SegP) case 0:break; case 1:SaveS_l=*Sp%10;/保护 秒 个位 *Sp+=10; if(*Sp=60)*Sp=SaveS_l;break; case 2:SaveM_l=*Mp%10;/保护

17、 分 个位 *Mp+=10; if(*Mp=60)*Mp=SaveM_l; break; case 3:SaveH_l=*Hp%10;/保护 时 个位 *Hp+=10; if(SaveH_l3)if(*Hp/101)*Hp=SaveH_l; else if(*Hp/102)*Hp=SaveH_l; break; default:break; if(kh=1)Key4Down=1;/*显示程序*/void Display(void) testKey2();if(*Select2SegP!=1|light4) DSP_Data(*Sp%10,0);DLYmS(N1); DSP_Data(*Sp/1

18、0,1);DLYmS(N1); if(*Select2SegP!=2|light4) DSP_Data(*Mp%10,2);DLYmS(N1); DSP_Data(*Mp/10,3);DLYmS(N1); if(*Select2SegP!=3|light4) DSP_Data(*Hp%10,4);DLYmS(N1); DSP_Data(*Hp/10,5);DLYmS(N1); Scan_kl(); Scan_kh(); void main() /uchar i; init_t0(); init_t1(); init_INT0(); init_INT1(); while(1) Display()

19、; 实习小结本次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我所学到的知识运用到我以后的工作中去。在大学的课堂的学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去,此次的电子时钟设计给我奠定了一个实践基础,我会在以后的学习、生活中磨练自己,使自己适应于以后的竞争,同时在查找资料的过程中我也学到了许多新的知识,在和同学协作过程中增进同学间的友谊,使我对团队精神的积极性和重要性有了更加充分的理解。参考文献1张俊谟主编.单片机教程.北京.航天航空大学出版社2006.2李亚伯主编.数字电路与系统.北京.电子工业出版社.1998.3张俊谟. 单片机中级教程原理与应用(第2版).北京航空航天大学出版社.2007.4 童本敏等编.标准集成电路数据手册.北京.电子工业出版社. 5 马忠梅,籍顺心,张凯等.单片机的C语言应用程序设计M.北京.北京航空航天大学出版社.2001.143164.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号