Back

2011_P1

Viewing page version #8
(Restore this version) 

Modified: 6 April 2010, 7:01 PM   User: Cristian Natalia  → CN

PROJECT NAME

Project Description

Proiectul nostru presupune implementarea unui ceas digital pe placa EV/Z3.

Acest ceas digital va avea urmatoarele functionalitati:

  • afisare ora
  • afisare data
  • setare ora
  • setare data
  • cronometru ce va putea fi pornit si resetat
  • alarma

Ceasul va afisa implicit ora exacta (adica ora, minut si secunde), iar pentru a potrivi ora se va apasa tasta "C" a placutei. La prima apasare a tastei "C" va fi posibila modificarea orei, folosind cele doua sagetele (<- si ->).Pentru a seta minutele se va mai apasa o data tasta "C" si, de asemenea se folosesc cele doua sagetele.Pentru a salva se va folosi tasta "B".

Pentru a putea vizualiza data se va apasa tasta "D", iar pentru a o modifica tasta "E". Similar functiei de potrivire a orei, se va apasa tasta "E" inca o data pentru fiecare camp modificat si se vor folosi celor doua sagetele. Astfel se seteaza anul calendaristic, luna si ziua.Pentru a salva data selectata  se va folosi tasta "B".

Pentru a intra in functia de cronometru se va folosi tasta "F". La prima apasare a tastei, se va afisa "00:00:00"(min-sec-msec). Pentru a porni cronometrul se mai apasa o data tasta "F"; pentru a-l opri se apasa tasta '1'. Pentru a reseta cronometrul se va folosi tasta "0".

Pentru a intra in functia de alarma, se foloseste tasta "A". Pentru a potrivi ora se va apasa in mod repetat tasta "C" pentru ora,minut si secunde. Salvarea se va face prin inca o apasare a tastei "A".

 

Project Requirements

Data(yyyy:mm:dd) + Ora (hh:mm:ss) + Cronometru(rezolutie milisecunde) + Alarma

Trebuie sa aveti posibilitatea sa setati Data + Ora curenta. Ma intereseaza cum generati milisecundele la cronometru.

Setare Alarma la o anumita data + ora. Veti folosi buzzerul (10s de beepuri)

User Flow

Proiectul functioneaza implicit pe functia de afisare a ceasului. Pentru a potrivi ceasul, se apasa tasta "C"(in mod repetat pentru a modifica fiecare camp). Pentru a modifica cele trei campuri ale ceasului se folosesc cele doua sagetele(->,<-). Pentru a salva si a putea vizualiza ora se apasa tasta "B".

Pentru a putea vizualiza data se va apasa tasta "D", iar pentru a o modifica tasta "E". Similar functiei de potrivire a orei, se va apasa tasta "E" in mod repetat pentru fiecare camp modificat si se vor folosi celor doua sagetele. Astfel se seteaza anul calendaristic, luna si ziua.Pentru a salva data selectata  se va folosi tasta "B".

 

Pentru a intra in functia de cronometru se va folosi tasta "F". Cronometrarea va incepe la p noua apasare a tastei "F" si ve va opri la apasarea tastei "1". Pentru a reseta cronometrul se va folosi tasta "0".

 

Pentru a intra in functia de alarma, se foloseste tasta "A". Pentru a potrivi ora se va apasa in mod repetat tasta "C" pentru ora,minut si secunde. Salvarea se va face prin inca o apasare a tastei "A".

 

Required components

Din platform_io.h am folosit urmatoarele functii:

  • DisplayString(const char *) - pentru afisarea sirurilor de caractere pe LCD;
  • ReadKey() - pentru a identifica tasta care a fost apasata de catre utilizator;
  • StartBuzzer() -functie implementata de studenti pentru pornirea buzzerului placutei, folosind intreruperea 10H;
  • Wait(const unsigned int) -pentru a specifica timpul de asteptare inainte de incrementarea milisecundelor, secundelor ,minutelor, etc. De asemenea am folosit functia Wait() si la inceputul main-ului pentru a da timp utilizatorului sa apese tasta caracteristica pentru o anumita functie dorita.

Software Design

Pentru compilarea codului am folosit IDE-ul OpenWatcom. Pentru fiecare functionalitate a ceasului, am implementat o functie separata ce se apeleaza in main, la apasarea unei taste. Implicit, se apeleaza functia de afisare a ceasului.

De asemenea, pentru a putea afisa ora si data a fost necesara conversia campurilor din intreg in sir de caractere, motiv pentru care am implementat si o functie de conversie numita itoa.

Codul este scris in limbajul C si foloseste atat functii din platfom_io.h cat si functii implementate de studenti.

 

Results

Download

Arhiva cu schema hardware + cod microcontroller + tot proiectul OpenWatcom.

Arhiva va contine 2 directoare (1 singur pentru proiecte doar software)

Hardware design - schema uC + codul folosit pentru a genera fisierul .HEX

Software design - template-ul Open Watcom folosit

Status

3 mai- implementare functionalitate de afisare ceas si data.

6 mai- implementare functionalitate de potrivire ceas si data.

10 mai- implementare functionalitate cronometru

18 mai- implementare alarma