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

上传人:小飞机 文档编号:3346553 上传时间:2023-03-12 格式:DOCX 页数:14 大小:42.13KB
返回 下载 相关 举报
单片机汇编程序电子闹钟.docx_第1页
第1页 / 共14页
单片机汇编程序电子闹钟.docx_第2页
第2页 / 共14页
单片机汇编程序电子闹钟.docx_第3页
第3页 / 共14页
单片机汇编程序电子闹钟.docx_第4页
第4页 / 共14页
单片机汇编程序电子闹钟.docx_第5页
第5页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、单片机汇编程序电子闹钟电子闹钟课程设计 摘要:本课程设计主要是通过单片机系统,综合运用定时器、中断、数码显示等知识设计一个可定时的电子钟。它包括系统总体方案及硬件设计,软件设计,Proteus软件仿真等部分。 硬件设计的主要任务是根据总体设计要求,以及在所选机型的基础上,确定系统扩展所要用的存储器,I/O电路及有关外围电路等然后设计出系统的电路原理图。 合理的软件结构是设计出一个性能优良的单片机应用性系统软件的基础,因此必须充分重视。编写完程序后在用Proteus软件仿真检查设计是否合理。 一课程设计的概况 通过对51单片机的扩展,接键盘,显示器等相应的外围器件。在LED显示器中分成静态显示和

2、动态显示两类,在本设计中主要用了它的动态显示功能,动态显示利用了人视觉的短暂停留,在数据的传输中是一个一个传输的,且先传输低位。键盘是由若干个按键组成的开关矩阵,是一种廉价的输入设备。键盘通常包括有数字键,字母键以及一些功能键。操作人员可以通过对键盘向计算机输入数据,地址,指令或其他的控制命令,实现简单的人机对话。这里采用非编码式键盘。通过51单片机的P1口扩展出独立连接式键盘。外围扩展复位,时钟电路,利用软件源程序代码实现相应的功能。 二课程设计实现的功能: 1能显示 时时-分分-秒秒。 2.能够设定定时时间,修改定时时间。 3.定时时间到能发出警报声或者启动继电器,从而控制电器的起停。 三

3、设计方案 使用是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大, 而且可以随时的更新系统,进行不同状态的组合。 本系统采用单片机AT89C51作为本设计的核心元件,利用7段共阴LED作为显示器件。接入共阴LED显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间电器的起停时间到,从而控制电器的起停。 电路由下列部分组成:时钟电路、复位电路、控制电路、LED显示,报警电路,芯片选用AT89C51 单片机。 系统框图: 报警器 数码显示 四硬件设计 1.单片机AT89C51 AT89C51是一个低电压,高性能CMOS型 8位单片机

4、,片内含4KB的可反复擦写的Flash只读程序存储器和128 B的随机存取数据存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案。 引脚使用说明: I/O端口的编程实际上就是根据应用电路的具体功能和要求对I/O寄存器进行编程。具体步骤如下: l)根据实际电路的要求,选择要使用哪些I/O端口。 2)初始化端口的数据输出寄存器,应避免端口作为输出时的开始阶段出现不确定状态,影响外围电路正常工作。 3)根据外围电路功能,确定FO端口的方向,初始化端口

5、的数据方向寄存器。对于用作输入的端口可以不考虑方向初始化,因为FO的复位缺省值为输入。 AT89C51 键盘电路 时钟电路 4)用作输入的FO管脚,如需上拉,再通过输入上拉使能寄存器为其内部配置上拉电阻。 5)最后对I/O端口进行输出(写数据输出寄存器)和输入(读端口)编程,完成对外围电路的相应功能。 几个特殊管脚: XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平。 2.时钟电路 单片机的时钟产生方法有两种:内部时钟方式和外部时钟方式。本系统中AT89C51单片机采用内部时

6、钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在1.2MHz12MHz之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在20pF100pF之间取值。时钟电路图如下: 3.数码管显示电路 单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,

7、就能显示出各种字符。LED显示器有多种形式,在单片机系统中使用最多的是七段数码显示器。 LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种,如下图所示引脚和其内部结构: 五软件设计 1.设计流程图 开始 初始化 判断闹钟时间到否程序 调用显示程序 P1.1是否 按下? N Y 调用时间设定程序 P1.2是否按下? N Y 调用闹钟时间设定程序 2.程序模块 ORG 0000H /主程序部分 ORG 0100H MAIN:MOV SP,#50H MOV 21H,#00H ;分钟 BIN MOV 22H,#00H ;小时 BIN MOV

8、23H,#01H MOV 24H,#01H MOV 25H,#00H MOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00H MOV 36H,#01H MOV 37H,#00H MOV 38H,#01H MOV 39H,#00H MOV TMOD,#01H ;16位计数器 MOV TH0,#03CH ;赋计数初值 MOV TL0,#0B0H MOV IE,#10000111B SETB TR0 ;T0启动计数 LJMP MAIN ORG 000BH LJMP TIME MOV 20H,#00H

9、;秒钟 BIN MOV R2,#14H MOV P2,#0FFH LOOP: LCALL TIMEPRO LCALL DISPLAY1 JB P1.1,M1 LCALL SETTIME ;调用设定时间程序 LJMP LOOP LCALL SETATIME ;调用设定时间程序 M1:JB P1.2,M2 LJMP LOOP M2:JB P1.4,M4 LCALL LOOKATIME ;调用设定闹钟时间程序 M4:LJMP LOOP DELAY:MOV R4,#030H ;延时时间 DL00:MOV R5,#0FFH DL11:MOV R6,#9H DL12:DJNZ R6,DL12 DJNZ R

10、5,DL11 DJNZ R4,DL00 RET /设定时间程序 SETTIME: L0:LCALL DISPLAY1 MM1: JB P1.2,L1 MOV C,P1.2 JC MM1 LCALL DELAY1 JC MM1 MSTOP1: MOV C,P1.2 JNC MSTOP1 LCALL DELAY1 MOV C,P1.2 JNC MSTOP1 INC 22H MOV A,22H CJNE A,#18H,GO12 MOV 22H,#00H MOV 34H,#00H MOV 35H,#00H LJMP L0 L1:JB P1.3,L2 MOV C,P1.3 JC L1 LCALL DEL

11、AY1 JC L1 ;调用时间允许程序 ;调用延时 ;判断P1.2是否释放?释放则继续 ;调用延时 ;小时增加1 ;判断小时是否到24时?未到继续循环 ;小时复位 ;延时 MSTOP2: MOV C,P1.3 JNC MSTOP2 ;判断P1.3是否释放?释放则继续 LCALL DELAY1 ;调用延时 MOV C,P1.3 JNC MSTOP2 INC 21H ;分钟增加一 MOV A,21H CJNE A,#3CH,GO11 MOV 21H,#00H ;分钟复位 MOV 32H,#00H MOV 33H,#00H LJMP L0 GO11:MOV B,#0AH ;将A中的内容分成高低两部分

12、 DIV AB MOV 32H,B MOV 33H,A LJMP L0 GO12: MOV B,#0AH DIV AB MOV 34H,B MOV 35H,A LJMP L0 L2:JB P1.4,L0 MOV C,P1.4 JC L2 LCALL DELAY1 ;调用延时 MOV C,P1.4 JC L2 STOP1: MOV C,P1.4 ;判断按键P1.4是否释放? JNC STOP1 LCALL DELAY1 ;调用延时 /设置闹钟时间 SETATIME:LCALL DISPLAY2 ;调用时间运行 N0:LCALL DISPLAY2 MM2: JB P1.3,N1 ;判断P1.3是否

13、按下? MOV C,P1.3 JC MM2 LCALL DELAY1 JC MM2 MSTOP3: MOV C,P1.3 ;判断P1.3是否释放? JNC MSTOP3 LCALL DELAY1 MOV C,P1.3 JNC MSTOP3 INC 24H MOV A,24H CJNE A,#24,GO22 MOV 24H,#00H MOV 38H,#00H MOV 39H,#00H LJMP N0 N1:JB P1.1,N2 MOV C,P1.1 JC N1 LCALL DELAY1 JC N1 MSTOP4: MOV C,P1.1 JNC MSTOP4 LCALL DELAY1 MOV C,

14、P1.1 JNC MSTOP4 INC 23H MOV A,23H CJNE A,#60,GO21 MOV 23H,#00H MOV 36H,#00H MOV 37H,#00H LJMP N0 GO21:MOV B,#0AH DIV AB MOV 36H,B MOV 37H,A ;设定小时增加1 ;时钟复位 ;判断P1.1是否按下? ;判断P1.1是否释放? ;设定闹钟分钟增加1 ;判断A是否到60分? ;分钟复位 ;将A中的内容分成高低两部分 LJMP N0 GO22: MOV B,#0AH DIV AB MOV 38H,B MOV 39H,A LJMP N0 N2:JB P1.4 ,N0

15、;判断P1.4是否按下? MOV C,P1.4 JC N2 LCALL DELAY1 MOV C,P1.4 JC N2 STOP2: MOV C,P1.4 JNC STOP2 LCALL DELAY1 MOV C,P1.4 JNC STOP2 LJMP LOOP TIMEPRO:MOV A,21H MOV B,23H CJNE A,B,BK MOV A,22H MOV B,24H CJNE A,B,BK SETB 25H.0 MOV C,25H.0 JC XX XX: LCALL TIMEOUT BK:RET TIMEOUT: X1:LCALL BZ LCALL DISPLAY2 CLR 25

16、H.0 JB P1.4, X1 LCALL DELAY ;判断P1.4是否释放? ;判断分钟是否运行到设定的闹钟的分钟? ;判断时钟是否运行到设定的闹钟的时钟?;调用时间闹钟响应程序 ;调用喇叭响应程序 ;判断P1.4是否按下? CLR 25H.0 LJMP DISPLAY1 BZ: CLR P3.7 ;喇叭响应程序 MOV R7,#250 ;响应延时时间 T2: MOV R6,#124 T3: DJNZ R6,T3 DJNZ R7,T2 SETB P3.7 RET LOOKATIME:LCALL DISPLAY2 MM: JB P1.4,LOOKATIME MOV C,P1.4 JC MM

17、LCALL DELAY1 MOV C,P1.4 JC MM STOP3: MOV C,P1.4 JNC STOP3 LCALL DELAY1 MOV C,P1.4 JNC STOP3 LJMP LOOP DELAY1: MOV R4,#14H DL001: MOV R5,#0FFH DL111: DJNZ R5,DL111 DJNZ R4,DL001 RET /延时时间 DL1: MOV R7,#02H DL: MOV R6,#0200H DL6: DJNZ R6,$ DJNZ R7,DL RET DSEG1:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,

18、6FH END ;调用时间运行程序 ;判断按键P1.4是否按下 ;时间延时 ;延时时间 六系统仿真 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.系统总体电路图 GND

19、LS1SPEAKERR3R2R1R410k10k10k10kVCCGNDU1171615141312111028272625242322213233343536373839P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.2/INT0P3.1/TXDP3.0/RXDP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD0AT89C5147pP1.7P1.6P1.5P1.4

20、P1.3P1.2P1.1P1.087654321EAALEPSEN313029RST9C147pXTAL119CRYSTALC2VCCRP1RESPACK-8XTAL218X1六体会与总结 在做课程设计的过程中,我进一步认识到全面专业的科学知识以及逻辑思考方式对研究问题的重要性,同时我也更加具体的掌握了课程设计的基本方法。 经过不断的的努力,我终于完成了这次课程设计,总的来说,我学到了不少的东西,知道了理论联系实际的重要性。在设计过程中我遇到了很多的困难,但没放弃,查阅了许多相关的书籍,自己独立思考和借鉴了前人的许多优秀成果,并与所学的知识紧密的结合了起来。我相信这过程对我今后的学习和工作给与积极的影响,搭好了平台。 通过这次设计,我对这门课有了更好的理解,尤其结合了所学习的相关的知识,对各门课都有了一个较全面的理解。这必将对我以后的学习和工作有很大的帮助。本次课程设计的定时闹钟电路,可以满足人们的基本要求,但因为水平有限,此电路中存在一定的问题,虽可以通过增加电路解决,但过于复杂和现有水平有限,本次设计就未深入涉及,想要更好的改进电路,需要进一步的努力,如果有好的意见,希望老师给以支持。

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号