定时闹钟设计
定时闹钟课程设计设计程序
K1 EQU P1.0 ;在程序开始前定义变量K2 EQU P1.1K3 EQU P1.2K4 EQU P1.3ORG 0000HLJMP MAINORG 000BHLJMP TIMEORG 0100HMAIN:MOV SP,#50HMOV 20H,#00H ;时间BIN SECONDMOV 21H,#00H ; BIN MINUTEMOV 22H,#00H ; BIN HOURMOV 23H,#01H ;闹铃BIN MINUTEMOV 24H,#01H ; BIN HOURMOV 25H,#00H ;定义一个标志位MOV 30H,#00H ;时间BCD SECONDMOV 31H,#00H ;MOV 32H,#00H ; BCD MINUTEMOV 33H,#00H ;MOV 34H,#00H ; BCD HOURMOV 35H,#00H ;MOV 36H,#01H ;闹铃BCD MINUTEMOV 37H,#00H ;MOV 38H,#01H ; BCD HOURMOV 39H,#00H ;MOV TMOD,#01H ;16位计数器T0,方式1MOV TH0,#03CH ;赋初值MOV TL0,#0B0HMOV IE,#10000111B ;开中断T0,EA=1SETB TR0 ;T0启动计数MOV R2,#14H ;计数器MOV P2,#0FFHLOOP:LCALL TIMEPRO ; 调用现在时间与闹铃时间比较程序LCALL DISPLAY1 ; 调用现在时间显示子程序JB K1,M1 ; 判断按键是否按下LCALL XIAOZHEN1 ; 调用消抖程序MOV C,25H.0JC A1A1:CLR 25H.0LCALL SETTIME ; 调用设置现在时间子程序LJMP LOOPM1:JB K2,M2LCALL XIAOZHEN2MOV C,25H.0JC A2A2:CLR 25H.0LCALL SETATIME ; 调用设置闹钟的程序LJMP LOOPM2:JB K4,M3A3:LCALL XIAOZHEN3MOV C,25H.0JC A4A4:CLR 25H.0M3:LJMP LOOPSETTIME:L0:LCALL DISPLAY1JB K2,L1LCALL XIAOZHEN4MOV C,25H.0JC A5A5:CLR 25H.0INC 22HMOV A,22HCJNE A,#18H,GO12MOV 22H,#00HMOV 34H,#00HMOV 35H,#00HLJMP L0L1:JB K3,L2LCALL XIAOZHEN5MOV C,25H.0JC A6A6:CLR 25H.0INC 21HMOV A,21HCJNE A,#3CH,GO11MOV 21H,#00HMOV 32H,#00HMOV 33H,#00HLJMP L0GO11:MOV B,#0AHDIV ABMOV 32H,BMOV 33H,ALJMP L0GO12:MOV B,#0AHDIV ABMOV 34H,BMOV 35H,ALJMP L0L2:JB K4,L0LCALL XIAOZHEN3MOV C,25H.0JC AXAX:CLR 25H.0RETSETATIME:LCALL DISPLAY2 ;调用闹钟设置,闹铃响时的显示程序N0:LCALL DISPLAY2JB K3,N1LCALL XIAOZHEN6MOV C,25H.0JC A7A7:CLR 25H.0INC 24HMOV A,24HCJNE A,#24,GO22MOV 24H,#00HMOV 38H,#00HMOV 39H,#00HLJMP N0N1:JB K1,N2LCALL XIAOZHEN7MOV C,25H.0JC A8A8:CLR 25H.0INC 23HMOV A,23HCJNE A,#60,GO21MOV 23H,#00HMOV 36H,#00HMOV 37H,#00HLJMP N0GO21:MOV B,#0AHDIV ABMOV 36H,BMOV 37H,ALJMP N0GO22:MOV B,#0AHDIV ABMOV 38H,BMOV 39H,ALJMP N0N2:JB K4,N0LCALL XIAOZHEN3MOV C,25H.0JC A9A9:CLR 25H.0RETTIMEPRO:MOV A,21HMOV B,23HCJNE A,B,BKMOV A,22HMOV B,24HCJNE A,B,BKSETB 25H.0MOV C,25H.0JC XXXX:LCALL TIMEOUTBK:RETTIMEOUT:X1:LCALL BZLCALL DISPLAY2CLR 25H.0JB K4, X1RETBZ:CLR P3.7MOV R7,#250T2:MOV R6,#124T3:DJNZ R6,T3DJNZ R7,T2SETB P3.7JB K4,XYLCALL XIAOZHEN3MOV C,25H.0JC XY1XY:RETXY1:LJMP LOOP XIAOZHEN1:LCALL DISPLAY1JB K1,XIAOZHEN1MOV C,K1JC XIAOZHEN1LCALL DELAYMOV C,K1JC XIAOZHEN1STOP1:MOV C,K1JNC STOP1LCALL DELAYMOV C,K1JNC STOP1SETB 25H.0RETXIAOZHEN2:LCALL DISPLAY2JB K2,XIAOZHEN2MOV C,K2JC XIAOZHEN2LCALL DELAYMOV C,K2JC XIAOZHEN2STOP2:MOV C,K2JNC STOP2LCALL DELAYMOV C,K2JNC STOP2SETB 25H.0RETXIAOZHEN3:LCALL DISPLAY1JB K4,XIAOZHEN3MOV C,K4JC XIAOZHEN3LCALL DELAYMOV C,K4JC XIAOZHEN3STOP3:MOV C,K4JNC STOP3LCALL DELAYMOV C,K4JNC STOP3SETB 25H.0RETXIAOZHEN4:LCALL DISPLAY1JB K2,XIAOZHEN4MOV C,K2JC XIAOZHEN4LCALL DELAYMOV C,K2JC XIAOZHEN4STOP4:MOV C,K2JNC STOP4LCALL DELAYMOV C,K2JNC STOP4SETB 25H.0RETXIAOZHEN5:LCALL DISPLAY1JB K3,XIAOZHEN5MOV C,K3JC XIAOZHEN5LCALL DELAYMOV C,K3JC XIAOZHEN5STOP5:MOV C,K3JNC STOP5LCALL DELAYMOV C,K3JNC STOP5SETB 25H.0RETXIAOZHEN6:LCALL DISPLAY2JB K3,XIAOZHEN6MOV C,K3JC XIAOZHEN6LCALL DELAYMOV C,K3JC XIAOZHEN6STOP6:MOV C,K3JNC STOP6LCALL DELAYMOV C,K3JNC STOP6SETB 25H.0RETXIAOZHEN7:LCALL DISPLAY2JB K1,XIAOZHEN7MOV C,K1JC XIAOZHEN7LCALL DELAYMOV C,K1JC XIAOZHEN7STOP7:MOV C,K1JNC STOP7LCALL DELAYMOV C,K1JNC STOP7SETB 25H.0RETDELAY:MOV R4,#14HDL00:MOV R5,#0FFHDL11:DJNZ R5,DL11DJNZ R4,DL00RETTIME:PUSH ACCPUSH PSWMOV TH0,#03CHMOV TL0,#0B0HDJNZ R2,RET0MOV R2,#14HMOV A,20HCLR CINC ACJNE A,#3CH,GO1MOV 20H,#0MOV 30H,#0MOV 31H,#0MOV A,21HINC ACJNE A,#3CH,GO2MOV 21H,#0HMOV 32H,#0MOV 33H,#0MOV A,22HINC ACJNE A,#18H,GO3MOV 22H,#00HMOV 34H,#0MOV 35H,#0AJMP RET0GO1:MOV 20H,AMOV B,#0AHDIV ABMOV 31H,AMOV 30H,BAJMP RET0GO2:MOV 21H,AMOV B,#0AHDIV ABMOV 33H,AMOV 32H,BAJMP RET0GO3:MOV 22H,AMOV B,#0AHDIV ABMOV 35H,AMOV 34H,BAJMP RET0RET0:POP PSWPOP ACCRETIDISPLAY1:MOV R0,#30HMOV R3,#0FEHMOV A,R3PLAY1:MOV P2,AMOV A,@R0MOV DPTR,#DSEG1MOVC A,@A+DPTRMOV P0,ALCALL DL1MOV P2,#0FFHMOV A,R3RL AJNB ACC.6,LD1INC R0MOV R3,ALJMP PLAY1LD1:RETDISPLAY2:PUSH ACCPUSH PSWMOV R0,#36HMOV R3,#0FBHMOV A,R3PLAY2:MOV P2,AMOV A,@R0MOV DPTR,#DSEG1MOVC A,@A+DPTRMOV P0,ALCALL DL1MOV P2,#0FFHMOV A,R3RL AJNB ACC.6,LD2INC R0MOV R3,ALJMP PLAY2LD2:POP PSWPOP ACCRETDL1:MOV R7,#05HDL:MOV R6,#0FFHDL6:DJNZ R6,$DJNZ R7,DLRETDSEG1:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FHEND。
单片机定时闹钟课程设计
单片机定时闹钟课程设计一、课程目标知识目标:1. 理解单片机定时器的工作原理,掌握定时器的编程方法;2. 学会使用单片机实现闹钟功能,了解时间计算与时间显示的基本方法;3. 掌握相关电子元器件的原理和功能,如晶振、电容、数码管等。
技能目标:1. 能够运用C语言编写单片机程序,实现闹钟的定时与显示功能;2. 学会使用调试工具对单片机程序进行调试,解决常见问题;3. 提高动手能力,能够独立完成单片机定时闹钟的硬件电路搭建与程序编写。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发创新意识;2. 培养学生团队协作精神,学会共同解决问题;3. 增强学生实践操作能力,树立实践出真知的观念。
课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力与实际应用能力。
学生特点:学生具备一定的单片机基础知识,对编程有一定了解,但对实际应用尚缺乏经验。
教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,引导学生主动参与,提高学生的实践操作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 单片机定时器/计数器的工作原理与编程方法;- 时间计算与时间显示技术;- 硬件电路设计原理,包括晶振、电容、数码管等元器件的应用。
2. 实践操作:- 搭建单片机定时闹钟的硬件电路;- 编写单片机程序,实现定时与显示功能;- 使用调试工具对程序进行调试,解决常见问题。
3. 教学大纲:- 第一阶段:回顾单片机基础知识,介绍定时器/计数器原理,分析闹钟功能需求;- 第二阶段:学习时间计算与显示技术,讲解硬件电路设计方法;- 第三阶段:动手实践,分组进行硬件电路搭建与程序编写;- 第四阶段:程序调试与优化,展示成果,总结经验。
4. 教材关联:- 教材第3章:单片机定时器/计数器的原理与应用;- 教材第4章:C语言编程基础,涉及闹钟程序编写;- 教材第5章:电子元器件及其应用,用于硬件电路设计。
基于单片机的定时闹钟设计
基于单片机的定时闹钟设计设计定时闹钟是人们日常生活中常见的需求之一,而单片机技术的发展为定时闹钟的实现提供了可行的解决方案。
本文将介绍基于单片机的定时闹钟设计。
一、研究背景及意义在现代社会中,时间是人们日常生活中非常重要的一个因素。
为了更好地规划时间和提高生活效率,人们需要定时提醒自己进行各种活动。
闹钟作为定时提醒的工具,在人们的日常生活中扮演着不可替代的角色。
而基于单片机的定时闹钟实现具有高精度、多功能等优点,因此备受人们青睐。
二、技术方案设计本文设计的基于单片机的定时闹钟主要由三部分组成:时钟电路、单片机控制电路和显示电路。
1. 时钟电路时钟电路采用RTC芯片,可以提供高精度的时间计量。
RTC芯片内部自带晶振,保证了较高的时钟精度。
时钟电路主要功能为提供当前时间,包括小时、分钟和秒。
2. 单片机控制电路单片机控制电路是实现定时闹钟的核心部分。
程序流程如下:①初始化:单片机启动后,需要对RTC芯片和闹钟设定进行初始化,包括设定当前时间和设定闹钟时间。
②计时函数:单片机开启定时器,在每秒钟时钟信号来临时,计时器会进行一次计数。
③闹钟判断:单片机判断当前时间是否等于闹钟设定时间,如果相等,则触发闹钟事件,启动蜂鸣器提示。
④按键设置:单片机可以通过按键进行时间设置和闹钟设置,包括增加或减少小时、分钟和秒数,并将设置信息保存至RTC芯片内存中。
3. 显示电路显示电路采用数码管进行显示,使用单片机控制输出数据。
数码管分为小时显示、分钟显示和秒显示,可以满足不同的显示需求。
三、实验结果分析通过实验结果可以发现,本文设计的基于单片机的定时闹钟可以准确地显示时间和定时提醒。
同时,可以通过按键进行时间和闹钟的设置,并存储至RTC芯片内部,保证了时间和闹钟的持久性。
四、结论及展望基于单片机的定时闹钟设计具有实用性和可行性,可以提高人们生活的效率和品质。
然而,本设计在信号筛选和抗干扰能力方面还有一定的改进空间,需要通过更深入的研究来进一步完善。
定时闹钟课程设计大作业(DOC)
微型计算机控制技术大作业设计题目:定时闹钟课程设计院系:计算机科学与信息工程学院学生姓名:曹紫莹学号:201103010036专业班级:计算机科学与技术(嵌入式方向)11-1指导教师:赵凯2014.06.07目录1、课程内容要求及目的 (1)1.1设计题目 (1)1.2 设计要求 (1)1.3能显示时时-分分-秒秒。
(1)1.4能够设定定时时间、修改定时时间。
(1)2、设计实现方案 (2)2.1原理 (2)2.2 原理及工作过程说明 (2)3、硬件设计 (3)3.1 主控芯片AT89C51的设计 (3)3.2 时钟电路部分设计 (4)3.3 LCD显示电路部分 (5)4、软件设计 (6)4.1 软件设计概述 (6)4.2 主函数的设计 (6)4.3.1 程序初始化 (7)4.3.2 闹钟的实现 (8)4.3.3 显示程序 (8)5、实验总结及心得体会 (23)6、参考文献 (24)基于单片机的定时闹钟1、课程内容要求及目的1.1设计题目基于单片机的定时闹钟1.2 设计要求1、能显示时时-分分-秒秒。
2、能够设定定时时间、修改定时时间。
3、定时时间到能发出报警声或者启动继电器,从而控制电器的启停。
1.3LCD电子闹钟的特点和功能介绍时钟是将小时、分钟、秒钟显示于人的肉眼的计时装置。
而单片机模块中最常见的正是数字钟,数字钟是一种用数字电路技术实现时、分、秒计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。
而LCD电子定时闹钟是以单片机为基础的数字电路实现对时、分、秒的数字显示的数字计时装置,它的计时周期为24小时,另外应有校时功能和一些显示日期、闹钟等附加功能。
一个基本的数字钟电路主要由译码显示器、“时”,“分”,“秒”,“星期”计数器、校时电路、报时电路和振荡器组成。
目前电子钟广泛用于各种私人和公众场合,成为我们生活、工作和学习中不可缺少的好帮手。
定时闹钟设计
单片机系统课程设计成绩评定表设计课题:定时闹钟设计学院名称:专业班级:学生姓名:学号:指导教师:设计地点:设计时间:单片机系统课程设计课程设计名称:定时闹钟设计目录1 引言 (1)1.1设计背景意义 (1)1.2设计任务 (1)1.3设计系统的主要功能 (1)2 系统总体方案及硬件设计 (1)2.1系统总体方案 (1)2.2统设计方框图 (1)2.3硬件设计 (2)2.3.1芯片:AT89C51 (3)2.3.2扬声器:SPEAKER (3)2.3.3时钟电路 (4)2.3.4显示器模块的设计 (4)3 软件设计 (4)3.1划分模块 (4)3.2程序流程图 (5)3.3程序 (5)3.4数码显示 (16)4 程序运行调试·····························错误!未定义书签。
5 课程设计体会 (16)6 参考文献·····························错误!未定义书签。
1 引言1.1设计背景意义单片机,全称单片微型计算机,又称微控制器(Microcontroller),是把中央处理器、存储器、定时/计数器、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。
与应用在个人电脑中的通用型微处理器相比,它更强调自供应(不用外接硬件)和节约成本。
定时闹钟课程设计摘要
定时闹钟课程设计摘要一、教学目标本课程旨在让学生了解和掌握定时闹钟的工作原理及其应用,培养学生的时间管理能力和实际操作技能。
具体目标如下:知识目标:使学生了解定时闹钟的基本概念、种类及其工作原理;掌握常见的定时闹钟设置方法和使用技巧。
技能目标:培养学生能够正确选择和使用定时闹钟工具;能够根据实际需要设置定时闹钟,进行时间管理;能够分析和解决定时闹钟使用过程中遇到的问题。
情感态度价值观目标:培养学生珍惜时间、合理安排时间的意识,提高学生自我管理能力;培养学生独立思考、合作交流的能力,提升学生的实践操作技能。
二、教学内容本课程的教学内容主要包括以下几个部分:1.定时闹钟的基本概念:介绍定时闹钟的定义、种类及其功能。
2.定时闹钟的工作原理:讲解定时闹钟的工作原理,包括机械式定时闹钟和电子式定时闹钟。
3.定时闹钟的使用方法:介绍常见的定时闹钟设置方法和使用技巧,如设定时间、定时提醒、铃声设置等。
4.定时闹钟的应用场景:分析定时闹钟在日常生活、学习和工作中的应用场景,如起床、休息、开会等。
5.时间管理:讲解如何利用定时闹钟进行时间管理,提高生活和工作效率。
三、教学方法为了更好地实现教学目标,本课程将采用以下教学方法:1.讲授法:讲解定时闹钟的基本概念、工作原理及其使用方法。
2.讨论法:学生讨论定时闹钟的应用场景和时间管理策略。
3.案例分析法:分析实际案例,让学生了解定时闹钟在生活中的具体应用。
4.实验法:学生动手操作,实践定时闹钟的设置和使用。
四、教学资源为了支持本课程的教学内容和教学方法,将准备以下教学资源:1.教材:选择合适的教材,如《定时闹钟使用手册》。
2.参考书:提供相关的参考书籍,如《时间管理技巧》。
3.多媒体资料:制作课件、教案等多媒体资料,以便于讲解和展示。
4.实验设备:准备定时闹钟设备,让学生进行实际操作。
五、教学评估为了全面、客观地评估学生的学习成果,本课程将采取以下评估方式:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,以了解学生的学习状态。
定时闹钟设计
电子闹钟的控制系统设计基于atmega16单片一、设计目的此次设计的目的是培养同学们系统地运用已学的理论知识解决实际问题的能力和查阅资料的能力,以及一定的自学能力和独立分析问题、解决问题的能力,能通过独立思考、查阅工具书、参考文献,寻找解决方案;通过完成所选题目的分析与设计,达到技术性能要求。
二、设计要求1、能显示时时-分分-秒秒。
2、能够设定定时时间、修改定时时间。
3、定时时间到能发出报警声或者启动继电器,从而控制电器的启停。
三、设计的总体结构3.1 整体设计思路利用Mega16单片机内部时钟作为时间基准,通过软件编程控制可编程器件Mega16单片机,实现秒,分,时,日,月,年的控制,最终通过LCD液晶显示屏显示结果。
此外还可以实现时间调整,定时多种实用功能,整个设计分硬件和软件俩大部分。
硬件部分采用Mega16单片机作为可编程芯片,1602字符液晶作为信号显示;软件部分利用C语言作为设计语言,对Mega16进行编程实现各种功能3.3软件设计各部分电路设计主电路主要就是芯片的运行,加载程序后,在外部时钟的作用下,将按照程序运行,从而可以实现设计的要求,进行时钟时间和定时时间的调整,并且能够在到达定时时间后控制蜂鸣器发出声响。
利用仿真仿真软件画出的电路图1,显示电路显示电路即可以让我们看到时间的调整和定时时间的调整,显示调整后的时间。
2仿真电路的总体原理框图3.3软件设计软件的设计思路框图四,C语言程序设计#include#define uchar unsigned char#define uint unsigned intsbit spk=P1^7;sbit led=P1^5;sbit DQ=P1^0;sbit RS=P2^4;sbit RW=P2^5;sbit EN=P2^6;sbit key1=P2^0;sbit key2=P2^1;sbit key3=P2^2;sbit key4=P2^3;sbit IO=P3^6;sbit RST=P3^7;sbit SCLK=P3^5;uchar code table[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39}; int nian,xing,yue,ri,shi,fen,miao;uchar num,temp,c,d,time[7],a,b,aa,bb,ns,ng,ys,yg,rs,rg,ss,sg,fs,fg,ms,mg,flag; /*******************1602************************/void delay(int z)int x,y;for(x=z;x>0;x--)for(y=100;y>0;y--);}void write_com(uchar com) //写命令{RS=0;P0=com;delay(5);EN=1;delay(5);EN=0;}void write_data(uchar date) //写数据{RS=1;P0=date;delay(5);EN=1;delay(5);EN=0;}void init() //初始化{RW=0;EN=0;write_com(0x38); //显示模式设置write_com(0x0c); //开显示不显示光标不闪write_com(0x06); //写一个字符地址指针光标加一整屏不移动write_com(0x01); //显示清零write_com(0x80+0x04);write_data('2');write_com(0x80+0x05);write_data('0');write_com(0x80+0x00);write_data('c');write_com(0x80+0x01);write_data('a');write_com(0x80+0x02);write_data('i');write_com(0x80+0x4e);write_data(0xdf);write_com(0x80+0x4f);write_data('C');write_com(0x80+0x4b);write_data(0x2e); //显示"。
基于单片机定时闹钟的设计
基于单片机定时闹钟的设计随着科技的快速发展,嵌入式系统已经深入到我们生活的各个角落。
其中,单片机以其高效性、灵活性和低成本性,广泛应用于各种设备的设计中。
本文将探讨如何基于单片机设计一个定时闹钟。
一、硬件需求1、单片机:选择一个适合你项目的单片机。
比如Arduino UNO,它具有丰富的IO口和易于使用的开发环境。
2、显示模块:为了能直观地展示时间,你需要一个LCD显示屏。
可以选择常见的16x2字符型LCD显示屏。
3、按键模块:用于设定时间和闹钟功能。
一般可以选择4个按键,分别代表功能设置、小时加、小时减和分钟加。
4、蜂鸣器:当到达设定时间时,蜂鸣器会发出声音提醒。
二、软件需求1、开发环境:你需要一个适用于你单片机的开发环境,例如Arduino IDE。
2、编程语言:一般使用C或C++进行编程。
3、程序设计:你需要编写一个程序来控制单片机,让其根据设定时间准时唤醒。
程序应包括初始化和设定时间的功能,以及到达设定时间后的闹钟提醒功能。
三、设计流程1、硬件连接:将单片机、显示模块、按键模块和蜂鸣器按照要求连接起来。
2、初始化:在程序中初始化所有的硬件设备。
3、时间设定:通过按键模块设定时间。
你需要编写一个函数来处理按键输入,并在LCD显示屏上显示当前时间。
4、闹钟提醒:在程序中加入一个计时器,当到达设定时间时,程序会唤醒并触发蜂鸣器发出声音。
5、循环检测:在主循环中不断检测时间是否到达设定时间,如果到达则触发闹钟提醒,然后继续检测。
四、注意事项1、时钟源:你需要一个稳定的时钟源来保证闹钟的准确性。
可以考虑使用网络时钟或者GPS模块。
2、功耗优化:如果你的设备需要长时间运行,那么需要考虑到功耗的问题,比如使用低功耗的单片机或者在不需要闹钟提醒的时候关闭蜂鸣器等。
3、人机交互:考虑增加更多的功能以满足用户的需求,如设置多个闹钟、调整闹钟的音量等。
4、安全性:保证设备的电源稳定,避免在突然断电的情况下数据丢失或设备损坏。
单片机定时闹钟课程设计
单片机定时闹钟课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解定时器的功能和工作原理。
2. 使学生掌握定时闹钟程序编写的基本方法,了解中断处理的相关知识。
3. 帮助学生了解电子时钟的基本构成,掌握时间计算和显示的相关技巧。
技能目标:1. 培养学生动手实践能力,学会使用编程软件编写、调试程序,实现单片机定时闹钟功能。
2. 提高学生分析问题和解决问题的能力,能够独立完成定时闹钟课程的各项任务。
3. 培养学生团队协作能力,学会在项目过程中进行有效沟通和分工合作。
情感态度价值观目标:1. 培养学生对单片机编程的兴趣,激发他们探索未知、自主学习的精神。
2. 培养学生勇于尝试、不怕失败的品质,提高他们面对困难时的心理素质。
3. 增强学生的创新意识,鼓励他们发挥想象力和创造力,设计出具有个性的定时闹钟作品。
课程性质分析:本课程属于电子技术与应用领域的实践课程,旨在让学生通过动手实践,掌握单片机定时闹钟的设计与制作。
学生特点分析:学生处于中学阶段,具有一定的电子技术基础和编程能力,对新鲜事物充满好奇,喜欢动手实践。
教学要求:1. 结合课本知识,注重理论与实践相结合,提高学生的实际操作能力。
2. 注重培养学生的创新精神和团队协作能力,提高他们的综合素质。
3. 以学生为主体,关注个体差异,因材施教,使每个学生都能在课程中取得进步。
二、教学内容1. 单片机基础原理回顾:包括单片机的结构、工作原理、定时器/计数器功能。
2. 定时器编程技术:重点讲解定时器的初始化、中断处理程序编写,以及定时器应用实例。
- 教材章节:第三章《单片机定时器/计数器》3. 中断系统原理:介绍中断的概念、中断优先级、中断向量表,以及中断处理流程。
- 教材章节:第四章《中断系统》4. 显示技术:讲解数码管、LCD等显示器件的工作原理和编程方法。
- 教材章节:第五章《显示技术》5. 定时闹钟设计与实现:包括闹钟功能的整体设计、程序编写、调试与优化。
基于at89c51单片机的定时闹钟的设计
基于at89c51单片机的定时闹钟的设计本文介绍了基于AT89C51单片机的定时闹钟的设计。
文章将探讨设计目的和背景,并着重阐述定时闹钟的实现原理和功能。
本文档将介绍基于at89c51单片机的定时闹钟的硬件设计要点,包括电源、显示器、按键等组件选择和连接方式。
电源选择与连接在设计定时闹钟的硬件方案时,选择合适的电源是非常重要的。
以下是一些电源选择和连接的要点:使用稳定可靠的电源模块,例如直流电源模块,以确保单片机工作的稳定性。
将电源模块的正负极连接到at89c51单片机的VCC和GND引脚上。
注意电源的电压和电流要符合at89c51单片机的工作要求。
显示器选择与连接显示器是定时闹钟中显示时间和其他信息的重要组件。
以下是一些显示器选择和连接的要点:考虑使用液晶显示器 (LCD) 或数码管作为显示器,这些显示器可以清晰地显示数字和字符。
根据设计需求,选择合适的显示器尺寸和类型。
将显示器的控制引脚与at89c51单片机的相应引脚连接,以实现时间和信息的显示。
按键选择与连接按键是控制定时闹钟设置和功能的重要组件。
以下是一些按键选择和连接的要点:选择合适的按键类型,例如触摸按键或机械按键。
根据设计需求,确定所需的按键数量和布局。
将按键的引脚连接到at89c51单片机的GPIO引脚,以接收按键输入并实现相应的功能。
上述是基于at89c51单片机的定时闹钟的硬件设计要点,通过合理选择和连接电源、显示器和按键等组件,可以确保定时闹钟的稳定运行和正常功能。
本文将阐述基于at89c51单片机的定时闹钟的软件设计要点,包括如下内容:定时器的设置:使用at89c51单片机的定时器来实现定时功能,可以通过对定时器寄存器的设置来调整定时的时间间隔。
中断处理:在定时器到达设定的时间间隔时,通过中断处理来触发相应的操作。
可以通过设定中断优先级来确保定时器中断的可靠性。
闹钟功能的实现:通过软件算法和控制电路,将定时器和中断处理结合起来实现闹钟功能。
定时闹钟课程设计
定时闹钟课程设计一、课程目标知识目标:1. 学生能理解定时闹钟的基本概念,掌握其工作原理;2. 学生能掌握定时闹钟的设置方法,包括时、分、秒的设置;3. 学生了解定时闹钟在生活中的应用,并能举例说明。
技能目标:1. 学生能够独立完成定时闹钟的设置,提高操作电子设备的能力;2. 学生能够通过小组合作,共同解决定时闹钟使用过程中遇到的问题;3. 学生能够运用所学知识,设计简单的定时闹钟程序。
情感态度价值观目标:1. 学生培养对时间管理的重视,养成良好的作息习惯;2. 学生在学习过程中,培养解决问题的能力和团队合作精神;3. 学生认识到科技发展对生活的影响,激发对科学技术的兴趣。
课程性质:本课程属于信息技术与生活相结合的实践课程,旨在培养学生的动手操作能力、时间管理意识和团队合作精神。
学生特点:四年级学生具有一定的电子设备操作基础,对新鲜事物充满好奇心,喜欢动手实践,但注意力集中时间较短。
教学要求:教师需采用生动有趣的教学方法,激发学生的学习兴趣;注重实践操作,让学生在动手过程中掌握知识;关注学生的个体差异,进行有针对性的指导。
通过本课程的学习,使学生在掌握定时闹钟相关知识的基础上,提高综合素养。
二、教学内容1. 定时闹钟的基本概念与工作原理:- 闹钟的定义与功能- 闹钟的内部结构及工作原理2. 定时闹钟的设置方法:- 时、分、秒的设置与调整- 闹钟铃声的选择与设置- 闹钟模式的切换与使用3. 定时闹钟在生活中的应用:- 日常生活中的时间管理- 特定场景下的定时需求- 创意闹钟设计与应用4. 定时闹钟实践操作:- 使用电子设备进行闹钟设置- 小组合作,解决设置过程中遇到的问题- 设计简单的定时闹钟程序5. 教学内容安排与进度:- 第一课时:闹钟的基本概念与工作原理- 第二课时:定时闹钟的设置方法- 第三课时:定时闹钟在生活中的应用- 第四课时:实践操作与创意设计教材章节关联:本教学内容与教材中“时间与生活”章节相关,涉及闹钟的基本知识、设置方法以及在生活中的应用。
定时闹钟单片机课程设计
定时闹钟单片机课程设计一、课程设计概述本次课程设计的主要目的是通过学习单片机的基本原理和应用,掌握单片机的编程技术和应用能力,完成一个定时闹钟的设计。
二、课程设计内容1. 硬件设计(1)电源模块:使用稳压电源芯片LM7805实现5V直流电源输出。
(2)时钟模块:使用DS1302实时时钟芯片,实现时间显示和闹钟功能。
(3)数码管模块:使用共阳数码管,通过74HC595芯片驱动。
(4)按键模块:使用矩阵按键模块,实现对时间设置和闹钟设置等操作。
2. 软件设计(1)初始化程序:对各个模块进行初始化设置。
(2)显示程序:将当前时间和闹钟时间显示在数码管上。
(3)设置程序:通过按键输入,实现对时间和闹钟时间的设置。
(4)闹铃程序:在设定的闹钟时间到达时,触发蜂鸣器响铃。
三、课程设计步骤1. 硬件设计首先进行硬件电路图的绘制,并进行元器件选型。
根据电路图进行焊接和调试。
其中需要注意以下几点:(1)稳压电源芯片的输入电压需要在7V以上。
(2)DS1302时钟芯片的接线需要按照电路图进行,同时需要设置时钟芯片的时间和闹钟时间。
(3)数码管模块需要进行74HC595芯片的驱动设置,同时需要设置数码管显示的位数和显示内容。
(4)矩阵按键模块需要进行按键扫描程序设计,并设置对应的操作功能。
2. 软件设计根据硬件设计完成后,进行软件程序设计。
主要包括以下几个部分:(1)初始化程序:对各个模块进行初始化设置,如时钟芯片、数码管、矩阵按键等。
(2)显示程序:将当前时间和闹钟时间显示在数码管上。
可以通过时钟芯片获取当前时间,并将其转换为数码管可以显示的格式。
(3)设置程序:通过矩阵按键输入,实现对时间和闹钟时间的设置。
可以通过编写按键扫描函数来实现对按键输入的检测,并根据不同的按键操作来实现对应的功能。
(4)闹铃程序:在设定的闹钟时间到达时,触发蜂鸣器响铃。
可以通过判断当前时间是否等于设定闹钟时间来触发蜂鸣器响铃,并在屏幕上显示提示信息。
带定时功能的闹铃时钟设计
课程设计任务书设计题目带定时功能的闹铃时钟设计学生姓名设计要求:1、有电源开具关及指示灯,有复位按键。
2、接通电源后,蜂鸣器连续两次发出响声,同时工作指示灯LED闪动,表示程序执行,数码管显示“0000”3、接着设置当前时间。
按K1键,LED停止闪动,即进入时间设置状态;按K2键调整小时,每按一次数值增1;按K3键调整时间。
设置完成后,按K4,LED恢复闪烁,即设置完成,进入正常走时状态。
4、设置闹铃时间,进入正常走时状态后再按K2键,即进入闹铃时间设定状态,K2为设置闹铃功能键,再按k2,小时调整;按k3,分钟调整。
5、闹铃开、关设置。
闹铃时间设定完后,再按k4,进入闹铃开、关设置。
若设置为开,启动闹铃后连续3次发出响声;若设置为关,关闭闹铃时发出1次响声。
6、掌握程序模块化设计思想。
程序设计时可分解为走时、闹铃设置、显示、检查闹铃时间、执行闹铃时间处理、调整等部分组成。
每部分均通过子程序实现。
再过主程序的调用,使其有机联系,最终实现定时闹铃时钟功能。
学生应完成的工作:该组学生设计的是带定时功能的闹铃时钟,首先要查资料,画出设计原理图,然后编写设计程序,按照原理图焊接电路,烧程序最后写课程设计论文。
冯晓明同学负责设计复位电路,该电路有电容和电阻及一个按键组成;周绍彬同学负责设计时钟电路,该时钟电路有两个电容和一个晶振组成;扈会荣负责设计电源电路部分,该电路有稳压管,桥堆,变压器组成;马捡选同学负责整个电路的设计工作,把该组组员的设计组合到一起。
参考文献阅读:[1] 张迎新. 《单片机微型计算机原理及应用》.北京国防工业出版社,1999[2] 赵曙光.《可编程逻辑器件,原理,开发与应用》.西安,西安电子科技大学, 2000[3] 付家才.《单片机控制工程实践技术》.北京,化学工业出版社,2004[4] 李全利.迟荣强.《单片机原理及接口技术》.北京,高等教育出版社,2004工作计划:5月6日—5月8日查资料,画出设计原理图5月9日—5月10日编写设计程序5月13—5月14日按照原理图焊接电路5月15—5月16日烧程序,仿真5月17—日写课程设计报告任务下达日期:2013 年5 月 6 日任务完成日期:2013 年5 月17日指导教师(签名):学生(签名):带定时功能的闹铃时钟设计摘要:单片机是在一片半导体硅片上集成了CPU、存储器、并行I/O、串行I/O、定时器、中断系统、系统时钟电路及系统总线的微型计算机。
带定时功能的闹铃时钟设计 (2)
课程设计任务书设计题目带定时功能的闹铃时钟设计学生姓名设计要求:1、有电源开关及指示灯,有复位按键。
2、接通电源后,蜂鸣器连续两次发出响声,同时工作指示灯LED闪动,表示程序执行,数码管显示“0000”。
3、接着设置当前时间。
按K1键,LED停止闪动,即进入时间设置状态;按K2键调整小时,每按一次数值增1;按K3键调整时间。
设置完成后,按K4,LED恢复闪烁,即设置完成,进入正常走时状态。
4、设置闹铃时间,进入正常走时状态后再按K2键,即进入闹铃时间设定状态,K2为设置闹铃功能键,再按K2,小时调整;按K3,分钟调整。
5、闹铃开、关设置。
闹铃时间设定完后,再按K4,进入闹铃开、关设置。
若设置为开,启动闹铃后连续3次发出响声;若设置为关,关闭闹铃时发出1次响声。
6、掌握程序模块化设计思想。
程序设计时可分解为走时、闹铃设置、显示、检查闹铃时间、执行闹铃时间处理、调整等部分组成。
每部分均通过子程序实现,再过主程序的调用,使其有机联系,最终实现定时闹铃时钟功能。
学生应完成的工作:该组学生的设计是带定时功能的闹铃时钟,首先通过查阅有关定时功能的闹钟资料,熟悉我们的课题,然后进行硬件设计,即画出电路图,然后进行软件设计,用汇编语言编写程序,画出各部分的流程图。
根据我们设计的电路图,用Proteus软件进行仿真,仿真成功后,根据原理图进行实物图的焊接、调试。
然后就是撰写我们的课程设计报告,该生主要负责的是电源电路的设计,电源电路是本次设计最基本的电路,通过电源电路,可以实现对电压的转换,从而达到电路的正常运作。
参考文献阅读:[1] 张迎新. 《单片机微型计算机原理及应用》.北京国防工业出版社,1999[2] 赵曙光.《可编程逻辑器件,原理,开发与应用》.西安,西安电子科技大学, 2000[3] 付家才.《单片机控制工程实践技术》.北京,化学工业出版社,2004[4] 李全利,迟荣强.《单片机原理及接口技术》.北京,高等教育出版社,2004[5] 张毅刚,彭喜元,彭宇.单片机原理及应用. 北京:高等教育出版社,2010.5.[6] 陈继红,徐晨,王春明.微机原理及应用. 北京:高等教育出版社,2011.工作计划:5月6日—5月8日:查资料,画出设计原理图5月9日—5月10日:编写设计程序,仿真5月13—5月14日:按照原理图焊接电路5月15日—5月16日:烧程序,调试5月17日:写课程设计报告任务下达日期:2013 年5月 6 日任务完成日期:2013 年5月17 日指导教师(签名):学生(签名):带定时功能的闹铃时钟设计摘要:本次设计主要使用单片机芯片AT89S52和LED显示器的结合,辅以必要的电路来设计的带定时功能的闹铃时钟,电源电路主要由变压器、桥堆、电容、稳压管、电阻、发光二极管等元件构成,由电容和晶振等构成时钟电路,一个开关和电容电阻接上电源构成了复位电路,该程序有由汇编语言编程,由Proteus 软件仿真,该系统通过电源电路模块、时钟电路模块、复位电路模块、时间显示模块、控制按键模块和闹铃模块的相互结合实现当到达预设的时间时,此电路的蜂鸣器就会发出响声,从而实现定时闹铃的时钟功能。
定时闹表课程设计
定时闹表课程设计一、课程目标知识目标:1. 学生能理解定时闹表的基本概念,掌握其工作原理;2. 学生能描述定时闹表在生活中的应用,了解其与时间管理的重要性;3. 学生能运用所学知识,分析并解释定时闹表的计时功能。
技能目标:1. 学生能够独立操作定时闹表,设置闹钟提醒;2. 学生能够运用定时闹表进行时间规划,提高时间管理能力;3. 学生能够通过小组合作,共同探讨并解决定时闹表使用过程中遇到的问题。
情感态度价值观目标:1. 学生能够认识到时间的重要性,培养珍惜时间的意识;2. 学生能够体验到科技带来的便捷,增强对科技的兴趣和好奇心;3. 学生能够在与他人合作的过程中,学会尊重他人、倾听意见,培养团队协作精神。
课程性质:本课程为信息技术与生活相结合的实践课程,旨在帮助学生掌握定时闹表的使用方法,提高时间管理能力。
学生特点:四年级学生具有一定的信息素养,对新鲜事物充满好奇,喜欢动手实践,但时间管理能力较弱。
教学要求:结合学生特点,注重实践操作,鼓励学生积极参与,培养其时间管理意识和团队协作能力。
将课程目标分解为具体学习成果,以便后续教学设计和评估。
二、教学内容1. 定时闹表的基本概念与工作原理- 闹钟的定义与功能- 定时闹表的内部结构与工作原理- 闹钟设置与调整方法2. 定时闹表在生活中的应用- 时间管理的重要性- 定时闹表在时间管理中的作用- 生活实例:如何运用定时闹表提高效率3. 定时闹表的操作与实践- 教材章节:第三章“时间的管理与应用”- 实践活动:设置闹钟提醒,制定时间表- 小组讨论:分享使用定时闹表的心得与技巧4. 时间管理策略与团队协作- 时间管理的方法与技巧- 团队合作:共同解决问题,提高效率- 课堂讨论:探讨如何合理利用时间,提高生活质量教学内容安排与进度:第一课时:介绍定时闹表的基本概念与工作原理,引导学生了解闹钟的功能;第二课时:探讨定时闹表在生活中的应用,学习时间管理方法;第三课时:实践操作,学生独立设置定时闹表,制定个人时间表;第四课时:小组讨论与分享,总结使用定时闹表的经验,培养团队协作能力。
定时闹钟设计 课程设计报告
按时闹钟设计之马矢奏春创作摘要:本设计目的是利用单片机设计制作一个简易的按时闹铃时钟,可以放在宿舍或教室使用,在夜晚或黑暗的场所也可以使用.可以设置现在的时间以及闹铃的时间而且显示出来,若时间到则发出一阵声响.本次设计的按时闹钟在硬件方面就采纳了AT89C52芯片,用6位LED数码管进行显示.LED用P0口进行驱动,采纳的是静态扫描显示,能够比力准确显示时时—分分—秒秒.通过五个功能按键可以实现对时间的修改、按时和闹铃终止,闹钟设置的时间到时蜂鸣器可以发作声响.在软件方面用C51编程.整个按时闹钟系统能完成时间的显示,调时和设置闹钟、停止响铃等功能,并经过系统仿真后获得了正确的结果.关键词:按时闹钟;蜂鸣器;AT89C52;74HC245;目录第1章绪论11.2.1设计要求:11.2.2设计任务:1第2章系统总体设计2系统设计需求总体设计方案第3章系统硬件设计43.2.3 74HC245芯片7??????LED显示模块????????按键模块??第4章系统软件设计11第5章系统测试13??测试环境??????测试步伐??????测试环境的构建??结论15致谢16参考文献17附录18第1章绪论本次课程设计的主题是按时闹钟,其基础部份是一个数字钟.电路系统由秒信号发生器、“时、分、秒”计数器、显示器组成.其中秒信号发生器是整个系统的时基信号,它直接决定计时系统的精度,这里用51单片机的按时器来实现.利用按时器获得每一秒的时刻,然后在法式中,我们就可以给秒进行逐秒赋值,满60秒则进位为1分,满60分则进位为1小时,满24小时则时间重置实现一天24小时的循环.译码显示电路将“时”、“分”、“秒”计数器的输出状态送到七段显示译码器译码,通过一个六位八段数码管显示出来.这里利用51单片机的相关知识,来实现电子闹钟的相关功能.实验使用了AT89C52、74HC245等芯片,通过单片机的P0、P3管脚来驱动数码管显示出相应的时刻.本文将讲述AT89C52、74HC245等芯片的基本功能原理,偏重点介绍该电子闹钟的设计.1.2.1设计要求:使用6位七段LED显示器来显示现在的时间;显示格式为“时时分分秒秒”;具有4个按键来做功能设置,可以设置现在的时间及显示闹铃设置时间;时间到则发出一阵声响,可通过按键复位;对单片机系统设计的过程进行总结,认真书写课程设计陈说并按时上交.1.2.2设计任务:利用51单片机结合七段LED显示器设计一个简易的按时闹铃时钟,可以放在宿舍或教室使用,由于用七段LED显示器显示数据,在夜晚或黑暗的场所也可以使用.可以设置现在的时间及显示闹铃设置时间,若时间到则发出一阵声响.论文分别叙述从硬件和软件上实现该设计的过程.第2章为总体设计方案.第3章主要介绍设计实现需要解决的硬件问题.依次介绍所使用的各种硬件的使用方法,并附上仿真电路图和文字说明.第4章从软件的角度说明实现该设计需要解决的问题.第2章系统总体设计系统要求实现以下功能:1.当电源接通时,系统能正确显示以后时间.2.以后时间与实时时间有误差时,可以通过键盘调整以后时间.3.系统允许进行闹钟设置,开启闹钟功能时,当设置的闹钟时间与以后时间一致的时候,系统通过蜂鸣器发出警报声而且可以通过按键停止.功能组成:本次设计中的计时功能很容易实现,难点在于时钟功能和闹钟功能的切换和时间的设置.该电子闹钟设计对51单片机按时器0装初值,使其初值对应50ms,按时器0的中断次数达到20次就刚好为1s,当秒部份计数到60时置零,并向分部份进一;当分部份计数到60时置零,并向时部份进一,那时部份计数到24时置零,从而满足时钟的正常工作.在设计过程中,我发现通过4个按键来完成一个闹钟的基础功能虽然可以实现,可是用户用起来就会很麻烦,因为有的键必需有多种功能和分歧的触发方式,我认为可以增加少许按键来方便用户快速了解到我们的闹钟是如何进行控制的.所以本次设计设置5个键依次对其进行“时间校准”、“闹钟设置”、“秒分时切换/终止警报”、“加1按钮”、“减1按钮”.“秒分时切换/终止报警”键在调时状态中,起时分秒切换的作用,在非调试状态下,起闹钟终止的作用.当用户按下“时间校准”的按钮后,法式会关闭T0按时器,之后时钟停止工作,此时数码管会显示以后静止的时间,说明已经进入时间校准的界面了.在完成时间校准后,翻开T0按时器,时钟会在设置好的时间上继续工作走秒.当用户按下“闹钟设置”按钮后,会将以后时间复制出来提供给按时界面,注意此时我们的时钟仍然在继续工作,只是数码管显示的是按时模式的静止时间.当设置好后,此时用户设置的时间只要没有触发过闹铃,再次按“闹钟设置”按钮就能检查并修改,即闹钟会保管下用户最后一次未被触发的闹钟时间.当正常工作的时钟时刻达到了预设的闹铃时刻,蜂鸣器发出警报声,屏幕会闪烁并显示以后时间.考虑到用户可能已经被提醒而不想继续被闹铃声干扰,还提供了一个能够终止闹铃的功能,此功能与“时分秒切换”功能共用同一按键,按下后时钟继续正常工作,且闹钟功能又可以重新设置.本设计在Keil编程环境下,使用C语言进行编程的编纂.编纂胜利后,通过仿真软件Proteus进行仿真测试.LED显示屏×1主控芯片:AT89C52闹钟提示:蜂鸣器人机交互:按键×5晶振:12KHz×1排阻:RESPACK8×1电容:10nf×2总线收发器:74HC245×2第3章系统硬件设计系统硬件模块主要分为以下几个模块:1.主控模块:控制其他子模块.2.时钟模块:为系统提供实时时间.3.显示模块:显示系统时间信息.4.按键模块:用户通过按键进行人机交互,修改实时时间、设置闹钟时间和终止闹钟报警. 5.闹钟模块:在所设闹钟时间发出警报声.(1).AT89C52简介AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash 只读法式存储器和256 bytes的随机存取数据存储器(RAM),器件采纳ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS51指令系统,片内置通用8位中央处置器和Flash 存储单位,AT89C52单片机在电子行业中有着广泛的应用.AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程按时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以依照惯例方法进行编程,也可以在线编程.其将通用的微处置器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发本钱.AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应分歧产物的需求.AT89C52引脚图如图3.2.1:(2).工作原理AT89C52为8 位通用微处置器,采纳工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制.功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等.主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振.RST/Vpd(9 脚)为复位输入端口,外接电阻电容组成的复位电路.VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端.P0~P3 为可编程通用I/O 脚,其功能用途由软件界说,在本设计中,P0 端口(32~39 脚)被界说为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚界说为IR输入端,10 脚和11脚界说为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚界说为握手信号功能端口,连接主板CPU 的相应功能端,用于以后制式的检测及会聚调整状态进入的控制功能.P0 口:P0 口是一组8 位漏极开路型双向I/O 口, 也即地址/数据总线复用口.作为输出口用时,每位能吸收电流的方式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,可作为高阻抗输入端用.在访问外部数据存储器或法式存储器时,这组口线分时转换地址(低8 位)和数据总线复用,在访问期间激活内部上拉电阻.在Flash编程时,P0 口接收指令字节,而在法式校验时,输出指令字节,校验时,要求外接上拉电阻.P1 口:P1 是一个带内部上拉电阻的8 位双向I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路.对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口.作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).与AT89C51 分歧之处是,P1.0 和P1.1 还可分别作为按时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),Flash 编程和法式校验期间,P1 接收低8 位地址.P2 口:P2 是一个带有内部上拉电阻的8 位双向I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路.对端口P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL).在访问外部法式存储器或16 位地数据存储器(例如执行MOVX @DPTR 指令)时,P2 口送出高8 位地址数据.在访问8 位地址的外部数据存储器(如执行MOVX@RI 指令)时,P2 口输出P2锁存器的内容.Flash编程或校验时,P2亦接收高位地址和一些控制信号.P3 口:P3 口是一组带有内部上拉电阻的8 位双向I/O 口.P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路.对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口.此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL).P3 口除作为一般的I/O 口线外,更重要的用途是它的第二功能P3 口还接收一些用于Flash闪速存储器编程和法式校验的控制信号.RST:复位输入.当振荡器工作时,RST引脚呈现两个机器周期以上高电平将使单片机复位.ALE/PROG:当访问外部法式存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8 位字节.一般情况下,ALE 仍以时钟振荡频率的1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于按时目的.要注意的是:每当访问外部数据存储器时将跳过一个ALE 脉冲.对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG).如有需要,可通过对特殊功能寄存器(SFR)区中的8EH 单位的D0 位置位,可禁止ALE 把持.该位置位后,只有一条MOVX 和MOVC指令才华将ALE 激活.另外,该引脚会被微弱拉高,单片机执行外部法式时,应设置ALE 禁止位无效.PSEN:法式贮存允许(PSEN)输出是外部法式存储器的读选通信号,当AT89C52 由外部法式存储器取指令(或数据)时,每个机器周期两次PSEN 有效,即输出两个脉冲.在此期间,当访问外部数据存储器,将跳过两次PSEN信号.EA/VPP:外部访问允许.欲使CPU 仅访问外部法式存储器(地址为0000H—FFFFH),EA 端必需坚持低电平(接地).需注意的是:如果加密位LB1 被编程,复位时内部会锁存EA端状态.如EA端为高电平(接Vcc端),CPU 则执行内部法式存储器中的指令.Flash存储器编程时,该引脚加上+12V 的编程允许电源Vpp,固然这必需是该器件是使用12V编程电压Vpp.XTAL1:振荡器反相放年夜器及内部时钟发生器的输入端.XTAL2:振荡器反相放年夜器的输出端.利用芯片内部的振荡电路,在XTAL1、XTAL2的引脚上外接按时元件,内部振荡器便能发生自激振荡.按时元件可以采纳石英晶体和电容组成的并联谐振电路,如图3.2.2所示.晶振可以在1.2~12MHZ之间任选,甚至可以达到24MHz,可是频率越高功耗也就越年夜.和晶振并联的电容C1、C2的年夜小对振荡频率有微小影响,可以起到频率微调作用.时钟电路如图3.2.2:3.2.3 74HC245芯片电路中用74HC245芯片充任总线收发器,作用是放年夜信号,它具有典范的CMOS型三态缓冲门电路.由于单片机或CPU的数据/地址/控制总线端口都有一定的负载能力,如果负载超越其负载能力,一般应加驱动器.引脚界说:1引脚DIR:未输入输出端口转换用,当它为高电平“1”时,信号由“A”端口输入“B”端口输出;当它为低电平“0”时,信号由“B”端口输入“A”端口输出.29引脚:“A”端口输入输出端,每个端口与“B”端口对应.1118引脚:“B”端口输入输出端,每个端口与“A”端口对应.10引脚:GUD,电源地.20引脚:VCC,电源正极.74HC245引脚图如图3.2.3(1):图3.2.3(1)仿真电路图如图3.2.3(2):图3.2.3(2)3.3 LED显示模块本次课程设计采纳了6位数码管显示电路.在6位LED显示时,为了简化电路,降低本钱,采纳静态显示的方式, 6个LED显示器共用一个8位的I/O, 6位LED数码管的位选线分别由相应的P2. 0~P2. 5控制,而将其相应的段选线并联在一起,由一个8位的I/O口控制,即P0口.译码显示电路将“时”、“分”、“秒”计数器的输出状态经七段显示译码器译码,通过6位LED七段显示器显示出来.达到按时电路时根据计时系统的输出状态发生脉冲信号,然后去触发音频发生器实现闹铃.校时电路时用来对“时”、“分”、“秒”显示数字进行校对换整的.LED仿真电路图如图3.3:图3.4 按键模块按键模块共设置了五个按键,功能分别如下:(1).时间校准键“CLOCK”: 自锁开关,按下后进入校准设置,再次按下后退出.(2).闹钟设置键“ALARM CLOCK”: 自锁开关,按下后进入闹钟设置,再次按下后退出.另外可供用户对已经设置的闹钟时间进行检查或修改.(3). 秒分时切换/终止报警键“SWITCH/STOP”: 按钮开关,在按下“CLOCK”或“ALARM CLOCK”键时,为时分秒切换功能,默认是“秒”,再次按下是“分”,然后是“时”之后是“秒”,以此类推.在“CLOCK”或“ALARM CLOCK”键未按下时,为终止报警功能.(4).时间增加键“+”:按钮开关,可以在进入校准设置和闹钟设置后,进行加一把持.(5).时间减少键“”: 按钮开关,可以在进入校准设置和闹钟设置后,进行减一把持.按键模块仿真电路图如图3.4:闹铃指示设置有声和光两种形式.声音形式的关键元件是蜂鸣器.蜂鸣器有无源和有源两种,前者需要输入声音频率信号才华正常发声,后者则只需外加适当直流电源电压即可,本次设计我们使用的是后者.闹钟电路是用比力器来比力计时系统和按时系统的输出状态,如果计时系统和按时系统的输出状态相同,则发出一个脉冲信号,再和一个高频信号混合,送到放年夜电路驱动扬声器发声,从而实现按时闹响的功能.蜂鸣器仿真电路图如图3.5:第4章系统软件设计该部份主要分为实时时钟模块、LED显示模块、键盘中断模块、闹钟模块.实时时钟部份主要包括实时时间的读写,时间的修改.LED显示模块主要包括显示屏的初始化,显示的命令字.键盘中断模块包括各键的界说和作用,按键的消抖,各按键跳转的子法式分配.闹钟模块包括闹钟时间的设置,以及对蜂鸣器启动和停止条件的设置和处置.主法式包括三个部份.一是主函数部份,负责系统的初始化把持;从中断服务取得实时时间;判断闹钟时间是否与实时时间相等并在相等时发出警报声.第二部份是按时中断部份,分两种情况:负责处置从中断服务获得的时间数据并送至LED显示缓冲显示,或者显示闹钟设置界面并显示闹钟时间的设置过程.第三部份是外部中断,主要界说5个按键的作用,分配每一个按键跳转的子法式.第三部份负责时间和日期的修改,闹钟时间的设置,停止蜂鸣器鸣叫的功能.断系统在单片机应用系统中起着十分重要的作用,是现代嵌入式控制系统广泛采纳的一种适时控制技术,能对突发事件进行及时处置,从而年夜年夜提高系统对外部事件的处置能力.正是有了中断技术,单片机才得以能够普及.因此,中断技术是单片机的一项重要技术,掌握中断技术能开发出灵活、高效的单机片应用系统.要让单机片停止以后的法式去执行其他法式,需要向它发出请求信号,CPU接收到中断请求信号后才华发生中断.让CPU发生中断的信号称为中断源(又称中断请求源).单片机提供5个中断源,其中两个为外部中断请求源INT0(P3.2)和INT1(P3.3),两个片内按时器/计数器T0和T1的溢出请求中断源TF0和TF1,1个片内串行口发送或接收中断请求源T1和R1.单片机内的CPU工作时,如果一个中断源向它发出中断请求信号,它就会发生中断.可是,如果同时有两个中断源发出中断请求信号,CPU就会优先接收级别高的中断请求源,然后再接收优先级别低的中断请求.表4.3.2列出5个自力中断请求源由其硬件结构决定的自然优先级排列顺序.表4.3.2 单片机中断源的自然优先级、入口地址及中断编号对应于单片机的5个自力中断源,应有相应的中断服务法式.这些中断服务法式有专门规定的寄存位置,即表4.3.2的中断入口地址.当有了中断请求后,CPU可以根据入口地址迅速找到中断服务法式并开始执行,年夜年夜提高执行效率.主法式见附录.第5章系统测试Proteus仿真模拟软件.(1).在Proteus软件中绘制好按时闹钟仿真模拟电路图.(2).将Keil编译器生成的.hex文件载入AT89C52芯片.(3).在Proteus软件中,点击左下角的“play”按钮启动按时闹钟.如下图,“play”按钮在第一个.图5.3.1(3)仿真电路运行控制按钮详细测试内容如下:按时闹钟是否能正确显示时间;是否能正确显示闹钟设置时的界面;是否能正确显示时间调整时的界面.(1).显示时间点击“play”键之后,时钟系统开始走时,如图5.5.2(1):图5.3.2(1)经测试,显示结果达到预期要求.(2).时间调整测试如果用户发现时间运行分歧毛病,要对时间进行修改和调整,就需要进入时间修改的界面.预期可以对时、分、秒进行调整和修改.系统能正确显示时间修改的界面.用户可以完成时间的修改.经测试,该部份运行正常.(3).闹钟设置测试在系统能正确显示时间之后,用户若想设置闹钟,可以通过按键完成闹钟时间的设置.设置时间到后蜂鸣器报警,按下“STOP”键后警报停止经测试,该部份能正常运行.结论:通过以上对仿真项目的全面测试,可知仿真部份运行正常.通过以上测试,证明本设计基本实现系统所有要求,即能够正确显示时间信息,能够对以后时间进行调整和修改,而且能够设定闹钟并在所设置的闹钟时间发出警报声,通过按键可以停止警报.结论该系统采纳单机片AT89C52作为核心芯片,结合一些其他外围设备,一起构成了一款能够显示时间而且能够对其进行修改和设置按时闹钟的按时闹钟系统.该系统采纳数码管显示屏,能够清晰显示时间信息,而且能够友好的引导用户进行时间的修改以及闹钟的设置.可以通过各个寄存地址对时间进行读写把持,即读取时间和修改时间.利用蜂鸣器为用户提供闹铃功能,能够在设按时间发出警报声提醒用户.采纳按键较少的自力式键盘供人机交互,把持简双方便.可以通过键盘修改时间,也可以设置闹铃时间和修改闹铃时间,另外,在闹铃时间与系统时间一致,蜂鸣器鸣叫时,可以通过按键中断警报声.总之,该按时闹钟系统完成了市场上一般闹钟应有的功能,能够显示时间和设置闹钟,可以给用户提供时间信息.该设计也存在一些缺点,就是实际生产时投入资金会比市场上一般闹钟价格昂贵,如果进行包装,价格还会上升一些.另外,外观不如市场销售的闹钟美观.致谢衷心感谢雷俊红老师的指导.参考文献[1] 李强,51系列单片机应用软件编程技术[M].北京:北京航空航天年夜学出书社,.4:134138.[2] 薛慧芳.MCS51单机片串行口的一口多用[J].南京化工年夜学学报(自然科学版),1998,S1:8486.[3] 王东锋,王会良,董冠强.单机片C语言应用100例[M].北京:电子工业出书社,.3:218219,148152.[4] 楼然苗,李光飞.单片机课程设计指导(第2版)[M].北京:北京航空航天年夜学出书社,.1:285289.附录:系统电路图如下:系统电路图系统法式如下:#include<reg52.h>sbit btnTime = P1^0;sbit btnClock = P1^1;sbit btnSwitch = P1^2;sbit btnUp = P1^3;sbit btnDown = P1^4;sbit pin1 = P2^0;sbit pin2 = P2^1;sbit pin3 = P2^2;sbit pin4 = P2^3;sbit pin5 = P2^4;sbit pin6 = P2^5;sbit pinBuz = P2^6;unsigned char timer = 0,sec,min,hour,count = 0,s = 60,m = 60,h = 24,flag = 0; unsigned char code numbers[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; void delayMs(unsigned int k){unsigned int i,j;for(i = k;i>0;i)for(j = 110;j>0;j);}void timeChange(){sec++;if(sec == 60){sec = 0;min++;if(min == 60){min = 0;hour++;if(hour == 24)hour = 0;}}}void showTime(unsigned char zs,unsigned char zm, unsigned char zh){ pin1 = 1;P0 = numbers[zh/10];delayMs(5);pin1 = 0;pin2 = 1;P0 = numbers[zh%10]&0x7f;delayMs(5);pin2 = 0;pin3 = 1;P0 = numbers[zm/10];delayMs(5);pin3 = 0;pin4 = 1;P0 = numbers[zm%10]&0x7f;delayMs(5);pin4 = 0;pin5 = 1;P0 = numbers[zs/10];delayMs(5);pin5 = 0;pin6 = 1;P0 = numbers[zs%10];delayMs(5);pin6 = 0;}void setTime(){unsigned char st,mt,ht;if(btnTime == 0){delayMs(10);if(btnTime == 0){st = sec,mt = min,ht = hour;TR0 = 0;while(btnTime == 0){showTime(st,mt,ht);if(btnSwitch == 0){delayMs(10);if(btnSwitch == 0){while(!btnSwitch);count++;if(count == 3)count = 0;}}if(btnUp == 0){delayMs(10);if(btnUp == 0){while(!btnUp);switch(count){case 0:st++;if(st == 60)st = 0;break;case 1:mt++;if(mt == 60)mt = 0;break;case 2:ht++;if(ht == 24)ht = 0;break;default:;}}}if(btnDown == 0){delayMs(10);if(btnDown == 0){while(!btnDown);switch(count){case 0:if(st>0)st;elsest = 0;break;case 1:if(mt>0)mt;elsemt = 0;break;case 2:if(ht>0)ht;elseht = 0;break;default : ;}}}}TR0 = 1;sec = st,min = mt,hour = ht;}}showTime(sec,min,hour);}void setClock(){if(btnClock == 0){delayMs(50);if(btnClock == 0){if(flag == 0){s = sec;m = min;h = hour;}flag = 1;while(btnClock == 0){showTime(s,m,h);if(btnSwitch == 0){delayMs(10);if(btnSwitch == 0){while(!btnSwitch);count++;if(count == 3)count = 0;}}if(btnUp == 0){delayMs(10);if(btnUp == 0){while(!btnUp);switch(count){case 0:s++;if(s == 60)s = 0;break;case 1:m++;if(m == 60)m = 0;break;case 2:h++;if(h == 24)h = 0;break;default:;}}}if(btnDown == 0){delayMs(10);if(btnDown == 0){while(!btnDown);switch(count){case 0:if(s>0)s;elses = 0;break;case 1:if(m>0)m;elsem = 0;break;case 2:if(h>0)h;elseh = 0;break;default:;}}}}}}}void buzzer(){if((hour == h)&&(min == m)&&(sec == s)){int i;for(i = 1;i<30;i++){if(btnSwitch == 0){delayMs(20);if(btnSwitch == 0){break;}}pinBuz = 1;delayMs(450);showTime(sec,min,hour);pinBuz = 0;delayMs(300);showTime(sec,min,hour);}flag = 0;}}void init(){TMOD = 0x01;TH0 = (6553645872)/256;TL0 = (6553645872)%256;EA = 1;ET0 = 1;TR0 = 1;pinBuz = 0;}void main(){init();while(1){setTime();setClock();buzzer();}}void T0_ms() interrupt 1{TH0 = (6553645872)/256;TL0 = (6553645872)%256;timer++;if(timer == 20){timer = 0;timeChange();}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机系统课程设计成绩评定表设计课题:定时闹钟设计学院名称:专业班级:学生姓名:学号:指导教师:设计地点:设计时间:单片机系统课程设计课程设计名称:定时闹钟设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间:单片机系统课程设计任务书目录1 绪论 (4)1.1摘要 (4)1.2单片机基本概念 (4)2 设计的总体结构 (4)2.1电路的总体原理框图 (4)2.2 工作原理 (6)2.3 元器件名称 (7)3 各部分电路设计 (9)3.1 主电路 (9)3.2 显示电路 (9)3.3 内部时钟方式的电路 (10)3.4 按键及蜂鸣器电路 (11)4 整体电路图 (11)5 设计总结 (12)5.1 设计过程中遇到的问题及解决方法 (12)5.2 设计体会 (12)5.3 对设计的建议 (13)参考文献 (14)附录 (15)附录A 整体电路图 (15)附录B 源程序代码 (16)附录C 调试 (25)1 绪论本设计是简单定时闹钟系统,不仅能实现系统要求的功能:(1)能显示时时-分分-秒秒,(2)能设定和修改定时时间,(3)定时时间到后能发出报警声;而且还有附加功能,即还能设定和修改当前所显示的时间。
本设计采用单片机AT89C52作为核心元件,12MHZ晶振,由P0口输出所要显示的字形段码,由P2口输出字位信号。
在其基础上扩展外围芯片与电路,附加时钟电路及LCD电路。
单片机具有集成度高、功能强、通用性好、特别是它能耗低、价格便宜、可靠性高、抗干扰能力强和使用方便等独特的优点,所以单片机现在广泛的应用到家用电器、机电产品、儿童玩具、机器人、办公自动化产品等领域。
为了进一步的熟悉并掌握单片机的应用及开发,认真的做好此次课程设计非常必要。
一个单片机的定时闹钟系统离不开软件和硬件,硬件是软件的依托,软件是硬件的内核。
设计硬件电路时应该先设计一个单片机的最小系统,它是单片机应用系统的设计基础,然后在此基础上添加外围器件,如显示器、按键等构成闹钟的硬件电路图。
在设计应用程序时遵循模块化的设计方法,在明确了设计方向之后按照分成的几大模块分别画出流程图,然后根据流程图写出程序,在每个模块编写好之后分别调试、修改、完善。
最后在主程序下调用再次调试、修改。
通过这次设计让我更深入了解单片机基本电路、如何控制和定时器和中断编程的基本方法,从而锻炼了我学习、设计和开发软、硬件的能力。
2 系统方案2.1 电路的总体原理框图使用单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统进行不同状态的组合。
本系统采用单片机AT89C52作为本设计的核心元件,接入液晶显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,并显示“Time up”,提示预先设定时间电器的起停时间到,从而控制电器的起停。
电路由下列部分组成:时钟电路、复位电路、控制电路、LCD显示,报警电路,芯片选用AT89C52 单片机。
系统基本框图如图2.1所示:2.2 工作原理当给电路足够的电源时,电路开始正常初始化,此时显示“00 :00 :00”,若不进行时间调整和定时,时钟将正常计时下去。
若按下按键1,由于按下次数的不同,出现光标闪烁的位置不同,即可进行时间的时分秒的调整和定时时间的时分秒的调整,按键2和3分别是进行时间的加和减,若确定好时间,时钟将正常运行,到达定时时间后蜂鸣器将会响一段时间后停止。
如果按复位键,时钟将重新初始化,需要重新定制时间。
如果不做任何改动,到下一个定时的时间,时钟将会继续鸣叫。
定时闹钟的基本功能如下:首先,使用LCD液晶显示器来显示现在的时间。
其次,程序执行之后显示“Time:00:00:00”;按键功能如下:按键K1设置现在的时间和时调整;按键K2显示闹钟设置的时间和分调整;按键K3设置闹铃的时间和设置完成;按键K4闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声和闹铃时间到时,发出一阵声响,按下本键可以停止声响。
调整计时器时间如下:按下K1键,然后按K1调整小时,K2调整分钟,按下K3表示时间设置完成。
调整闹钟时间设置如下 : 再次按下K3开始闹中设置,LCD下一行显示“Alarm:00:00”按下K1设置小时,按一下K2设置分钟,再次按下K3设置完成,并且设置时间消失,当再次按一下K2时“Alarm:00:00再次显示并马上消失。
按一下K4关闭闹钟,再次按下打开闹钟。
2.3 系统流程图一个单片机的定时闹钟系统离不开软件和硬件,硬件是软件的依托,软件是硬件的内核。
系统软件设计总流程图如图2.2所示:定时闹钟设计,首先得对时钟闹铃有一个很好的设计和操作。
时钟闹铃设计流程图如图2.3所示:3 各部分电路设计3.1主电路主电路主要就是芯片的运行,加载程序后,在外部时钟的作用下,将按照程序运行,从而可以实现设计的要求,进行时钟时间和定时时间的调整,并且能够在到达定时时间后控制蜂鸣器发出声响。
如图3.1所示:图3.1 主电路3.2 显示电路显示电路即可以让我们看到时间的调整和定时时间的调整,显示调整后的时间。
如图3.2所示的显示电路:图3.2 仿真过程中的显示电路3.3 内部时钟方式的电路单片机内部有一个用于构成振荡器的高增益反向放大器,它的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。
这两个引脚跨接石英晶体和微调电容,构成一个稳定的自激振荡器。
时钟频率可以影响单片机的速度。
单片机的各功能部件的运行都以时钟控制信号为基准,如图3.3所示:图3.3 内部时钟方式的电路3.4 按键及蜂鸣器电路有源蜂鸣器是一种一体化结构的电子讯响器,是内部自带振荡电路,只需电平动就可以发生的蜂鸣器,而与其对应的无源蜂鸣器内部则无振荡电路。
按键可以对时间进行调整,蜂鸣器可以在到达定时的时间时提醒我们。
按键及蜂鸣器电路如图3.4所示:图3按键及蜂鸣器电路4 整体电路图定时闹钟的设计,由单片机AT89C52芯片和LCD、,辅以必要的的电路,构成一个单片机定时闹钟。
电子钟可采用数字电路实现,也可以采用单片机来完成。
LCD显示“时”,“分”,“秒”,定时时间到能发出警报声或者启动继电器,从而控制电器的启停。
现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。
在这次设计中主要是用AT89S52来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。
总体电路图见附图A。
设计总结5.1 设计过程中遇到的问题及解决方法在设计的过程中遇到问题是不可避免的,我遇到了很多问题,如下所示;1)烧程序时没发烧进去,需要改变最高和最低波特率,才能按照步骤把程序烧进去。
2)仿真时没问题的电路,在做好实物时发现无法运行。
原因可能是程序出现问题,或者在连实物时线路连接错误等等都有可能。
这是很难的一部分,需要查找出原因。
在做实物的过程中我进行的很多检查,有很多连接错误,最终又重新焊接的。
3)复位电路在实物中可以运行,但是在仿真中不能正常运行。
目前还未找到原因。
5.2设计体会这次设计中遇到了很多问题,例如刚开始我在在仿真时程序出现了每次按按钮时总是显示测量时需要关闭仿真的字样,试了很多方法都没有找到原因,最后才知道是因为按钮太近的缘故。
很多类似的经历让我明白:1)在设计程序之前,务必要对所学单片机课程的内容有一个系统的了解,知道单片机片内片外的内容及其功能。
2)设计程序关键要有一个清晰的思路和一个完整的软件流程图。
模块化的设计思想在程序设计中的作用是重大的,它可以为你提供一个比较清晰的思路,并且很容易找到头绪,不至于在编写一个程序时感觉到无从下手。
3)在设计程序时,不能妄想一次就将整个程序设计好,"反复修改,不断改进"是程序设计的必经之路。
程序刚开始编好时,一般情况下会存在很多错误,要不断地修改,不断的改进才能达到预期的目的,编写程序的时间并不是很长,主要用于修改程序了。
4)要养成注释程序的好习惯,让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。
刚开始我在编写程序时,很不习惯于写注释,感觉很麻烦,而且没用,但是在修改的过程中我就遇到了较大的麻烦,以至于不得不重新的作了注释,以增加程序的易读性,从而使修改过程变得容易一些。
总之,通过这次课程设计不仅使我巩固了本课程所学的基本知识,还使我具有了撰写科研报告的初步训练能力,我相信这些能力在我以后的工作或者是再学习中一定会起到不小的作用,一切的辛苦和艰难都是值得的。
5.3对设计的建议在设计前应该对所要实现的功能有一定的了解,定下有大概的流程图,把设计模块化,写程序时也应该一个模块一个模块的写,这样方便理解,也方便以后的检查。
在仿真和实物的过程中要了解所使用芯片的功能及引脚的排列方式,这样焊接时比较方便。
参考文献[1]余发山.单片机原理及应用技术.中国矿业大学出版社,2003.21-45,98-118,185-198[2]刘和平. 单片机编程与入门.重庆大学出版社,2002.68-99,111-122[3]陈明荧. 89C51单片机课程设计实训教材.清华大学出版社,2003.38-67,102-118[4]刘瑞新. 单片机原理及应用教程.北京机械工业出版社,2005.78-109[5]杨文龙. 单片机原理及应用.西安电子科技大学出版社,2002.33-62[6]董国增. 单片机接口及应用实验和训练指导.北京机械工业出版社,1998.43-70[7]付寿英,张登举,徐飞. 单片机接口技术及在工业控制中的应用.陕西科学技术出版,2001.78-101附录A 整体电路图附录B 定时闹钟源程序代码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,#00HMOV 31H,#00HMOV 32H,#00HMOV 33H,#00HMOV 34H,#00HMOV 35H,#00HMOV 36H,#01HMOV 37H,#00HMOV 38H,#01HMOV 39H,#00HMOV TMOD,#01H ;16位计数器MOV TH0,#03CH ;赋计数初值MOV TL0,#0B0HMOV IE,#10000111BSETB TR0 ;T0启动计数MOV R2,#14HMOV P2,#0FFHLOOP: LCALL TIMEPROLCALL DISPLAY1JB P1.0,M1LCALL SETTIME ;调用设定时间程序LJMP LOOPM1:JB P1.1,M2LCALL SETA TIME ;调用设定时间程序LJMP LOOPM2:JB P1.3,M4LCALL LOOKATIME ;调用设定闹钟时间程序M4:LJMP 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.1,L1MOV C,P1.1JC MM1LCALL DELAY1 ;调用延时JC MM1MSTOP1: MOV C,P3.0JNC MSTOP1 ;判断P3.0是否释放?释放则继续LCALL DELAY1 ;调用延时MOV C,P3.0JNC MSTOP1INC 22H ;小时增加1MOV A,22HCJNE A,#18H,GO12 ;判断小时是否到1时?未到继续循环MOV 22H,#00H ;小时复位MOV 34H,#00HMOV 35H,#00HLJMP L0L1:JB P1.2,L2MOV C,P1.2JC L1LCALL DELAY1 ;延时JC L1MSTOP2: MOV C,P1.2JNC MSTOP2 ;判断P1.2是否释放?释放则继续LCALL DELAY1 ;调用延时MOV C,P1.2JNC MSTOP2INC 21H ;分钟增加一MOV A,21HCJNE A,#3CH,GO11MOV 21H,#00H ;分钟复位MOV 32H,#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.3,L0MOV C,P1.3JC L2LCALL DELAY1 ;调用延时MOV C,P1.3JC L2STOP1: MOV C,P1.3 ;判断按键P1.3是否释放?JNC STOP1LCALL DELAY1 ;调用延时MOV C,P1.3JNC STOP1LJMP LOOP;×××××设置闹钟时间×××××SETATIME:LCALL DISPLAY2 ;调用时间运行N0:LCALL DISPLAY2MM2: JB P1.2,N1 ;判断P1.2是否按下?MOV C,P1.2JC MM2LCALL DELAY1JC MM2MSTOP3: MOV C,P1.2 ;判断P1.2是否释放?JNC MSTOP3LCALL DELAY1MOV C,P1.2JNC MSTOP3INC 24H ;设定小时增加1MOV A,24HCJNE A,#24,GO22MOV 24H,#00H ;时钟复位MOV 38H,#00HMOV 39H,#00HLJMP N0N1:JB P1.0,N2 ;判断P1.0是否按下?MOV C,P1.0JC N1LCALL DELAY1JC N1MSTOP4: MOV C,P1.0 ;判断P1.0是否释放?JNC MSTOP4LCALL DELAY1MOV C,P1.0JNC 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:JB P1.3 ,N0 ;判断P1.3是否按下?MOV C,P1.3JC N2LCALL DELAY1MOV C,P1.3JC N2STOP2: MOV C,P1.3 ;判断P1.3是否释放?JNC STOP2LCALL DELAY1MOV C,P1.3JNC STOP2LJMP LOOPTIMEPRO:MOV A,21HMOV B,23HCJNE A,B,BK ;判断分钟是否运行到设定的闹钟的分钟?MOV A,22HMOV B,24HCJNE A,B,BK ;判断时钟是否运行到设定的闹钟的时钟?SETB 25H.0MOV C,25H.0JC XXXX: LCALL TIMEOUT ;调用时间闹钟响应程序BK:RETTIMEOUT:X1:LCALL BZ ;调用喇叭响应程序LCALL DISPLAY2CLR 25H.0JB P1.3, X1 ;判断P1.3是否按下?LCALL DELAYCLR 25H.0LJMP DISPLAY1BZ: CLR P3.7 ;喇叭响应程序MOV R7,#250 ;响应延时时间T2: MOV R6,#124T3: DJNZ R6,T3DJNZ R7,T2SETB P3.7RETLOOKATIME:LCALL DISPLAY2 ;调用时间运行程序MM: JB P1.3,LOOKA TIME ;判断按键P1.3是否按下MOV C,P1.3JC MMLCALL DELAY1MOV C,P1.3JC MMSTOP3: MOV C,P1.3JNC STOP3LCALL DELAY1MOV C,P1.3JNC STOP3LJMP LOOPDELAY1: MOV R4,#14H ;时间延时DL001: MOV R5,#0FFHDL111: DJNZ R5,DL111DJNZ R4,DL001RET;×××××时间运行程序×××××TIME: PUSH ACC ;现场保护PUSH PSWMOV TH0,#03CH ;赋初值MOV TL0,#0B0HDJNZ R2,RET0MOV R2,#14HMOV A,20HCLR CINC A ;秒钟自加1CJNE A,#3CH,GO1 ;判断秒钟是否到60秒?MOV 20H,#0 ;到60秒复位MOV 30H,#0MOV 31H,#0MOV A,21HINC A ;分钟自加1CJNE A,#3CH,GO2 ;判断分钟是否到60分?MOV 21H,#0H ;到60分复位MOV 32H,#0MOV 33H,#0MOV A,22HINC A ;时钟自加1CJNE A,#18H,GO3 ;判断时钟是否到24时?MOV 22H,#00H ;到24时复位MOV 34H,#0MOV 35H,#0AJMP RET0GO1: MOV 20H,AMOV B,#0AHDIV ABMOV 31H,AMOV 30H,BAJMP RET0GO2: MOV 21H,AMOV B,#0AHDIV ABMOV 33H,AMOV 32H,BAJMP RET0GO3: MOV 22H,AMOV B,#0AHDIV ABMOV 35H,AMOV 34H,BAJMP RET0RET0: POP PSW ;恢复现场POP ACCRETI;×××××运行部分×××××DISPLAY1: MOV R0,#30HMOV R3,#0FEHMOV A,R3PLAY1: MOV P2,AMOV A,@R0MOV DPTR,#DSEG1 ;表首地址送DPTRMOVC A,@A+DPTRMOV P0,ALCALL DL1MOV P2,#0FFH ;送高电平到P2MOV A,R3RL A ;JNB ACC.6,LD1INC R0MOV R3,ALJMP PLAY1 ;调用查表程序LD1: RETDISPLAY2: PUSH ACC ;现场保护PUSH PSWMOV R0,#36HMOV R3,#0FBHMOV A,R3PLAY2: MOV P2,AMOV A,@R0MOV DPTR,#DSEG1 ;表首地址送DPTRMOVC A,@A+DPTR ;查ASCII特码MOV P0,A ;查表结果送ALCALL DL1MOV P2,#0FFH ;送高电平到P2MOV A,R3RL AJNB ACC.6,LD2INC R0MOV R3,ALJMP PLAY2LD2: POP PSW ;恢复现场POP ACCRET;×××××延时时间×××××DL1: MOV R7,#02H ;延时时间DL: MOV R6,#0200HDL6: DJNZ R6,$DJNZ R7,DLRETDSEG1:DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND附录C 调试当时钟通电刚开始显示时:在计时的过程中某一时刻的显示电路:当设定定时时间为30分钟,并且定时时间到时显示器的显示:当修改定时时间为1小时,定时时间到时显示器的显示:。