基于单片机控制的电铃控制器.docx

上传人:b****6 文档编号:6548163 上传时间:2023-01-07 格式:DOCX 页数:26 大小:252.45KB
下载 相关 举报
基于单片机控制的电铃控制器.docx_第1页
第1页 / 共26页
基于单片机控制的电铃控制器.docx_第2页
第2页 / 共26页
基于单片机控制的电铃控制器.docx_第3页
第3页 / 共26页
基于单片机控制的电铃控制器.docx_第4页
第4页 / 共26页
基于单片机控制的电铃控制器.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

基于单片机控制的电铃控制器.docx

《基于单片机控制的电铃控制器.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的电铃控制器.docx(26页珍藏版)》请在冰豆网上搜索。

基于单片机控制的电铃控制器.docx

基于单片机控制的电铃控制器

单片机原理与应用技术

题目:

基于单片机控制的电铃控制器

基于单片机控制的电铃控制器

一.设计要求

(一)基本功能

1.显示:

可以显示星期、时、分和秒

2.

1-99

打铃:

每天可设置20次,打铃持续时间每次1-90秒可调,每次打铃的间隔时间分钟可调。

3.铃声:

内置蜂鸣器可以发出监控声音

(二)性能时间日误差<1.5秒

(三)扩展功能

1.可设定单/双休息日不打铃

2.随季节变化,每天自动调整开与关的时间

二.计划完成时间三周1.第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。

2.第二周完成软件的具体设计和硬件的制作。

3.第三周完成软件和硬件的联合调试。

三.编写设计报告

写出设计的全过程,附上有关资料和图纸,有心得体会。

四.答辩

在规定时间内,完成叙述并回答问题。

1引言1

2总体设计方案1

2.1设计思路1

2.2总体设计框图1

2.3设计方案1

3设计原理分析2

3.1按键功能2

3.2状态指示2

3.3打铃控制2

3.4电路原理图2

4程序流程框图3

4.1总体程序流程图3

4.2主程序流程图3

4.3校时程序流程图4

4.4时钟打铃程序流程图4

5心得与体会5

参考文献5

附录

基于单片机控制的电铃控制器

摘要:

该设计介绍了一种以AT89C51单片机为核心,以七段数码管显示星期、时、分和秒,发光二极管作为指示灯标志及按键较时、定时的自动打铃器。

关键词:

单片机电铃自动数码管

1引言

基于目前传统电铃噪音大,声音刺耳,不符合人们追求绿色环保的要求,我们采用89C51

单片机设计了一套自动打铃系统。

单片机(Single—ChipMicrocomputerSCM)技术的应用,

不但降低了生产成本,同时也方便了消费者,使操作简洁、安全。

单片机的应用使许多复杂的事情,都能够简单、方便的实现了。

用单片机控制的自动打铃器,充分发挥单片机体积小,价格便宜,功耗低,可靠性好等特点,充分发挥了单片机的控制优势。

本打铃器可用于作息时间控制,方便了广大师生。

2总体设计方案

2.1设计思路

利用单片机及其定时器设计的一个时钟,在每次毫秒加1的计时过程中,都与设定的打铃

时间作比较,如果相等就输出打铃信号,不等则返回。

如此反复运行。

2.2总体设计框图

图1总体设计框图

2.3设计方案

根据设计任务的基本要求,设计了由单片机(AT89S51)作为主控器件,七段数码管作为显

示电路,七个按键组成的按键操作电路,七个发光二极管组成的状态指示电路,以及三极管、蜂鸣器组成的报警提示电路和继电器组成的打铃信号输出电路构成的自动打铃器。

除了以上的硬件电路外,还充分利用软件、硬件相结合,充分发挥单片机设计的优势。

使设计更具特色。

系统可分成三部分,即时钟电路、时间显示电路、控制电路,而时钟电路起控制主导作用。

时钟电路的构成由单片机及其定时器完成,时间显示电路则由单片机串口输出,送到外部集成芯片74LS164,最后由七段数码管显示出来。

控制电路主要控制着复位电路、校时以及设置打铃点等操作,并配以状态指示电路辅助操作。

3设计原理分析

3.1按键功能

初步设计了由六个按键来完成所有的操作,它们的功能分别是:

复位键、设置键、存储键、

加一键、减一键、确认键,具体操作方法由软件设计为菜单式操作,使所有的操作更加的简洁,

方便。

3.2状态指示

状态指示电路由硬件部分(六个发光二极管),结合软件使操作状态一目了然。

第一个发光二极管亮时候,表明当前状态为时间显示;第二个发光二极管亮时候,表明此状态为时间调整状态;第三个发光二极管亮时候,表明此状态为时间加一状态;第四个发光二极管亮时候,表明此状态为时间减一状态;第五个发光二极管亮时候,表明此状态为定时时间设定存储状态。

3.3打铃控制

比较所存储的打零时间点,至旳铃时间时进行打铃。

3.4电路原理图

图2总体电路图

图2中,S1为确认键,S2为设置键,S3为加一键,S4为减一键,S5为存储键,S7为复位键。

当S2按下时L2亮,S3按下时L3亮,S4按下时L4亮,S5按下时L5亮。

L1为正常运行指示。

S5,L6暂无使用。

蜂鸣器在每个操作时给予报警提示。

继电器电路作为打铃信号输出电路,

对外提供打铃信号。

4程序流程框图

4.1总体程序流程图

根据硬件设计结果,为满足要求,程序应有主程序、按键处理程序、中断服务程序和显示程序等部分构成。

主程序中主要是程序各部分的初始化;按键处理程序处理五个按键的操作,包括各个按键的响应程序以及按键指示、闪烁指示、报警输出等;显示程序显示星期、时、分、秒,主要是时钟显示。

图3总体程序流程图

4.2主程序流程图

该部分程序主要是对程序中所用到的数据单元进行初始化,以及定时器的赋初值。

图4主程序流程图

4.3校时程序流程图

该部分的键盘扫描为程序扫描方式,CPU不停的对P1口进行扫描,当任何一个键按下时,

与之相连的输入数据线即被清0(低电平),而平时该线为1(高电平)。

这种键盘扫描方式的优

点是电路简单:

缺点是当键数较多时,要占用较多的I/O线。

由于按键的机械特性,在闭合及

断开的瞬间均伴随有一连串的抖动,键抖动会引起一次按键被误读多次。

为了确保CPU对键的

一次闭合仅作一次处理,必须去除键抖动。

该程序使用10ms延时程序作为去抖动程序去除键抖动。

校时程序

I设置键

1^1

—>1星期调整II小时调整I[分钟调整

一1

调用闪烁子程序—[

图5校时程序流程图

4.4时钟打铃程序流程图

时钟打铃程序使用单片机TO、T1两个定时器中断,两个定时器均为方式一,初值为10ms当定时器TO溢出时响应中断,使毫秒单元加1,当毫秒单元满100时分单元加1,依此类推。

当定时器T1溢出时响应中断,依次比较存储的打铃点,条件符合就输出打铃信号。

中断均需保护现场,返回时恢复现场。

H调用显示程序

,恢复现场中断返回II

图6时钟打铃中断程序流程图

5心得与体会

在此次将近三周的单片机实习,在指导老师和同学的帮助下,我确实学到了不少平时在课堂上所学不到的知识。

这样的实习不论是对我们的理论知识还是实践能力都有很大的帮助,经过这些实习可以使我们能更快更准确的掌握专业方面的理论知识。

总之,通过这次实习,我真正学到了很多东西,体会到了理论联系实际的重要性。

充分认识到实践的重要性,只有在实践中才能更好的验证理论知识。

虽然也遇到一些问题,但在老师及同学的帮助下,各种问题迎刃而解。

最后,衷心感谢辅导老师的指导和同学的帮助!

参考文献

[1]周航慈.单片机应用程序设计基础[M].北京:

电子工业出版社,1997年7月

[2]朱承高.电工及电子技术手册[M].北京:

高等教育出版社,1990

[3]阎石.数字电子技术基础(第三版)[M].北京:

高等教育出版社,1989

[4]廖常初.现场总线概述[J].电工技术,1999.6

[5]李朝青.单片机原理及接口技术(第三版)[M].北京;北京航空航天大学出版社,2005年10月

附录

1程序分为五部分

1.初始化程序,2.键值处理程序,3.中断程序,4.显示程序,5.延时程序

2程序清单

ORG0000HLJMPMAIN

ORG000BH

LJMPTOINT

ORG001BH

LJMPDLBJ

・**********

主程序

**********

ORG30H

;开T0,T1中断

;定时器方式1

;初值

MAIN:

MOVIE,#8AH

MOVTMOD,#11H

MOVTH0,#0D8H

MOVTL0,#0F0H

MOVA,#0

MOV59H,A

MOV60H,A

MOV61H,A

MOV62H,A

MOV63H,A

MOV64H,A

MOV65H,A

MOV66H,A;清零

m_secEQU

20H

;毫秒单元

secEQU

21H

;秒单元

minEQU

22H

;分单元

hourEQU

23H

;时单元

weekEQU

24H

;星期单元

SETBTR0

SETBTR1

CLRP1.0

CLRA

MOVR0,A

MOVR1,A

MOVR2,A

MOVR3,A

MOVR5,A

MOVR6,A

MOVR7,A

MOVm_sec

#00

;毫秒单元清零

MOVsec

#00

;秒单元清零

MOVmin

#00

;分单元清零

MOVhour

#00

;时单元清零

MOVweek

#00

;星期单元清零

MOV70H,A

MOV71H,A

MOV72H,A

MOV73H,A

MOV74H,A

LCALLxs

;调用显示程序

・************************************************

 

・*****************J

数字钟按键程序*****************

・************************************************

 

・**********

调时钟按键**********

NET1:

JBP0.0,NET2

LCALLYS10MS

JBP0.0,NET2

CLRp2.2

JNBP0.0,$

SETBp2.2

CLRP1.1

SETBP1.0

;开中断

SETBTR0

;正常运行

SETBTR1

CLRP1.0

SETBP1.1

SETBP1.2

SETBP1.3

CJNE

A

#00,NET3

JBP0.1

NET9;数字钟调整时间部分切换键

LCALL

YS10Ms

JB

P0.1

NET9

CLR

p2.2

INC

59H

JNB

P0.1

$

SETB

p2.2

INC

R7

CLR

TR0

CLR

TR1

SJMP

NET4

JB

P0.1

NET4

LCALLYS10ms

JB

P0.1

NET4

CLR

p2.2

INC

59H

JNB

P0.1

$

SETB

p2.2

INC

R7

CJNE

R7

#1,NET5

A

NET3:

NET4:

;秒闪烁

LCALL

SSH

NET5:

SJMP

CJNE

NET9

R7

LCALL

MSH

#2;分闪烁

NET6

 

SJMP

NET9

NET6:

CJNE

LCALL

R7

HSH

#3;时闪烁

NET7

 

SJMP

NET9

NET7:

MOV

LCALL

R7

WSH

#0

;星期闪烁

 

SJMP

NET9

NET8:

LCALL

XS

・******************J

调整时间加1键*****************

NET9:

JB

P0.2

NET115;数字钟调整时间键

LCALL

YS10ms

JB

P0.2

NET13

CLR

p2.2

CLR

P1.2

CJNE

R7

#1

NET10

SETB

p2.2

SETB

P1.3

LCALL

YS200ms

INC

sec

;秒单元加

1

MOV

A

sec

CJNE

A

#60

NET8;不等60时跳转显示,等

60时将秒单元清零

MOV

sec

#00

LCALL

XS

JB

P0.2

NET13

LJMP

NET9

NET115:

LJMP

NET15

NET10:

CJNE

R7

#2

NET11

SETB

p2.2

SETB

P1.3

LCALL

YS200ms

INC

min

;分单元加

1

MOV

A

min

CJNE

A

#60

NET8;不等60时跳转显示,等

60时将分单元清零

MOV

min

#00

LCALL

XS

JB

P0.2

NET13

LJMP

NET9

NET11:

CJNE

R7

#3

NET12

SETB

p2.2

SETB

P1.3

LCALL

YS200ms

INC

hour

;时单元加

1

MOV

A

hour

CJNE

A

#24

NET8;不等24时跳转显示,等

24时将时单元清零

MOV

hour

#00

LCALL

XS

JB

P0.2

NET13

LJMP

NET9

NET12:

SETB

p2.2

SETB

P1.3

JB

LCALL

P0.3,NET19

YS10ms

;数字钟调整时间键

JB

P0.3,NET19

CLR

P2.2

CLR

P1.3

CJNE

R7,#1

NET16

SETB

P2.2

SETB

P1.2

LCALL

YS200ms

DEC

sec;秒单元减

1

MOV

A,sec

CJNE

A,#0FFH

NET14;不等60时跳转显示,等

MOV

sec,#59

LCALL

NET14

JB

P0.3,NET19

LJMP

NET15

CJNE

R7,#2

NET17

SETB

P2.2

SETB

P1.2

LCALL

YS200ms

DEC

min;分单元减

1

MOV

A,min

CJNE

A,#0FFH

NET14;不等60时跳转显示,等

MOV

min,#59

LCALL

NET14

JB

P0.3,NET19

LJMP

NET15

CJNE

R7,#3

NET18

SETB

P2.2

SETB

P1.2

LCALL

YS200ms

DEC

hour;时单元减

1

NET15:

NET16:

NET17:

60时将秒单元清零

60时将分单元清零

调整时间减1键**********************

MOV

A,hour

CJNE

A,#0FFH,NET14;不等24时跳转显示

MOV

hour,#23

LCALL

NET14

JB

P0.3,NET19

LJMP

NET15

NET18:

SETB

P2.2

SETB

P1.2

LCALL

YS200ms

DEC

week;星期单元减1

MOV

A,week

CJNE

A,#00,NET14;不等7时跳转显示,等

MOV

week,#07

LCALL

NET14

JB

P0.3,NET19

LJMP

NET15

NET19:

LJMP

DSH

・********************J

定时程序*********************

DSH:

MOV

R2,#00

等24时将时单元清零

7时将星期单元清1

JBP0.4,NT11

LCALLYS10ms

JBP0.4,NT11

CLRP2.2

CLRP1.4

JNBP0.4,$

SETBP2.2

INCR2

CJNER2,#01,NTA;第1个打铃点

MOVR1,#30H

LCALLCUN

NT11:

LJMPNT1

NTA:

CJNER2,#02,NTB;第2个打铃点

LCALLCUN

NTB:

CJNER2,#03,NTC;第3个打铃点

LCALLCUN

NTC:

CJNER2,#04,NTD;第4个打铃点

LCALLCUN

NTD:

CJNER2,#05,NTE;第5个打铃点

LCALLCUN

NTE:

CJNER2,#06,NTF;第6个打铃点

LCALLCUN

NTF:

CJNER2,#07,NTG;第7个打铃点

LCALLCUN

NTG:

CJNER2,#08,NTH

LCALLCUN

;第8个打铃点

NTH:

CJNER2,#09,NTI

LCALLCUN

;第9个打铃点

NTI:

CJNER2,#10,NTJ

LCALLCUN

;第10个打铃点

NTJ:

CJNER2,#11,NTK

LCALLCUN

;第11个打铃点

NTK:

CJNER2,#12,NTL

LCALLCUN

;第12个打铃点

NTL:

CJNER2,#13,NTM

LCALLCUN

;第13个打铃点

NTM:

CJNER2,#14,NTN

LCALLCUN

;第14个打铃点

NTN:

CJNER2,#15,NTO

LCALLCUN

;第15个打铃点

NTO:

CJNER2,#16,NTP

LCALLCUN

;第16个打铃点

NTP:

CJNER2,#17,NTQ

LCALLCUN

;第17个打铃点

NTQ:

CJNER2,#18,NTR

LCALLCUN

;第18个打铃点

NTR:

CJNER2,#19,NTS

LCALLCUN

;第19个打铃点

NTS:

CJNER2,#20,NT1

LCALLCUN

;第20个打铃点

NT1:

LJMPNET1

・****************

打铃点存储子程序

********************

CUN:

MOV@R1,hour

INCR1

MOV@R1,min

INCR1

 

・********************

时钟中断程序

*********************

TOINT:

PUSH

PSW

PUSH

ACC

;保护现场

MOV

TH0

#0D8H

MOV

TL0

#0F0H

;重新赋计数初值

INC

m_sec

;毫秒单元加1

MOV

A

m_sec

CJNE

A

#100

NEXT1

MOV

m_sec

#00

INC

sec

;秒单元加1

MOV

A

sec

CJNE

A

#60

NEXT1

MOV

sec

#00

INC

min

J

MOV

A

min

CJNE

A

#60

NEXT1

MOV

min

#00

INC

hour

J

MOV

A

hour

CJNE

A

#24

NEXT1

MOV

hour

#00

INC

week

MOV

A

week

CJNE

A

#08

NEXT1

MOV

week

#01

LCALL

XS

POP

ACC

POP

PSW

;恢复现场

RETI

;中断返回

NEXT1:

打铃中断程序

*********************

・********************

DLBJ:

PUSHPSW

PUSHACCMOVTH0,#0D8HMOVTL0,#0F0HMOVR0,#30H

FH:

MOVA,@R0

CJNEA,hour,LOP1INCR0MOVA,@R0CJNEA,min,LOP2CLRP2.2CLRP1.4LCALLYS1minSETBP2.2SETBP1.4CLRAMOV7FH,AAJMPLOP2

;铃声响

;延时1分钟

;铃声停

LOP1:

INCR0

LOP2:

INCR0

CJNER0,#58H,FH

LOP3:

LCALLXS

POPPSW

POPACC

RETI

XS:

MOV

A

sec

;将秒送A

MOV

B

#10

DIV

AB

MOV

60H

B

;秒的个位

MOV

61H

A

;秒的十位

MOV

A

min

;将分送A

MOV

B

#10

DIV

AB

MOV

62H

B

;分的个位

MOV

63H

A

;分的十位

MOV

A

hour;将时送A

MOV

B

#10

DIV

AB

MOV

64H

B

;时的个位

MOV

65H

A

;时的十位

MOV

A

week

;星期的送A

MOV

B

#10

DIV

AB

MOV

66H

B

;星期的个位

LCP:

MOV

R1

#60H

MOV

R5

#7

MOV

DPTR

#TAB

BK:

MOV

A

@R1

MOVC

A

@A+DPTR

MOV

SBUF

A

JNB

TI

$

CLR

TI

INC

R1

DJNZ

R5

BK

RET

TAB:

DB11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H

・*************

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

当前位置:首页 > PPT模板 > 简洁抽象

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

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