基于单片机控制的电铃控制器 石Word文档下载推荐.docx
- 文档编号:6729491
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:24
- 大小:161.81KB
基于单片机控制的电铃控制器 石Word文档下载推荐.docx
《基于单片机控制的电铃控制器 石Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机控制的电铃控制器 石Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。
74LS164为TTL单向8位移位寄存器,串行输入,并行输出。
其中A,B(第1,2脚)为串行数据输入端,2个引脚按逻辑与运算规律输入信号,共一个输入信号时可并接。
CP(第8脚)为时钟输入端,可连接到串行口的TXD端,且具有清除端。
其中,Q0—Q7并行输出图3.674LS164的引脚端。
A,B串行输入端,MR(9脚)为复位端,当R=0时,移位寄存器各位复0,只有当R=1时,时钟脉冲才起作用。
引脚说明:
(1)MR(9脚):
高电平有效,低电平时使所有输出(Q0~Q7)为低电平
(2)CP(8脚):
上升延输出移位,其余状态保持
(3)A(1脚):
B(2脚)输入:
逻辑与关系,即全高为高,见低为低
(4)74LS164功能及电气特性:
串行输入带锁存。
时钟输入,串行输入带缓冲。
异步清除。
表1是74HC164的功能表:
表174HC164的功能表
输入
输出
CLR
CLK
A
B
QA
QB
……
QH
L
X
H
QA0
QB0
QH0
↑
QAn
QGn
3.3键盘控制电路
采用的是独立式按键,即直接用I/O线构成的单个按键电路,并且每个按键的工作不会影响其他I/O口线的状态。
它有七个按键,每个按键都是一个常开开关。
在这七个按键中,每个按键的分工各不相同,它们分别作为确定键,菜单键,加键,减键,定铃键,以及返回键等。
当任何一个按键按下时,与之相连的输入数据线即被清零,而平时该线为高电平。
要判别是否有按键按下,用单片机的位处理命令非常方便。
按键工作原理:
按键输入均采用低电平有效,当某键被按下,与该按键连接的端口引脚即为低电平;
否则该端口引脚为高电平。
独立式按键的软件采用查询式方式(免去抖处理)。
先逐位查询每条I/O线的输入状态。
如某一个I/O线输入为低电平,则可确认该口所对应的按键已按下,然后再转向该键的功能处理程序,且与该按键相对应的指示灯也会亮以示该按键正常工作。
本电路中I/O口为89S51的P1口。
下面是键盘控制电路图:
图5键盘控制电路
3.4发光管指示电路
本设计中采用7只发光二极管构成指示电路,它们分别在电路进行时间、打铃的时间以及打铃的定时点进行调整时发光,使人们能够很直观的看到当前所操作的是哪一部分,为操作带来了便利,降低了使用难度。
下面是它的电路图:
图6发光管指示电路
3.5响铃电路
P0.2端口接晶体管基极输入端,当P0.2输出高电平时,晶体管导通,中间继电器通电使得压电蜂鸣器两端获得+5V的电压而蜂鸣,并且继电器开关K闭合使电铃打铃;
当P0.2输出低电平时,三极管截止,中间继电器断开使得压电蜂鸣器无提供电压而停止发音,此时电铃也不响。
三极管8550在电路中起驱动作用,把电路中的信号放大以起到驱动蜂鸣器发声的作用。
电路如图7所示。
图7响铃电路
3.6掉电存储电路
掉电存储单元的作用是在电源断开的时候,存储当前设定的信息。
AT24C02是ATMEL公司的2KB字节的电可擦除存储芯片,由于AT24C02的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。
电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。
其电路如图8:
图8掉电存储电路原理图
图中R18、R19是上拉电阻,其作用是减少AT24C02的静态功耗。
每当设定一次信息,系统就自动调用存储程序,将信息保存在芯片内;
当系统重新上电的时候,自动调用读存储器程序,将存储器内的信息,读到缓存单元中,供主程序使用。
4总结与体会
通过这次课程设计使我更加体会到理论知识与动手能力相结合的重要性,而且设计过程中使我懂得在设计程序之前,务必要对所用单片机的内部结构有一个系统的了解,知道该单片机片内有哪些资源;
懂得设计的关键是要有一个清晰的思路和一个完整的软件流程图。
在设计程序时,不能妄想一次就将整个程序设计好,“反复修改,不断改进”是程序设计的必经之路。
要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。
在实习过程中遇到了很多的问题,通过老师的指导以及与同学们的学术和思想交流,不仅使我们的问题迎刃而解还使我们在共同进步的同时增进友谊。
同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
参考文献:
[1]张毅刚彭喜源谭晓昀.MCS—51单片机应用设计[M].哈尔滨:
哈尔滨工业大学出版社,1997
[2]杨将新李华军刘东俊.单片机程序设计及应用[M].北京:
电子工业出版社,2006
[3]孟凤果曹振军.单片机应用自学通[M].北京:
中国电力出版社,2005
[4]李朝青.单片机原理及接口技术[M].北京:
北京航空航天大学出版社,1997
[5]汪道辉.单片机系统设计与实践[M].北京:
附录一
总体电路图
附录二
ORG0000H
LJMPMAIN
ORG000BH
LJMPTOINT
ORG001BH
LJMPDLBJ
;
**********主程序**********
ORG30H
MAIN:
MOVIE,#8AH;
开T0,T1中断
MOVTMOD,#11H;
定时器方式1
MOVTH0,#0D8H
MOVTL0,#0F0H
MOVTH1,#0D8H
MOVTL1,#0F0H;
初值
MOVA,#0
MOV59H,A
MOV60H,A
MOV61H,A
MOV62H,A
MOV63H,A
MOV64H,A
MOV65H,A
MOV66H,A;
清零
m_secEQU20H;
毫秒单元
secEQU21H;
秒单元
minEQU22H;
分单元
hourEQU23H;
时单元
weekEQU24H;
星期单元
SETBTR0
SETBTR1
CLRP0.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;
调用显示程序
**********************************
*****************数字钟按键程序*****
**********调时钟按键**********
NET1:
JBP1.0,NET2
LCALLYS10MS
JBP1.0,NET2
CLRp2.0
JNBP1.0,$
SETBP2.0
SETBP0.0
;
CLRP0.1
SETBP0.0
SETBTR0;
开中断
SETBTR1
;
CLRP0.0;
正常运行
SETBP0.1
SETBP0.2
SETBP0.3
MOV59H,#00
MOVR7,#00
****************调整时间部分切换键**
NET2:
MOVA,59H
CJNEA,#00H,NET3
JBP1.1,NET1;
数字钟调整时间部分切换键
LCALLYS10ms
JBP1.1,NET1
CLRTR0
CLRTR1
CLRP2.0
CLRP0.1
JNBP1.1,$
SETBP2.0
SETBP0.1
INC59H
INCR7
SJMPNET4
NET3:
JBP1.1,NET4
LCALLYS10ms
JBP1.1,NET4
CLRP2.0
CLRP0.1
JNBP1.1,$
SETBP0.1
INC59H
INCR7
NET4:
CJNER7,#1,NET5
LCALLSSH;
秒闪烁
SJMPNET9
NET5:
CJNER7,#2,NET6
LCALLMSH;
分闪烁
SJMPNET9
NET6:
CJNER7,#3,NET7
LCALLHSH;
时闪烁
NET7:
MOVR7,#0
LCALLWSH;
星期闪烁
NET8:
LCALLXS
NET111:
LJMPNET1
******************调整时间加1键****
NET9:
JBP1.2,NET115;
数字钟调整时间键
LCALLYS10ms
JBP1.2,NET13
CLRP0.2
JNBP1.2,$
CJNER7,#1,NET10
SETBP0.2
INCsec;
秒单元加1
MOVA,sec
CJNEA,#60,NET8;
不等60时跳转显示,等60时将秒单元清零
MOVsec,#00
LCALLXS
LJMPNET9
NET115:
LJMPNET15
NET10:
CJNER7,#2,NET11
INCmin;
分单元加1
MOVA,min
CJNEA,#60,NET8;
不等60时跳转显示,等60时将分单元清零
MOVmin,#00
LCALLXS
NET11:
CJNER7,#3,NET12
SETBP2.0
SETBP0.2
INChour;
时单元加1
MOVA,hour
CJNEA,#24,NET8;
不等24时跳转显示,等24时将时单元清零
MOVhour,#00
LJMPNET9
NET12:
SETBP2.0
SETBP0.2
INCweek;
星期单元加1
MOVA,week
CJNEA,#08,NET8;
不等7时跳转显示,等7时将星期单元清零
MOVweek,#01
LJMPNET9
NET13:
SJMPNET15
NET14:
****************调整时间减1键*******
NET15:
JBP1.3,NET19;
JBP1.3,NET19
CLRP0.3
JNBP1.3,$
CJNER7,#1,NET16
DECsec;
秒单元减1
CJNEA,#0FFH,NET14;
MOVsec,#59
LCALLNET14
NET16:
CJNER7,#2,NET17
SETBP0.3
DECmin;
分单元减1
MOVA,min
CJNEA,#0FFH,NET14;
MOVmin,#59
LCALLNET14
NET17:
CJNER7,#3,NET18
SETBP0.3
DEChour;
时单元减1
CJNEA,#0FFH,NET14;
MOVhour,#23
NET18:
DECweek;
星期单元减1
MOVA,week
CJNEA,#00,NET14;
不等7时跳转显示,等7时将星期单元清1
MOVweek,#7
LCALLNET14
NET19:
LJMPDSH
********************定时程序***
DSH:
MOVR2,#00
JBP1.4,NT1
CLRP2.0
CLRP0.4
SETBP0.4
INCR2
CJNER2,#01,NT1;
第1个打铃点
MOVR0,#30H
LCALLCUN
NT1:
LJMPNET111
****************打铃点存储子程序**
CUN:
MOV@R0,hour
INCR0
MOV@R0,min
RET
********************时钟中断程序**
TOINT:
PUSHPSW
PUSHACC;
保护现场
MOVTH0,#0D8H
MOVTL0,#0F0H;
重新赋计数初值
INCm_sec;
毫秒单元加1
MOVA,m_sec
CJNEA,#100,NEXT1
MOVm_sec,#00
INCsec;
MOVA,7FH
CJNEA,#0,XYG
INC7EH
MOVA,7EH
CJNEA,#65H,XYG
MOV7EH,#0
MOV7FH,#1
XYG:
CJNEA,#60,NEXT1
MOVsec,#00
INCmin;
MOVA,min
MOVmin,#00
INChour;
MOVA,hour
CJNEA,#24,NEXT1
MOVhour,#00
INCweek
MOVA,week
CJNEA,#08,NEXT1
MOVweek,#01
NEXT1:
POPACC
POPPSW;
恢复现场
RETI;
中断返回
********************打铃中断程序*******
DLBJ:
PUSHPSW
PUSHACC
MOVTL1,#0F0H
FH:
MOVA,@R0
CJNEA,hour,LOP3
CJNEA,min,LOP3
CLRP0.4;
铃声响
铃声停
MOV7FH,A
LJMPLOP2
POPPSW
RETI
LOP1:
LOP2:
CJNER0,#58H,FH
LOP3:
SETBP0.4
********************数字钟显示程序***
XS:
MOVA,sec;
将秒送A
MOVB,#10
DIVAB
MOV60H,B;
秒的个位
MOV61H,A;
秒的十位
MOVA,min;
将分送A
DIVAB
MOV62H,B;
分的个位
MOV63H,A;
分的十位
MOVA,hour;
将时送A
MOVB,#10
MOV64H,B;
时的个位
MOV65H,A;
时的十位
MOVA,week;
星期的送A
MOVB,#10
DIVAB
MOV66H,B;
星期的个位
LCP:
MOVR1,#60H
MOVR5,#7
MOVDPTR,#TAB
BK:
MOVA,@R1
MOVCA,@A+DPTR
MOVSBUF,A
JNBTI,$
CLRTI
INCR1
DJNZR5,BK
TAB:
DB11H,0D7H,32H,92H,0D4H,98H,18H,0D3H,10H,90H
*******************延时10ms子程序**
YS10ms:
MOVR2,#10H
TS1:
MOVR3,#0FFH
TS2:
DJNZR3,TS2
DJNZR2,TS1
*******************延时200ms子程序*
YS200ms:
MOVR3,#20
DL3:
MOVR4,#10H
DL2:
MOVR5,#0FFH
DL1:
DJNZR5,DL1
DJNZR4,DL2
DJNZR3,DL3
****************秒显示闪烁子程序***
SSH:
LCALLYS200ms
MOVA,#0FFH
MOVB,#0FFH
MOV60H,B
MOV61H,A
LCALLLCP
LCALLYS200ms
RET
****************分显示闪烁子程序*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于单片机控制的电铃控制器 基于 单片机 控制 电铃 控制器