基于单片机控制的电铃控制器Word文档下载推荐.docx
- 文档编号:19561918
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:26
- 大小:252.45KB
基于单片机控制的电铃控制器Word文档下载推荐.docx
《基于单片机控制的电铃控制器Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的电铃控制器Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
本打铃器可用于作息时间控制,方便了广大师生。
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
秒单元清零
MOVmin
分单元清零
MOVhour
时单元清零
MOVweek
星期单元清零
MOV70H,A
MOV71H,A
MOV72H,A
MOV73H,A
MOV74H,A
LCALLxs
调用显示程序
・************************************************
・*****************J
数字钟按键程序*****************
调时钟按键**********
NET1:
JBP0.0,NET2
LCALLYS10MS
CLRp2.2
JNBP0.0,$
SETBp2.2
CLRP1.1
SETBP1.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
$
SETB
R7
TR0
TR1
SJMP
NET4
NET4
LCALLYS10ms
#1,NET5
NET3:
NET4:
秒闪烁
SSH
NET5:
NET9
MSH
#2;
分闪烁
NET6
NET6:
HSH
#3;
时闪烁
NET7
NET7:
MOV
WSH
#0
星期闪烁
NET8:
XS
・******************J
调整时间加1键*****************
NET9:
P0.2
NET115;
数字钟调整时间键
YS10ms
NET13
P1.2
#1
NET10
P1.3
YS200ms
sec
秒单元加
1
sec
#60
NET8;
不等60时跳转显示,等
60时将秒单元清零
LJMP
NET115:
NET15
NET10:
#2
NET11
min
分单元加
min
60时将分单元清零
NET11:
#3
NET12
hour
时单元加
hour
#24
不等24时跳转显示,等
24时将时单元清零
NET12:
P0.3,NET19
P2.2
R7,#1
NET16
DEC
sec;
秒单元减
A,sec
A,#0FFH
NET14;
sec,#59
NET14
R7,#2
NET17
min;
分单元减
A,min
min,#59
R7,#3
NET18
hour;
时单元减
NET15:
NET16:
NET17:
调整时间减1键**********************
A,hour
A,#0FFH,NET14;
不等24时跳转显示
hour,#23
NET18:
week;
星期单元减1
A,week
A,#00,NET14;
不等7时跳转显示,等
week,#07
NET19:
DSH
・********************J
定时程序*********************
DSH:
R2,#00
等24时将时单元清零
7时将星期单元清1
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个打铃点
NTB:
CJNER2,#03,NTC;
第3个打铃点
NTC:
CJNER2,#04,NTD;
第4个打铃点
NTD:
CJNER2,#05,NTE;
第5个打铃点
NTE:
CJNER2,#06,NTF;
第6个打铃点
NTF:
CJNER2,#07,NTG;
第7个打铃点
NTG:
CJNER2,#08,NTH
第8个打铃点
NTH:
CJNER2,#09,NTI
第9个打铃点
NTI:
CJNER2,#10,NTJ
第10个打铃点
NTJ:
CJNER2,#11,NTK
第11个打铃点
NTK:
CJNER2,#12,NTL
第12个打铃点
NTL:
CJNER2,#13,NTM
第13个打铃点
NTM:
CJNER2,#14,NTN
第14个打铃点
NTN:
CJNER2,#15,NTO
第15个打铃点
NTO:
CJNER2,#16,NTP
第16个打铃点
NTP:
CJNER2,#17,NTQ
第17个打铃点
NTQ:
CJNER2,#18,NTR
第18个打铃点
NTR:
CJNER2,#19,NTS
第19个打铃点
NTS:
CJNER2,#20,NT1
第20个打铃点
NT1:
LJMPNET1
・****************
打铃点存储子程序
********************
CUN:
MOV@R1,hour
INCR1
MOV@R1,min
・********************
时钟中断程序
*********************
TOINT:
PUSH
PSW
ACC
保护现场
TH0
#0D8H
TL0
#0F0H
重新赋计数初值
m_sec
毫秒单元加1
m_sec
#100
NEXT1
秒单元加1
J
week
week
#08
#01
POP
恢复现场
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:
CJNER0,#58H,FH
LOP3:
LCALLXS
POPPSW
POPACC
XS:
将秒送A
B
#10
DIV
AB
60H
B
秒的个位
61H
A
秒的十位
将分送A
62H
分的个位
63H
分的十位
hour;
将时送A
64H
时的个位
65H
时的十位
星期的送A
66H
星期的个位
LCP:
R1
#60H
R5
#7
DPTR
#TAB
BK:
@R1
MOVC
@A+DPTR
SBUF
TI
DJNZ
BK
RET
TAB:
DB11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H
・*************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 控制 电铃 控制器
![提示](https://static.bdocx.com/images/bang_tan.gif)