单片机课设--定时闹钟
单片机设计闹钟课程设计
单片机设计闹钟课程设计一、课程目标知识目标:1. 让学生理解单片机的基本原理,掌握闹钟设计的硬件组成和功能模块。
2. 使学生掌握C语言编程基础,能够运用C语言编写简单的闹钟程序。
3. 帮助学生了解单片机中断、定时器等知识,并能将其应用于闹钟设计。
技能目标:1. 培养学生动手实践能力,能够独立完成闹钟硬件电路的搭建和程序编写。
2. 提高学生问题解决能力,能够根据实际需求调整闹钟程序,实现相应功能。
3. 培养学生团队协作能力,能够在小组合作中发挥个人优势,共同完成课程任务。
情感态度价值观目标:1. 培养学生对单片机及编程的兴趣,激发学习热情,树立自信心。
2. 培养学生勇于尝试、不断探索的精神,使其面对困难时保持积极态度。
3. 培养学生遵守实验规程,注重安全意识,养成良好的实验习惯。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握单片机设计与编程的基本技能。
学生特点:学生处于高年级阶段,已具备一定的电子技术基础和编程知识,具备独立思考和解决问题的能力。
教学要求:教师应注重理论与实践相结合,引导学生主动参与,关注个体差异,激发学生潜能,提高教学质量。
通过课程学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。
二、教学内容1. 硬件知识:介绍闹钟电路的组成,包括单片机芯片、时钟电路、蜂鸣器、按键等部件的功能和连接方式。
- 教材章节:《单片机原理与应用》第三章“单片机硬件结构”2. C语言编程:讲解C语言基础知识,重点掌握数据类型、运算符、控制语句等,并应用于单片机程序编写。
- 教材章节:《C语言程序设计》第二章“C语言基础”3. 单片机编程:学习单片机编程基础,掌握中断、定时器等编程方法,实现闹钟功能。
- 教材章节:《单片机原理与应用》第四章“中断与定时器”4. 闹钟程序设计:根据实际需求,编写闹钟程序,实现设定时间、响铃、停止等功能。
- 教材章节:《单片机原理与应用》第七章“项目实践案例”5. 实践操作:指导学生进行闹钟硬件电路搭建,程序编写和调试,培养学生动手能力。
定时闹钟单片机课程设计
定时闹钟单片机课程设计设计背景与目的定时闹钟是我们日常生活中经常使用的一种设备。
它可以帮助人们准时起床或提醒完成某项任务。
在现代社会快节奏的生活中,定时闹钟的使用频率越来越高,因此,设计一个定时闹钟单片机课程是非常有必要的。
本次设计的目的是让学生能够通过实践了解单片机的基本原理和操作。
通过设计一个定时闹钟,学生可以深入理解定时器的使用,了解时钟的工作原理,并通过实际操作掌握单片机编程技能。
设计原理和流程设计原理本次定时闹钟单片机课程设计主要使用了单片机的定时器和外部中断功能。
单片机的定时器可以生成计时中断,而外部中断可以用来接收按键输入。
设计的基本原理是,定时器定时一定的时间后触发计时中断,中断函数中实现闹钟功能。
同时,通过外部中断接收按键输入,用来设置闹钟时间。
设计流程1.设置定时器的工作模式和计时时间。
2.设置外部中断,用于接收按键输入。
3.编写中断函数,实现闹钟功能。
4.编写主函数,初始化单片机和相关端口。
5.在主函数中进入循环,不断监听按键输入和处理闹钟逻辑。
设计实现硬件设计本次设计使用的硬件主要包括单片机、按键和数码管。
1.单片机:选择一款适合的单片机,如STC89C52系列单片机,具备定时器和外部中断功能。
2.按键:使用几个按键来实现闹钟的设置和关闭。
3.数码管:用于显示当前时间和闹钟设置时间。
软件设计本次设计使用Keil C编程软件和Proteus仿真软件。
软件设计主要包括以下几个模块。
1.定时器和中断:初始化定时器并设置工作模式和计时时间,编写中断函数来实现闹钟的功能。
2.IO口:根据接线设计,设置IO口的输入输出模式并初始化端口状态。
3.按键扫描:通过外部中断接收按键输入,并根据按键的不同功能来进行相应的操作。
4.数码管驱动:编写数码管的显示函数,根据当前时间和闹钟设置时间来显示相应的信息。
设计测试与改进设计完成后,需要对定时闹钟进行测试和改进。
测试阶段主要包括功能测试和稳定性测试。
单片机定时闹钟课程设计
单片机定时闹钟课程设计一、课程目标知识目标:1. 理解单片机定时器的工作原理,掌握定时器的编程方法;2. 学会使用单片机实现闹钟功能,了解时间计算与时间显示的基本方法;3. 掌握相关电子元器件的原理和功能,如晶振、电容、数码管等。
技能目标:1. 能够运用C语言编写单片机程序,实现闹钟的定时与显示功能;2. 学会使用调试工具对单片机程序进行调试,解决常见问题;3. 提高动手能力,能够独立完成单片机定时闹钟的硬件电路搭建与程序编写。
情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发创新意识;2. 培养学生团队协作精神,学会共同解决问题;3. 增强学生实践操作能力,树立实践出真知的观念。
课程性质:本课程为实践性课程,结合理论教学,注重培养学生的动手能力与实际应用能力。
学生特点:学生具备一定的单片机基础知识,对编程有一定了解,但对实际应用尚缺乏经验。
教学要求:结合学生特点,注重理论与实践相结合,以学生为主体,引导学生主动参与,提高学生的实践操作能力。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. 理论知识:- 单片机定时器/计数器的工作原理与编程方法;- 时间计算与时间显示技术;- 硬件电路设计原理,包括晶振、电容、数码管等元器件的应用。
2. 实践操作:- 搭建单片机定时闹钟的硬件电路;- 编写单片机程序,实现定时与显示功能;- 使用调试工具对程序进行调试,解决常见问题。
3. 教学大纲:- 第一阶段:回顾单片机基础知识,介绍定时器/计数器原理,分析闹钟功能需求;- 第二阶段:学习时间计算与显示技术,讲解硬件电路设计方法;- 第三阶段:动手实践,分组进行硬件电路搭建与程序编写;- 第四阶段:程序调试与优化,展示成果,总结经验。
4. 教材关联:- 教材第3章:单片机定时器/计数器的原理与应用;- 教材第4章:C语言编程基础,涉及闹钟程序编写;- 教材第5章:电子元器件及其应用,用于硬件电路设计。
单片机课程设计定时闹钟
单片机课程设计定时闹钟-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN一、任务说明本设计师定时闹钟的设计,由单片机AT89C51芯片和LCD、LED显示器,辅以必要的的电路,构成一个单片机定时闹钟。
电子钟可采用数字电路实现,也可以采用单片机来完成。
LCD显示“时”,“分”,LED闪动来做秒计数,定时时间到能发出警报声或者启动继电器,从而控制电器的启停。
现在是自动化高度发达的时代,特别是电子类产品都是靠内部的控制电路来实现对产品的控制,达到自动运行的目的,这就需要我们这里要做的设计中的电器元件及电路的支持。
在这次设计中主要是用AT89S51来进行定时,也结合着其他辅助电路实施控制,在定时的时候,按一下控制小时的键对小时加一;按一下控制分钟的键对分钟加一;到达预设的时间,此电路就会发出报警声音提示已经到点。
二、原理图绘制说明1、原理及工作过程说明(1)定时闹钟的基本功能如下:(a)使用LCD液晶显示器来显示现在的时间。
(b)程序执行之后显示“Time:00:00”;并且LED闪烁,表示开始已经计时。
(c)由LED闪动来做秒计数表示。
(2)按键功能如下:按键K1设置现在的时间和时调整;按键K2显示闹钟设置的时间和分调整;按键K3设置闹铃的时间和设置完成;按键K4闹铃ON/OFF的状态设置,设置为ON时连续三次发出“哗”的一声,设置为OFF发出“哗”的一声和闹铃时间到时,发出一阵声响,按下本键可以停止声响。
(3)调整计时器时间如下:按下K1键,然后按K1调整小时,K2调整分钟,按下K3表示时间设置完成。
(4)调整闹钟时间设置如下 :再次按下K3开始闹中设置,LCD下一行显示“Alarm:00:00”按下K1设置小时,按一下K2设置分钟,再次按下K3设置完成,并且设置时间消失,当再次按一下K2时“Alarm:00:00再次显示并马上消失。
按一下K4关闭闹钟,再次按下打开闹钟。
2、原理总框图图1 总原理图3、元器件功能说明AT89C51单片机引脚功能说明本设计的核心硬件就是8051芯片,这里选择了AT89C51,AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。
单片机闹钟课程设计
单片机闹钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理和功能,掌握闹钟设计的硬件组成。
2. 学生能掌握单片机编程的基本语法,运用C语言编写闹钟程序。
3. 学生了解闹钟的运行原理,掌握时间计算、时间显示和时间调整的方法。
技能目标:1. 学生能够独立完成闹钟硬件的连接与调试。
2. 学生能够运用所学知识,编写并优化闹钟程序,实现闹钟的基本功能。
3. 学生具备分析问题、解决问题的能力,能够对闹钟设计过程中遇到的问题进行有效解决。
情感态度价值观目标:1. 培养学生热爱科学、主动探究的学习态度,增强学生对单片机及编程的兴趣。
2. 培养学生的团队合作意识,学会在团队中沟通、协作、分享。
3. 培养学生的创新意识,鼓励学生在设计过程中发挥想象,勇于尝试。
课程性质:本课程为实践性课程,注重理论知识与实践操作的相结合,旨在提高学生的动手能力、编程能力和创新能力。
学生特点:本课程针对初中或高中年级学生,他们对单片机有一定的基础了解,具备基本的编程知识,喜欢动手操作,对新鲜事物充满好奇心。
教学要求:教师应注重理论与实践相结合,引导学生主动探究,关注学生的个体差异,提供有针对性的指导。
同时,注重培养学生的团队合作意识和创新能力。
在教学过程中,将课程目标分解为具体的学习成果,以便于教学设计和评估。
二、教学内容1. 理论知识:a. 单片机原理与结构:介绍单片机的基本组成、工作原理及性能参数。
b. C语言基础:回顾C语言基本语法,强调在单片机编程中的应用。
c. 闹钟原理:讲解闹钟的运行机制,包括时间计算、时间显示和时间调整等。
2. 实践操作:a. 硬件连接:指导学生完成单片机、时钟模块、显示屏等硬件的连接与调试。
b. 程序编写:教授学生如何使用C语言编写闹钟程序,实现闹钟的基本功能。
c. 系统调试:教授学生如何对闹钟程序进行调试,优化程序性能,解决常见问题。
3. 教学大纲:a. 第一周:单片机原理与结构,C语言基础回顾。
单片机课程设计_定时闹钟设计
单片机系统课程设计成绩评定表设计课题:定时闹钟设计学院名称:电气工程学院专业班级:学生姓名:学号:指导教师:设计地点:设计时间:单片机系统课程设计课程设计名称:定时闹钟设计专业班级:学生姓名:学号:指导教师:课程设计地点:课程设计时间:单片机系统课程设计任务书摘要:定时闹钟设计主要有硬件部分和软件部分组成,硬件部分以单片机为核心,在其周围有电源电路、时钟电路、复位电路、驱动电路和显示电路组成。
软件部分是用汇编语言编程,用protel软件进行绘图、编译、调试,形成以单片机为枢纽,以程序为动力,实现定时闹钟的功能。
关键字:AT89C51 定时闹钟protel 汇编语言目录1.设计要求 (4)2.作用与目的 (1)3.设备及软件 (1)3.1 AT89C51单片机 (1)4. 系统设计方案 (2)4.1工作原理 (2)5.系统硬件设计 (2)5.1系统总体设计 (2)5.2 系统时钟电路设计 (3)5.3系统复位电路的设计 (3)5.4闹钟指示电路设计 (4)5.5电子闹钟的显示电路设计 (4)6.系统软件设计 (5)6.1主模块的设计 (5)6.2基本显示模块设计 (6)6.3时间设定模块设计 (7)6.4闹铃功能的实现 (8)7.设计中的问题及解决方法 (11)8.总结 (12)参考文献 (13)附录1 系统整体结构电路原理图 (14)附录2 程序清单 (15)1. 设计要求1.1、能显示时时-分分-秒秒。
1.2、能够设定定时时间、修改定时时间。
1.3 定时时间到能发出报警声或者启动继电器,从而控制电器的启停。
2. 作用与目的以单片机为核心的数字时钟是很有社会意义和社会价值的。
钟表原先的报时功能已经原不能满足人们日益增长的要求,现代的电子时钟多带有类似自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、通断动力设备、甚至各种定时电气的自动启用等功能数字闹钟通过数字电路实现时、分、秒。
单片机课程设计报告-定时闹钟(含程序)
河南理工大学单片机课程设计报告定时闹钟姓名:XXX学号:XXX专业班级:XXX指导老师:XXX所在学院:电气工程与自动化学院XXX年6月30日本设计是用单片机原理及其相关硬件的运用实现的定时闹钟。
数字电子钟设计与制作可采用数字电路实现,也可以采用单片机来完成。
若用数字电路完成,所设计的电路相当复杂,大概需要十几片数字集成块,其功能也主要依赖于数字电路的各功能模块的组合来实现,焊接的过程比较复杂,成本也非常高。
若用单片机来设计制作完成,由于其功能的实现主要通过软件编程来完成,那么就降低了硬件电路的复杂性,而且其成本也有所降低,所以在该设计与制作中采用单片机AT89C51,它是低功耗、高性能的CMOS型8位单片机。
片内带有4KB的Flash存储器,且允许在系统内改写或用编程器编程。
另外, AT89C51的指令系统和引脚与8051完全兼容,片内有128B 的RAM、32条I/O口线、2个16位定时计数器、5个中断源、一个全双工串行口等。
显示部分采用六位一体的共阳极数码管,运用同相三态双向总线收发器74LS245作为输出驱动显示部件的元件。
在编写程序的过程采用了定时程序和时间调整程序对称的编写方法。
并且在时间的调整或设置过程中本设计采用了长按进行调时或调分的选择,短按是进行在选择后进行加1,每短按一次,该单位加1.调整完毕以后再次长按原设置键即可跳出设置循环,显示部分――共阳极数码管显示正常走时的时间。
但是该程序在硬件的仿真过程中有点瑕疵。
在仿真开始时警示灯直接亮,必须通过闹钟定时键K2的闹钟设置以后时间才可以正常走时。
之后可以进行时间的调整或闹钟的重新调整。
1 概述 (3)1.1设计任务 (3)1.2设计要求 (3)1.3设计意义 (3)2 系统总体方案与硬件选择设计 (4)2.1系统总体方案 (4)2.2硬件选择设计 (4)3 软件设计 (9)3.1程序流程图 (9)3.2程序模块 (10)4 PROTEUS软件仿真 (17)5 课程设计体会 (19)参考文献 (19)附1:源程序代码 (21)附2:系统原理图 (33)1概述1.1 设计任务在熟练掌握单片机及其仿真系统的使用方法的基础上,综合应用单片机原理,微机原理,微机接口技术等专业知识,设计采用一个AT89C51单片机控制的定时闹钟。
单片机定时闹钟课程设计
单片机定时闹钟课程设计一、课程目标知识目标:1. 让学生掌握单片机的基本原理,理解定时器的功能和工作原理。
2. 使学生掌握定时闹钟程序编写的基本方法,了解中断处理的相关知识。
3. 帮助学生了解电子时钟的基本构成,掌握时间计算和显示的相关技巧。
技能目标:1. 培养学生动手实践能力,学会使用编程软件编写、调试程序,实现单片机定时闹钟功能。
2. 提高学生分析问题和解决问题的能力,能够独立完成定时闹钟课程的各项任务。
3. 培养学生团队协作能力,学会在项目过程中进行有效沟通和分工合作。
情感态度价值观目标:1. 培养学生对单片机编程的兴趣,激发他们探索未知、自主学习的精神。
2. 培养学生勇于尝试、不怕失败的品质,提高他们面对困难时的心理素质。
3. 增强学生的创新意识,鼓励他们发挥想象力和创造力,设计出具有个性的定时闹钟作品。
课程性质分析:本课程属于电子技术与应用领域的实践课程,旨在让学生通过动手实践,掌握单片机定时闹钟的设计与制作。
学生特点分析:学生处于中学阶段,具有一定的电子技术基础和编程能力,对新鲜事物充满好奇,喜欢动手实践。
教学要求:1. 结合课本知识,注重理论与实践相结合,提高学生的实际操作能力。
2. 注重培养学生的创新精神和团队协作能力,提高他们的综合素质。
3. 以学生为主体,关注个体差异,因材施教,使每个学生都能在课程中取得进步。
二、教学内容1. 单片机基础原理回顾:包括单片机的结构、工作原理、定时器/计数器功能。
2. 定时器编程技术:重点讲解定时器的初始化、中断处理程序编写,以及定时器应用实例。
- 教材章节:第三章《单片机定时器/计数器》3. 中断系统原理:介绍中断的概念、中断优先级、中断向量表,以及中断处理流程。
- 教材章节:第四章《中断系统》4. 显示技术:讲解数码管、LCD等显示器件的工作原理和编程方法。
- 教材章节:第五章《显示技术》5. 定时闹钟设计与实现:包括闹钟功能的整体设计、程序编写、调试与优化。
单片机课程设计定时闹钟
单片机课程设计定时闹钟一、课程目标知识目标:1. 理解单片机的基本原理和内部结构,掌握定时器/计数器的工作原理;2. 学会使用C语言编写单片机程序,实现对定时闹钟的功能设计;3. 掌握单片机中断系统的使用,了解其在定时闹钟中的应用。
技能目标:1. 能够运用所学知识,独立设计并实现一个具有定时功能的闹钟;2. 培养学生动手实践能力,学会使用编程软件和开发工具,进行程序编写、调试与下载;3. 提高学生的问题分析和解决能力,学会在设计过程中考虑实际需求,优化程序性能。
情感态度价值观目标:1. 培养学生对单片机及电子制作的兴趣,激发学习热情;2. 培养学生的团队协作意识,学会在项目合作中沟通与分享;3. 培养学生严谨的科学态度,注重细节,追求卓越。
课程性质:本课程属于实践性较强的学科,要求学生将理论知识与实际操作相结合,完成具有实际应用价值的设计项目。
学生特点:学生已具备一定的单片机基础知识,对编程有一定了解,但实践经验不足。
教学要求:结合学生特点,注重实践操作,以项目为导向,引导学生通过自主探究、小组合作等方式,完成课程目标。
将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容1. 理论知识:- 单片机内部结构及工作原理复习;- 定时器/计数器原理及其在单片机中的应用;- 中断系统原理及其使用方法;- C语言编程基础复习,重点讲解定时器编程方法。
2. 实践操作:- 使用编程软件(如Keil)进行程序编写和调试;- 单片机最小系统搭建,了解并实践时钟电路、复位电路等;- 设计并实现定时闹钟程序,掌握定时中断的使用;- 调试与优化,确保定时闹钟功能的准确性。
3. 教学大纲:- 第一周:复习单片机基础知识,讲解定时器/计数器原理;- 第二周:学习中断系统,实践定时器编程;- 第三周:编写定时闹钟程序,进行初步调试;- 第四周:优化程序,完成定时闹钟功能,并进行展示与评价。
教材章节关联:- 《单片机原理与应用》第三章:单片机的内部结构和工作原理;- 第四章:定时器/计数器及中断系统;- 第九章:C语言编程。
基于单片机的定时闹钟设计
定时闹钟的激活机 制
优点: 相比没有激活功能的定时闹钟,设 有激活机制的定时闹钟省去了用户在 不 需要闹铃提示的时候手动去暂停发出 警 报声的定时闹钟的麻烦。
开始
设置闹钟时间
闹钟是否激活? N
Y 闹钟时间= 当前时间? N
Y 蜂鸣器发 出警示声
S4键被 N 按下? Y
结束
图2 闹钟程序流程 图
3 .闹铃响起的条件和停止
1 响起的条件 2 定时闹钟发出警报声需要满足以下两个
条件: 3 系统时间与设定的闹铃时间相等 4 闹铃提示功能被激活,即显示屏上有
“N” 5 的提示信息。 6 闹铃停止的两种方法 7 按一次K4键撤销闹铃提示服务。 8 等待系统时间分位与设定的闹铃时间分
系统仿真电路图
实物图
结束
谢谢观看 !
(2).第二次按K1键, 光标从分位跳到时 位, , 表示当前设置的是闹钟的时位。
(3).当将闹钟的分位和时位均设置完毕 时, 第三次按下K1键, 光标消失, 系统正 常显 示时间和日期等信息。
2 .闹铃的开启
即使系统设有闹铃时间,蜂鸣器也不 一定会在设定时间发出警报声。为避免闹 铃在用户不需要的时候响起,该定时闹钟 系统采用了闹钟激活机制。只有在设置了 闹钟时间并且用户有激活闹铃服务的时候, 蜂鸣器才会在设定时间发出警报声。激活 方式: 按一次K4键。再按一次则会取消。当 闹铃激活时,LCD显示屏上会出现“N”的 提示信息,提示有闹钟提示开启。
图1 实时时钟程序流程 图
图二 1602型LCD的驱动程序流程图
二、 时间和日期的修改
在系统正常运行过程中, 当K1键第一次 被按下时, 关闭定时器(TR0=0), 并且在 时间的秒位出现闪烁的光标, 提示用户现在 更改的是时间的秒位部分。可通过继续按 K1来选择需要调整的其他位, 利用K2进行加 运算, K3进行减运算。直到K1键被第十次按 下的时候, 打开定时器(TR0=1)。系统回 到显示时间和日期的模式下。
单片机简易闹钟课程设计
单片机简易闹钟课程设计一、课程目标知识目标:1. 学生能理解单片机的基本原理,掌握闹钟设计的硬件组成及其功能。
2. 学生能掌握C语言编程的基本语法,运用其进行单片机的程序编写。
3. 学生了解实时时钟(RTC)的工作原理,能通过编程实现对时间的读取和设置。
技能目标:1. 学生能运用所学知识,设计并实现一个具有闹钟功能的基本单片机系统。
2. 学生能通过实践操作,学会使用开发板、编程器等工具,提高动手能力。
3. 学生能够分析并解决简易闹钟制作过程中遇到的问题,具备一定的故障排查能力。
情感态度价值观目标:1. 学生在课程学习中,培养对电子制作的兴趣和热情,提高创新意识和团队协作精神。
2. 学生通过实际操作,认识到知识在实际应用中的价值,增强学以致用的意识。
3. 学生在课程实践中,体验克服困难、解决问题的过程,培养坚持不懈、勇于挑战的品质。
课程性质:本课程为实践性较强的课程,结合单片机原理与应用,以项目为导向,培养学生的动手能力和实际问题解决能力。
学生特点:学生为初中或高中年级,具有一定的基础电子知识和C语言编程基础,对新鲜事物充满好奇,喜欢动手操作。
教学要求:教师需结合学生特点,采用讲授与实践相结合的教学方法,引导学生主动参与,注重培养学生的实际操作能力和团队协作能力。
在教学过程中,关注学生个体差异,给予个性化指导,确保学生能够达成课程目标。
通过课程学习,使学生将理论知识与实际应用紧密结合,提高综合素养。
二、教学内容1. 单片机基础知识:介绍单片机的硬件组成、工作原理,重点讲解51单片机的内部结构、引脚功能及寄存器等。
相关教材章节:第一章 单片机概述,1.1-1.3节。
2. C语言编程基础:回顾C语言的基本语法,强调与单片机编程相关的知识点,如数据类型、运算符、控制语句等。
相关教材章节:第二章 C语言编程基础,2.1-2.5节。
3. 闹钟硬件设计:讲解闹钟所需硬件(如时钟芯片、蜂鸣器、按键等)的选型及连接方式,分析电路原理图。
定时闹钟单片机课程设计
定时闹钟单片机课程设计一、课程设计概述本次课程设计的主要目的是通过学习单片机的基本原理和应用,掌握单片机的编程技术和应用能力,完成一个定时闹钟的设计。
二、课程设计内容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)闹铃程序:在设定的闹钟时间到达时,触发蜂鸣器响铃。
可以通过判断当前时间是否等于设定闹钟时间来触发蜂鸣器响铃,并在屏幕上显示提示信息。
单片机课程设计—带有LCD定时闹钟
设计总说明这次课程设计的任务是是利用MCS51系列单片外加必要的辅助电路从而设计一个带有LCD显示的定时闹钟。
该闹钟应具有的功能是:当定时闹钟到了人为设定好的时间后,它就发出声音,并且在LCD显示器上显示出你所设定的闹钟时间以及当前时间,并能够随时调整时间。
本课设所用器件有:AT89C52单片机、LCD显示器(LM016L)、上拉电阻(Respack-8)、晶振电路、复位电路(带有复位键)以及四个控制键。
1、在控制时分电路设计中,分别设置了四个键:K1键-用来设置当前时间以及在设置中用来设置时钟K2键-显示闹钟时间以及在设置中用来设置分钟K3键-设置闹钟时间K4键-控制闹铃的开关2、在控制时分秒电路的设计中,分别设置了五个键,即在1的基础上增加了一个控制秒的按键。
当然本课程设计中所用到的元器件还可以应用其他的一些器件。
比如AT89C52完全可以用AT89C51来代替,LM016L型号的LCD显示器可以用LM017L 型号的LCD显示器来代替(其他一些显示器也可以用),上来电阻也可以用分电阻来表示。
初次做课程设计,肯定会有许多不足之处,希望老师们指点!关键字: AT89C52单片机 LCD显示器闹钟目录1、主要内容 (3)2、目的和意义 (3)3、基本要求 (3)、显示时-分功能 (3)、显示时-分-秒功能 (3)4、系统设计AT89C52单片机简介 (4)电路总体设计 (6)主程序流程图 (7)5、详细设计设计电路图 (7)程序代码 (12)5.2.1 时-分程序代码 (12)5.2.2 时-分-秒程序代码 (23)6、结论结果分析 (33)心得体会 (33)7、设计总结 (34)8、参考文献 (34)1、主要内容:本次课程设计的内容为设计一个以MCS51单片机为核心的带有LCD显示的定时闹钟,完成原理图设计,软件编制及设计报告。
设使用AT89C52单片机结合字符型LCD显示器设计一个简易的定时闹钟LCD时钟,若LCD 选择有背光显示的模块,在夜晚或黑暗的场合中也可以使用。
单片机课程设计电子闹钟
报警器数码显示时钟电路AT89C51键盘电路《单片机》课程设计 课题名称:电子闹钟姓名 班级学号实验地点实验时间年 月 日 星期一、实验目的:1.能显示 时时-分分-秒秒。
2.能够设定定时时间,修改定时时间。
3.定时时间到能发出警报声或者启动继电器,从而控制电器的起停。
二、实验仪器、设备和材料:AT89C51 单片机,共阴极数码管6个,喇叭一个,电容2个,晶阵一个,电阻(10K )4个,电源,导线若干三、实验思路:实验原理:采用单片机AT89C51作为本设计的核心元件,利用7段共阴LED 作为显示器件。
接入共阴LED 显示器,可显示时,分钟,秒,单片机外围接有定时报警系统,定时时间到,扬声器发出报警声,提示预先设定时间电器的起停时间到,从而控制电器的起停。
电路由下列部分组成:时钟电路、复位电路、控制电路、LED 显示,报警电路,芯片选用AT89C51 单片机。
系统框图:时钟电路:实验过程及步骤:首先将几个按键从上往下为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退出定时时间设定状态。
程序设计流程图:AT89C51XTAL2XTAL1JZ 12MC130P F C230P F四:指导老师意见:评阅导师: 日 期:判断闹钟时间到否程序初始化调用显示程序开始P1.1是否 按下?调用时间设定程序P1.2是否按下?Y调用闹钟时间设定程序NNY硬件电路连接X T A L 218X T A L 119A L E 30E A 31P S E N 29R S T 9P 0.0/A D 039P 0.1/A D 138P 0.2/A D 237P 0.3/A D 336P 0.4/A D 435P 0.5/A D 534P 0.6/A D 633P 0.7/A D 732P 1.01P 1.12P 1.23P 1.34P 1.45P 1.56P 1.67P 1.78P 3.0/R X D 10P 3.1/T X D 11P 3.2/I N T 012P 3.3/I N T 113P 3.4/T 014P 3.7/R D 17P 3.6/W R 16P 3.5/T 115P 2.7/A 1528P 2.0/A 821P 2.1/A 922P 2.2/A 1023P 2.3/A 1124P 2.4/A 1225P 2.5/A 1326P 2.6/A 1427U 1A T 89C 51234567891R P 1R E S P A C K -8X 1C R Y S T A LC 147pC 247pG N DV C CV C CG N DL S 1S P E A K E RG N DR 310k R 210k R 110kR 410k。
单片机课设定时闹钟代码及注解
#include<reg52.h>#define uint unsigned int#define uchar unsigned charuintmiao,fen,fen1,shi,shi1,flag1,flag2,flag3,aa,K1num,K2num,K3num,K4num,N;//K1num-K1按键被按下的标记变量,K2num-K2按键被按下的标记变量,K3num=0-K3按键被按下的标记变量uchar code table[]=" TIMING CLOCK"; //定义初始上电时液晶默认显示状态sbit K1=P1^0; //四个按键sbit K2=P1^1;sbit K3=P1^2;sbit K4=P1^3;sbit rs=P2^6;sbit lcden=P2^7;sbit led=P2^3; //发光二极管控制端sbit beep=P1^5; //蜂鸣器控制端sbit relay=P2^5; //继电器控制端void delay(uint z) //延时函数{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_com(uchar com) //液晶写命令函数{rs=0;lcden=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;}void write_date(uchar date) //液晶写数据函数{rs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;}void write_sfm(uchar add,uchar date) //液晶写时分秒函数{uchar shi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_date(0x30+shi);write_date(0x30+ge);}void init() //初始化函数{uint num; //写液晶的循环控制变量aa=0; //中断次数标志K1num=0; //K1按键被按下的标记变量K2num=0; //K2按键被按下的标记变量K3num=0; //K3按键被按下的标记变量K4num=0;flag1=1; //控制lcd屏刷新的变量flag2=1; //控制闹钟响闹和继电器开启关闭的标记flag3=1; //控制闹钟响起时,按下K4停止闹钟响闹的标记led=1; //发光二极管初始化relay=0; //继电器初始化N=100; //系统启动时,闹钟时间到发出的声音为连续三次发出“哗”的一声miao=0; //系统初始化时间fen=0;shi=0;fen1=1; //初始化闹钟的时间shi1=0;beep=0; //蜂鸣器初始化lcden=0; //液晶使能端初始化//1602液晶初始化,设置16*2显示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目 录摘要1 关键字1正文一、系统设计21.1设计目标21.2硬件设计错误!未定义书签。
1.3软件设计 (4)1.4三个模式间状态图 .......................................................................................... 5 1.5键盘控制程序走向流程图 .............................................................................. 6 1.6 串口通信图 8二、实验结果与讨论 ................................................................................................... 9 三、结论 ....................................................................................................................... 9 参考文献附录 ............................................................................................................................. 11 1、程序源代码 .. (11)专业姓名学号指导老师 完成时间 单片机课程设计报告定时闹钟2、实物图30摘要本设计采用ATMEL AT89C52MCU作为处理器核心,用数码管作为数据显示工具,蜂鸣器实现响铃功能,独立式键盘K20-K27控制时钟,串口用于设置时钟和闹钟时间来制作一个定时闹钟。
秒数走位由MCU部11.0592MHz的晶振提供精确定时实现,并循环扫描,在数码管上显示。
本设计的关键是键盘的动态扫描和按键消抖,难点是串口数据的传送和处理。
本设计运用C51编程,由于C语言具有语法简单、代码简洁且执行效率高等优点,使得C语言广泛运用于各种程序设计的代码编辑工具中。
运用C语言编程,增强了程序可读性;使得开发人员能够将精力用在如何设计程序上来,提高了开发效率。
关键字:单片机动态扫描按键消抖C51编程正文一、系统设计1.1设计目标利用动态数码管作为显示器,K20-K27作为输入按键,蜂鸣器作为声音输出制作一个定时闹钟。
要求:1、正确显示时分。
2、可以利用按钮调整时间和设定闹钟时间。
3、当时间到达设定的闹钟时间时,蜂鸣器发出嘀、嘀、嘀的报警声。
提示:利用定时器作为时间的基准。
提高:通过串口在PC上设定时间和闹钟1.2硬件设计本设计中涉及到的硬件模块有C52、独立键盘、数码管、PC(含keil软件、烧写工具、串口调试工具等)1.2.1 C52核心处理器。
对传送的各个指令和数据进行处理。
供其他模块用到的主要引脚有:P0:送码值;P2:送位选信号,连接键盘;TXD、RXD:串口通信;P3.7:蜂鸣器1.2.2 独立键盘K20-K27键盘分为独立键盘和矩阵式键盘。
扫描方法有逐行扫描法和行列翻转法。
在本设计中用到的键盘是独立式键盘K20-K27,分别连接到MCU C52的P2口,采用逐行扫描法,又由于只有一行,故只需扫描一次即可。
在键盘按键时,需要考虑到键盘消抖问题。
键盘消抖分为硬件消抖和软件消抖。
在本设计中,直接采用软件延时delay2(),达到消抖功能,代码不长,又节省硬件资源。
独立键盘K20-K27连接到C52管脚P2和数码管。
各键功能:K20:编辑时间,以递增方式控制时针数值,包括时钟和闹钟K21:编辑时间,以递增方式控制分针数值,包括时钟和闹钟K22:时钟模式切换到闹钟模式K23:退出闹钟模式,并保存闹钟时间,开启闹钟K24:时钟模式和秒数显示模式切换K25:未用到,供功能扩充使用K26:开闹钟K27:关闹钟1.2.3 数码管数码管用于显示当前时间,闹钟时间和秒数。
数码管显示分为静态显示和动态显示。
静态显示时,各数码管在显示过程中持续得到送显信号,与各数码管接口的I/O口线是专用的。
静态显示需借助C52串口完成。
动态显示时,各数码管在显示过程中轮流得到送显信号,与各数码管接口的I/O口线是共用的。
在动态显示过程中,数码管常亮是通过循环扫描送显信号实现。
本设计中用到的数码管为共阴极接法,阴极接位选信号,即C52 P2口,阳极接P0口,接受码值。
时钟和闹钟模式下,显示时针数值和分针数值。
秒数显示模式下,只有两个数码管亮,显示当前时间秒值。
1.2.4 PC在PC端除了编辑软件Keil和烧写工具外,另一个很重要的工具就是串口调试工具。
串口工具通过串口线与C52通信。
PC端到C52传送数据,控制写当前时间和设置闹钟。
C52到PC端传送数据,提示PC送到C52的数据有误,并在串口界面上显示字符串“error! ”,供以提示。
在PC端的串口工具选项设置与代码中串口设计参数匹配。
波特率为9600,数据位8位,停止位1位。
采用十六进制Hex发送。
根据上述硬件设计,有如下硬件间系统框图1。
1.3软件设计1.3.1时钟时钟设计有两个方案,一:利用程序计数延时定时;二:利用定时器定时。
考虑到,程序定时不准确,误差大,而定时器c52部晶振提供的时钟,能够精确定时,所以,本设计采用定时器给各模块提供准确时钟。
对于时钟,主要用在走秒,即定时器定时时间为1s,考虑到,设计中需要用到串口进行数据传送,而且对用C52,1s属于长定时,所以定时器采用定时器timer0。
timer0工作在方式1,定时设置为50ms,即初始值为TH0=0x4c,TL0=0x01,再通过一个标志位flag来控制次数,初始值为20,则定时时间刚好为1s。
1.3.2 时间显示模式从设计要求看,本设计至少要涉及到两个模式:(1)时钟模式;(2)闹钟模式。
时钟模式下,数码管实时显示当前时间,闹钟模式下,显示设置的闹钟时间,并且闹钟模式下,数码管显示的值闪烁,以区别于时钟模式,这样更易于区分这两种模式。
这两个模式通过K22和K23来切换,K22从时钟模式进入闹钟模式,K23退出闹钟模式,并保存当前设置的闹钟时间,并置位闹钟状态位flag1=0(flag1=0,开闹钟;flag1=1,关闹钟),此外,时钟、闹钟模式下均为可编辑状态,K20、K21分别控制时针数值和分针数值。
为了更接近现实的时钟,本设计提供第三种模式--秒数显示模式。
这个模式下,4个数码管只有两个亮,用来显示秒数值,通过键K24切换到此模式,和退出此模式,对于秒数,其控制权在定时器timer0,不提供编辑功能。
1.3.3振铃此功能的实现主要依靠实验箱上的蜂鸣器,当当前时间到达闹钟时间时,RD=0,开始振铃,蜂鸣器响。
本设计中,在振铃状态,提供关闹铃功能,通过K27关闹钟,置闹钟状态位flag1=1,关闹钟;若是需要打开闹钟,则可按键K26,置flag1=0。
1.3.4 串口此功能用于,在PC上通过串口工具,传送数据到C52,进而控制数码管值,即设置时间和闹钟。
在实现串口功能,搭配用了定时器timer2,timer2工作于方式2,即8位自动重装。
timer2作为波特率发生器,给串口提供数据传送速率。
本设计中,波特率为9600,故timer2初始值为TH1=0xfd,TL1=0xfd。
在本设计中,在时钟模式和闹钟模式下,串口数据逐位传送,分别传给时针数值和分针数值。
更具人性化的是,本设计提供错误提。
当传送时针数值时,数据大于23,或传送分针数值时,数据大于59时,C52通过串口向PC传送错误提示“error! ”,提示数据传送错误。
1.3.5键盘扫描本设计中键盘采用独立键盘K20-K27。
读取键盘值通过:P2=0xff;key_pressed=P2;key_pressed则为读取到的键盘值,再匹配从而知道按了哪个键。
在键盘扫描设计中,一个关键技术是键盘消抖。
这里通过延时程序delay2()延时一段时间,再读取键盘值,判断是键盘抖动还是正常按下的值。
1.4 三个模式间状态图图2 三个模式间转换状态图1.5 键盘控制程序走向流程图图3中为体现的功能及操作有以下几点:1.5.1计数模块count()计数功能依靠定时器timer0的中断,定时1s,当前时间走1秒。
1.5.2振铃模块music()该功能由蜂鸣器完成。
置RD=0时,蜂鸣器响。
此外蜂鸣器响有一个前提条件:振铃处于开状态,即标志flag1=0。
1.5.3显示模块display()该功能显示当前时间或闹钟时间或秒数。
控制条件有:标志CS:CS=0:显示当前时间时、分;CS=1:显示当前时间秒;CS=2:闹钟状态;标志flag2:控制闹钟状态下闪烁显示。
1.6串口通信图图4 串口通信图1.5.1串口向MCU送数据送时针值时,数值大小小于24,送分针数值,数值小于60。
1.5.2MCU向串口送错误提示信息串口向MCU送数据不满足上述条件时,送“error! ”提示信息。
1.5.3数据显示若串口传送的数据满足上述条件,则在数码管上显示,否则保持不变。
2 实验结果与讨论2.1程序烧写通过烧写程序将源码烧到单片机中。
数码管初始显示为00.00,与程序设置count_m,count_h吻合。
2.2程序调试2.2.1按键K20和K21,时、分值分别增加,一直按着,则时间持续变化。
但不是很稳定,有待改进。
2.2.2 按键K22,数码管进入闹钟编辑状态,并且显示数值交替闪烁。
与程序设置if(flag2<=10 && CS==2){P2=0xff;}else{if(flag2>=20){flag2=0;}一致(flag2在定时器中断中改变)。
2.2.3按键K23,退出闹钟编辑状态。
保存当前闹钟设置值count_m_alarm=count_x; count_h_alarm=count_y,开启闹钟flag1=0。
2.2.4按键K24,切换到秒显示状态。
再按一次切回时钟模式。
2.2.5按键K26,关闭闹钟;按键K27,开启闹钟。
在当前时间时、分值与闹钟设置值匹配时,这两个键的功能吻合。
2.3串口发送。
打开串口调试工具,选择端口,设置其它选项,分两次传送,如两次均发送十六进制数09,数码管显示值如附图6。
若设置时针值大于23,设置分针值大于59,则提示错误,显示结果如附图7。
3 结论3.1 综合上述所有描述,本设计完成了闹钟基本的功能。
此外,添加了其他功能。
如,本闹钟不仅可以显示时间时、分值,闹钟值,还可以显示秒数。
具有闹钟开、关功能。
对提高部分做了扩充,可以提示是否有数据设置错误。