《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计.doc

上传人:仙人指路1688 文档编号:4192788 上传时间:2023-04-09 格式:DOC 页数:24 大小:910.50KB
返回 下载 相关 举报
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计.doc_第1页
第1页 / 共24页
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计.doc_第2页
第2页 / 共24页
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计.doc_第3页
第3页 / 共24页
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计.doc_第4页
第4页 / 共24页
《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计.doc》由会员分享,可在线阅读,更多相关《《专业课程设计3(微处理器与微控制器应用)》课程设计说明书单片机定时闹铃课程设计.doc(24页珍藏版)》请在三一办公上搜索。

1、目录1设计方案11.1 设计目的11.2 设计任务12 设计总体框图12.1 系统设计方框图12.2 程序流程图23 设计单元电路33.1 AT89C51的时钟电路33.2 AT89C51的复位电路设计43.3 AT89C51的显示电路设计43.4 AT89C51的按键电路设计54 电路原理说明64.1 AT89C51芯片管脚及其功能64.2 电路总原理及硬件原理图84.3 软件设计95 参考文献206 设计心得20附录:21附录1:调试报告21附录2:元器件清单22定时闹铃的设计1设计方案1.1 设计目的本设计是一个定时闹钟,它仅使用单片的20引脚单片机完成闹钟的全部功能。设计目的是为了学习

2、和巩固单片机知识,使对已学过的基础知识能有更深入的理解,学会独立思考、独立思考、独立工作,以及提高对所学应用基本理论分析和解决实际问题的能力。1.2 设计任务 本设计是一个定是闹钟,它仅使用单片40个引脚单片机AT89C51完成闹钟的全部功能,包括时钟显示,时钟设置,闹钟设定和闹钟报时。设计目的是学习和巩固单片机知识,使用学习过的关于AT89C51的基础知识能有更深入的理解,学会独立思考,独立工作,以及提高对所学习的应用基本理论分析和解决实际问题的能力。2 设计总体框图2.1 系统设计方框图6位共阳数码管显示单片机AT89C51限流电阻晶振及复位按钮LED指示灯图1 系统设计框图开 始2.2

3、程序流程图有关变量的初始化启动走时显示时间判断是否闹钟时间到YLED亮NNS4是否按下S3是否按下YYNN按S3?按S2?按S2?按S4?YYYY调 整 时钟 分调 整 时钟 时设置闹钟 时设 置 闹钟 分NNNN按S1?按S1?按S1?按S1? YYYY图2 程序流程图3 设计单元电路3.1 AT89C51的时钟电路AT89C51系列的单片机时钟方式分为内部和外部方式,外部方式是把外部已经有的时钟信号引入到单片机内部。时钟电路在计算机系统中起着非常重要的作用,是保证系统正常工作的基础。在一个单片机应用系统中,时钟有两方面的含义:一是指为保障系统正常工作的基准振荡定时信号,主要有晶振和外围电路

4、组成,晶振频率的大小决定了单片机系统工作的快慢;而是指系统的标准定时时钟,即定时时间,它通常有两种实现方法:一是用软件实现,即用单片机内部的可编程定时/计数器来实现,但误差很大,主要用在对时间精度要求不高的场合;二是用专门的时钟芯片实现。本设计的采用内部时钟方式。时钟电路如图3所示。图3 时钟电路3.2 AT89C51的复位电路设计 复位是单片机的初始化操作,起主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。除进入系统的正常初始化之外,当由于程序运行出错祸操作错误使系统处于死锁状态时,为摆脱困境,可以使复位键以重新启动,也可以通过监视定时器来强迫复位。RET引脚是复位

5、信号的输入端,如图4所示。图4 复位电路 3.3 AT89C51的显示电路设计分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。图是共阳式、共阴式LED数码管的原理图和符号,如图5所示。显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管。LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如图6所示,时的十位和个位分别显示在第一个

6、和第二个数码管,分的十位和个位分别显示在第三个和第四个数码管,秒的十位和个位分别显示在第五个和第六个数码管。定时时间到后,P3.7被置位,二极管发光,提醒闹钟时间到。 图5 共阳式、共阴式LED数码管的原理图和数码管的符号图 图6 数码管硬件连接图3.4 AT89C51的按键电路设计S1按键接在P2.0口,用于切换正常走时、调时间、设定闹钟;S2按键接在P2.1口,用于调整时间分加一和设置闹铃分加一功能键;S3按键接在P2.2口,按下后进入闹钟设置状态;S4按键接在P2.3口,按下后进入时间调整状态。按键连接如图7所示。图7 按键硬件连接图4 电路原理说明4.1 AT89C51芯片管脚及其功能

7、AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,可稳定地工作于5V的电源下.该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51芯片引脚图如图8所示。图8 AT89C51芯片引脚图AT89C51管脚说明: VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八

8、位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘

9、故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口:管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串

10、行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的

11、脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/

12、EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。4.2 电路总原理及硬件原理图电路总原理:将软件.hex文件添加到芯片后,就可开始仿真。此设计中数码管显示时分秒,时为24进制,分和秒都为60进制。当按下S3时进入闹钟设置状态,此时再按下S3则设置闹钟时,每按一下闹钟时加一,到23h时回到0h,接着按下S2则设置闹钟分,每按一下闹钟分加一,之后按下S1回到时间显示状态;当按下S4时进入时钟调整状态,此时再按下S4则调整时钟时,每按一下时钟时加一,到

13、23h时回到0h,接着按下S2则设置时钟分,每按一下时钟分加一,之后按下S1回到时间显示状态。电路总原理图如图9所示。图9 电路总原理图4.3 软件设计设计程序如下:ORG 0000HLJMP STARTORG 000BH LJMP TIME START:MOV SP,#51H MOV 20H,#00H ;定义秒 MOV 21H,#00H ;定义分 MOV 22H,#00H ;定义时 MOV 23H,#00H ;定义闹钟分 MOV 24H,#00H ;定义闹钟时 MOV 25H,#00H MOV 26H,#00H MOV 30H,#00H ;BCD 显示时间秒 MOV 31H,#00H MOV

14、 32H,#00H ;BCD 显示时间分 MOV 33H,#00H MOV 34H,#00H ;BCD 显示时间时 MOV 35H,#00H MOV 36H,#00H ;BCD 闹钟分 MOV 37H,#00H MOV 38H,#00H ;BCD 闹钟时 MOV 39H,#00H MOV 50H,#00H ;按键次数 MOV TMOD,#01H MOV TH0,#03CH MOV TL0,#0B0H MOV IE,#82H ;中断允许 SETB TR0 ;启动T0 MOV R2,#14H MOV P2,#0FFH CLR P3.7MAIN: LCALL TIMEPRO ;判断是否为闹钟GB:

15、LCALL DISPLAY1 ;显示时间 JB P1.3,M1 LCALL SETTIME LJMP MAINM1: JB P1.2,M2 LCALL SETATIME LJMP MAINM2: JB P1.0,M4 LCALL LOOKATIMEM4: LJMP MAINDELAY:MOV R4,#030H ;延时子程序DL00: MOV R5,#0FFHDL11: MOV R6,#09HDL12: DJNZ R6,DL12 DJNZ R5,DL11 DJNZ R4,DL00 RETSETTIME: ;设置时间L0: LCALL DISPLAY1MM1: JB P1.3,L1 ;进入时间设置

16、状态 MOV C,P1.3 JC MM1 LCALL DELAY1 JC MM1MSTOP1: MOV C,P1.3 ;设置时钟时 JNC MSTOP1 LCALL DELAY1 MOV A,50H INC 50H CJNE A ,#00H,HJ1 LJMP L0HJ1: MOV C,P1.3 JNC MSTOP1 INC 22H MOV A,22H CJNE A,#18H,GO12 ;时为24h时清零 MOV 22H,#00H MOV 34H,#00H MOV 35H,#00H LJMP L0L1: JB P1.1,L2 MOV C,P1.1 JC L1 LCALL DELAY1 JC L1

17、MSTOP2: MOV C,P1.1 ;设置时钟分 JNC MSTOP2 LCALL DELAY1 MOV C,P1.1 JNC MSTOP2 INC 21H MOV A,21H CJNE A,#3CH,GO11 ;分为60s时清零 MOV 21H,#00H MOV 32H,#00H MOV 33H,#00H LJMP L0GO11: MOV B,#0AH DIV AB MOV 32H,B MOV 33H,A LJMP L0GO12: MOV B,#0AH DIV AB MOV 34H,B MOV 35H,A LJMP L0L2: JB P1.0,L0 MOV C,P1.0 JC L2 LCA

18、LL DELAY1 MOV C,P1.0 JC L1STOP1: MOV C,P1.0 ;回到时间显示 JNC STOP1 LCALL DELAY1 MOV C,P1.0 JNC STOP1 MOV 50H,#00H LJMP MAINSETATIME:LCALL DISPLAY2 ;设置闹钟N0: LCALL DISPLAY2MM2: JB P1.2,N1 MOV C,P1.2 JC MM2 LCALL DELAY1 JC MM2MSTOP3: MOV C,P1.2 ;设置闹钟时 JNC MSTOP3 LCALL DELAY1 MOV A,50H INC 50H CJNE A,#00H,HJ

19、2 LJMP N0HJ2: MOV C,P1.2 JNC MSTOP3 INC 24H MOV A,24H CJNE A,#18H,GO22 ;时为24h时清零 MOV 24H,#00H MOV 38H,#00H MOV 39H,#00H LJMP N0N1: JB P1.1,N2 MOV C,P1.1 JC N1 LCALL DELAY1 MOV C,P1.1 JC N1MSTOP4: MOV C,P1.1 ;设置闹钟分 JNC MSTOP4 LCALL DELAY1 MOV C,P1.1 JNC MSTOP4 INC 23H MOV A,23H CJNE A,#3CH,GO21 ;分为60

20、s时清零 MOV 23H,#00H MOV 36H,#00H MOV 37H,#00H LJMP N0GO21: MOV B,#0AH DIV AB MOV 36H,B MOV 37H,A LJMP N0GO22: MOV B,#0AH DIV AB MOV 38H,B MOV 39H,A LJMP N0N2: JB P1.0,N0 MOV C,P1.0 JC N2 LCALL DELAY1 MOV C,P1.0 JC N1STOP2: MOV C,P1.0 ;回到时间显示 JNC STOP2 LCALL DELAY1 MOV C,P1.0 JNC STOP2 MOV 50H,#00H LJM

21、P MAINTIMEPRO: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 LCALL TIMEOUT JMP BK1BK: CLR P3.7BK1: RETTIMEOUT: SETB P3.7 RET LOOKATIME: LCALL DISPLAY2 ;判断S1是否按下,若按下则显示时间,否则显示闹钟MM: JNB P1.0,LOOKATIME LCALL DELAY1 LJMP MAIN DELAY1: MOV R4,#14HDL001: MO

22、V R5,#0FFHDL111: DJNZ R5,DL111 DJNZ R4,DL001 RETTIME: PUSH ACC ;定时 PUSH PSW MOV TH0,#0E0H MOV TL0,#0B0H DJNZ R2,RET0 MOV R2,#14H MOV A,20H CLR C INC A ;秒自加1 CJNE A,#3CH,GO1 ;秒计数循环 MOV 20H,#00H ;复位 MOV 30H,#00H MOV 31H,#00H MOV A,21H INC A ;分自加1 CJNE A,#3CH,GO2 ;分计数循环 MOV 21H,#00H ;复位 MOV 32H,#00H MO

23、V 33H,#00H MOV A,22H INC A ;时自加1 CJNE A,#18H,GO3 ;时计数循环 MOV 22H,#00H ;复位 MOV 34H,#00H MOV 35H,#00H MOV A,21H AJMP RET0GO1: MOV 20H,A MOV B,#0AH DIV AB MOV 31H,A ;秒高位 MOV 30H,B ;秒低位 AJMP RET0GO2: MOV 21H,A MOV B,#0AH DIV AB MOV 3H,A ;分高位 MOV 32H,B ;分低位 AJMP RET0GO3: MOV 22H,A MOV B,#0AH DIV AB MOV 35

24、H,A ;时高位 MOV 34H,B ;时低位 AJMP RET0RET0: POP PSW POP ACC RETIDISPLAY1:MOV R0,#30H ;显示子程序 MOV R3,#01HPLAY1: MOV A,R3 MOV P2,A MOV A,R0 MOV DPTR,#DSEG1 MOV C A,A+DPTR MOV P0,A LCALL DL1 MOV A,R3 RL A MOV R3,A MOV C,ACC.6 JC LD1 INC R0 LJMP PLAY1LD1: RETDISPLAY2: PUSH ACC PUSH PSW MOV R0,#36H MOV R3,#04H

25、PLAY2: MOV A, R3 MOV P2,A MOV A,R0 MOV DPTR,#DSEG1 MOVC A,A+DPTR MOV P0,A LCALL DL1 MOV A,R3 ;判断是否显示到最低位 RL A ;左移一位 MOV R3,A MOV C,ACC.6 JC LD2 INC R0 ;缓存器地址加一 LJMP PLAY2LD2: POP PSW POP ACC RETDL1: MOV R7,#20HDL: MOV R6,#20HDL6: DJNZ R6,$ DJNZ R7,DL RETDSEG1: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,

26、6FH END 5 参考文献1高峰.单片微型计算机原理与接口技术(第二版).北京:科学出版社,20072王建校.51系列单片机及C51程序设计.北京:科学出版社,20023孙涵芳MCS-51系列单片机原理及应用M 北京:北京航空航天大学出版社,1996.44.李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社,19985.谭浩强.单片机课程设计. 北京:清华大学出版社,19896 设计心得这次设计做的很成功,从设计方案确定到硬件的设计、软件的设计,到最后的调试,我基本上独立思考,独立完成。整个过程中我学会了如何发现问题和解决问题,尤其是软件设计过程中,各种问题的出现促使我对过

27、去所学的有关知识重新温故,而且很多当时没掌握的部分,或是没注意的细节,或是忘记了的知识都巩固了,而且对单片机原理课外知识也的到了拓展。同时因前一周也是在做单片机课程实验让我对汇编语言的编程有了基本的了解,这次程序我自己编写程序,然后进行改正,虽然遇到了麻烦的问题,但最后也通过和同学讨论解决了。通过本次课程设计是我懂得了理论与实际相结合的重要新性只有理论知识是远远不够的,只有把所学的理论知识与实践结合起来,才能提该自己的实际动手能力和独立思考能力。课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在,作为二十一世纪的大学生来说掌握单片机的开发技术是十分重要的。相信这次的经验会在我以后的学习和工作中起到很大的作用。附录:附录1:调试报告电路结果仿真如下:图10 闹钟设置6:13图11 时间设置3:12:10图12 时间显示17:00:04图13 闹钟定时到附录2:元器件清单所用所有元器件及其数量如表1所示。表1 各元器件及其数量器件名数量AT89C51芯片1个LED1个电解电容1个定值电阻1001个晶振1个定值电阻1K2个上拉电阻2个电容30pF2个按键5个数码显示管6个反相器6个

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号