单片机汇编程序电子闹钟文档格式.docx
- 文档编号:22211454
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:16
- 大小:98.77KB
单片机汇编程序电子闹钟文档格式.docx
《单片机汇编程序电子闹钟文档格式.docx》由会员分享,可在线阅读,更多相关《单片机汇编程序电子闹钟文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
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;
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;
调用延时
MSTOP1:
JNCMSTOP1;
判断P1.2是否释放?
释放则继续
JNCMSTOP1
INC22H;
小时增加1
MOVA,22H
CJNEA,#18H,GO12;
判断小时是否到24时?
未到继续循环
MOV22H,#00H;
小时复位
MOV34H,#00H
LJMPL0
L1:
JBP1.3,L2
MOVC,P1.3
JCL1
延时
MSTOP2:
JNCMSTOP2;
判断P1.3是否释放?
JNCMSTOP2
INC21H;
分钟增加一
MOVA,21H
CJNEA,#3CH,GO11
MOV21H,#00H;
分钟复位
MOV32H,#00H
MOV33H,#00H
GO11:
MOVB,#0AH;
将A中的内容分成高低两部分
DIVAB
MOV32H,B
MOV33H,A
GO12:
MOVB,#0AH
MOV34H,B
MOV35H,A
L2:
JBP1.4,L0
MOVC,P1.4
JCL2
STOP1:
MOVC,P1.4;
判断按键P1.4是否释放?
JNCSTOP1
//设置闹钟时间
SETATIME:
LCALLDISPLAY2;
调用时间运行
N0:
LCALLDISPLAY2
MM2:
JBP1.3,N1;
判断P1.3是否按下?
JCMM2
LCALLDELAY1
MSTOP3:
MOVC,P1.3;
JNCMSTOP3
INC24H;
设定小时增加1
MOVA,24H
CJNEA,#24,GO22
MOV24H,#00H;
时钟复位
MOV38H,#00H
LJMPN0
N1:
JBP1.1,N2;
判断P1.1是否按下?
MOVC,P1.1
JCN1
MSTOP4:
MOVC,P1.1;
判断P1.1是否释放?
JNCMSTOP4
INC23H;
设定闹钟分钟增加1
MOVA,23H
CJNEA,#60,GO21;
判断A是否到60分?
MOV23H,#00H;
MOV36H,#00H
GO21:
MOV36H,B
MOV37H,A
GO22:
MOV38H,B
MOV39H,A
N2:
JBP1.4,N0;
判断P1.4是否按下?
JCN2
STOP2:
判断P1.4是否释放?
JNCSTOP2
TIMEPRO:
MOVA,21H
MOVB,23H
CJNEA,B,BK;
判断分钟是否运行到设定的闹钟的分钟?
MOVB,24H
判断时钟是否运行到设定的闹钟的时钟?
SETB25H.0
MOVC,25H.0
JCXX
XX:
LCALLTIMEOUT;
调用时间闹钟响应程序
BK:
RET
TIMEOUT:
X1:
LCALLBZ;
调用喇叭响应程序
LCALLDISPLAY2
CLR25H.0
JBP1.4,X1;
LCALLDELAY
CLR25H.0
LJMPDISPLAY1
BZ:
CLRP3.7;
喇叭响应程序
MOVR7,#250;
响应延时时间
T2:
MOVR6,#124
T3:
DJNZR6,T3
DJNZR7,T2
SETBP3.7
RET
LOOKATIME:
调用时间运行程序
MM:
JBP1.4,LOOKATIME;
判断按键P1.4是否按下
JCMM
LCALLDELAY1
STOP3:
JNCSTOP3
DELAY1:
MOVR4,#14H;
时间延时
DL001:
MOVR5,#0FFH
DL111:
DJNZR5,DL111
DJNZR4,DL001
//延时时间
DL1:
MOVR7,#02H;
DL:
MOVR6,#0200H
DL6:
DJNZR6,$
DJNZR7,DL
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.系统总体电路图
六.体会与总结
在做课程设计的过程中,我进一步认识到全面专业的科学知识以及逻辑思考方式对研究问题的重要性,同时我也更加具体的掌握了课程设计的基本方法。
经过不断的的努力,我终于完成了这次课程设计,总的来说,我学到了不少的东西,知道了理论联系实际的重要性。
在设计过程中我遇到了很多的困难,但没放弃,查阅了许多相关的书籍,自己独立思考和借鉴了前人的许多优秀成果,并与所学的知识紧密的结合了起来。
我相信这过程对我今后的学习和工作给与积极的影响,搭好了平台。
通过这次设计,我对这门课有了更好的理解,尤其结合了所学习的相关的知识,对各门课都有了一个较全面的理解。
这必将对我以后的学习和工作有很大的帮助。
本次课程设计的定时闹钟电路,可以满足人们的基本要求,但因为水平有限,此电路中存在一定的问题,虽可以通过增加电路解决,但过于复杂和现有水平有限,本次设计就未深入涉及,想要更好的改进电路,需要进一步的努力,,如果有好的意见,希望老师给以支持。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 汇编程序 电子 闹钟