基于单片机控制的电铃控制器.docx
- 文档编号:25994520
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:29
- 大小:424.43KB
基于单片机控制的电铃控制器.docx
《基于单片机控制的电铃控制器.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的电铃控制器.docx(29页珍藏版)》请在冰豆网上搜索。
基于单片机控制的电铃控制器
单片机原理与应用技术
题目:
基于单片机控制的电铃控制器
基于单片机控制的电铃控制器
一.设计要求
(一)基本功能
1.显示:
可以显示星期、时、分和秒
2.打铃:
每天可设置20次,打铃持续时间每次1-90秒可调,每次打铃的间隔时间分钟^gg可调。
3.铃声:
内置蜂鸣器可以发出监控声音
(二)性能时间日误差〈1.5秒
(三)扩展功能
1.可设定单/双休息日不打铃
2.随季节变化,每天自动调整开与关的时间
二•计划完成时间三周1.第一周完成软件和硬件的整体设计,同时按要求上交设计报告一份。
2.第
二周完成软件的具体设计和硬件的制作。
3.第三周完成软件和硬件的联合调试。
3.编写设计报告
写出设计的全过程,附上有关资料和图纸,有心得体会。
4.答辩
在规定时间内,完成叙述并回答问题。
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打铃控制
比较所存储的打零时间点,至旳铃时间时进行打铃o
3.4电路原理图
LENT
LENI
图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溢出时响应屮断,依次比较存储的打铃点,
返回时恢复现场。
恢复现场中断返回II
图6时钟打铃屮断程序流程图
5心得与体会
在此次将近三周的单片机实习,在指导老师和同学的帮助下,我确实学到了不少平时在课堂上所学不到的知识。
这样的实习不论是对我们的理论知识还是实践能力都有很大的帮助,经过这些实习可以使我们能更快更准确的掌握专业方面的理论知识。
总Z,通过这次实习,我真正学到了很多东西,体会到了理论联系实际的重要性。
充分认识到实践的重要性,只有在实践中才能更好的验证理论知识。
虽然也遇到一些问题,但在老师及同学的帮助下,各种问题迎刃而解。
最后,衷心感谢辅导老师的指导和同学的帮助!
参考文献
[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
MOV
TMOD,
#11H
MOV
THO,
#0D8H
MOV
TLO,
#OFOH
MOV
A,#0
MOV
59H,
A
MOV
60H,
A
MOV
61H,
A
MOV
62H,
A
MOV
63H,
A
MOV
64H,
A
MOV
65H,
A
・容**g宕廿倉**][无匸巳丿予林*拿驾林塔驾*
ORG30H
MAIN:
MOVIE,#8AH
;开TO,T1中断
;定时器方式1
;初值
MOV66H,A;清零
m_secEQU
20H
;毫秒单元
secEQU
21H
;秒单元
minEQU
22H
;分单元
hourEQU
23H
;时单元
weekEQU
24H
;星期单元
SETBTRO
SETBTRI
CLRPl.0
CLRA
MOVRO,A
MOVRl,A
MOVR2,A
MOVR3,A
MOVR5,A
MOVR6,A
MOVR7,A
MOVm_sec
#00
;毫秒单元清零
MOVsec
#00
;秒单元清零
MOVmin
#00
;分单元清零
MOVhour
#00
;时单元清零
MOVweek
MOV70H,A
MOV71H,A
MOV72H,A
MOV73H,A
MOV74H,A
#00
;星期单元清零
LCALLxs;调用显示程序
数字钟按键程序
"屮"调时钟按键
NET1:
JBP0.税刚巒***
LCALLYS1OMS
JBP0.0,NET2
CLRp2.2
JNBP0.0,$
SETBp2.2
CLRPl.1
SETBPl.0
;开中断
SETBTRO
;正常运行
SETBTR1
CLRPl.0
SETBPl.1
SETBPl.2
SETBPl.3
MOV59H,#00
MOVR7,#00
A调整时间部分切换键
NET2:
娜已
A,#00,NET3
NET9;数字钟调整时间部分切换键
YSlOMs
PO.1,NET9
p2.2
JBP0.1
LCALL
JB
CLR
INC
59H
JNB
PO.1,$
SETB
p2.2
INC
R7
CLR
TRO
CLR
TRI
SJMP
NET4
NET3:
JB
PO.1,NET4
LCALL
YSlOms
JB
PO.1,NET4
CLR
p2.2
INC
59H
JNB
PO.1,$
SETB
p2.2
INC
R7
NET4:
CJNE
R7,#1,NET5
LCALL
SSH;秒闪烁
SJMPNET9
NET5:
CJNE
R7
,#2;分,NET6
LCALL
MSH
闪烁
SJMP
NET9
NET6:
CJNE
R7
#3;时,NET7
LCALL
HSH
闪烁
SJMP
NET9
NET7:
MOV
R7
#0
LCALL
WSH
;星期闪烁
SJMP
NET9
NET8:
LCALL
XS
NET9:
JB
P0.2,NET115;数字钟调整时间键
LCALLYSlOms
JBP0.2,NET13
CLRp2.2
CLRPl.2
CJNER7,#1,NET1O
SETBp2.2
SETBPl.3
LCALLYS200ms
INC
MOV
CJNE
MOV
LCALL
JB
LJMP
sec
A
A
sec
XS
PO.2
NET9
;秒单元加
sec
#60
#00
NET13
1
NET8;不等
60
时跳转显示,
等
NET115:
LJMP
NET15
NET10:
CJNE
R7
#2
NET11
SETB
p2.2
SETB
Pl.3
LCALL
YS200ms
INC
min
;分单元加
1
MOV
A
min
CJNE
A
#60
NET8;不等
60
时跳转显示,
等
MOV
min
#00
LCALL
XS
JB
PO.2
NET13
LJMP
NET9
NET11:
CJNE
R7
#3
NET12
SETB
p2.2
SETB
Pl.3
LCALL
YS200ms
INC
hour
;时单元
1
1
MOV
A
hour
CJNE
A
#24
NET8;不等
24
时跳转显示,
等
MOV
hour
#00
LCALL
XS
JB
PO.2
NET13
60时将秒单元清零
60时将分单元清零
24时将时单元清零
LJMPNET9
NET12:
SETBp2.2
SETBPl.3
LCALL
YS200ms
NET15:
INC
week
;星期单元加1
'字钟调整时间键
MOV
A
week
CJNE
A
#08,NET8
;不等7时跳转显示,等7
MOV
week
#01
LCALL
XS
JNB
P0.2
NET13
LJMP
丄2
NET9
IV4yTT丄
yXIX-/丄
x6
NET13:
SJ蛾TB
P2阿15
NET14:
lcWb
Pl范
时将星期单元清零
LCALL
YS200ms
DEC
sec;秒单元减
1
MOV
A,sec
CJNE
A,#OFFH
NET14;不等60时跳转显示
MOV
sec,#59
LCALL
NET14
JB
PO.3,NET19
LJMP
NET15
NET16:
CJNE
R7,#2
NET17
SETB
P2.2
SETB
Pl.2
LCALL
YS200ms
DEC
min;分单元减
1
MOV
A,min
CJNE
A,#OFFH
NET14;不等60时跳转显示
MOV
min,#59
LCALL
NET14
JB
PO.3,NET19
LJMP
NET15
NET17:
CJNE
R7,#3
NET18
SETB
P2.2
SETB
Pl.2
LCALL
YS200ms
DEC
hour;时单元减
1
・****************
等60时将秒单元清零
等60时将分单元清零
MOV
A,hour
CJNE
A,#OFFH,NET14;不等24时跳转显示
等24时将时单元清零
MOV
hour,#23
LCALL
NET14
JB
PO.3,NET19
LJMP
NET15
NET18:
SETB
P2.2
SETB
Pl.2
LCALL
YS200ms
DEC
week;星期单元减1
MOV
A,week
CJNE
A,#00,NET14;不等7时跳转显示,等
7时将星期单元清1
MOV
week,#07
LCALL
NET14
JB
PO.3,NET19
LJMP
NET15
NET19:
LJMP
DSH
•****4*^** 定时程序 %Txvlx>X^>Xx yj%yy^yj%yp^^j>yj% DSH: MOVR2,#00 JBP0.4,NT11 LCALLYSlOms JBP0.4,NT11 CLRP2.2 CLRPl.4 JNBPO.4,$ SETBP2.2 INCR2 CJNER2,#01,NTA;第1个打铃点 MOVRl,#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,NT0 LCALLCUN ;第15个打铃点 NTO: CJNER2,#16,NTP LCALLCUN ;第16个打铃点 NTP: CJNER2,#17,NTQ LCALLCUN ;第17个打铃点 NTQ: CJNER2,#l&NTR LCALLCUN ;第18个打铃占 八、、 NTR: CJNER2,#19,NTS LCALLCUN ;第19个打铃点 NTS: NT1: CJNER2,#2O,NT1 LCALLCUN LJMPNET1 ;第20个打铃点 ■比*炖********** CUN: 打铃点存储子程序 **韋*«: *尋林条%: 合#*拿驾驾 MOV@R1,hour INCR1 MOV@R1,min INCR1 ■衬********林**紳**炖 时钟中断程序 TOINT: PUSH PSW PUSH ACC ;保护现场 MOV THO #0D8H MOV TLO #OFOH;重新赋计数初 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 hou CJNE A #24 NEXT1 MOV hour #00 INC week MOV A week CJNE A #08 NEXT1 MOV week #01 NEXT1: LCALL XS POP ACC POP PSW ;恢复现场 RETI ;屮断返回 -料******************打铃中断程序 DLBJ: PUSHPSW PUSHACCMOVTHO,#0D8HMOVTLO,#OFOHMOV RO,#30H FH: MOVA,@R0 CJNEA,hour,LOP1INCROMOVA,@R0CJNE A,min,LOP2CLRP2.2CLRPl.4LCALLYSlminSETB P2.2SETBPl.4CLRAMOV7FH,AAJMPL0P2 LOP1: INCRO L0P2: INCRO ;铃声响 ;延时1分钟 CJNERO,#58H,FH L0P3: LCALLXS POPPSW POPACC RETI XS: MOV A sec;将秒送A MOV B #1O 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 STAB BK: MOV A @R1 MOVC A @A+DPTR MOV SBUF A JNB TI $ CLR TI INC R1 DJNZ R5 BK RET TAB: DB 11H,0D7H,32H,92H 0D4H,98H,18H,0D3H,10H,90H ***1 YSlOms: MOV 延时10ms子程序 R2 #10H TS1: MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 电铃 控制器