İçindekiler:

Basit CloudX M633 Dijital Kronometre: 4 Adım
Basit CloudX M633 Dijital Kronometre: 4 Adım

Video: Basit CloudX M633 Dijital Kronometre: 4 Adım

Video: Basit CloudX M633 Dijital Kronometre: 4 Adım
Video: Cloud - X as a Service (tr) 2024, Kasım
Anonim
Basit CloudX M633 Dijital Kronometre
Basit CloudX M633 Dijital Kronometre

Bu projede, tıpkı cep telefonunuzdaki bir kronometre gibi, saati, dakikayı ve saniyeyi kaydedebilen bir dijital saat versiyonu yapacağız! Saati görüntülemek için bir LCD kullanacağız.

1. Adım: Gerekli Bileşen

Bileşen Gerekli
Bileşen Gerekli
Bileşen Gerekli
Bileşen Gerekli
Bileşen Gerekli
Bileşen Gerekli
  • CloudX M633
  • CloudX SoftCard
  • LCD ekran
  • Potansiyometre
  • Butona basınız
  • ekmek tahtası
  • Jumper Tel
  • V3 USB kablosu
  • 10k

Bileşeninizi buradan alabilirsiniz

2. Adım: DONANIM

DONANIM
DONANIM

Adım 1: LCD ekranı ekmek tahtasına sabitleyin ve aşağıdaki gibi CloudX M633 Board'a bağlayın

  • R/S'den pin1'e
  • ENA'dan pin2'ye
  • D4'ten pin3'e
  • D5'ten pin4'e
  • D6'dan pin5'e
  • D7'den pin6'ya

Ek olarak, 10k'lık bir potu +5V'a ve GND'ye, sileceği (çıkış) LCD ekranlara VO pinine bağlayın.

  • Vss ve K'yi GND'ye bağlayın
  • Vdd ve A'yı +5v'ye bağlayın
  • R/W'yi GND'ye bağlayın

N. B: A Anottur, K Katottur

Adım 2

  • Ekmek tahtasındaki ilk basma düğmesini (Başlat ve Durdur) sabitleyin ve ilk ayağı CloudX Board'un 10k ve Pin7'sine ve diğer ayağı GND'ye bağlayın.
  • İkinci düğmeyi (sıfırlama) breadBoard'a sabitleyin ve ilk ayağı CloudX Board'un 10k ve pin8'ine ve diğer ayağı GND'ye bağlayın.

Adım 3: KODLAMA

Bu kodu CloudX IDE'nize kopyalayın

#include #include #include

#define START_PAUSE 7

#define RESET 8 #define BAŞLAT 1 #define DURAKLAT 0

karakter zamanlayıcı = "00:00:00:0";

imzasız karakter HH, MM, SS, mSS, mscount, RFlag=0; bit OmSF=0, S_PFlag=0;

TimerOmSD(){'yi kes

if (INTCONbits. T0IF) {

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

kurmak(){

//buraya kur

pinMode(START_PAUSE, GİRİŞ);

pinMode(RESET, GİRİŞ); lcdAyar (1, 2, 3, 4, 5, 6); lcdCmd(temizle); lcdCmd(imleçKapalı); lcdWriteText(1, 1, "CLOUDX KRONOMETRE");

döngü(){

// Program burada

if(!readPin(START_PAUSE)) {

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

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

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

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

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

if(!readPin(RESET)){

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

}

eğer (OmSF){

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

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

}

}

Önerilen: