基于单片机的数字电子钟Word下载.docx

上传人:b****8 文档编号:22526740 上传时间:2023-02-04 格式:DOCX 页数:35 大小:357.92KB
下载 相关 举报
基于单片机的数字电子钟Word下载.docx_第1页
第1页 / 共35页
基于单片机的数字电子钟Word下载.docx_第2页
第2页 / 共35页
基于单片机的数字电子钟Word下载.docx_第3页
第3页 / 共35页
基于单片机的数字电子钟Word下载.docx_第4页
第4页 / 共35页
基于单片机的数字电子钟Word下载.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

基于单片机的数字电子钟Word下载.docx

《基于单片机的数字电子钟Word下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字电子钟Word下载.docx(35页珍藏版)》请在冰豆网上搜索。

基于单片机的数字电子钟Word下载.docx

2.2.2多位数码管显示原理II

2.3电子钟实现系统框图II

2.4电子钟系统原理图II

第3章软件开发KeilC51的介绍II

第4章硬件仿真PROTUS的介绍II

第5章硬件电路设计II

5.1电源电路II

5.2按键电路III

5.2.1复位电路III

5.2.2调节电路III

5.3数码管显示电路III

5.4时钟电路III

第6章系统软件设计III

6.1程序流程图III

6.1.1电子钟系统主程序流程图III

6.1.2电子钟系统中断程序流程图III

6.2应用程序设计III

第7章电路仿真设计III

结束语III

参考文献III

致谢III

前言

自从单片机问世后,由于因特尔公司的mcs-51系列单片机成熟稳定功能齐全易学好用,不但具有较多的I/o引脚,较大的内存空间,较快的运算速度,还提供全双工的串行接口。

由于接线简单,体积小巧,作用甚广,所以被广泛应用于家电产品,事务机器,医疗器械以及汽车中,如微波炉,电磁炉,复印机,传真机,汽车电子点火等,都是单片机的功劳.这次我做的课题是日常生活中的数字电子钟,我们都知道“时”是二十四小时制,“分”是六十进制,“秒”也是六十进制的,具有最平常的时钟所具有的功能,在此基础上我拓展了定时闹钟功能,并且添加时钟万年历使得这个数字时钟更加智能并且更加人性化。

第1章绪论

1.1单片机的认识

单片微型计算机简称为单片机,又称为微控制器,是微型计算机的一个重要分支。

单片机利用半导体集成技术将中央处理单元CPU和一定容量的数据存储器RAM、程序存储器rom、定时器/计数器t/c、并行输入输出接口i/o和串行通信接口等多个功能部件集成在一块芯片上,是一台具有完整计算机功能的大规模集成电路。

单片机外部只要接上少许器件即可动作,所以接线简单,可靠性高,不论装配或检修都容易,由于外部器件甚少所以非常适合用于学习,并且价格低廉。

现在市面上主要都是因特尔公司生产的mcs系列的单片机。

其中又以51单片机尤为突出,目前它广泛用于教学方面。

1.2单片机的发展史及趋势

单片机的发展可分为5个阶段:

第一阶段为初级阶段。

由于当时工艺技术的简单,此时的单片机一般都是采用双片形式。

功能也相对比较简单。

第二阶段为低性能阶段。

此时的单片机不仅小而且全。

主要就是英特尔公司推出的mcs-48系列单片机。

它是一个真正的8位单片微机,此时英特尔把单片机推向市场的广泛使用。

就此促进了单片机的改革。

第三阶段为高性能阶段。

此时的单片机不仅种类繁多而且功能齐全,一般片内ram、rom都相对增大,寻址范围达到64k,并配有串行口,还可以进行多级中断处理。

如英特尔公司的mcs-51系列单片机。

第四阶段为16位单片机阶段。

芯片集成度高达12万只晶体管(片)。

其最大特点是增加了内部资源,实时处理能力更强。

第五阶段单片机在集成度,功能实现,运算速度,可靠性等方面向更高水平发展。

单片机从之前的简单向复杂化发展。

近几年一些公司推出了以mcs-51为内核,独具特色而性能卓越的新型系列单片机,从各种新型单片机的性能上可以看出,单片机正朝着多层次用户的多品种、多规格、高性能的方向发展,高档单片机性能不断提高,如cpu功能加强,内部资源的增加,寻址范围的增加,并且单片机的体积会越来越小,功耗越来越低,价格会越来越低。

这些是现在可预见的。

第2章各个模块介绍及作用

2.18051单片机模块

(1)中央处理器CPU是单片机最核心的部分,他能够实现算术运算与逻辑运算的运算器和协调工作的控制器两部分电路。

运算器包括alu(算术逻辑单元)、acc(累加器a)、psw(程序状态寄存器)、寄存器B及暂存器TMP1和暂存器TMP2等。

控制器包括pc(程序控制器)、pc增1、指令寄存器、指令译码器及即使控制器等。

(2)内部数据存储器包括128bram和ram地址寄存器等。

实际上,8051内部有256个ram,其中的后128个单元RAM被特殊功能寄存器使用,用户可以通过特殊功能寄存器去使用它;

前128个单元RAM用户直接使用。

通常所说的ram单元指的是前128单元,称为“内部ram”或“片内ram”。

(3)内部程序存储器。

8051内部含有4kbrom单元,之所以称为程序存储器是因为它一般用来存放程序和原始数据,简称“内部rom”或“片内rom”。

(4)并行i/o口。

8051提供4个8位i/o口,分别为p0、p1、p2和p3,实现数据的输入与输出。

在系统扩展时,p2和p0口作为地址总线,最大寻址空间达64kb,p0作为数据总线。

(5)定时器/计数器。

8051内部有两个16位定时器/计数器,用以实现定时和计数功能。

(6)串行口。

8051内部有一个全双工的串行口,可实现数据的串行传输。

(7)中断控制。

8051内部提供了5个中断源,可分为两个优先级别处理。

时钟电路。

一般都是通过外接石英晶体和微调电容,石英晶体可以通过物理形变产生时钟脉冲序列。

XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。

2.2数码管显示模块

2.2.1数码管的介绍

图2-2-1数码管介绍

LED数码管是日常生活中最常见的一种显示器件,由于其体积小,能耗低并且成本十分小,我们可以利用其许多的优点为我们做很多有趣的是,例如七段数码管就是通过几个数码管拼接在一起形成的用来显示数字的很有用的器件,我们还可以通过拼接显示字母汉字等等。

按内部连接方式数码管可分为共阴数码管和共阳数码管。

而且数码管有多种多样的颜色,包括黄色,红色,绿色都是我们生活中最常见的颜色。

总而言之,缺少LED我们的世界就没有光明存在。

图2-2-2共阴极数码管图2-2-3共阳极数码管

由于八个发光二极管共有16个引脚,为了减少数码管的引脚数,在数码管内部将八个发光二极管正极或负极引脚连接起来,接成一个公共端(com),根据公共端是发光二极管正极还是负极,可分为共阴极接法(图2-3)和共阳极接法(图2-4)。

对于共阳极接法的数码管,需要给发光二极管加低电平才能发光;

而对于共阴极接法的数码管,需要给发光二极管加高电平才能发光。

2.2.2多位数码管显示原理

多位led数码管采用了扫描显示方式,又称为动态驱动方式,是将所有数码管八位显示笔划“a,b,c,d,e,f,g,dp”同名端连在一起。

多位数码管数字是一位一位显示出来的,通过控制公共极选通控制电路,就可以选定要点亮的数码管。

这个就是我们所说的位选,只要这时我们再输入我们需要显示数字的字形码,我们选中的数码管就会现实我们需要的数字,其他数码管的显示是由于人眼视觉暂留效应,这是需要一定时间的,我们就是通过这段时间再去选其它位,之后在一样的输入我们需要的字形码,这样我们就可以随便显示多少位的数码管了并且随便现实我们需要现实的数字或字符了。

2.3电子钟实现系统框图

数字电子钟实现系统框图如图2.3,它由单片机8051作为核心控制元件,蜂鸣器电路,晶振电路,复位电路,按键电路,数码管驱动及显示电路这几个模块组成。

对于时钟显示我们采用动态扫描方式,可以降低系统功耗,并且达到预期效果,单片机控制显示时分秒的显示。

数码管驱动显示电路

按键电路

复位电路

晶振电路

蜂鸣器电路

图2-3系统实现框图

2.4数字钟系统原理图

图2-4数字钟原理图

电子钟系统原理图如图2.4所示,单片机的管脚分配:

p0口为数码管的数据信号口,p3口为数码管的位选信号,p1.0、p1.1、p1.2、p1.3为键盘的输入信号。

电子钟时钟系统设计原理图说明:

八位数码管显示的字样xx.xx.xx,对应的是时-分-秒。

4个按键分别为second:

秒设置;

minute:

分设置;

hour:

时设置;

alarmset:

定时设置键。

如果到了设定的时间蜂鸣器工作,发出响声。

第3章软件开发KeilC51的介绍

Keilc51是美国keilsoftware公司出品的51系列兼容单片机c语言软件开发系统。

C51工具包的uvision与ishell分别是c51forwindows和fordos的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用ide本身或其他编译器编辑c或汇编源文件。

然后分别由c51及a51编译器编译生成目标文件(.obj)。

目标文件可由lib51创建生成库文件,也可以与库文件一起经bl51连接定位生成绝对目标文件(.abs)。

Abs文件由oh51转换成标准的hex文件,以供调试器dscope51或tscope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可直接写入程序存储器中。

第4章硬件仿真protus的介绍

Proteus软件是英国公司出版社的eda工具软件,它是目前最好的模拟单片机外围器件工具。

Proteus软件具有其他eda工具软件的功能,例如:

原理布图,pcb自动或人工布图,spice电路仿真。

其具有的革命性特点是其他软件所不具备的,像互动的电路仿真和仿真51系列、avr、pic等常用的mcu及外围电路(如lcd、ram、rom、键盘、马达、led、ad/da、部分spi器件、部分iic器件等)。

它的应用范围十分广泛,十分适合我们初级教学,应该说没有任何软件能够代替它在教学方面的优势。

第5章硬件电路设计

5.1电源电路

电源电路负责向单片机供电。

我们都知道51单片机工作电压为4.0v-5.5v,所以一般都是电源选择5v直流电源。

但是我们日常生活都是220v电压,这就需要将220v交流电转化成为5v的直流电压。

有两个方法可以实现5v电压,一个是采用变压器,桥式整流器,电容,稳压器构成一个电路,通过变压器可以将220v电压变为5v,在通过桥式整流器整流,电容器滤波,稳压器可以稳定输出电压。

这样我们就得到了稳定的5v直流电压。

还有一个方法得到5v电压是电脑的usb输出,这个最为简单。

5.2按键电路

5.2.1复位电路

51单片机的复位是由外部的复位电路来实现的。

复位引脚rest通过一个触发器与复位电路连接。

上电复位电路是一种简单的复位电路,只要在rest复位引脚接一个电容到vcc,一个电阻接地即可,刚开机时因为vcc上有5v电压,因为电容两端电压不能突变的特性,rest脚的电压也被拉到5v,但是因为rest脚又通过电阻下拉,电阻两端有电压差,电容缓慢通过电阻对地放电,所以电压缓慢降低最后变成低电平。

5.2.1复位电路

5.2.2调节电路

按键开关状态通过一定的电路转换为高低电平状态。

按键按下和释放都要经过一定的过程才能达到稳定,这就是我们通常说的按键抖动,我们需要解决按键抖动这个对实验有一定影响的因素,我采用的是独立式按键用来消抖。

直接用i/o口线构成单个按键电路,每个按键占用一条i/o口线,每个按键工作状态不会彼此产生影响。

并且我设置了四个按键,用来进行调时以及定时用。

P1.0低电平时表示有按键按下,就进行时钟的调秒,高电平时停止调节。

P1.1低电平时表示有按键按下,就进行时钟的调分,高电平时停止调节。

P1.2低电平时表示有按键按下,就进行时钟的调时,高电平时停止调节。

P1.3低电平时表示有按键按下,就进行时钟的定时,高电平时停止调节。

5.3数码管显示电路

由于也要显示数字电子钟的所有功能,所以我们需要八个数码管,最左边两个用来显示时钟的时,之后第三个横杠代表间隔,中间显示时钟的分,再横杠间隔,之后就是时钟的秒。

通过这样设计可以很好的显示出时钟的我们需要的时钟功能。

之后就是处理器做的事情了。

5.4时钟电路

时钟是单片机的最重要的核心部件之一,因为单片机所有的部件都是根据单片机内的时钟脉冲发出信号然后才开始稳定的工作,时钟的稳定工作单片机才可以稳定工作,所以时钟电路是相当重要的电路。

还有时钟频率的不同决定了单片机工作的效率,时钟频率越高工作越快反之亦然。

常见的时钟电路由两种方式组成:

一种是内部时钟方式,另一种是外部时钟方式。

5.4时钟电路

第6章系统软件设计

6.1程序流程图

6.1.1电子钟系统主

程序流程图

Y

N

N

Y

6.1.2电子钟系统中断程序流程图

定时器T0用于时间计时定时溢出周期为50ms,中断进入后先进行定时中断初值校正,当中断累计20次时,对秒计数单元进行加1操作。

时钟计数单元地址秒,分,时分别在70H-71H、76H-77H、78H-79H中,最大计时值为23时59分59秒。

在计数单元采用十进制BCD码计数,满10进位。

定时器T1中断程序用于指示时间调整单元数字的闪亮或秒表技术,在时间调整状态下,每过0.3s左右,将对应调整单元的显示数据换成“熄灯符”数据(#0AH)。

这样,在调整时间时,对应调整单元的显示数据会间隔闪亮。

在作秒表计时时,每10s中断一次,计数单元加1,每100s次为1s。

秒表计数单元地址在60H-61H(10ms)、62H-63H(秒)、64H-65H(分)中,最大计数值为99分59.99秒。

6.2应用程序设计

#include<

AT89X51.h>

#defineSEG_DATP0

#defineSEG_BITP2

#defineDS_DATP0

#defineDS_SEC0x00

#defineDS_MIN0x02

#defineDS_HOR0x04

#defineDS_WEK0x06

#defineDS_DAY0x07

#defineDS_MON0x08

#defineDS_YER0x09

#defineDS_R_A0x0A

#defineDS_R_B0x0B

#defineDS_R_C0x0C

#defineDS_R_D0x0D

#defineDS_Y_S0x0E//年千百位

#defineCNT_M30//控制闪烁速度,为偶数

#defineBCD_DEC(X)(((X&

0xF0)>

>

4)*10+(X&

0x0F))

#defineDEC_BCD(X)(((X/10)<

<

4)|(X%10))

sbitDS_DS=P3^0;

sbitDS_RW=P3^1;

sbitDS_AS=P3^2;

sbitDS_CS=P3^3;

sbitKEY1=P1^0;

sbitKEY2=P1^1;

sbitKEY3=P1^2;

sbitKEY4=P1^3;

unsignedchardispMode=0;

//显示模式

unsignedcharmodify=0;

//修改模式

unsignedcharcount=0;

//修改模式下闪烁计数

unsignedcharDIS[6];

unsignedcharcodeC_DAT[]=

{

0xC0,/*0*/

0xF9,/*1*/

0xA4,/*2*/

0xB0,/*3*/

0x99,/*4*/

0x92,/*5*/

0x82,/*6*/

0xF8,/*7*/

0x80,/*8*/

0x90,/*9*/

0xBF,/*-*/

};

unsignedcharcodeC_BIT[]={0xDF,0xEF,0xF7,0xFB,0xFD,0xFE};

voidDelay(unsignedintt)

{

unsignedinta,b;

for(a=0;

a<

t;

a++)

for(b=0;

b<

123;

b++);

}

voidDS12887_Write(unsignedcharaddres,unsignedchardat)

DS_AS=1;

DS_DS=1;

DS_RW=1;

DS_CS=0;

DS_DAT=addres;

DS_AS=0;

//addwillbewritewhenASfulldown

DS_RW=0;

DS_DAT=dat;

DS_CS=1;

unsignedcharDS12887_Read(unsignedcharaddres)

unsignedchard;

DS_DS=0;

DS_DAT=0xFF;

d=DS_DAT;

returnd;

voidDS12887_Init(void)

if(DS12887_Read(DS_Y_S)==0)

{

DS12887_Write(DS_Y_S,0x20);

DS12887_Write(DS_HOR,0x12);

DS12887_Write(DS_R_A,0x20);

DS12887_Write(DS_R_B,0x02);

//BCD

}

voidDisplay(void)

unsignedchari;

if(dispMode==0)//显示模式0,时分秒

i=DS12887_Read(DS_HOR)&

0x7F;

DIS[0]=C_DAT[i>

4];

DIS[1]=C_DAT[i&

0x0F]&

i=DS12887_Read(DS_MIN);

DIS[2]=C_DAT[i>

DIS[3]=C_DAT[i&

i=DS12887_Read(DS_SEC);

DIS[4]=C_DAT[i>

DIS[5]=C_DAT[i&

if(modify!

=0&

&

count>

CNT_M)//修改模式123下闪烁

DIS[2*(modify-1)]=0xFF;

DIS[2*(modify-1)+1]=0xFF;

}

elseif(dispMode==1)//显示模式1年

DIS[0]=0xFF;

i=DS12887_Read(DS_Y_S);

//年高两位,在RAM里0x0E

DIS[1]=C_DAT[i>

DIS[2]=C_DAT[i&

0x0F];

i=DS12887_Read(DS_YER);

//年低两位

DIS[3]=C_DAT[i>

DIS[4]=C_DAT[i&

DIS[5]=0xFF;

=0

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1