Cronòmetre digital simple CloudX M633: 4 passos
Cronòmetre digital simple CloudX M633: 4 passos
Anonim
Cronòmetre digital CloudX M633 simple
Cronòmetre digital CloudX M633 simple

En aquest projecte, farem una versió d’un rellotge digital que pugui guardar un registre d’hores, minuts i segons, com un cronòmetre del vostre telèfon mòbil. Utilitzarem una pantalla LCD per mostrar l'hora

Pas 1: component necessari

Component necessari
Component necessari
Component necessari
Component necessari
Component necessari
Component necessari
  • CloudX M633
  • CloudX SoftCard
  • Pantalla LCD
  • Potenciòmetre
  • Polsador
  • Taula de pa
  • Jumper Wire
  • Cable USB V3
  • 10k

Podeu obtenir el vostre component aquí

Pas 2: HARDWARE

HARDWARE
HARDWARE

Pas 1: Fixeu la pantalla LCD a la placa de pa i connecteu-la a la placa CloudX M633 segons el següent

  • R / S al pin1
  • ENA a pin2
  • D4 a pin3
  • D5 a pin4
  • D6 a pin5
  • D7 a pin6

A més, connecteu una olla de 10k a + 5V i GND, amb el seu netejador (sortida) a les pantalles LCD VO pin.

  • connecteu Vss i K a GND
  • connecteu Vdd i A a + 5v
  • connecteu R / W a GND

N. B: A és ànode, K és càtode

Pas 2

  • Fixeu el primer polsador (Start i Stop) al tauler de pa i connecteu la primera potència a 10k i Pin7 de la placa CloudX i l'altra a GND.
  • Fixeu el segon polsador (restabliment) al breadBoard i connecteu la primera cama a 10k i el pin8 de la placa CloudX i l'altra a GND.

Pas 3: CODIFICACIÓ

Copieu aquest codi al vostre IDX de CloudX

#include #include #include

#define START_PAUSE 7

#define RESET 8 #define INICI 1 #define PAUSA 0

char timer = "00: 00: 00: 0";

sense signar HH, MM, SS, mSS, mscount, RFlag = 0; bit OmSF = 0, S_PFlag = 0;

interrompre TimerOmSD () {

if (INTCONbits. T0IF) {

INTCONbits. T0IF = 0; TMR0 + = 60; if (mscount ++ == 10) {mscount = 0; OmSF = 1; }}}

setup () {

// configuració aquí

pinMode (START_PAUSE, INPUT);

pinMode (RESET, INPUT); lcdSetting (1, 2, 3, 4, 5, 6); lcdCmd (clar); lcdCmd (cursorOff); lcdWriteText (1, 1, "CLOUDX STOPWATCH");

bucle () {

// Programa aquí

if (! readPin (START_PAUSE)) {

if (S_PFlag == START) {delayMs (200); INTCON = 0b00000000; OPTION_REG = 0b00000000; mSS--; }

if (S_PFlag == PAUSE && RFlag == 1) {

delayMs (200); INTCON = 0b11100000; OPTION_REG = 0b00000111; }

if (S_PFlag == PAUSE && RFlag == 0) {

delayMs (200); INTCON = 0b11100000; OPTION_REG = 0b00000111; TMR0 + = 60; mscount = 0; OmSF = 0; } S_PFlag = ~ S_PFlag; RFlag = 1; }

if (! readPin (RESET)) {

delayMs (200); HH = 0; MM = 0; SS = 0; mSS = 0; INTCON = 0b00000000; OPTION_REG = 0b00000000; mscount = 0; OmSF = 0; RFlag = 0; S_PFlag = PAUSA;

}

if (OmSF) {

OmSF = ~ OmSF; mSS ++; if (mSS == 10) SS ++; if (SS == 60) MM ++; if (MM == 60) HH ++; }

si (HH == 100) HH = 0; if (MM == 60) MM = 0; if (SS == 60) SS = 0; if (mSS == 10) mSS = 0; temporitzador [1] = (HH% 10) +48; temporitzador [0] = (HH / 10) +48; temporitzador [4] = (MM% 10) +48; temporitzador [3] = (MM / 10) +48; temporitzador [7] = (SS% 10) +48; temporitzador [6] = (SS / 10) +48; temporitzador [9] = mSS +48; lcdWriteText (2, 2, temporitzador);

}

}

Recomanat: