Giter Site home page Giter Site logo

clock's Introduction

定时浇花装置

本项目使用的 MCU 是 STC89C52 ,使用其他 51 单片机亦可,只需要修改相关的代码部分。

电路原理图

电路原理图

电路组成

电路的主要组成部分已在电路图框出来,最主要的部分为时钟振荡电路复位电路。以电路图逆时针的方向进行讲解,左上角的为单片机时钟振荡电路,由一个晶振和两个电容组成,这个电路的主要作用是给单片机提供振荡信号,单片机运行指令是要有时钟周期的,该时钟周期由晶振频率决定,由振荡电路提供振荡信号,每12个时钟周期一次执行一条指令,该12个周期称为一个机器周期。

引脚解释:

  • XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器反相放大器(该放大器构成片内振荡器振荡器的频率是晶体振荡频率)和时钟发生器的输入端;若使用外部时钟时,该引脚接地(对于HMOS单片机)或悬空(对于CHMOS单片机)。
  • XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器反相放大器的输出;若使用外部时钟时,对于HMOS单片机,该引脚接外部时钟的输入;对于CHMOS单片机,该引脚应悬空。

XTAL1和XTAL2接法

接着往下的是复位电路,复位电路主要是由 VCC 和一个电容构成。为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V±5%,即4.75~5.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器稳定工作时,复位信号才会撤除,微机电路开始正常工作。

芯片 EA 口(第 31 引脚)接高电平,表示使用片内程序存储器;相反则表示使用片外程序存储器。

再接着往下就是闹钟控制电路,该电路可以接任何负载,主要作用是当时间到达了设定的闹钟时间之后,芯片的 P1.0 端口(芯片的第 1 引脚)由高电平变为低电平,在本项目中,该端口主要是控制继电器的闭合与断开,当闹钟未响时继电器处于常开状态,该输出口与继电器之间还连接着一个 PNP 三极管,该三极管起开关和放大作用,主要用于反转电平以及增大电流驱动继电器。继电器线圈外接二极管的作用是防止继电器线圈断电时产生的反电动势烧坏三极管。

原理图右下角 P3 口接了四个按钮开关,P3 口在上电或复位时为高电平,由于按钮另一端接地,所以当有其中一个按钮被按下时,该按钮连接的端口就会被拉成低电平,此时可用程序检测出端口状态并作处理,其中芯片 P3.2, P3.3 口是外部中断端口,可由程序设置该端口的中断功能,当该两个口的按钮被按下时芯片将停止当前运行的程序并处理中断函数内的程序。

剩下的部分是数码管的显示部分,该数码管为共阳极数码管,单片机 P0 口控制数码管单个位(一个位即一个 8. )显示的内容,P2 口控制数码管的(显示四个位中的某一位)。该部分电路中的三极管起放大作用,用于驱动数码管显示。

实际电路连接中电路须与原理图中的相同,如需修改单片机的控制端口需要修改程序。

主要功能

以下内容中闹钟代表驱动的端口 P2 口,该端口用于控制蜂鸣器,也可改接其他负载,该口接通(闹钟响)时为低电平,否则为高电平。

主要部分是一个准确定时的时钟,普通时钟模式下,数码管前两位显示时,后两位显示分,该时钟可通过 P3.2 口按钮开关选择模式(每按一次开关换一种模式),共有三种模式选择:

  1. 模式一:上电或复位之后的初始模式为正常时钟模式。
  2. 模式二:第一个闹钟时间
  3. 模式三:第二个闹钟时间

并且有使用LED灯来表示当前显示的是哪个模式

在模式三时再按一次模式选择开关将回到模式一,所有模式显示时间的格式都为正常时钟格式,即 时-分。

四种模式都可以通过 P3.4 和 P3.5 口的按钮开关调节时间,其中 P3.4 口开关设置当前模式时间 + ,P3.5 口开关设置时间 - ,按住可连续调节,调节的最小单位为分。

P3.3 口按钮为闹钟的开关选择按钮,用于开启和关闭闹钟,上电或复位之后默认为关闭,即时间到了闹钟也不会响,此时按一下此开关开启闹钟,在闹钟响时也可以按下该按钮立即停止闹钟,再按一次即可恢复闹钟开启状态。

TODOs

  • 将模式四设置的时间的最小单位改成秒,并在此模式时数码管显示设置的秒数。
  • 将四个模式的值实时保存到 EEPROM 中,以防掉电或复位时数据丢失需要重新设置。
  • 使用 DS1302 芯片代替芯片内部的定时器,使用外围芯片作为精确计时时钟模块(不建议)。
  • 将单片机芯片外接一个备用电池使得单片机掉电之后可以继续计时,使得重新上电之后时间依然为当前时间,并在掉电之后进入睡眠模式,关闭 CPU。
  • 使用 LCD 代替数码管显示时间以及其他信息,使用 LCD 之后添加更多的功能。
  • 外接 wifi 模块,使用 wifi 模块控制此系统,可用 APP 完全控制此单片机,并在开发 wifi 控制功能之后通过微信或者 WEBAPP 实现远程管理。
  • 添加串口通信功能,当计算机发送相应指令时单片机给计算机发送当前四个模式的时间,以及可以通过指令设置时间(亦可用于 wifi 通信),并将串口通信模块封装为函数库。

Verson

v1.0.1 - 2018.2.6

综上所述


Author: DHC

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.