收藏 分享(赏)

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

上传人:精品资料 文档编号:7654745 上传时间:2019-05-23 格式:DOC 页数:14 大小:79.59KB
下载 相关 举报
单片机汇编程序电子闹钟.doc_第1页
第1页 / 共14页
单片机汇编程序电子闹钟.doc_第2页
第2页 / 共14页
单片机汇编程序电子闹钟.doc_第3页
第3页 / 共14页
单片机汇编程序电子闹钟.doc_第4页
第4页 / 共14页
单片机汇编程序电子闹钟.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

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

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

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

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

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

6、外部时钟方式。本系统中AT89C51 单片机采用内部时钟方式。最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。振荡晶体可在 1.2MHz12MHz 之间。电容值无严格要求,但电容取值对振荡频率输出的稳定性、大小和振荡电路起振速度有少许影响,一般可在 20pF100pF 之间取值。时钟电路图如下:AT89C51XTAL2XTAL1JZ12MC130PFC230PF AT89C51XTAL2XTAL1JZ12MC130PFC230PFAT89C51XTAL2XTAL1JZ12MC130PFC230PF3.数码管显示电路单片机中通常使用7段LED,LED是发光二极管显示器的缩写。LED显

7、示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。LED显示器有多种形式,在单片机系统中使用最多的是七段数码显示器。LED七段数码显示器由8个发光二极管组成显示字符,根据内部发光二极管的连接形式不同,LED有共阴极和共阳极两种,如下图所示引脚和其内部结构:五软件设计1.设计流程图判断闹钟时间到否程序初始化调用显示程序开始P1.1 是否按下?调用时间设定程序P1.2

8、 是否按下?Y调用闹钟时间设定程序NNY2.程序模块 ORG 0000HLJMP MAINORG 000BHLJMP TIME/主程序部分ORG 0100HMAIN:MOV SP,#50HMOV 20H,#00H ;秒钟 BINMOV 21H,#00H ;分钟 BINMOV 22H,#00H ;小时 BINMOV 23H,#01HMOV 24H,#01HMOV 25H,#00HMOV 30H,#00H MOV 31H,#00H MOV 32H,#00H MOV 33H,#00H MOV 34H,#00H MOV 35H,#00HMOV 36H,#01HMOV 37H,#00HMOV 38H,#

9、01HMOV 39H,#00HMOV TMOD,#01H ;16 位计数器MOV TH0,#03CH ;赋计数初值MOV TL0,#0B0HMOV IE,#10000111B SETB TR0 ;T0 启动计数MOV R2,#14HMOV P2,#0FFHLOOP: LCALL TIMEPROLCALL DISPLAY1JB P1.1,M1 LCALL SETTIME ;调用设定时间程序LJMP LOOPM1:JB P1.2,M2 LCALL SETATIME ;调用设定时间程序LJMP LOOPM2:JB P1.4,M4 LCALL LOOKATIME ;调用设定闹钟时间程序M4:LJMP

10、LOOPDELAY:MOV R4,#030H ;延时时间DL00:MOV R5,#0FFHDL11:MOV R6,#9HDL12:DJNZ R6,DL12DJNZ R5,DL11DJNZ R4,DL00RET/设定时间程序SETTIME:L0:LCALL DISPLAY1 ;调用时间允许程序MM1: JB P1.2,L1 MOV C,P1.2JC MM1LCALL DELAY1 ;调用延时JC MM1MSTOP1: MOV C,P1.2JNC MSTOP1 ;判断 P1.2 是否释放?释放则继续LCALL DELAY1 ;调用延时MOV C,P1.2JNC MSTOP1INC 22H ;小时增

11、加 1MOV A,22HCJNE A,#18H,GO12 ;判断小时是否到 24 时?未到继续循环MOV 22H,#00H ;小时复位MOV 34H,#00HMOV 35H,#00HLJMP L0L1:JB P1.3,L2 MOV C,P1.3JC L1LCALL DELAY1 ;延时JC L1MSTOP2: MOV C,P1.3JNC MSTOP2 ;判断 P1.3 是否释放?释放则继续LCALL DELAY1 ;调用延时MOV C,P1.3JNC MSTOP2INC 21H ;分钟增加一MOV A,21HCJNE A,#3CH,GO11 MOV 21H,#00H ;分钟复位MOV 32H,

12、#00HMOV 33H,#00HLJMP L0GO11:MOV B,#0AH ;将 A 中的内容分成高低两部分DIV ABMOV 32H,BMOV 33H,ALJMP L0GO12: MOV B,#0AHDIV ABMOV 34H,BMOV 35H,ALJMP L0L2:JB P1.4,L0 MOV C,P1.4JC L2LCALL DELAY1 ;调用延时MOV C,P1.4JC L2STOP1: MOV C,P1.4 ;判断按键 P1.4 是否释放?JNC STOP1LCALL DELAY1 ;调用延时/设置闹钟时间SETATIME:LCALL DISPLAY2 ;调用时间运行N0:LCA

13、LL DISPLAY2MM2: JB P1.3,N1 ;判断 P1.3 是否按下?MOV C,P1.3JC MM2LCALL DELAY1 JC MM2MSTOP3: MOV C,P1.3 ;判断 P1.3 是否释放?JNC MSTOP3LCALL DELAY1 MOV C,P1.3JNC MSTOP3INC 24H ;设定小时增加 1MOV A,24HCJNE A,#24,GO22 MOV 24H,#00H ;时钟复位MOV 38H,#00HMOV 39H,#00HLJMP N0N1:JB P1.1,N2 ;判断 P1.1 是否按下?MOV C,P1.1JC N1LCALL DELAY1 J

14、C N1MSTOP4: MOV C,P1.1 ;判断 P1.1 是否释放?JNC MSTOP4LCALL DELAY1 MOV C,P1.1JNC MSTOP4INC 23H ;设定闹钟分钟增加 1MOV A,23HCJNE A,#60,GO21 ;判断 A 是否到 60 分?MOV 23H,#00H ;分钟复位MOV 36H,#00HMOV 37H,#00HLJMP N0GO21:MOV B,#0AH ;将 A 中的内容分成高低两部分DIV ABMOV 36H,BMOV 37H,ALJMP N0GO22: MOV B,#0AHDIV ABMOV 38H,BMOV 39H,ALJMP N0N2

15、:JB P1.4 ,N0 ;判断 P1.4 是否按下?MOV C,P1.4JC N2LCALL DELAY1 MOV C,P1.4JC N2STOP2: MOV C,P1.4 ;判断 P1.4 是否释放?JNC STOP2LCALL DELAY1 MOV C,P1.4JNC STOP2LJMP LOOPTIMEPRO:MOV A,21H MOV B,23HCJNE A,B,BK ;判断分钟是否运行到设定的闹钟的分钟?MOV A,22HMOV B,24HCJNE A,B,BK ;判断时钟是否运行到设定的闹钟的时钟?SETB 25H.0MOV C,25H.0JC XXXX: LCALL TIMEO

16、UT ;调用时间闹钟响应程序BK:RETTIMEOUT:X1:LCALL BZ ;调用喇叭响应程序LCALL DISPLAY2 CLR 25H.0 JB P1.4, X1 ;判断 P1.4 是否按下?LCALL DELAY CLR 25H.0LJMP DISPLAY1 BZ: CLR P3.7 ;喇叭响应程序MOV R7,#250 ;响应延时时间T2: MOV R6,#124T3: DJNZ R6,T3DJNZ R7,T2SETB P3.7RETLOOKATIME:LCALL DISPLAY2 ;调用时间运行程序MM: JB P1.4,LOOKATIME ;判断按键 P1.4 是否按下MOV

17、C,P1.4JC MMLCALL DELAY1MOV C,P1.4JC MMSTOP3: MOV C,P1.4JNC STOP3LCALL DELAY1MOV C,P1.4JNC STOP3LJMP LOOPDELAY1: MOV R4,#14H ;时间延时DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111DJNZ R4,DL001RET/延时时间DL1: MOV R7,#02H ;延时时间DL: MOV R6,#0200HDL6: DJNZ R6,$DJNZ R7,DLRETDSEG1:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7F

18、H,6FHEND六系统仿真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.系统总体电路图XTAL218XTAL119ALE3

19、031PSN29RST9P0./AD0390.1/138P0.2/AD2370.3/336P0.4/AD4350.5/534P0.6/AD630.7/732P1.011. 2P1.231.34P1.451.56P1.671.78P3.0/RXD103.1/T1P3.2/INT0123./IT113P3.4/T014P3.7/RD173.6/W163.5/T115P2.7/A1528P2.0/A8212.1/92P2./A10232.3/124P2.4/A12252.5/13262.6/1427U1AT89C5123456789 1RP1ESPACK-8X1CRYSTALC147p247p GN

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

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

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报