基于单片机定时闹钟设计.docx

上传人:b****7 文档编号:16578145 上传时间:2023-07-14 格式:DOCX 页数:28 大小:307.46KB
下载 相关 举报
基于单片机定时闹钟设计.docx_第1页
第1页 / 共28页
基于单片机定时闹钟设计.docx_第2页
第2页 / 共28页
基于单片机定时闹钟设计.docx_第3页
第3页 / 共28页
基于单片机定时闹钟设计.docx_第4页
第4页 / 共28页
基于单片机定时闹钟设计.docx_第5页
第5页 / 共28页
基于单片机定时闹钟设计.docx_第6页
第6页 / 共28页
基于单片机定时闹钟设计.docx_第7页
第7页 / 共28页
基于单片机定时闹钟设计.docx_第8页
第8页 / 共28页
基于单片机定时闹钟设计.docx_第9页
第9页 / 共28页
基于单片机定时闹钟设计.docx_第10页
第10页 / 共28页
基于单片机定时闹钟设计.docx_第11页
第11页 / 共28页
基于单片机定时闹钟设计.docx_第12页
第12页 / 共28页
基于单片机定时闹钟设计.docx_第13页
第13页 / 共28页
基于单片机定时闹钟设计.docx_第14页
第14页 / 共28页
基于单片机定时闹钟设计.docx_第15页
第15页 / 共28页
基于单片机定时闹钟设计.docx_第16页
第16页 / 共28页
基于单片机定时闹钟设计.docx_第17页
第17页 / 共28页
基于单片机定时闹钟设计.docx_第18页
第18页 / 共28页
基于单片机定时闹钟设计.docx_第19页
第19页 / 共28页
基于单片机定时闹钟设计.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于单片机定时闹钟设计.docx

《基于单片机定时闹钟设计.docx》由会员分享,可在线阅读,更多相关《基于单片机定时闹钟设计.docx(28页珍藏版)》请在冰点文库上搜索。

基于单片机定时闹钟设计.docx

基于单片机定时闹钟设计

基于单片机定时闹钟设计

 

基于单片机定时闹钟设计

 

学生学号:

xxxxxxxx

学生姓名:

xxx

指导教师:

xxx

 

机电工程系

2014年月日

 

基于单片机定时闹钟设计

石家庄职业技术学院机电系xxx邮编xxxxx

摘要

 

随着科学技术的不断发展,人们对时间计量的要求越来越高。

在当今社会,电子时钟已经得到相当广泛的应用,产品多样,发展更是多元化。

本作品是以STC89C51单片机作为主控芯片,使用12MHZ的晶振,产生时间信息,时间精确。

在其基础上外围扩展芯片和外围电路,附加时钟电路,复位电路,键盘接口及数码管显示。

键盘采用独立连接式。

还有定时报警系统,即定时时间到,通过扬声器发出报警声,提示预先设定时间时间到,从而起到定时作用。

 

关键字按键、单片机、汇编

 

1设计课题任务、功能要求说明及总体方案介绍.........................4

1.1设计课题任务................................................4

1.2功能要求说明................................................4

1.3总体方案介绍及工作原理说明..................................4

2硬件系统设计.....................................................5

2.1各模块功能选择与设计........................................6

2.2电路原理图...............................................8

2.3元器件清单.................................................9

3软件系统的设计.................................................9

3.1单片机资源分配情况......................................9

3.2软件系统程序流程框图................................10

3.3软件系统各模块功能简述......................................12

3.4软件系统程序清单..........................................12

4设计结论、仿真过程及设计体会.........................20

4.1设计结论及使用说明.......................................21

4.2仿真过程.................................................20

4.3设计体会................................................24

参考文献...........................................................25

致谢...............................................................25

 

 

1设计课题任务、功能要求说明及总体方案介绍

1.1设计课题任务

设计一个单片机控制的电子闹钟系统,利用单片机的定时器/计数器定时和记数的原理,结合显示电路、用六个LED数码管以及按键来设计计时器。

将软、硬件有机地结合起来,使得系统能够正确地进行闹时,同时数码管能够正确地显示时间。

1.2功能要求说明

1.正常状态下,数码管显示当前时间。

当定时开关按下时,启动定时功能;启动定时后,若定时时间到,则蜂鸣器响30秒。

2.默认定时时间是12:

00:

00。

定时时间可以用开关设定。

3.当时间不准确时,可以按动校时开关进行校时。

*4.允许自己增加功能

1.3总体方案介绍及工作原理说明

本设计利用AT89S52单片机的定时器/计数器定时和记数的原理,使其能精确计时。

利用中断系统使其能实现开始暂停的功能。

P0口输出段码数据,P2.0-P2.4口作数码管显示输出,6个按键S2至S7分别依次接在P3.3至P3.7口线,硬件电路基本原理图如图1.1所示。

图1.1闹钟硬件电路基本原理图

 

2硬件系统设计

2.1各模块功能选择与设计

2.1.1显示电路的选择与设计

数码管显示电路

单片机中通常使用7段LED,LED是发光二极管显示器的缩写。

LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活与单片机接口方便而得到广泛应用。

LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。

LED显示器有多种形式,如:

“米”字型显示器,点阵显示器和七段数码显示器等,在单片机系统中使用最多的是七段数码显示器

 

 

LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管

的连接形式不同,LED有共阴极和共阳极两种,如图3所示:

采用高亮共阴型数位数码管,为示区别,显示秒的两个数码管个头较小,另外4个较大。

共阴数码管连接线路如下:

一般用7个发光二极管构成显示数字和符号,另外还用一段发光二极管显示小数点。

这种显示器一般分为两种,共阳极显示器和共阴极显示器,共阳极显示器是把每个二极管的正端连在一起,共阴极显示器是把每个二极管的阴极连在一起。

一只显示器是有8个发光二极管构成,当把某段加正向电压时,则该段所对应的笔划亮,不加正向电压则暗,为了保护各段不受损坏需要加限流电阻,无论是共阳极显示器还是共阴极显示器,它的8段排列顺序都是一样的:

A段、B段、C段、D段、E段、F段、G段和DP段。

在单片机中通常使用7段LED。

 

图2.1显示电路基本原理图

动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。

通常各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的公共阴极位选线由另外的I/O口线控制。

动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码,依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。

 

2.1.2按键电路的选择与设计

当按键没有按下时,单片机的I/O口直接连接电源,因此需要接上拉电阻来进行限流,本设计中选取阻值为470Ω的电阻作为上拉电阻.具体设计如图2.2所示

 

2.1.3时钟电路的选择与设计

单片机的时钟产生方法有两种:

内部时钟方式和外部时钟方式。

本系统中AT89C51单片机采用内部时钟方式。

最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。

振荡晶体可在1.2MHz~12MHz之间。

电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF~100pF之间取值。

AT98S51单片机的时钟电路如图2所示。

 

2.1.4复位电路的选择与设计

 

标准AT89S52不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图2.4(a)所示。

其实,外接电阻R还是可以省略的

在每次单片机断电之后,须使延时电容C上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。

否则,在断电后C还没有充分放电的情况下,如果很快又加电,那么RC支路就失去了它应有的延迟功能。

因此,在图2.4(a)的基础上添加一个放电二极管D,上电复位延时电路就变成了如图2.4(c)所示的改进电路。

也就是说,只有RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。

于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。

二极管D只有在单片机断电的瞬间(即VCC趋近于0V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。

手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。

单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。

本设计采用上电且开关复位电路,如图2.5所示上电后,由于电容充电,使RST持续一段高电平时间。

当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。

 

2.1.5音响报警电路

在AT89C51外围的一个管口上加蜂鸣器,通过软件与硬件的结合可实现定时闹钟功能

 

2.2电路原理图

 

2.3元器件清单

序号

元件

规格

数量

1

电阻

10K

1

2

电阻

220Ω

24

3

电阻

1KΩ

6

4

电容

1μF

1

5

电容

33pF

2

6

单片机

AT89S52

1

7

排阻

10K

2

8

晶振

12MHz

1

9

蜂鸣器

1

10

排针

40

11

数码管

六位一体

1

12

LED

共阳极

9

13

三极管

H9012

9

14

四脚按键

7

15

下载口

1

16

电源接口

1

3软件系统的设计

3.1单片机资源分配情况

P0.7---P0.0段控线,接LED的显示段

P2.7---P2.0位控线

P3.3---P3.76个按键S6至S1

 

3.3软件系统程序流程框图

 

 

 

3.3软件系统各模块功能简要介绍

TIME_1MS(定时1ms子程序)

KEY(键扫描子程序)

KEYCHULI(P1口数据处理子程序)

3.4软件系统程序清单

ORG0000H

LJMPMAIN;主程序跳转

ORG000BH

LJMPT0;T0跳转

ORG001BH

LJMPT1INT;T1跳转

MAIN:

MOVSP,#70;堆栈初始化

MOVTMOD,#11H;T0.T1方式1工作

MOVTL1,#0EFH;T1初值

MOVTH1,#0D8H

MOVTL0,#00h;T0初值

MOVTH0,#0EEH

MOVIE,#8aH;开中断

MOV39H,#30

MOVR7,#100;中断次数(计时)

MOVR5,#6;位个数

MOVR4,#01H

MOV30H,#0;时钟缓冲区

MOV31H,#0

MOV32H,#0

MOV33H,#0

MOV34H,#2

MOV35H,#1

MOV40H,#0;闹钟缓冲区

MOV41H,#0

MOV42H,#0

MOV43H,#0

MOV44H,#6

MOV45H,#0

MOVDPTR,#TAB

SETBTR1;启动定时器1

SETBTR0;启动定时器0

MainLoop:

MOVR3,39H

CJNER3,#0,YU

MOV39H,#30;蜂鸣器叫30S

CLR20H.0;关蜂鸣器

CLR20H.1;关闹钟

YU:

JBP3.7,CheckPP

LCALLDelay2

JBP3.7,CheckPP;闹时设置键按下了吗?

没有则转去检测秒设置键篇p3.4

SETB20H.1;开闹钟

CALLNAOZHONG

 

CheckPP:

MOV46H,#30H

JBP3.4,CheckPQ;分设置键按下了吗?

没有则转去检测小时设置键

CALLDelay2;

JBP3.4,CheckPQ

INC32H

MOVA,32H

CJNEA,#10,NotOver1;到10分钟了吗?

MOV32H,#0

NotOver1:

;以下等待按键释放及防抖动

JNBP3.4,$

CheckPQ:

JBP3.3,CheckPQ1;分十位设置键按下了吗?

没有则转去闹时状态检测

CALLDelay2

JBP3.3,CheckPQ1

INC33H

MOVA,33H

CJNEA,#6,NotOver2

MOV33H,#0

NotOver2:

;以下等待按键释放及防抖动

JNBP3.3,$

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CheckPQ1:

JBP3.5,CheckPQ2;小时个位设置键按下了吗?

CALLDelay2

JBP3.5,CheckPQ2

INC34H

MOVA,35H

CJNEA,#0,JU1

MOVA,34H

CJNEA,#10,NotOver21

MOV34H,#0

MOVA,35H

JU1:

CJNEA,#1,JU

MOVA,34H

CJNEA,#10,NotOver21

MOV34H,#0

JU:

CJNEA,#2,NotOver21

MOVA,34H

CJNEA,#4,NotOver21

MOV34H,#0;到24小时则将小时清0

NotOver21:

;以下等待按键释放及防抖动

JNBP3.5,$

;*********************************小时调整逻辑********************************************

CheckPQ2:

JBP3.6,CheckAlarm;小时十位设置键按下了吗?

没有则转去闹时状态检测

CALLDelay2

JBP3.6,CheckAlarm

INC35H

MOVA,34H

CJNEA,#0,E1

MOVA,35H

CJNEA,#3,NotOver22

MOV35H,#0

E1:

CJNEA,#1,E2

MOVA,35H

CJNEA,#3,NotOver22

MOV35H,#0

E2:

CJNEA,#2,E3

MOVA,35H

CJNEA,#3,NotOver22

MOV35H,#0

E3:

CJNEA,#3,E4

MOVA,35H

CJNEA,#3,NotOver22

MOV35H,#0

E4:

CJNEA,#4,E5

MOVA,35H

CJNEA,#2,NotOver22

MOV35H,#0

E5:

CJNEA,#5,E6

MOVA,35H

CJNEA,#2,NotOver22

MOV35H,#0

E6:

CJNEA,#6,E7

MOVA,35H

CJNEA,#2,NotOver22

MOV35H,#0

E7:

CJNEA,#7,E8

MOVA,35H

CJNEA,#2,NotOver22

MOV35H,#0

E8:

CJNEA,#8,E9

MOVA,35H

CJNEA,#2,NotOver22

MOV35H,#0

E9:

CJNEA,#9,NotOver22

MOVA,35H

CJNEA,#2,NotOver22

MOV35H,#0;到24小时则将小时清0

NotOver22:

;以下等待按键释放及防抖动

JNBP3.6,$

 

CheckAlarm:

JNB20H.1,LL;判闹钟

LCALLBIJIAO;调用闹钟子程序

LL:

AJMPMainLoop

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;X显示程序;;;;;;;;;;;;;;;;;;

T0:

MOVTL0,#00H;T0初值

MOVTH0,#0EEH

DJNZR5,T01;一轮扫描是否结束

MOVR5,#6;动态扫描位数

MOVR4,#01H;动态扫描初值

MOVR0,46H;动态扫描缓冲区选择

T01:

MOVP0,#00H;关显示

MOVA,@R0;取首地址

MOVCA,@A+DPTR;查表

MOVP2,A;送段码

MOVP0,R4;送位码

MOVA,R4;位偏移

RLA

MOVR4,A

INCR0

RETI

T1INT:

MOVTL1,#0EFH;T1初值

MOVTH1,#0D8H

DJNZR7,N

MOVR7,#100;1秒计时

jnb20h.0,bt01

cplp1.7;蜂鸣器叫

cplp1.0

DEC39H

bt01:

INC30H;秒个位加1

MOVR3,30H

CJNER3,#10,N

MOV30H,#0

INC31H;秒十位加1

MOVR3,31H

CJNER3,#3,TTT

CLR20H.0

TTT:

CJNER3,#6,N

MOV31H,#0

INC32H;分个位加一

MOVR3,32H

CJNER3,#10,N

MOV32H,#0

INC33H;分十位加一

MOVR3,33H

CJNER3,#6,N

MOV33H,#0

INC34H;时个位加一

MOVR3,34H

CJNER3,#4,N1

MOVR3,35H

CJNER3,#2,N1

LJMPN2

N1:

CJNER3,#10,N

MOV34H,#0

INC35H;时十位加一

LJMPN

N2:

MOV30H,#0;计时24小时清0

MOV31H,#0

MOV32H,#0

MOV33H,#0

MOV34H,#0

MOV35H,#0

N:

RETI

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;译码表

 

Delay1:

MOVR5,#5;延时间产生1s,扬声器的震动间隔时间

de3:

MOVR6,#200

de2:

MOVR7,#250

DJNZR7,$

DJNZR6,dE2

DJNZR5,dE3

RET

Delay2:

MOVR6,#10;延时产生15ms,按键防止抖动时间

de4:

MOVR7,#245

DJNZR7,$

DJNZr6,de4

RET

;********************************N闹钟调整子程序************************************************

NAOZHONG:

INC60H;单元加一,,选取首地址

MOVA,60H

MM1:

CJNEA,#1,MM

MOV46H,#40H;闹钟首地址

MM:

CJNEA,#0,M2

MOV46H,#30H;时钟首地址

M2:

CJNEA,#2,MM1

MOV60H,#0

NAOZHONGaa:

JBP3.4,CheckPQa;分设置键按下了吗?

没有则转去检测小时设置键

CALLDelay2;

JBP3.4,CheckPQa

INC42H

MOVA,42H

CJNEA,#10,NotOver1a;到10分钟了吗?

MOV42H,#0

NotOver1a:

;以下等待按键释放及防抖动

JNBP3.4,$

CheckPQa:

JBP3.3,CheckPQ1a;小时设置键按下了吗?

没有则转去闹时状态检测

CALLDelay2

JBP3.3,CheckPQ1a

INC43H

MOVA,43H

CJNEA,#6,NotOver2a

MOV43H,#0

NotOver2a:

;以下等待按键释放及防抖动

JNBP3.3,$

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CheckPQ1a:

JBP3.5,CheckPQ2a;小时设置键按下了吗?

CALLDelay2

JBP3.5,CheckPQ2a

INC44H

MOVA,45H

CJNEA,#0,JU1a

MOVA,44H

CJNEA,#10,NotOver21a

MOV44H,#0

MOVA,45H

JU1a:

CJNEA,#1,JUa

MOVA,44H

CJNEA,#10,NotOver21a

MOV44H,#0

JUa:

CJNEA,#2,NotOver21a

MOVA,44H

CJNEA,#4,NotOver21a

MOV44H,#0;到24小时则将小时清0

NotOver21a:

;以下等待按键释放及防抖动

JNBP3.5,$

CheckPQ2a:

JBP3.6,kka;小时设置键按下了吗?

CALLDelay2

JBP3.6,kka

INC45H

MOVA,44H

CJNEA,#0,E1a

MOVA,45H

CJNEA,#3,NotOver22a

MOV45H,#0

E1a:

CJNEA,#1,E2a

MOVA,45H

CJNEA,#3,NotOver22a

MOV45H,#0

E2a:

CJNEA,#2,E3a

MOVA,45H

CJNEA,#3,NotOver22a

MOV45H,#0

E3a:

CJNEA,#3,E4a

MOVA,45H

CJNEA,#3,NotOver22a

MOV45H,#0

E4a:

CJNEA,#4,E5a

MOVA,45H

CJNEA,#2,NotOver22a

MOV45H,#0

E5a:

CJNEA,#5,E6a

MOVA,45H

CJNEA,#2,NotOver22a

MOV45H,#0

E6a:

CJNEA,#6,E7a

MOVA,45H

CJNEA,#2,NotOver22a

MOV45H,#0

E7a:

CJNEA,#7,E8a

MOVA,45H

CJNEA,#2,NotOver22a

MOV45H,#0

E8a:

CJNEA,#8,E9a

MOVA,45H

CJNEA,#2,NotOver22a

MOV45H,#0

E9a:

CJNEA,#9,NotOver22

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

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2