单片机课程设计项目系列电铃控制器Word文档格式.docx

上传人:b****3 文档编号:16424549 上传时间:2022-11-23 格式:DOCX 页数:24 大小:140.24KB
下载 相关 举报
单片机课程设计项目系列电铃控制器Word文档格式.docx_第1页
第1页 / 共24页
单片机课程设计项目系列电铃控制器Word文档格式.docx_第2页
第2页 / 共24页
单片机课程设计项目系列电铃控制器Word文档格式.docx_第3页
第3页 / 共24页
单片机课程设计项目系列电铃控制器Word文档格式.docx_第4页
第4页 / 共24页
单片机课程设计项目系列电铃控制器Word文档格式.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

单片机课程设计项目系列电铃控制器Word文档格式.docx

《单片机课程设计项目系列电铃控制器Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机课程设计项目系列电铃控制器Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。

单片机课程设计项目系列电铃控制器Word文档格式.docx

解除作息管理麻烦、改变人工打铃、人工控制电器落后现象,实行电铃周期性工作的自动化控制.同时设有数字显示器及控制系统对于设定时间具有掉电保护的功能,体积小,重量轻等优点。

非常适合学校、学校、机关及工矿企事业等场合使用。

2总体设计方案

2.1设计思路

图1设计思路框图

电铃控制器设计要求具有显示星期、时、分和秒以及设定时间和调整时间等功能,这些基本要求都可以通过软件编程实现。

要实现打铃提示,就需要设置打铃提示电路,信号输入电路采用按钮开关。

同时为了方便,在掉电的情况下,为了保护已存储的打铃点,可设置掉电保护电路,减少人重新设置打铃点的麻烦。

设计思路框图如图1所示。

2.2方案论证

方案一:

电铃控制器是以AT89S51为核心的单片机组成。

但它的辅助电路分别采用,信号输入电路采用4×

4键盘,但是这种方法软件编程比较难。

显示电路采用动态显示,这种方法设计电路简单,同样软件编程比较难。

不采用单片机内部时钟,而采用其他时钟芯片,这种方法产生的时钟比较准确,但是成本高,而且还要另外编写时钟程序。

打铃电路电路可以采用蜂鸣器代替电铃,当时间到达打铃时间点时,使单片机发出控制信号,控制信号去触发继电器工作,从而接通打铃电路使蜂鸣器发出声音,它是由三极管组成的基本放大电路来驱动。

这种方法虽然使信号和打铃电路隔离,但是电路结构复杂、成本高,而且时间过长可能继电器失灵不能工作。

方案二:

但它的辅助电路分别采用,信号输入电路采用按钮开关,可以把按钮开关设置成多功能,这样可以节省开关数目。

显示电路采用串行静态显示,这种软件编程比较简单。

采用单片机内部时钟,这种方法产生的时钟还可以,但是成本低,而且编写时钟程序简单。

打铃电路电路可以采用蜂鸣器代替电铃,当时间到达打铃时间点时,使单片机发出控制信号,可以直接驱动三极管组成的基本放大电路,使蜂鸣器发出声音。

与方案一相比不仅简单而且成本低。

因此我们选用方案二.

2.3设计方框图和流程图如图2所示

图2设计方框图和流程图

3设计原理分析

3.1打铃电路的设计

打铃电路由三极管组成的放大电路和蜂鸣器组成。

三极管选用8550PNP型,当单片机输出低电平时三极管导通,采用蜂鸣器代替电铃,从而驱动蜂鸣器发出声音,可以通过编程实现使蜂鸣器发出有节奏的声音。

当接通电源时P3.4口为高电平,三极管截止,打铃电路不能工作当按下复位开关时,输出为高电平,三极管截止,打铃电路不能工作。

当时间走到打铃时间点时,单片机输出低电平,则打铃电路开始工作。

而且响铃时间的长短可通过编程实现,在响铃的时候可以采用按钮实现暂停。

打铃电路的电路图如图3所示。

图3打铃电路

3.2显示驱动电路的设计

显示驱动电路采用串行动态显示电路,只使用单片机的两个串行口,就可以完成单片机的显示功能,。

它由7个74LS164移位记存器和7个LED数码管组成。

图4显示驱动电路

从单片机串口输出的信号先送到左边的移位寄存器(74LS164),由于移位脉冲的作用,使数据向右移,达到显示的目的。

移位寄存器74LS164还兼作数码管的驱动,显示驱动电路的电源采用5V直流电源经过三个IN4007的二极管降压,三个整流管D1——D3的作用是降低数码管的工作电压,增加其使用寿命,这种方法简单使用。

同时用三个发光二极管作为指示灯,用来指示不同的功能和操作,这样可以是各种操作和指示一目了然,而且哪一块功能出现错误,能够方便查找,指示电路将在信号输入电路中体现出来。

显示驱动电路的电路图如图4所示。

3.3掉电存储电路的设计

掉电存储单元的作用是在电源断开的时候,存储当前设定的时间和打铃时间信息。

AT24C02A是ATMEL公司的2KB字节的电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8脚的DIP封装,使用方便。

掉电存储电路的电路图如图5所示。

图中R1、R2是上拉电阻,其作用是减少AT24C02A的静态功耗,由于AT24C02A的数据线和地址线是复用的,采用串口的方式传送数据,所以只用两根线SCL(移位脉冲)和SDA(数据/地址)与单片机传送数据。

图5掉电存储电路

每当设定一次打铃时间,系统就自动调用存储程序,将打铃时间信息保存在芯片内;

当系统重新上电的时候,自动调用读存储器程序,将存储器内的打铃时间等信息,读到缓存单元中,供主程序使用。

3.4信号输入电路的设计

信号输入电路采用按钮开关控制。

将单片机的P2口接开关的一端,将开关的另一端接地。

单片机复位以后,P2口变为高电平,当按下按钮开关时,对应的P2口就变为低电平,给单片机送入信号,开始对应的功能。

S1为调时和定时键,S2为转换键,S3为返回键,S4为加一键,S5为减一键,S6为确定键。

其他按键如果想设置其它功能可以使用。

通过软件编程可以使按钮开关实现多功能。

信号输入电路的电路图如图6所示。

图6信号输入电路

4结束语

这次课程设计基本达到了设计的要求,但是明显存在着问题,由于在编程方面的问题,使有的功能还没能实现。

为此,多次修改了程序,希望能够解决问题,遗憾的是问题仍然没有得到彻底解决。

这次单片机的综合实验我们学到了有用的知识,更重要的是学会了程序出问题时调试的方法,再一次熟悉了编程,学到了程序出问题后怎样去解决的基本方法。

参考文献

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

高等教育出版社,1989

[2]蔡振江.单片机原理及应用.北京:

电子工业出版社,2007年2月,第1版

[3]童诗白,华成英.模拟电子技术基础.北京:

高等教育出版社,2001年,第3版

[4]李朝青.单片机原理及接口技术[M].北京:

北京航空大学出版社,2005年,第3版

[5]万光毅.单片机实验与实践教程.北京:

北京航空航天大学出版社,2006年,第2版

附录一

附录二

;

-------------程序初始化-------------

SBSEQU29H

SBMEQU2AH

SBHEQU2BH;

定义29H,2AH,2BH为显示缓冲区

MS100EQU2CH

SEQU2DH

MEQU2EH

HEQU2FH;

将2C-2Fh分别定义为,100毫秒,秒位,

;

分位,小时位

MSBITP2.0;

将p2.0定义为主菜单键

OKBITP2.1;

将p2.1定义为确定键

RESTBITP2.5;

将p2.5定义为返回键

ADBITP2.3;

将p2.3定义为前进键

SUBBITP2.4;

将p2.4定义为后退键

FMQBITP3.4;

将P3.4定义为蜂鸣器

HONGBITP0.1;

将p0.1定义为红色LED

LVBITP0.2;

将p0.2定义为绿LED

KGBIT08H;

08H位定义为闹铃开关

**********主程序***********

ORG0000H

SJMPMAIN

ORG0BH

AJMPZHD;

跳转到中断程序

ORG1BH

AJMPDL

ORG30H

MAIN:

SETBEA

SETBET0

SETBET1

MOVTMOD,#11H

MOVTH0,#3CH

MOVTL0,#0B0H

MOVTH1,#3CH

MOVTL1,#0B0H

CLRA

MOVR0,#20H

MOVR2,#59H

BACK1:

MOV@R0,A

INCR0

DJNZR2,BACK1

MOVR2,#23

MOVR0,#32H

MOV04H,#01

BACK2:

MOV@R0,04H

MOVA,R0

ADDA,#03

MOVR0,A

INC04H

DJNZR2,BACK2

MOVR1,A

MOVR2,A

MOVR3,A

MOVR4,A

MOVR5,A

MOV2FH,#12

mov2eh,#00

mov2dh,#00

mov30h,#01

SETBTR0

CLRLV

**********按键程序*********

START:

ACALLXSH

JBMS,NTJL

ACALLT12MS

CLRFMQ

JNBMS,$

SETBFMQ

INCR2

SETB01;

01H位是判断菜单键是否按下标志

CLR09H;

09H是响铃控制位

CLRHONG

SETBLV

CJNER2,#025,NT1;

判断M键按下次数

MOVR2,#00

NT1:

CJNER2,#00,NT1A

CLR01H

CLR04H

CLR05H

CLR06H

SETB09H

MOVR3,#00

MOVR4,#00

SETBHONG

ACALLXSH;

返回

NT1A:

CJNER2,#01,NT1B

SETB00H

MOVR4,#00;

使时间闪烁显示

SETB04H

NT1B:

CJNER2,#02,NT1C

CLR00H

MOVR4,#01

ACALLQHUAN1

使第1预存时间闪烁显示

NT1C:

CJNER2,#03,NT1D

MOVR4,#02

ACALLQHUAN1;

使第2预存时间闪烁显示

NT1D:

CJNER2,#04,NT1E

MOVR4,#03

使第3预存时间闪烁显示

NT1E:

CJNER2,#05,NT1F

MOVR4,#04

使第4预存时间闪烁显示

NT1F:

CJNER2,#06,NT1G

MOVR4,#05

使第5预存时间闪烁显示

NT1G:

CJNER2,#07,NT1H

使第6预存时间闪烁显示

NTJL:

SJMPNT2

NT1H:

CJNER2,#08,NT1I

MOVR4,#07

使第7预存时间闪烁显示

NT1I:

CJNER2,#09,NT1J

MOVR4,#08

使第8预存时间闪烁显示

NT1J:

CJNER2,#10,NT1K

MOVR4,#09

使第9预存时间闪烁显示

NT1K:

CJNER2,#11,NT1L

MOVR4,#10

使第10预存时间闪烁显示

NT1L:

CJNER2,#12,NT1M

MOVR4,#11

使第11预存时间闪烁显示

NT1M:

CJNER2,#13,NT1N

MOVR4,#12

使第12预存时间闪烁显示

NT1N:

CJNER2,#14,NT1O

MOVR4,#13

使第13预存时间闪烁显示

NT1O:

CJNER2,#15,NT1P

MOVR4,#14

使第14预存时间闪烁显示

NT1P:

CJNER2,#16,NT1Q

MOVR4,#15

使第15预存时间闪烁显示

NT1Q:

CJNER2,#17,NT1R

MOVR4,#16

使第16预存时间闪烁显示

NT1R:

CJNER2,#18,NT1S

MOVR4,#17

使第17预存时间闪烁显示

NT1S:

CJNER2,#19,NT1T

MOVR4,#18

使第18预存时间闪烁显示

NT1T:

CJNER2,#20,NT1V

MOVR4,#19

使第19预存时间闪烁显示

NT1V:

CJNER2,#21,NT1W

MOVR4,#20

使第20预存时间闪烁显示

NT1W:

CJNER2,#22,NT2

MOVR4,#21

使第21预存时间闪烁显示

NT2:

JBOK,NT3

JNBOK,$

JBHONG,NT3

JNB00H,NT2B;

00H位是判断时钟时间或定时时间标志

INCR3

CJNER3,#03,NT2AA

NT2AA:

CJNER3,#00,NT2AB

NT2AB:

CJNER3,#01,NT2AC

SETB05H

NT2AC:

CJNER3,#02,NT3

SETB06H

SJMPNT3

NT2B:

CPL04H

CPL05H

闪烁显示位改变

NT3:

JBAD,NT4

JBSUB,GONEXT

CPL09H

GONEXT:

JNB01H,NT4;

ACALLT200MS

MOVR0,18H

JB04H,A1A

04H位为1则最后两位加1

JB05H,A1F;

05H位为1则中间两位加1

JB06H,A1S;

06H位为1则最前两位加1

A1S:

INC@R0

CJNE@R0,#24,NT4

MOV@R0,#00

SJMPNT4

A1F:

JB00H,SK601

SK601:

CJNE@R0,#60,NT4

A1A:

使闪烁显示位加一

NT4:

JBSUB,NT5

JNB01H,NT5

JB04H,S2A;

04H位为1则最后两位减1

JB05H,S2F;

05H位为1则中间两位减1

JB06H,S2S;

06H位为1则最前两位减1

S2S:

DEC@R0

CJNE@R0,#0FFH,NT5

MOV@R0,#23

SJMPNT5

S2F:

JB00,SK602

SK602:

MOV@R0,#59

S2A:

NT5:

JBREST,NT6

JNBREST,$

显示时间

NT6:

JBKG,BACK3;

kg为一时响铃

CLRTR1

LJMPSTART

BACK3:

JNB09H,NO

SETBTR1

NO:

*********闪烁切换子程序*******

qhuan1:

RET

*********中断程序***********

ZHD:

PUSHACC

PUSHPSW

SETBRS1

SETBRS0

INCR5

CJNER5,#08,NEXT1

NEXT:

MOVR5,#00

CPL03H

NEXT1:

INCMS100

MOVA,MS100

CJNEA,#20,RETN3

MOVMS100,#0

INCS

MOVA,S

CJNEA,#60,RETN3

MOVS,#00

INCM

MOVA,M

MOVM,#0

INCH

MOVA,H

CJNEA,#24,RETN3

MOVH,#0

inc30h

mova,30h

cjnea,#08,retn3

**********打铃判断*********

RETN3:

CLRRS0

MOV15H,#23

MOVR1,#31H

BACKB:

MOVA,@R1

CJNEA,SBH,SKIP1;

小时相等时跳转到“分”比较程序

SJMPSKIP2

GO2:

INCR1

SKIP1:

DJNZ15H,BACKB

SJMPNO2

SKIP2:

DECR1

CJNEA,SBM,GO2

SETBKG

SJMPRETN2

NO2:

CLRKG

RETN2:

POPPSW

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

RETN:

POPACC

RETI

******闹铃中断程序***********

DL:

MOVTH1,#00H

MOVTL1,#024H

INCR7

CJNER7,#08,GODL1

MOVR7,#07

INCR6

CJNER6,#07,GODL2

MOVR7,#00

MOVR6,#00

SJMPGO

GODL2:

GODL1:

CPLFMQ

GO:

*********12MS延时子程序*********

T12MS:

MOVR6,#18H

TM1A:

MOVR5,#0FFH

TM1B:

DJNZR5,TM1B

DJNZR6,TM1A

********256MS延时子程序******

T200MS:

MOVR6,#0ffH

TM2A:

TM2B:

DJNZR5,TM2B

DJNZ

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

当前位置:首页 > 医药卫生 > 预防医学

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

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