Indholdsfortegnelse:

Enkelt CloudX M633 digitalt stopur: 4 trin
Enkelt CloudX M633 digitalt stopur: 4 trin

Video: Enkelt CloudX M633 digitalt stopur: 4 trin

Video: Enkelt CloudX M633 digitalt stopur: 4 trin
Video: Ремонт на балконе Ошибки монтажа теплого пола. #37 2024, November
Anonim
Enkelt CloudX M633 digitalt stopur
Enkelt CloudX M633 digitalt stopur

I dette projekt skal vi lave en version af et digitalt ur, der kan registrere timer, minutter og sekunder, ligesom et stopur på din mobiltelefon! Vi vil bruge en LCD til at vise tiden

Trin 1: Komponent påkrævet

Komponent påkrævet
Komponent påkrævet
Komponent påkrævet
Komponent påkrævet
Komponent påkrævet
Komponent påkrævet
  • CloudX M633
  • CloudX SoftCard
  • LCD display
  • Potentiometer
  • Trykknap
  • Brødbræt
  • Jumper Wire
  • V3 USB -kabel
  • 10k

Du kan få din komponent her

Trin 2: HARDWARE

HARDWARE
HARDWARE

Trin 1: Fix LCD -skærmen i brødbrættet, og tilslut CloudX M633 Board som følger

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

Derudover ledes en 10k pot til +5V og GND, med dens visker (output) til LCD -skærme VO pin.

  • tilslut Vss og K til GND
  • tilslut Vdd og A til +5v
  • tilslut R/W til GND

NB: A er anode, K er katode

Trin 2

  • Fastgør den første trykknap (Start og Stop) i brødbrættet, og slut det første ben til 10k og Pin7 på CloudX Board og det andet ben til GND.
  • Fix den anden trykknap (reset) i brødbrættet, og slut det første ben til 10k og pin8 på CloudX Board og det andet ben til GND.

Trin 3: KODING

Kopiér denne kode til dit CloudX IDE

#include #include #include

#definer START_PAUSE 7

#define RESET 8 #define START 1 #define PAUSE 0

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

usigneret char HH, MM, SS, mSS, mscount, RFlag = 0; bit OmSF = 0, S_PFlag = 0;

afbryd TimerOmSD () {

hvis (INTCONbits. T0IF) {

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

Opsætning(){

// opsætning her

pinMode (START_PAUSE, INPUT);

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

loop () {

// Program her

hvis (! readPin (START_PAUSE)) {

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

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

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

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

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

hvis (! readPin (RESET)) {

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

}

hvis (OmSF) {

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

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

}

}

Anbefalede: