单片机汇编程序电子闹钟.docx

上传人:b****7 文档编号:9075328 上传时间:2023-02-03 格式:DOCX 页数:16 大小:98.77KB
下载 相关 举报
单片机汇编程序电子闹钟.docx_第1页
第1页 / 共16页
单片机汇编程序电子闹钟.docx_第2页
第2页 / 共16页
单片机汇编程序电子闹钟.docx_第3页
第3页 / 共16页
单片机汇编程序电子闹钟.docx_第4页
第4页 / 共16页
单片机汇编程序电子闹钟.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

单片机汇编程序电子闹钟.docx

《单片机汇编程序电子闹钟.docx》由会员分享,可在线阅读,更多相关《单片机汇编程序电子闹钟.docx(16页珍藏版)》请在冰豆网上搜索。

单片机汇编程序电子闹钟.docx

单片机汇编程序电子闹钟

 

电子闹钟课程设计

 

摘要:

本课程设计主要是通过单片机系统,综合运用定时器、中断、数码显示等知识设计一个可定时的电子钟。

它包括系统总体方案及硬件设计,软件设计,Proteus软件仿真等部分。

硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器,I/O电路及有关外围电路等然后设计出系统的电路原理图。

合理的软件结构是设计出一个性能优良的单片机应用性系统软件的基础,因此必须充分重视。

编写完程序后在用Proteus软件仿真检查设计是否合理。

一.课程设计的概况

通过对51单片机的扩展,接键盘,显示器等相应的外围器件。

在LED显示器中分成静态显示和动态显示两类,在本设计中主要用了它的动态显示功能,动态显示利用了人视觉的短暂停留,在数据的传输中是一个一个传输的,且先传输低位。

键盘是由若干个按键组成的开关矩阵,是一种廉价的输入设备。

键盘通常包括有数字键,字母键以及一些功能键。

操作人员可以通过对键盘向计算机输入数据,地址,指令或其他的控制命令,实现简单的人机对话。

这里采用非编码式键盘。

通过51单片机的P1口扩展出独立连接式键盘。

外围扩展复位,时钟电路,利用软件源程序代码实现相应的功能。

二.课程设计实现的功能:

1.能显示时时-分分-秒秒。

2.能够设定定时时间,修改定时时间。

3.定时时间到能发出警报声或者启动继电器,从而控制电器的起停。

三.设计方案

使用是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合。

本系统采用单片机AT89C51作为本设计的核心元件,利用7段共阴LED作为显示器件。

接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间电器的起停时间到,从而控制电器的起停。

电路由下列部分组成:

时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89C51单片机。

 

系统框图:

 

四.硬件设计

1.单片机AT89C51

AT89C51是一个低电压,高性能CMOS型8位单片机,片内含4KB的可反复擦写的Flash只读程序存储器(ROM)和128B的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。

引脚使用说明:

I/O端口的编程实际上就是根据应用电路的具体功能和要求对I/O寄存器进行编程。

具体步骤如下:

l)根据实际电路的要求,选择要使用哪些I/O端口。

2)初始化端口的数据输出寄存器,应避免端口作为输出时的开始阶段出现不确定状态,影响外围电路正常工作。

3)根据外围电路功能,确定FO端口的方向,初始化端口的数据方向寄存器。

对于用作输入的端口可以不考虑方向初始化,因为FO的复位缺省值为输入。

4)用作输入的FO管脚,如需上拉,再通过输入上拉使能寄存器为其内部配置上拉电阻。

5)最后对I/O端口进行输出(写数据输出寄存器)和输入(读端口)编程,完成对外围电路的相应功能。

几个特殊管脚:

XTAL1:

反向振荡放大器的输入及内部时钟工作电路的输入。

  XTAL2:

来自反向振荡器的输出。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平。

2.时钟电路

单片机的时钟产生方法有两种:

内部时钟方式和外部时钟方式。

本系统中AT89C51单片机采用内部时钟方式。

最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。

振荡晶体可在1.2MHz~12MHz之间。

电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF~100pF之间取值。

时钟电路图如下:

 

3.数码管显示电路

单片机中通常使用7段LED,LED是发光二极管显示器的缩写。

LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。

LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。

LED显示器有多种形式,在单片机系统中使用最多的是七段数码显示器。

LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种,如下图所示引脚和其内部结构:

 

五.软件设计

 

1.设计流程图

 

2.程序模块ORG0000H

LJMPMAIN

ORG000BH

LJMPTIME

//主程序部分

ORG0100H

MAIN:

MOVSP,#50H

MOV20H,#00H;秒钟 BIN

MOV21H,#00H;分钟 BIN

MOV22H,#00H;小时 BIN

MOV23H,#01H

MOV24H,#01H

MOV25H,#00H

MOV30H,#00H

MOV31H,#00H

MOV32H,#00H

MOV33H,#00H

MOV34H,#00H

MOV35H,#00H

MOV36H,#01H

MOV37H,#00H

MOV38H,#01H

MOV39H,#00H

MOVTMOD,#01H;16位计数器

MOVTH0,#03CH;赋计数初值

MOVTL0,#0B0H

MOVIE,#10000111B

SETBTR0;T0启动计数

MOVR2,#14H

MOVP2,#0FFH

LOOP:

LCALLTIMEPRO

LCALLDISPLAY1

JBP1.1,M1

LCALLSETTIME;调用设定时间程序

LJMPLOOP

M1:

JBP1.2,M2

LCALLSETATIME;调用设定时间程序

LJMPLOOP

M2:

JBP1.4,M4

LCALLLOOKATIME;调用设定闹钟时间程序

M4:

LJMPLOOP

DELAY:

MOVR4,#030H;延时时间

DL00:

MOVR5,#0FFH

DL11:

MOVR6,#9H

DL12:

DJNZR6,DL12

DJNZR5,DL11

DJNZR4,DL00

RET

//设定时间程序

SETTIME:

L0:

LCALLDISPLAY1;调用时间允许程序

MM1:

JBP1.2,L1

MOVC,P1.2

JCMM1

LCALLDELAY1;调用延时

JCMM1

MSTOP1:

MOVC,P1.2

JNCMSTOP1;判断P1.2是否释放?

释放则继续

LCALLDELAY1;调用延时

MOVC,P1.2

JNCMSTOP1

INC22H;小时增加1

MOVA,22H

CJNEA,#18H,GO12;判断小时是否到24时?

未到继续循环

MOV22H,#00H;小时复位

MOV34H,#00H

MOV35H,#00H

LJMPL0

L1:

JBP1.3,L2

MOVC,P1.3

JCL1

LCALLDELAY1;延时

JCL1

MSTOP2:

MOVC,P1.3

JNCMSTOP2;判断P1.3是否释放?

释放则继续

LCALLDELAY1;调用延时

MOVC,P1.3

JNCMSTOP2

INC21H;分钟增加一

MOVA,21H

CJNEA,#3CH,GO11

MOV21H,#00H;分钟复位

MOV32H,#00H

MOV33H,#00H

LJMPL0

GO11:

MOVB,#0AH;将A中的内容分成高低两部分

DIVAB

MOV32H,B

MOV33H,A

LJMPL0

GO12:

MOVB,#0AH

DIVAB

MOV34H,B

MOV35H,A

LJMPL0

L2:

JBP1.4,L0

MOVC,P1.4

JCL2

LCALLDELAY1;调用延时

MOVC,P1.4

JCL2

STOP1:

MOVC,P1.4;判断按键P1.4是否释放?

JNCSTOP1

LCALLDELAY1;调用延时

//设置闹钟时间

SETATIME:

LCALLDISPLAY2;调用时间运行

N0:

LCALLDISPLAY2

MM2:

JBP1.3,N1;判断P1.3是否按下?

MOVC,P1.3

JCMM2

LCALLDELAY1

JCMM2

MSTOP3:

MOVC,P1.3;判断P1.3是否释放?

JNCMSTOP3

LCALLDELAY1

MOVC,P1.3

JNCMSTOP3

INC24H;设定小时增加1

MOVA,24H

CJNEA,#24,GO22

MOV24H,#00H;时钟复位

MOV38H,#00H

MOV39H,#00H

LJMPN0

N1:

JBP1.1,N2;判断P1.1是否按下?

MOVC,P1.1

JCN1

LCALLDELAY1

JCN1

MSTOP4:

MOVC,P1.1;判断P1.1是否释放?

JNCMSTOP4

LCALLDELAY1

MOVC,P1.1

JNCMSTOP4

INC23H;设定闹钟分钟增加1

MOVA,23H

CJNEA,#60,GO21;判断A是否到60分?

MOV23H,#00H;分钟复位

MOV36H,#00H

MOV37H,#00H

LJMPN0

GO21:

MOVB,#0AH;将A中的内容分成高低两部分

DIVAB

MOV36H,B

MOV37H,A

LJMPN0

GO22:

MOVB,#0AH

DIVAB

MOV38H,B

MOV39H,A

LJMPN0

N2:

JBP1.4,N0;判断P1.4是否按下?

MOVC,P1.4

JCN2

LCALLDELAY1

MOVC,P1.4

JCN2

STOP2:

MOVC,P1.4;判断P1.4是否释放?

JNCSTOP2

LCALLDELAY1

MOVC,P1.4

JNCSTOP2

LJMPLOOP

TIMEPRO:

MOVA,21H

MOVB,23H

CJNEA,B,BK;判断分钟是否运行到设定的闹钟的分钟?

MOVA,22H

MOVB,24H

CJNEA,B,BK;判断时钟是否运行到设定的闹钟的时钟?

SETB25H.0

MOVC,25H.0

JCXX

XX:

LCALLTIMEOUT;调用时间闹钟响应程序

BK:

RET

TIMEOUT:

X1:

LCALLBZ;调用喇叭响应程序

LCALLDISPLAY2

CLR25H.0

JBP1.4,X1;判断P1.4是否按下?

LCALLDELAY

CLR25H.0

LJMPDISPLAY1

BZ:

CLRP3.7;喇叭响应程序

MOVR7,#250;响应延时时间

T2:

MOVR6,#124

T3:

DJNZR6,T3

DJNZR7,T2

SETBP3.7

RET

LOOKATIME:

LCALLDISPLAY2;调用时间运行程序

MM:

JBP1.4,LOOKATIME;判断按键P1.4是否按下

MOVC,P1.4

JCMM

LCALLDELAY1

MOVC,P1.4

JCMM

STOP3:

MOVC,P1.4

JNCSTOP3

LCALLDELAY1

MOVC,P1.4

JNCSTOP3

LJMPLOOP

DELAY1:

MOVR4,#14H;时间延时

DL001:

MOVR5,#0FFH

DL111:

DJNZR5,DL111

DJNZR4,DL001

RET

//延时时间

DL1:

MOVR7,#02H;延时时间

DL:

MOVR6,#0200H

DL6:

DJNZR6,$

DJNZR7,DL

RET

DSEG1:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

END

六.系统仿真

1.操作过程

首先将几个按键从上往下为k1,k2,k3,k4。

k1与p1.4相连,k2与p1.3相连,k3与p1.3相连,k4与p1.1相连。

当需要设定当前时间时,按一下k4键,进入时间设定状态,按一下k2,分加1;按一下k3,小时加1。

如此反复来设定当前时间。

调好时间后按k1退出当前时间设定状态。

当要设定定时时间时,按下k3,进入定时时间设定状态,按一下k2,小时加1;按一下k4,分钟加1。

如此反复来设定要设定的定时时间。

设好后,按下k1退出定时时间设定状态。

2.系统总体电路图

 

六.体会与总结

在做课程设计的过程中,我进一步认识到全面专业的科学知识以及逻辑思考方式对研究问题的重要性,同时我也更加具体的掌握了课程设计的基本方法。

经过不断的的努力,我终于完成了这次课程设计,总的来说,我学到了不少的东西,知道了理论联系实际的重要性。

在设计过程中我遇到了很多的困难,但没放弃,查阅了许多相关的书籍,自己独立思考和借鉴了前人的许多优秀成果,并与所学的知识紧密的结合了起来。

我相信这过程对我今后的学习和工作给与积极的影响,搭好了平台。

通过这次设计,我对这门课有了更好的理解,尤其结合了所学习的相关的知识,对各门课都有了一个较全面的理解。

这必将对我以后的学习和工作有很大的帮助。

本次课程设计的定时闹钟电路,可以满足人们的基本要求,但因为水平有限,此电路中存在一定的问题,虽可以通过增加电路解决,但过于复杂和现有水平有限,本次设计就未深入涉及,想要更好的改进电路,需要进一步的努力,,如果有好的意见,希望老师给以支持。

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

当前位置:首页 > 教学研究 > 教学案例设计

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

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