单片机实验二电子钟设计

时间:2019-05-13 12:48:35下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单片机实验二电子钟设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单片机实验二电子钟设计》。

第一篇:单片机实验二电子钟设计

单片机实验二:电子钟设计

1、基础部分:电子钟能够直观、人性化显示:时间、日期、星期,能够按键校时,用独立的LED灯做流水灯装饰。

2、提升部分:①带有闹钟功能,能够根据需要定时,②能够测量并显示当前环境的温度,

第二篇:单片机课程设计电子钟设计

单片机课程设计电子钟设计

目录

一、摘要

二、设计任务

三、基本原理

数码管显示可以用静态显示或动态显示方法。静态显示需要数据锁存器等硬件,接口复杂,时钟显示用四个数码管。动态显示相对简单,但需动态扫描,扫描频率要大于人视觉暂留频率,信息看起来才稳定。译码方式可分为软件译码和硬件译码,软件译码通过译码程序查的显示信息的字段码;硬件译码通过硬件译码器得到显示信息的字段码,实际中通常采用软件译码。

在具体处理时,定时器计数器采用中断方式工作,对时钟的形成在中断服务程序中实现。在主程序中只需对定时器计数器初始化、调用显示子程序和控制子程序。另外,为了使用便,设计了简单的按键,可以通过按键实现时、分的调整,这样在主程序中就加入了按键设置子程序。

四、编程算法思路

五、程序流程图

六、硬件单元设计

七、软件单元设计

八、调试结果分析

九、设计总结及心得体会

十、参考文献

一设计任务

1、基本任务:利用定时器/计数器中断和静态显示或动态显示,实现电子时钟的时分秒精确走时和校准

。时间显示用四个数码管分别显示时、分、秒用点表示,在时和分的中间闪动,时间显示格式(18:49)

时间校准用2个键实现:一个键K1作移位选择(选中要修改的位,选中的位用闪烁指示),一个键K2做加1(对选中的位进行加1修改)。

2、功能增强型任务:在基本任务的基础上加上日历功能、准时报时功能和跑表功能

(1)日历功能:能实现时、分、秒和年、月、日计时,增加1个按键控制分3屏例如显开始的第1屏默认显示“时、分、秒”四位+秒点,按下K3键显示“月和日”四位,再按下课K3键显示“年份”四位,再按下K3键显示“时、分、秒”,依次类推。程序要能处理闰年、闰月功能。

(2)准点报时功能:可以在增加一个按键K4设计具有闹钟功能,实现定点报时。具体操作是:按下

K4键,进入闹钟设置功能,再通过K1、K2键来完成定点报警时间的设置。

(3)跑表功能:再增加一个按键K5设计跑表功能,实现启动毫秒计数,相当与田径运动比赛的跑

表工作。

三基本原理

软件时钟时利用单片机内部的定时器/计数器来实现的,它的过程如下:首先定单片机内部的一个定时器/计数器工作于定时方式,对机器周期形成基准时间,然后用另一个定时器/计数器或软件计数的方法对基准时间计数形成秒,秒计60次形成分,分计60次形成小时,小时计24次则计满一天。然后通过数码管把它们的内容在相应位置显示出来即可。

四编程算法思路

1、主程序的设计:串行口工作方式0,定时器/计数器1工作在方式1进行初始化,然后通过循环(调用显示子程序)等待定时中断的到来。

2、按键的控制:KEY1控制时的调节,kEY2控制分的调节,KEY3控制时、分定型

3、中断服务程序的设计:中断服务程序主要功能是实现时、分、秒的计时处理。

4、时、分、秒计时的实现:秒计时时采用中断方式进行溢出次数的累计得到的。从秒到分,从分到时可通过软件的累加和比较到位方法来实现。要求每满1秒,则“秒”单元中的内容加1;“秒”单元每满60,则“秒”单元清0,同时“分”单元中的内容加1;“分”单元每满60,则“分”单元清0,同时“时”单元加1。“时”单元每满24,则将“时”单元清0。

5、显示子程序:采用数码管静态显示来显示时钟的走动

6,延时子程序:用来实现按键操控延时和实现整点12时报时

五程序流程图

六硬件单元设计

1、电路总设计图

2、AT89C51芯片

七软件单元设计

1、资源分配:定时器T1,P1.6为调整时钟,P1.5为调整分钟,P1.4为控制调整

30H秒显示单元,31H分显示单元,32H时显示单元,08H放分调整标

志,09H放时调整标志,0AH放闪烁标志

2、程序清单(加注释)

八调试结果分析

在实验操作过程中,将所写好的程序打入计算机内,通过编译检查其是否有错误,如有错误将其改正,直至无误后下载仿真器,实现运行。观察实验箱上的数码管显示,判断其是否为所需结果,如果与所要求的有差别,需继续调试,重新修改程序,检查硬件设施不断地调试,不断地检查直至得到所要的结果。在调试过程中,开始运行时能够实现时钟的显示,但是无法实现其闪烁功能,后经不断调试修改及同学的帮助最终实现该功能,能够达到时钟显示调节的基本要求,还可以实现整点报时。但在增加其功能显示年月时又出现一定的问题,未能实现该功能,程序存在一定的不足性,需继续完善,实现更多的功能

九设计总结及心得体会

经过两天的单片机课程设计,终于完成了我的电子时钟的设计,虽然没有完全达到设计要求,但从心底里说,还是高兴的,毕竟这次设计把一些基本功能都做了出来,只是一些增强型功能未能实现。

在本次设计的过程中,我发现很多的问题,虽然以前还做过一些实验但这次设计真的让我长进了很多单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,要有通篇的全局思想考虑问题。在操作的过程中,出现许多错误,都是在连接处不能够上下连贯正确运行,还需继续努力。有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在课程设计中的最大收获,同时,要把所学只是灵活应用才能真正领悟其中的意义,加深对它的理解与掌握。还有,通过此次的操作也使我的实践操作能力得到了进一步的提高。

十参考文献

【1】张毅刚,彭喜元,董继成。单片机原理及应用。北京:高等教育出版社,2003

【2】周航慈。单片机应用程序设计技术(修订版)。北京:北京航空航天大学出版社,2002

【3】万光毅等。单片机实验与实践教程。北京:北京航空航天大学出版社,2003

【4】何立民,I2C总线应用系统设计。北京:北京航空航天大学出版社,2002

【5】周航慈,朱兆优,李跃忠。智能仪器原理与设计。北京:北航大学出版社,2005

第三篇:单片机课程设计电子钟

课程设计任务书

(指导教师填写)

课程设计名称电子技术课程设计学生姓名专业班级设计题目数字钟

一、课程设计的任务和目的任务:设计一台能显示“时”、“分”、“秒”的数字钟,周期为24小时;具有校时、正点报时功能。

目的:培养学生综合运用所学知识的能力,综合设计能力,培养动手能力及分析问题、解决问题的能力。

二、设计内容、技术条件和要求

1.数字钟可显示“时”、“分”、“秒”,且“时”、“分”、“秒”分别用两个数码管显示,计满23小时60分钟60秒,则全部清零。

2.具有校时功能,时、分校时用1HZ的信号进行,而秒较时用2HZ时钟信号进行。

3.整点能自动报时。要求报时声响为四低一高,最后一响为整点,前四声用500HZ信号让喇叭发声,最后一声用1000HZ信号。

4.根据上述要求,画出电路总框图,简述各部分工作原理。

5.进行各部分电路的设计,要求有分析过程、原理图表示。

6.对原理图进行仿真。

7.在实验箱上组装、调试。

8.撰写设计总结报告。

三、时间进度安排

第一周:理论设计。

周一上午布置设计任务,讲解设计要求,安排答疑、实验时间;

周三、周四下午课程设计答疑,其他时间学生查资料,做初步理论设计;

周五交设计初稿,由指导教师审查;

第二周:仿真和安装调试、撰写设计总结报告

周一、二学生进实验室做仿真实验,并根据实验情况修正设计图;

周三至周五做插接线实验,最后根据实验情况总结、撰写设计说明书。

四、主要参考文献

1.各种版本的数字电子技术基础教材

2.各种版本的电子技术课程设计指导书

3.集成电路手册

指导教师签字:年月日

第四篇:单片机课程设计-电子钟-完整

单片机课程设计

题目

专业 通信工程 班级 11级1班 学号 姓名

电 子 钟 设 计

单片机原理与应用课程设计

电子钟设计

功能要求:

1、设计一个电子时钟,要求可以显示时、分、秒,用户可以设置时间。

2、实现秒表功能。

功能描述

(1)

时钟。初始界面是时钟显示,按键S1是调时选位,按键S2是加数。根据不同的闪烁位置进行调节。

(2)

年与日,星期。在初始状态下,按下S2,则跳转,显示年月日,5S后跳回初始界面。若在年月日界面再次按下S2,则再次跳转,显示星期,几秒后跳转回初始界面。

(3)

秒表。在初始界面下,按下S3,则跳转,进入秒表。秒表功能键如下:S1 退出秒表;S2 停止开始计时;S3 秒表清零。

(4)

闹钟。在设置中设置好时间,最高位设为“1”则打开闹钟。最高位设为“0”则关闭闹钟。在闹钟响是,按S3进行关闹钟。

工作原理  硬件

采用80C51系列单片机作为CPU,P0口作为数据线,通过锁存器进行段选和位选,是数码管不断地显示数字。数码管的显示是扫描式。(1)

本电子钟用的单片机型号是STC89C516RD+。P0口作为段选和位选的数据线。P10口为段选寄存器的使能端。P11口为位选寄存器的使能端。晶振采用的12MHz晶振。要求频率稳定。

(2)

本电子钟用的是共阴极数码管。从左到右,第1,2位是秒位;第4,5位是分位;第7,8位是时位。第3,6位是“--”。

(3)

通过单片机的P0口,先对数码管进行位选,即在位锁存器使能是将P0口数据进行锁存。再通过段锁存器将P0口送来的段数据进行锁存。此时数码管的第一位显示数字。同样的步骤进行第二位显示。以非常快的速度进行,由于人眼的余辉效应,会看到8位数码管一起亮。即可以显示时间。通过单片机的内部TO,T1的计数。即可以实现时钟,秒表等功能。(4)电路图如下:

 软件

程序代码包括三部分:1.bujian(部件库)2.main(主函数)3.H(头文件库)。一 .bujian(部件库)(1)xianshi.c #include #include #define m 2 Unsigned char code t[]={0x3f,0x30,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};void led_s(unsigned int s){ p10=1;p10=0;p11=1;P0=0x7f;

//数码管秒个位

P0=t[s%10];p11=0;P0=0xff;delay(m);p10=1;p10=0;p11=1;P0=0xbf;p11=0;

//消隐

P0=t[s/10];

//消隐 //数码管秒十位

P0=0xff;delay(m);} void led_f(unsigned int s){ p10=1;// P0=t[s%10];p10=0;p11=1;P0=0xef;

p11=0;

P0=0xff;delay(m);p10=1;

P0=t[s/10];p10=0;p11=1;P0=0xf7;p11=0;

P0=0xff;delay(m);} void led_h(unsigned int s){

// p10=1;P0=t[s%10];p10=0;p11=1;P0=0xfd;

p11=0;// P0=0xff;delay(m);p10=1;

P0=t[s/10];p10=0;p11=1;P0=0xfe;p11=0;

数码管分个位 //消隐

//数码管分十位

//消隐

数码管时个位

消隐

//数码管时十位

//消隐

P0=0xff;delay(m);}

void line(void){ p10=1;P0=0x40;p10=0;p11=1;P0=0xfb;delay(m);p11=0;

p10=1;P0=0x40;p10=0;p11=1;P0=0xdf;p11=0;delay(m);}

//消隐

P0=0xff;

//数码管“---”

//消隐

P0=0xff;

//数码管“---”

(2)miaobiao.c #include #include

#include extern mms,ms,mf,ss;void miaobiao(void){ TR1=1;while(1){ led_s(mms);led_f(ms);line();led_h(mf);if(s2==0){ while(!s2){led_s(mms);led_f(ms);line();led_h(mf);} if(ss==1){TR1=0;ss=!ss;}else {TR1=1;ss=!ss;} } if(s1==0){ while(!s1){led_s(mms);led_f(ms);line();led_h(mf);} TR1=0;break;} if(s3==0)

{ while(!s3){led_s(mms);led_f(ms);line();led_h(mf);} TR1=0;mms=0;ms=0;mf=0;} } }

(3)Delay.c #include

void delay(unsigned int a)

{ unsigned char l;

while(a--)

{for(l=0;l<100;l++);} }

(4)gongneng.c #include

#include #include extern h,f,s,n,y,r,nian,xing;extern ns,nf,nh;void gongneng(){ unsigned int aa=0,shanshuo=0,x=1,bb;

if(s2==0){ delay(3);if(s2==0)while(!s2){ led_s(s);delay(1);line();led_f(f);delay(1);led_h(h);delay(1);}

// while(1){ led_s(r);delay(2);led_f(y);delay(2);line();led_h(nian);delay(2);aa++;if(s2==0)

{ while(!s2)

{

led_s(r);delay(1);line();led_f(y);delay(1);led_h(nian);delay(1);}

//星期显示

while(1)

{led_f(xing);delay(2);

bb++;

if(bb==100){bb=0;break;}

日期显示 }

}

if(aa==100)

line();led_f(y);delay(1);led_h(nian);delay(1);

} } if(s1==0){ delay(3);if(s1==0){

switch(x){ case 1 : if(shanshuo==1){led_s(s);} line();led_f(f);delay(2);led_h(h);delay(2);break;case 2 :led_s(s);if(shanshuo==1){led_f(f);} delay(2);line();led_h(h);delay(2);break;case 3 : led_s(s);led_f(f);delay(2);line();if(shanshuo==1){led_h(h);} delay(2);break;case 4 : if(shanshuo==1){led_s(r);} led_f(y);delay(2);line();led_h(nian);delay(2);break;case 5 : led_s(r);if(shanshuo==1){led_f(y);} delay(2);line();led_h(nian);delay(2);break;case 6 :led_s(r);led_f(y);delay(2);line();if(shanshuo==1){led_h(nian);} delay(2);break;case 7 :if(shanshuo==1){led_f(xing);delay(5);} break;case 8 :if(shanshuo==1){led_s(nf);} line();led_f(nh);delay(2);led_h(ns);delay(2);break;case 9 :led_s(nf);if(shanshuo==1){led_f(nh);} delay(2);line();led_h(ns);delay(2);break;case 10:led_s(nf);led_f(nh);delay(2);line();if(shanshuo==1){led_h(ns);} delay(2);break;default : break;}

aa++;if(s2==0){ while(!s2){if(x==1||x==2||x==3){ led_s(s);delay(1);line();led_f(f);delay(1);led_h(h);delay(1);} if(x==4||x==5||x==6){ led_s(r);delay(1);line();led_f(y);delay(1);led_h(nian);delay(1);} if(x==7){ led_f(xing);} if(x==8||x==9||x==10){led_s(nf);led_f(nh);delay(2);line();led_h(ns);delay(2);} }

switch(x)

{ case 1 : s++;if(s>59)s=0;break;

while(!s1);while(1)

{ if(x==1||x==2||x==3)TR0=0;else TR0=1;if(aa==20){shanshuo=!shanshuo;aa=0;}

{ break;} { led_s(r);delay(1);

} if(s1==0)

case 2 :

}

f++;if(f>59)f=0;break;

case 3 : h++;if(h>23)h=0;break;case 4 : r++;if(r>31)r=1;break;case 5 : y++;if(y>12)y=1;break;case 6 : case 7 :

nian++;if(nian>20)nian=10;break;xing++;if(xing>7)xing=1;break;

case 8 : nf++;if(nf>59)nf=0;break;case 9 : nh++;if(nh>23)nh=0;break;case 10: ns=!ns;break;

default: break;{while(!s1){if(x==1||x==2||x==3){ led_s(s);delay(1);line();led_f(f);delay(1);led_h(h);delay(1);} if(x==4||x==5||x==6){ led_s(r);delay(1);line();led_f(y);delay(1);led_h(nian);delay(1);} if(x==7){ led_f(xing);} if(x==8||x==9||x==10){led_s(nf);led_f(nh);delay(2);line();led_h(ns);delay(2);} }

x++;if(x>10){ x=0;TR0=1;break;} } } } } } } 二.H(头文件库)(1)Delay.h #ifndef _DELAY_H__

void led_s(unsigned int s);void led_h(unsigned int s);#define _DELAY_H__ void delay(unsigned int a);#endif(2)xianshi.h #ifndef _XIANSHI_H__ #define _XIANSHI_H__

void led_f(unsigned int s);void line(void);#endif(3)gongneng.h

#ifndef _DONGNENG_H__ #define _GONGNENG_H__ void gongneng(void);#endif(4)miaobiao.h

#ifndef _MIAOBIAO_H__ #define _MIAOBIAO_H__ void miaobiao(void);#endif(5)dingyi.h #ifndef _DINGYI_H__ #define _DINGYI_H__ sbit s1=P2^4;

sbit s2=P2^5;

sbit s3=P2^6;sbit p10=P1^0;sbit p11=P1^1;sbit p12=P1^2;#endif

//流水灯使能端 //按键1 //按键2 //按键3 sbit p37=P3^7;//蜂鸣器时能

三.Main(主函数)(1)main.c #include #include #include #include #include unsigned int h,m,f,s,n,y=10,r=12,nian=13,xing=2,mms,ms,mf;unsigned int ns=0,nf,nh,ll=0;unsigned int ss=1;void main(){ P0=0xff;p12=0;TMOD=0x12;EA=1;

ET0=1;TH0=6;TR0=1;

//关闭流水灯

ET1=1;TH1=(65535-5000)/256;TL1=(65535-5000)%256;TR1=0;while(1){ if((s3==0)&&(ns==0)){while(!s3);miaobiao();} if(s1==0||s2==0)gongneng();else { led_s(s);line();led_f(f);line();led_h(h);} if((f==nf)&&(h==nh)&&(ns==1))ll=1;else ll=0;} } void zhongduan(void)interrupt 1 {

if((ll==1)&&(ns==1))

{ p37=!p37;if((s3==0)&&(ns==1)){ while(!s3)ns=0;p37=1;} } n++;if(n==5000){n=0;s++;if(s==60){ s=0;f++;} if(f==60){ f=0;h++;}

if(h==24){ h=0;r++;xing++;} switch(r){ case 29 : if(nian/4==0){if(y==2)r=0;} y++;case 31 : if(y==4||y==6||y==9||y==11){ } if(xing>7)xing=1;if(y==13){ y=1;nian++;} } } default : break;

break;case 30 : if((nian/4)!=0){if(y==2){ r=0;y++;}} break;

r=0;y++;} break;case 32 : if(y==1||y==3||y==5||y==7||y==8||y==10||y==12){r=0;y++;} break;void zhongduan1(void)interrupt 3

{

TH1=(65535-5000)/256;

m++;TL1=(65535-5000)%256;if(m==2){mms++;m=0;if(mms>=100){ mms=0;ms++;} if(ms==60){ ms=0;mf++;} if(mf==60){ mf=0;} } }

参考文献:

单片机中级教程(第2版)、单片机语言C51程序设计(赵文博)感想: 这次课程设计整体来说是成功的,但我也发现了自己许多错漏和不足之处。譬如,最简单的程序没写好就想着写更复杂的程序,做事还是缺乏耐性和细心,当有时遇到问题时,总觉得无从下手,对于课本上的知识不能很好的组织起来。在编写各功能程序时,特别是后来增添的比较复杂的程序

第五篇:单片机电子钟设计任务书.

目 录

一、课程设计的主要内容和要求 ……………………………………………… 1

二、实现原理等知识的介绍 …………………………………………………… 2 2.1电子时钟的设计

2.2单片机识的相关知识

三、系统的总体方案设计说明;3.1总体设计方案 3.2总设计原理框图

四、具体实现步骤的设计说明;

五、单片机系统程序的编制;

六、测量过程的操作说明,原始测量数据的记录;

七、结论及存在问题;

八、心得体会总结;

九、参考文献。

一、主要内容和要求 主要内容:设计一个数字式电子钟,它具有时,分,秒的计时功能,可以 通过键盘进行时间设定, 并且将时间显示在 LED 数码管上。用按键设定时钟的时、分、秒,用扫描方式动态显示。时钟用定时中断方式工作,单片机晶体震荡器频 率 11.0592Mhz.。可选做双机通信实验, 实现子母钟功能, 即由其中一台做时钟, 另一台采集时钟值并显示。对于基本题目要求是: 用按键设定时钟的时、分、秒。要求用 4键方式,即选择、加、减、确认键, 选择键用于选择修改起始时、分、秒值,每按一次,被修改数码管顺序移动并闪 烁。用 +,键修改数值,确认键确定后秒位清零,修改结束。

2.2单片机的相关知识 1单片机简介

单片机全称为单片机微型计算机(Single Chip Microsoftcomputer。从应用领 域来看,单片机主要用来控制,所以又称为微控制器(Microcontroller Unit或 嵌入式控制器。单片机是将计算机的基本部件微型化并集成在一块芯片上的微型 计算机。单片机的发展史 3 4位单片机

1975年,美国德克萨斯仪器公司首次推出 4位单片机 TMS-1000;此后,各 个计算机公司竞相推出四位单片机。日本松下公司的 MN1400系列,美国洛 克威尔公司的 PPS/1系列等。四位单片机的主要应用领域有:PC 机的输入装 置,电池充电器,运动器材,带液晶显示的音 /视频产品控制器,一般家用 电器的控制 8位单片机

1972年,美国 Intel 公司首先推出 8位微处理器 8008,并于 1976年 9月率 先推出 MCS-48系列单片机。在这以后, 8位单片机纷纷面市。例如,莫斯特克 和仙童公司合作生产的 3870系列, 摩托罗拉公司生产的 6801系列等。随着集成 电路工艺水平的提高,一些高性能的 8位单片机相继问世。例如, 1978年摩托 罗拉公司的 MC6801系列及齐洛格公司的 Z8系列, 1979年 NEC 公司的 UPD78XX 系列。这类单片机的寻址能力达 64KB ,片内 ROM 容量达 4--8KB ,片内除带有并 行 IO口外,还有串行

IO口,甚至还有 AD转化器功能。8位单片机由于功能 强,被广泛用于自动化装置、智能仪器仪表、智能接口、过程控制、通信、家用 电器等各个领域。16位单片机

1983年以后,集成电路的集成度可达几十万只管 /片,各系列 16位单片机 纷纷面市。这一阶段的代表产品有 1983年 Intel 公司推出的 MCS-96系列, 1987年 Intel 推出了 80C96,美国国家半导体公司推出的 HPC16040, NEC 公司推出的 783XX 系列等。16位单片机主要用于工业控制, 智能仪器仪表, 便携式设备等场 合。32位单片机

随着高新技术只智能机器人, 光盘驱动器,激光打印机,图像与数据实时处 理,复杂实时控制,网络服务器等领域的应用与发展, 20世纪 80年代末推出了 32位单片机,如 Motorlora 公司的 MC683XX 系列, Intel 的 80960系列,以及近年来流行的 ARM 系列单片机。32位单片机是单片机的发展趋势,随着技术的发 展及开发成本和产品价格的下降,将会与 8位单片机并驾齐驱。64位单片机

近年来, 64位单片机在引擎控制,智能机器人,磁盘控制,语音图像通信, 算法密集的实时控制场合已有应用, 如英国 Inmos 公司的 Transputer T800是高性

能的 64位单片机。2.2.3单片机的特点

1单片机的存储器 ROM 和 RAM 时严格区分的。ROM 称为程序存储器,只存 放程序,固定常数,及数据表格。RAM 则为数据存储器,用作工作区及存放用 户数据。采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能 力,特别是单片机具有很强的位处理能力。

3单片机的 I/O口通常时多功能的。由于单片机芯片上引脚数目有限,为了 解决实际引脚数和需要的信号线的矛盾, 采用了引脚功能复用的方法, 引脚处于 何种功能,可由指令来设置或由机器状态来区分。单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需 求时,均可在外部进行扩展, 与许多通用的微机接口芯片兼容, 给应用系统设计 带来了很大的方便。

2.2.4数码管显示工作原理

LED 数码管分共阳极与共阴极两种,其工作特点是,当笔段电极接低电平,公共阳极 接高电平时,相应笔段可以发光。共阴极 LED 数码管则与之相反,它是将发光二极管的阴 极(负极 短接后作为反映出半导体材料的特性。常见管芯材料有磷化镓(GaP、砷化镓(GaAs、磷砷化镓(GaAsP、氮化镓(GaN等,其中氮化镓可发蓝光。发光颜色不仅与管芯材料有关, 还与所掺杂质有关,因此用同一种管芯材料可以制成发出红、橙、黄、绿等不同颜色的数码 管。其他颜色 LED 数码管的光谱曲线形状与之相似,仅入,值不同。LED 数码管的产品中, 以发红光、绿光的居多、这两种颜色也比较醒目。

LED 数码管等效于多只具有发光性能的 PN 结。当 PN 结导通时,依靠少数载流子的注 人及随后的复合而辐射发光, 其伏安特性与普通二极管相似。在正向导通之前, 正向电流近似于零,笔段不发光。当电压超过开启电压时,电流就急剧上升,笔段发光。因此, LED 数码管属于电流控制型器件,其发光亮度 L(单位是 cd /m2 与正向电流 IF 有关,用公式表 示:L=KIF即亮度与正向电流成正比。LED 的正向电压 U ,则与正向电流以及管芯材料有 关。使用 LED 数码管时,工作电流一般选 10mA 左右/段,既保证亮度适中,又不会损坏 器件。

三、系统的总体方案设计说明 3.1总体设计方案

本次设计时钟电路,使用了 ATC89C52单片机芯片控制电路,单片机控制电 路简单且省去了很多复杂的线路, 使得电路简明易懂, 使用键盘键上的按键来调 整时钟的时、分、秒,用一扬声器来进行定时提醒,同时使用汇编程序来控制整 个时钟显示,使得编程变得更容易,这样通过四个模块:按键、芯片、扬声器、LED 数码管即可满足设计要求。

3.2总设计原理框图如下图所示:

四、具体实现步骤的设计说明 4.1 电路设计原理说明

本设计电路,硬件部分共由五个模块组成:按键模块、复位电路模块、晶振 电路模块、发声模块、时间显示模块。晶振电路模块负责给单片机提供时钟周期。复位单路模块负责上电后自动复位,或按键后强制复位。上电后, 由单片机内部 定时器计时,同时通过动态显示函数自动将时分秒显示到数码管上。与此同时, 按键扫描函数,一直扫描按键引脚状态, 一旦扫描到按键被按下, 即进入相应的

功能函数。4.2各部分电路说明 1按键模块

按键模块如图所示。

在该模块中, 采用四个按键作为电子时钟的控制输入, 通过按键来实现时钟 的时间设置功能。电路中将四个按键的一端接公共地,而单片机的 P2口默认为 高电平, 一旦按键被按下, 则该按键对应的额管脚被拉低, 通过软件扫描按键即 可知道用户所要实现的功能,调用相应的按键子程序来完成该操作。

2单片机的复位电路

单片机的复位电路 , 如图所示。

图单片机的复位电路

当 MCS-5l 系列单片机的复位引脚 RST(全称 RESET 出现 2个机器周期以上的 高电平时,单片机就执行复位操作。如果 RST 持续为高电平,单片机就处于循环 复位状态。根据应用的要求, 复位操作通常有两种基本形式:上电复位和上电或 开关复位。上电复位要求接通电源后,自动实现复位操作。上电后,保持 RST 一 段高电平时间。

3单片机的晶振电路

单片机的晶振电路,如图所示。

图 单片机的晶振电路

石英晶体也连接在晶振引脚的输入和输出之间,等效为一个并联谐振回路, 振荡频率应该是石英晶体的并联谐振频率。晶体旁边的两个电容接地, 实际上就 是电容三点式电路的分压电容 , 接地点就是分压点。以接地点即分压点为参考点, 振荡引脚的输入和输出是反相的,但从并联谐振回路即石英晶体两端来看 , 形成 一个正反馈以保证电路持续振荡。

4发声模块

发声模块,如图所示。

图 发声指示模块

发声模块由蜂鸣器、电源、8550三极管、限流电阻组成。蜂鸣器由 PNP 三 极管驱动,当 BZ 管脚为高时,三极管 be 级没电压差,三极管截止;反之,三极 管导通,有电流流经蜂鸣器,蜂鸣器发声。

5时间显示模块

时间显示模块如图所示。

图 时间显示模块

时间显示部分的电路也很简单, 由五个一位的共阴 8段数码管、五盏发光二

极管组成。在显示过程中, 单片机将要显示的数字传递给 89C52芯片, 同时通过 位选选通要显示的数码管。

五、单片机系统程序的编制 5.1程序设计 ORG 0000H LJMP START;转初始化 ORG 000BH LJMP PGT0;T0中断入口 ORG 0033H START: DIS1 EQU 30H DIS2 EQU 31H DIS3 EQU 32H DIS4 EQU 33H DIS5 EQU 34H DIS6 EQU 35H DISXS EQU 36H DISFZ EQU 37H DISMZ EQU 38H

MS500 EQU 39H K1 BIT P3.2 K2 BIT P3.3 K3 BIT P3.4 K4 BIT P3.5 BDP BIT 01H bd BIT 02H MOV SP,#50H;初始化程序 MOV P0,#0FFH MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH MOV TMOD,#01H;定时器 T0工作于方式 1 MOV TH0,#4CH;定时器初值 MOV TL0,#05H MOV IE,#82H MOV R3,#10 SETB TR0 MOV DIS1,#00H;清显示缓冲区

MOV DIS2,#00H MOV DIS3,#00H MOV DIS4,#00H MOV DIS5,#00H MOV DISXS,#12;初始化时间为 12:30:00 MOV DISFZ,#30 MOV DISMZ,#0 MOV MS500,#0 MAIN:;主程序 jnb k2,d1 jnb k3,d2 jnb k4,d3 jnb k1,d4 d1: ljmp send d2: ljmp send d3: ljmp send d4: jnb k1,qu1 qu1:lcall sound ajmp god1 k1dd: jb k2,k2dd lcall ys10ms 11

5.2 程序流程图

六、测量过程的操作说明,原始测量数据的记录。6.1 操作说明操作功能说明 功能说明表 按键 K1 K2 K3 K4 发光二极管 功能 当按一下 K1,进入调整小时状态,再按一下,进入到调整分 钟状态,如此循环 用来对 小时 和 分钟 进行加时间(每次加 1)用来对 小时 和 分钟 进行减时间(每次减 1)确认键,退出选中小时或分钟 对秒数的十位数进行记录,亮一盏灯代表十秒,亮两盏灯代表 二十秒,如此累推 6.2 原始测量数据的记录 数据记录表 初始值 按一次 K1 按一次 K2 按一次 K3 第二次按 K1 按一次 K2 按一次 K3 按 K4 12.30.0 12.##.# 13.##.# 12.##.# ##.30.# ##.31.# ##.30.# 12.30.0 16

七、结论及存在问题 通过用汇编对 K1、K2、K3、K4 的编译,可以初步实现调整时钟时间的功能。但在编译过程中也遇到不少问题,第一,编译时有跳出转移范围的问题,这是由 于判断语句 JB、JNB 的转移范围是-128~+127 字节,出现这样的问题是由于超出 转移范围。第二,要实现选中小时或者分钟位上的闪烁,要用到延时和对数码管 的显示效果,但达不到指定目的,数码管闪烁的效果不明显,这是由于延时的时 间不够长,使得人眼难以看得清。

八、心得体会总结 本文介绍的是利用 AT89C51 单片机设计的有调时功能的电子时钟。并详细说 明了软件和硬件设计方法。在设计过程中可以看出,汇编语言有着其独特的魅力,它简单易学,语法错误容易纠正;用单片机实现电子时钟的设计是比较方便和易 于实现。通过电子时钟的设计和制作,加深了对单片机的理解,能够更熟练地应用单 片机实现预期的功能,对今后的学习有很大的帮助。电子时钟各项功能的实现,为自动控制的实现打下了理论基础,获得了实现方法。当然,该电子钟还有很多不足之处,比如不能定时,不能报时。断电后不能 只能调时。在今后的学习中还要对此加以研究,九、参考文献及网站 《单片机原理及其接口技术》胡汉才 编著 北京 清华大学出版社 《51 系列单片机及 C51 程序设计》王建校等 科学出版社 其它有关资料 几个有关单片机和芯片资料的网站: http://www.xiexiebang.com http://www.xiexiebang.com http://www.xiexiebang.com http://www.xiexiebang.com http://www.xiexiebang.com 等及其相关链接 17 http://www.xiexiebang.com http://www.xiexiebang.com http://www.xiexiebang.com/ ………….

下载单片机实验二电子钟设计word格式文档
下载单片机实验二电子钟设计.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    基于单片机的电子钟设计[5篇范文]

    基于单片机的电子钟设计一、 设计题目基于单片机的电子钟设计。二、 设计目的1.巩固《单片机技术》课程所学的有关知识。 2.通过硬件设计、软件设计,使学生掌握用单片机组成应......

    单片机课程论文设计-电子钟课程设计

    单片机课程论文设计 ——电子钟 一 课程设计的主要内容 1 设计思想 1.1硬件设计思想 1.1.1电路设计思想 电路原理图见图1,由动态数码显示组成时、分、秒的显示。把“单片机......

    单片机课程设计电子钟源程序[最终定稿]

    ORG0000H LJMPMAIN ORG001BH LJMPLOOP ORG0100H MAIN:MOV21H,#17H MOV22H,#3AH MOV23H,#00H;设定时间初值 MOV36H,#10 MOV39H,#10 MOVR7,#14H;循环20次50*20=1000msMOVDPTR,......

    单片机电子钟实习报告

    学院:xxx 班级:自动化xx班 姓名:xxx 学号:xxx 日期:2013-3-15 单片机LCD1602电子钟设计实习报告 一、引言 1.1设计的背景及目的 随着计算机科学与技术的飞速发展,计算机的应用已......

    单片机实验二实验报告

    实验报告 课程名称:微机原理与接口技术指导老师:李素敏学生姓名: 学号: 专业: 自动化日期:2014-04-10 地点:理工楼603 实验二1. 实验目的和要求 ① 掌握keil软件和STC-ISP 软件的......

    多功能电子钟设计 单片机课程设计报告东华理工

    单片机原理及应用设计课程设计报告 课题名称:多功能电子钟设计 姓 名: 学 号: 班 级: 指导老师:2017年6月13日 目录 一、设计任务..................................................

    单片机实验

    实验一、MCS51单片机基本开发环境 1. 实验目的: 1) 熟悉软件的集成开发环境 2) 掌握单片机软件设计流程 3) 掌握单片机存贮器结构及各窗口之间的联系 2. 实验内容: 1) 用三种方......

    单片机实验

    实验一清0、移数 将片内20H~2FH及片外0010H~001FH单元清0; 然后将片内30H~3FH的数据移到片外0000H~000FH中;判断: 若(30H)≤10,则求其平方存到31H中,并将位00H置1(其它位清0) 若(30H)=1......