基于51单片机的自动打铃机设计.docx

上传人:b****1 文档编号:14057589 上传时间:2023-06-20 格式:DOCX 页数:20 大小:342.96KB
下载 相关 举报
基于51单片机的自动打铃机设计.docx_第1页
第1页 / 共20页
基于51单片机的自动打铃机设计.docx_第2页
第2页 / 共20页
基于51单片机的自动打铃机设计.docx_第3页
第3页 / 共20页
基于51单片机的自动打铃机设计.docx_第4页
第4页 / 共20页
基于51单片机的自动打铃机设计.docx_第5页
第5页 / 共20页
基于51单片机的自动打铃机设计.docx_第6页
第6页 / 共20页
基于51单片机的自动打铃机设计.docx_第7页
第7页 / 共20页
基于51单片机的自动打铃机设计.docx_第8页
第8页 / 共20页
基于51单片机的自动打铃机设计.docx_第9页
第9页 / 共20页
基于51单片机的自动打铃机设计.docx_第10页
第10页 / 共20页
基于51单片机的自动打铃机设计.docx_第11页
第11页 / 共20页
基于51单片机的自动打铃机设计.docx_第12页
第12页 / 共20页
基于51单片机的自动打铃机设计.docx_第13页
第13页 / 共20页
基于51单片机的自动打铃机设计.docx_第14页
第14页 / 共20页
基于51单片机的自动打铃机设计.docx_第15页
第15页 / 共20页
基于51单片机的自动打铃机设计.docx_第16页
第16页 / 共20页
基于51单片机的自动打铃机设计.docx_第17页
第17页 / 共20页
基于51单片机的自动打铃机设计.docx_第18页
第18页 / 共20页
基于51单片机的自动打铃机设计.docx_第19页
第19页 / 共20页
基于51单片机的自动打铃机设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

基于51单片机的自动打铃机设计.docx

《基于51单片机的自动打铃机设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的自动打铃机设计.docx(20页珍藏版)》请在冰点文库上搜索。

基于51单片机的自动打铃机设计.docx

基于51单片机的自动打铃机设计

单片机系统

课程设计

课程设计名称:

自动打铃器设计

专业班级:

XXXX

学生姓名:

XXXX

学号:

XXXXXXXX

指导教师:

XXX

课程设计地点:

XXXX

课程设计时间:

XXXXXXXXXX

单片机系统课程设计任务书

学生姓名

专业班级

自动化

学号

题目

自动打铃器设计

课题性质

工程设计

课题来源

老师拟定

指导老师

XXX

主要内容

(参数)

基于89c51单片机可以实现以下功能:

1、根据自己需要设计打铃时间,到定时时间自动打铃。

2、8位LED动态显示,实现表24小时制计时和显示功能。

3、能设置当前时间

4、可以随时更改打铃时间

任务要求

(进度)

1、查阅有关资料,熟悉设计任务要求,确定设计方案,大概需要1——2天。

2、按照确定的方案设计单元电路,画出单元电路图,元件及元件参数的选择有依据,大概需要1——2天的时间

3、软件设计及编写程序,大概需要1——2天的时间。

4、实验室调试,需要1——2天。

5、撰写课程设计报告。

要求内容完整、图表清晰、文理流畅、格式规范、方案合理设计正确。

主要参考

资料

[1]张迎新.单片机原理、应用及接口技术[M].北京:

国防工业出版社,2004

[2]李光飞.单片机课程设计实例[M].北京:

北京航天航空大学出版社,2004

[3]周润景,袁伟婷,景晓松.Proteus在MCS-51系统中的应用[M].北京:

电子工业出版社,2006

[4]邓兴成.单片机原理与实践指导.北京:

机械工业出版社,2010

[5]阎石.数字电子技术基础.北京:

高等教育出版社,2009

审查意见

系(教研室)主任签字:

年月日

目录

1概述……………………………………………………………………………5

1.1研究背景…………………………………………………………………5

1.2设计思想及基本功能…………………………………………………………..…5

2总体设计………………………………………………………………………5

2.1模块设计…………………………………………………………………5

2.2程序流程图………………………………………………………………5

3硬件单元设计…………………………………………………………………6

3.1电路设计总原理图………………………………………………………7

3.2各模块电路设计…………………………………………………………7

3.2.1键盘扫描模块…………………………………………………………7

3.2.2时钟与复位模块………………………………………………………8

3.2.3显示模块………………………………………………………………8

3.2.4响铃模块………………………………………………………………9

4软件设计………………………………………………………………………9

4.1键盘扫描程序……………………………………………………………9

4.2主程序…………………………………………………………………10

4.3显示程序………………………………………………………………13

4.4响铃程序………………………………………………………………14

5总结…………………………………………………………………………17

6参考文献……………………………………………………………………17

7附录……………………………………………………………………………18

 

1概述

1.1研究背景

现代社会的发展越来越快,人们的时间观念也越来越强。

所以有准确的时间提醒是很重要的,比如学校工厂等都要有个准时的时间来提醒人们。

所以打铃器运用很广泛。

我们可以利用所学单片机知识制作一个自动打铃器可以实现学校到点打铃的工作。

1.2设计思想及基本功能

利用51单片机设计以实现以下功能

1根据自己需要设计打铃时间,到定时时间自动打铃。

28位LED动态显示,实现表24小时制计时和显示功能。

3能设置当前时间。

4可以随时更改打铃时间。

2总体设计

2.1模块设计

教学用电子打铃器主要由80C51单片机、键盘扫描模块、时钟和复位模块、打铃器模块、八段数码管显示模块等组成。

运用汇编语言来控制单片机80C51来实现、动态数码显示等功能。

且本设计中的80C51单片机是整个工作过程的核心,是整个设计灵魂,它控制了脉冲时序的产生,显示信号的发送控制显示LED的选择。

所用到的芯片元器件:

80C51单片机,3个按键,1个蜂鸣器,4个八段LED数码管

80C51是一种带4K字节存储器(的低电压、高性能CMOS8位微处理器,俗称单片机。

2.2程序流程图

 

 

第一个图是主程序流程图第二的图是定时中断流程图

3硬件单元设计

3.1电路设计总原理图

3.2各模块设计

3.2.1键盘扫描模块

利用四个按键进行校时,按键K1是调整时间选择,按键K2进行小时加1,按键K3进行分钟加1,按键K4则调整时间结束返回主程序,K1接P1.1,K2接P1.2,K3接P1.3,K4接P1.4。

3.2.2时钟和复位模块

3.2.3显示模块

根据设计要求系统需要4个共阳LED,数码管显示电路使用80C51的动态显示功能。

4个LED八段(a、b、c、d、e、f、g、dp),数码管分别显示:

“时”、“分”,用二极管的“点”作为时、分的间隔。

该系统采用共阳极数码管,对于共阳极数码管,其公共端必须接高电平。

当打铃的时候四个数码管中前三个不显示数据,最后一个显示课程节数。

3.2.4响铃模块

打铃电路(接P3.7):

当前时间与程序设定时间相同时,P3.7端输出高电平的方波,即打铃。

每次响铃时间是60S。

4软件设计

中断服务程序通过定时器T0(工作方式为1),实现一日的24小时,首先得初始化,正常工作,主函数调用数码管显示程序显示当前时间,然后调用打铃对比函数,若当前时间与系统设定打铃时间相同是,响应打铃程序。

当需要对时间校正时,可以通过按键扫描处理程序进行校时。

//////////程序初始化//////////

ALBEQU20H//打铃设置标志

BUFEQU30H//30-33h连续四个字节存放显示器数据

HOUREQU34H//存放小时变量

MINEQU35H//存放分钟变量

SECEQU36H//存放秒钟变量

DEDAEQU37H//存放5ms计数值

HHEQU38H//打铃设置小时变量

MMEQU39H//打铃设置分钟变量

;按键输入引脚

K1EQUP1.1

K2EQUP1.2

K3EQUP1.3

K4EQUP1.4

;蜂鸣器和指示灯引脚定义

SPKEQUP1.5

WLEDEQUP1.0//工作指示灯引脚定义

ORG00H

lJMPMAIN

ORG0BH

lJMPT0_SRV

/////////////主程序入口///////////

MAIN:

CLRALB//清除闹铃标志

MOVA,#80H//加载显示器初始值数据`

MOVP0,A

ACALLBZ

;ACALLBZ

ACALLLED_BL

ACALLDELAY1;定时器T0的初始化

ACALLINIT

LOOP:

ACALLCONV

ACALLDISP

LOOP2:

ACALLCONV

ACALLLD1//查询打铃时间

MOVA,MIN

CJNEA,#10,AGN

JMPLOOP2

AGN:

CJNEA,#55,LOOP3

JMPLOOP2

LOOP3:

JBK1,M1

JNBK1,$

ACALLSETTIME

M1:

JMPLOOP

jmploop

ACALLDISP

LD1:

MOVA,HOUR

CLRC

SUBBA,#8

MOVDPTR,#TALE

MOVCA,@A+DPTR

CJNEA,HOUR,LL

MOVA,MIN

CJNEA,#10,L

ACALLBZ

MOVA,HOUR

CLRC

SUBBA,#8

MOVDPTR,#TABLE2

MOVCA,@A+DPTR

MOVP0,A

ACALLDELAY

L:

CJNEA,#55,LL

ACALLBZ

MOVA,HOUR

CLRC

SUBBA,#8

MOVDPTR,#TABLE2

MOVCA,@A+DPTR

MOVP0,A

ACALLDELAY

LL:

RET

TALE:

DB08H,09H,0AH,0BH

TABLE2:

DB0F9H,0A4H,0B0H,99H

;中断服务程序

T0_SRV:

//定时器T0计时中断程序每隔5ms中断一次

PUSHACC

MOVTL0,#LOW(65536-5000)//直接带公式法设置T0的初值,此方法为简便方法

MOVTH0,#HIGH(65536-5000)

//MOVTL0,#(8192-5000)MOD32//重加载初始值

//MOVTH0,#(8192-50000)/32

INCDEDA

;秒输出

MOVA,DEDA

CJNEA,#200,TT1

MOVDEDA,#0

CPLWLED//LED灯亮灭变换

INCSEC

MOVA,SEC

CJNEA,#60,TT1//是否1分钟到了

;分输出

INCMIN//分计数加一

MOVSEC,#0//秒计数清零

MOVA,MIN

CJNEA,#60,TT1//看是否一小时到了

;时输出

INCHOUR

MOVMIN,#0

MOVA,HOUR

CJNEA,#24,TT1

MOVSEC,#0

MOVMIN,#0

MOVHOUR,#0

TT1:

POPACC

RETI

////////////////////实现显示功能的子程序/////////////////////

CONV:

;转换小时数据//通过DIV指令进行十进制计时处理,并将中断程序处理后的数据分别存放入数码管显示内存中

//其中BUF,BUF+1存放小时;BUF+2,BUF+3存放分钟、

MOVA,HOUR

MOVB,#10

DIVAB//将HOUR内的值转换为十位和个位分别表示的十进制数字,便于用两位数码管显示出来小时值

MOVDPTR,#TABLE//DPTR指针指向表的首地址

MOVCA,@A+DPTR

MOVBUF,A

MOVA,B

MOVCA,@A+DPTR

MOVBUF+1,A

MOVA,MIN//开始转换分钟

MOVB,#10

DIVAB

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVBUF+2,A

MOVA,B

MOVCA,@A+DPTR

MOVBUF+3,A

RET

/////////////////扫描显示子程序///////////////////

//实际四个数码管是在轮流显示的,每一刻都只有一个数码管亮,利用人的视觉暂留来使人感觉是在同时显示

DISP:

MOVR0,#BUF//指向显示器缓冲区起始地址,即存入十位上小时地址

MOVR2,#4//扫描四次

MOVA,#00001000B//扫描初值,只是使p2.3口打开

S1:

MOVP2,A

MOVA,@R0

MOVP0,A

MOVA,P2

MOVR5,#2

ACALLDELAY//延时,以便显示字符稳定

;EX:

XXXX1011

RRA//A向右移动一位

INCR0//指向BUF+1

DJNZR2,S1//判断是否执行了四次扫描

RET

////////////设置打铃时间子程序//////////////////

SET_ATIME:

ACALLCONVA

NO:

ACALLDISP

;K2调整小时

JBK2,N1

JNBK2,$

INCHH

MOVA,HH

CJNEA,#24,N11

MOVHH,#0

N11:

ACALLCONVA

ACALLDISP

JMPNO

;K3调整分钟时间

N1:

JBK3,N2

JNBK3,$

INCMM

MOVA,MM

CJNEA,#60,N21

MOVMM,#0

N21:

ACALLCONVA//加载打铃时间数据

ACALLDISP

JMPNO

;K4设置完成

N2:

JBK1,NO

JNBK1,$

;设置完成

ACALLLED_BL

ACALLCONV//加载现在时间数据

CPLALB//此处为判断是否启用闹铃

JNBALB,M31

ACALLBZ

ACALLBZ

ACALLBZ//连鸣三声为启用闹铃

JMPLOOP

M31:

ACALLBZ//闹铃停止,发出一声

JMPLOOP

RET

//////////////执行闹铃时间处理子程序//////////////

TIME_OUT:

X1:

ACALLLED_BL

ACALLBZ

JBK4,X1

JNBK4,$

ACALLLED_BL

CLRALB//清除闹铃位

RET

////////////检查打铃时间子程序////////////////

TIME_PRO:

JBALB,TI3

RET

TI3:

MOVA,HOUR

MOVB,HH

CJNEA,B,BK

MOVA,MIN

MOVB,MM

CJNEA,B,BK

ACALLTIME_OUT//执行检查时间处理

BK:

RET

TAL:

DB0C6H,80H,90H,88H,83H

TAL1:

DB0F9H

END

5总结

刚拿到设计题目时,由于对设计相关知识的不熟悉,使得对此题目的无从入手,感觉挺难。

最后,在资料与同学的帮助下,对设计有了大概的了解,并在组员的合作下有了初步设计。

在接下来的两天里,不停的对设计进行修改完善,得出最终方案,并开始着手硬件与软件的同步设计。

伴随实物初成,对相关功能进行测试,再次修改设计软硬件,完善功能。

通过这次的课程设计,巩固了课本知识,加深了对单片机的了解。

最后,感谢同学的配合,感谢老师悉心的指导帮助!

 

6参考文献

[1]张迎新.单片机原理、应用及接口技术[M].北京:

国防工业出版社,2004

[2]李光飞.单片机课程设计实例[M].北京:

北京航天航空大学出版社,2004

[3]周润景,袁伟婷,景晓松.Proteus在MCS-51系统中的应用[M].北京:

电子工业出版社,2006

[4]邓兴成.单片机原理与实践指导.北京:

机械工业出版社,2010

[5]阎石.数字电子技术基础.北京:

高等教育出版社,2009

 

7附录系统原理图

 

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2