Zie het in actie in de quicktime-films aangesloten!
Er zijn vele manieren om tijd weergeven in zowel analoog en digitaal, maar nooit gezien door de meeste is een digitale Romeinse cijfers-klok. Ik heb een met behulp van de volgende onderdelen:
-PIC18F8F46K20 starterskit
-PICKit2 van Microchip.
-9 V voeding.
-MPLAB IDE 8,40 voor het schrijven en compileren van de code (gratis download van Microchip website)
-RTC (real-time clock) voorbeeld programma met startpakket gewijzigd voor dit instructable.
Hardware
De starter kit bestuur heeft een klein OLED scherm geschikt voor het weergeven van de tijd in Arabische cijfers als ell als Romeinse cijfers.
De Romeinse nummering systeem omvat niet een '0', dus het maakt de klok kijken een beetje vreemd in tijden zoals u zult zien.
De Romeinse nummering is als volgt:
0 geen nul in Romeinse cijfers, dus we ruimten gebruiken
Ik 1
II 2
III 3
IV 4
V 5
VI 6
VII 7
VIII 8
IX 9
X 10
XI 11
XII 12
XIII 13
XIV 14
XV 15
XVI 16
XVII 17
XVIII 18
XIX 19
XX 20
XXI 21
XXII 22
XXIII 23
XXIV 24
XXV 25
XXVI 26
XXVII 27
XXVIII 28
XXIX 29
XXX 30
XXXI 31
XXXII 32
XXXIII 33
XXXIV 34
XXXV 35
XXXVI 36
XXXVII 37
XXXVIII 38
XXXIX 39
XL 40
XLI 41
XLII 42
XLIII 44
XLIV 44
LIX 45
LX 46
XLVII 47
XLVIII 48
XLIX 49
L 50
LI 51
LII 52
LIII 53
LIV 54
LV 55
LVI 56
LIX 57
LVIII 58
LIX 59
Een uitleg van hoe elk nummer wordt gevormd is gevonden op:
http://en.wikipedia.org/wiki/Roman_numerals
Overzicht
Is in de programmering voorbeelden die microchip levert voorbeeldcode voor een real-tijd-clock (RTC). Ik heb deze code voor het maken van een tekenreeks van de Romeinse cijfers op basis van de nummers die zijn gegenereerd door de RTC-code aangepast. Omdat de uren zijn slechts 1 tot en met 12 die de meeste ruimten de Romeinse cijfers kunnen duren 4. Minuten en seconden gaan beide van 1 naar 59 en 38 heeft de meest Romeinse cijfers tekens om zeven uur, dus elk van deze tekenreeksen moet zeven tekens. Ik heb gebruikt een dubbele punt ':' als scheidingsteken tussen de uren, minuten en seconden in het display hetzelfde als de decimale klok. Daarom is de totale tekenreeks vereist 4(hrs)+1(colon)+7(mins)+1(colon)+7(secs) of 20 tekens die in één regel op het OLED display zal passen.
Het OLED-display
Het OLED display is anders dan en LCD in dat elke pixel is een actieve LED. In tegenstelling tot en LCD waarvoor een afzonderlijke lichtbron weerspiegelt off van de weergave elke OLED pixel of verzenden via eigen licht uitzendt. Als alle pixels uit is er zeer weinig macht gebruikt, en als je op meer pixels draaien meer macht wordt gebruikt, maar deze kracht is nog steeds veel minder dan de typische backlight LCD.
Klok operatie :
Er zijn vier knoppen die zijn gekoppeld aan de klok die de bovenste linker knop uren verhoogt, de bovenste rechterknop verhoogt minuten. De onderste linker knop synchroniseert de klok op de nul tweede door het bedrijf totdat de referentieperiode 00 seconden weergeeft en dan onmiddellijk los te laten. Terwijl deze knop wordt gehouden onderaan het scherm kleuren omgekeerd en de klok wordt niet bijgewerkt.
De onderste linker knop kunt selecteren van de weergave-indeling, zoals hieronder blijkt: gewoon normaal decimale digitale klok, Romeinse nummer digitale klok, of beide op hetzelfde moment. Het houdt u deze knop ingedrukt het display formaten zal doorlopen alle drie keer per seconde te wijzigen.
De firmware:
De firmware is bijna identiek aan de originele firmware kopen van Microchip behalve ik de tafels aan lettertypen voegde. C om te maken van myfonts.c (voorheen fonts.c) toe te voegen dat de Romeinse cijfers en main.c werd rtcmain.c waar ik de code toe te voegen wat nodig was veranderde om de Romeinse cijfers weergegeven, evenals het schakelen tussen de weergave wordt opgemaakt. Ik heb ook gewijzigd OLED. C maken dubbele hoogte personages uit de originele lettertypen meegeleverd om hen zichtbaarder te maken.
Als u niet wilt maken van wijzigingen vervolgens helemaal u nood zit te programmeren van het bestand RTC.hex in de starter kit board en zul je een klok met Romeinse cijfers.
Toekomstige verkenningen
Gezien de kleine omvang en relatief lage kracht van het OLED display moet het mogelijk zijn om dit in een roman polshorloge. Andere, grotere lettertypen kunnen worden gemaakt om het te maken beter leesbaar met uren, minuten en seconden elk op hun eigen lijn. Broncode is dronk hieronder.