Hoe maak je een digitale klok kit op basis van Atmel (3 / 3 stap)

Stap 3: Een steekproef van broncode (C-taal)

#include < REG2051. H >
code senen_seg [10] = {0x81, 0xe7, 0x92, 0xa2, 0xe4, 0xa8, 0x88, 0xe3, 0x80, 0xa0};
beetje key1_enter = 0, key2_enter = 0, key3_enter = 0, countdown_mark = 0, stopwatch_mark = 0, count_mark = 0, bell_mark = 0;
unsigned char programma = 0, program_variable = 0, count_bit = 0, graaf = 0;
unsigned char uur = 10, minuten = 10, tweede = 0;
unsigned char delayed_hour = 22, delayed_minute = 10, delayed_second = 0;
unsigned char count_hour = 0, count_minute = 0, count_second = 0;
unsigned int count_time = 0, count_count = 0;
VOID vertraging (unsigned int t)
{
unsigned int i, j;
voor (ik = 0; ik < t; i ++)
voor (j = 0; j < 10; j ++)
;
}
ongeldig time0_init(void) {}
EA = 0;
TR0 = 0;
TMOD = 0X02;
TH0 = 0X4;
TL0 = 0X4;
ET0 = 1;
TR0 = 1;
EA = 1;
}

statische nietige timer0_isr(void) interrupt TF0_VECTOR met 1
{
count_time ++;
Als (count_time > = 4020) {}
count_time = 0;
tweede ++;
Als (tweede > = 60) {}
tweede = 0;
minuut ++;
Als (minuut > = 60) {}
minuten = 0;
uur ++;
Als (uur > = 24) uur = 0;
}
}
}
Als (delayed_hour == uur & & delayed_minute == minuut & & tweede < 4) P3_7 = 0;
anders P3_7 = 1;
if(countdown_mark==1) {}
count_count ++;
Als (count_count > = 4000 & & (count_second! = 0|count_minute! = 0|count_hour! = 0)) {}
count_count = 0;
count_second--;
Als (count_second > = 60) {}
count_second = 59;
count_minute--;
Als (count_minute > = 60) {}
count_minute = 59;
count_hour--;
Als (count_hour > = 100) count_hour = 99;
}
}
}
Als (count_second == 0 & & count_minute == 0 & & count_hour == 0 & & count_count < = 12000) P3_7 = 0;
anders P3_7 = 1;
Als (count_count > = 15000) count_count = 14000;
}
if(stopwatch_mark==1) {count_count ++;
Als (count_count > = 40) {}
count_count = 0;
count_second ++;
Als (count_second > = 100) {}
count_second = 0;
count_minute ++;
Als (count_minute > = 60) {}
count_minute = 0;
count_hour ++;
Als (count_hour > = 60) count_hour = 0;
}
}
}
}
}
unsigned char show_key (void) {}
unsigned char x = 0, y = 0;
schakelaar (programma) {}
geval van 0: P1 & = senen_seg [tweede 10%];
breken;
geval 1: als (count_time > = 2000) P1 & = senen_seg [tweede 10%];
breken;
geval 2: if(delayed_hour==24) P1 = 0xfe;
anders P1 & = senen_seg [delayed_second % 10];
breken;
Case 3: als (count_bit > = 0) P1 & = senen_seg [count_second % 10];
anders P1 = 0xff;
breken;
geval 4: P1 & = senen_seg [count_second % 10];
breken;
geval 5: P1 & = senen_seg [count_second % 10];
breken;
}
P3_3 = 0;
delay(10);
if(P3_5==0) {}
key1_enter = 1;
Als (graaf < = 254) graaf ++;
}
if(P3_4==0) key2_enter = 1;
if(P3_2==0) key3_enter = 1;
P3_3 = 1;
P1| = 0XFF;
schakelaar (programma) {}
geval van 0: P1 & = senen_seg [tweede/10];
breken;
geval 1: als (count_time > = 2000) P1 & = senen_seg [tweede/10];
breken;
geval 2: if(delayed_hour==24) P1 = 0xfe;
anders P1 & = senen_seg [delayed_second/10];
breken;
Case 3: als (count_bit > = 1) P1 & = senen_seg [count_second/10];
anders P1 = 0xff;
breken;
geval 4: P1 & = senen_seg [count_second/10];
breken;
geval 5: P1 & = senen_seg [count_second/10];
breken;
}
P3_1 = 0;
delay(10);
P3_1 = 1;
P1| = 0XFF;
schakelaar (programma) {}
geval van 0: P1 & = senen_seg [minuut 10%];
breken;
geval 1: als (count_time > = 2000) P1 & = senen_seg [minuut 10%];
breken;
geval 2: if(delayed_hour==24) P1 = 0xfe;
anders P1 & = senen_seg [delayed_minute % 10];
breken;
Case 3: als (count_bit > = 2) P1 & = senen_seg [count_minute % 10];
anders P1 = 0xff;
breken;
geval 4: P1 & = senen_seg [count_minute % 10];
breken;
geval 5: P1 & = senen_seg [count_minute % 10];
breken;
}
P3_2 = 0;
delay(10);
P3_2 = 1;
P1| = 0XFF;
schakelaar (programma) {}
geval van 0: P1 & = senen_seg [minuut/10];
breken;
geval 1: als (count_time > = 2000) P1 & = senen_seg [minuut/10];
breken;
geval 2: if(delayed_hour==24) P1 = 0xfe;
anders P1 & = senen_seg [delayed_minute/10];
breken;
Case 3: als (count_bit > = 3) P1 & = senen_seg [count_minute/10];
anders P1 = 0xff;
breken;
geval 4: P1 & = senen_seg [count_minute/10];
breken;
geval 5: P1 & = senen_seg [count_minute/10];
breken;
}
P3_5 = 0;
delay(10);
P3_5 = 1;
P1| = 0XFF;
schakelaar (programma) {}
geval van 0: P1 & = senen_seg [uur 10%];
breken;
geval 1: als (count_time > = 2000) P1 & = senen_seg [uur 10%];
breken;
geval 2: if(delayed_hour==24) P1 = 0xfe;
anders P1 & = senen_seg [delayed_hour % 10];
breken;
Case 3: als (count_bit > = 4) P1 & = senen_seg [count_hour % 10];
anders P1 = 0xff;
breken;
geval 4: P1 & = senen_seg [count_hour % 10]; breken;
geval 5: P1 & = senen_seg [count_hour % 10];
breken;
}
P3_0 = 0;
delay(10);
Als (P3_4 == 1 & & key2_enter == 1) {}
x = 3; key2_enter = 0;
}
P3_0 = 1;
P1| = 0XFF;
schakelaar (programma) {}
geval van 0: P1 & = senen_seg [uur/10]; breken;
geval 1: als (count_time > = 2000) P1 & = senen_seg [uur/10]; breken;
geval 2: if(delayed_hour==24) P1 = 0xfe; anders P1 & = senen_seg [delayed_hour/10];
breken;
Case 3: als (count_bit > = 5) P1 & = senen_seg [count_hour/10]; anders P1 = 0xff;
breken;
geval 4: P1 & = senen_seg [count_hour/10];
breken;
geval 5: P1 & = senen_seg [count_hour/10]; breken;
}
P3_4 = 0;
delay(10);
Als (P3_5 == 1 & & key1_enter == 1) {}
Als (graaf > = 127) x = 1; anders x = 2; key1_enter = 0;
Graaf = 0;
}
Als (P3_2 == 1 & & key3_enter == 1) {}
x = 4;
key3_enter = 0;
}
P3_4 = 1;
P1| = 0XFF;
Als (programma < = 1 & & count_time > = 2000) P1 & = 0xff;
Als (programma < = 1 & & count_time < = 2000) P1 & = 0x7f;
if(Program==2) P1 & = 0x7f;
if(Program==3) P1 & = 0xff;
if(Program==4) P1 & = 0x7f;
if(Program==5) P1 & = 0xff;
y = x;
x = 0;
retourneren van y;
}
void main() {}
P1 = 0XFF;
P3 = 0XFF;
time0_init();
while(1) {}
switch(Program) {}
geval van 0: {while(program==0)}
switch(show_key()) {}
geval van 0: breken;
geval 1: programma = 0;
breken;
geval 2: programma = 1;
breken;
}
}
breken;
geval 1: {while(program==1)}
switch(show_key()) {}
geval van 0: breken;
geval 1: programma = 0;
breken;
geval 2: programma = 2;
breken;
Case 3: uur ++;
Als (uur > = 24) uur = 0;
breken;
geval 4: minute ++;
Als (minuut > = 60) minuten = 0;
breken;
}
}
breken;
geval 2: {while(program==2)}
switch(show_key()) {}
geval van 0: breken;
geval 1: programma = 0;
breken;
geval 2: programma = 3;
breken;
Case 3: delayed_hour ++;
Als (delayed_hour > = 25) delayed_hour = 0;
breken;
geval 4: delayed_minute ++;
Als (delayed_minute > = 60) delayed_minute = 0;
breken;
}
}
breken;
Case 3: {while(program==3)}
switch(show_key()) {}
geval van 0: breken;
geval 1: programma = 0;
breken;
geval 2: programma = 4;
breken;
Case 3: count_bit ++;
Als (count_bit > = 7) count_bit = 0;
breken;
geval 4: {switch(count_bit)}
geval van 0: count_second += 1;
breken;
geval 1: count_second += 10;
breken;
geval 2: count_minute += 1;
breken;
Case 3: count_minute += 10;
breken;
geval 4: count_hour += 1;
breken;
geval 5: count_hour += 10;
breken;
kast 6: breken;
}
Als (count_hour > = 100) count_hour-= 100;
Als (count_minute > = 60) count_minute-= 60;
Als (count_second > = 60) count_second-= 60;
breken;
}
if(count_bit==6) countdown_mark = 1;
anders countdown_mark = 0;
}
breken;
geval 4: count_hour = 0;
count_minute = 0;
count_second = 0;
while(Program==4) {}
switch(show_key()) {}
geval van 0: breken;
geval 1: programma = 0;
breken;
geval 2: programma = 5;
breken;
Case 3: stopwatch_mark = ~ stopwatch_mark;
breken;
geval 4: {if(stopwatch_mark==0)}
count_hour = 0;
count_minute = 0;
count_second = 0;
}
breken;
}
}
breken;
geval 5: count_hour = 0;
count_minute = 0;
count_second = 0;
while(Program==5) {}
switch(show_key()) {}
geval van 0: breken;
geval 1: programma = 0;
breken;
geval 2: programma = 0;
breken;
Case 3: count_second ++;
Als (count_second > = 100) {}
count_second = 0;
count_minute ++;
Als (count_minute > = 100) {}
count_minute = 0;
count_hour ++;
Als (count_hour > = 100) count_hour = 0;
}
}
breken;
geval 4: count_hour = 0;
count_minute = 0;
count_second = 0;
breken;
}
if(P3_7==0) {}
while(P3_7==0) show_key();
count_second ++;
Als (count_second > = 100) {}
count_second = 0;
count_minute ++;
Als (count_minute > = 100) {}
count_minute = 0;

Gerelateerde Artikelen

Hoe maak je een digitale klok van Arduino

Hoe maak je een digitale klok van Arduino

Digitale klokken zijn een van de geweldige uitvinding op het gebied van de wetenschap.Heb je je ooit afgevraagd "Hoe te maken van uw eigen digitale klokken, net zoals in films!"???Nou die ik heb het ook, mijn kindertijd in een droom aan mijn zee
Hoe maak je een Dali-klok voor het smelten van stijl

Hoe maak je een Dali-klok voor het smelten van stijl

ik niet luisteren naar een van mijn oude platen, maar ik echt graag willen hebben van hen rond. Gelukkig doen genoeg, dus mijn vrienden. Een ander punt die we gemeen hebben is een waardering van te weten hoe laat het is. Ik heb al rommelen met record
Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Hoe maak je een enkele LED knipperen met behulp van een Arduino Uno Board

Vandaag, we zullen worden ter illustratie van hoe maak je een enkele LED knipperen met behulp van een Arduino Uno-board. Door elke stap te volgen, zal je dit doel bereiken.U zal het volgende nodig:Een Arduino BoardBrood bordUSB-connectorkabelEEN LED3
Hoe maak je een papier Lady Bug met behulp van papier Art filigraan

Hoe maak je een papier Lady Bug met behulp van papier Art filigraan

Filigraan Made Easy: In deze tutorial leert u hoe maak je een leuke dame bug met behulp van filigraan techniek in slechts enkele stappen. Laten we beginnen.Nou ik hoop dat je genoten hebt van dit ambacht en zo ja, vergeet dan niet om te delen, commen
Hoe maak je een Pocket schets Kit

Hoe maak je een Pocket schets Kit

Hallo! In dit instructable ik zal u tonen hoe maak je een alles-in-één zak schets kit.Hebt u nodig:PuntenslijperPencil(s)PapierGumBlu-tac tape lijm enzPegStap 1: Eerste, uw stuk papier in een paar kleine stukjes gesneden. U kunt hen houden samen met
Hoe maak je een "ridiculously.awesome" gegoten glas reproductie van uw favoriete film Prop

Hoe maak je een "ridiculously.awesome" gegoten glas reproductie van uw favoriete film Prop

ik wil graag beginnen met te zeggen dat ik hield van het proces van het uitvinden en documenteren van de laatste grote instructable dat ik schreef getiteld How to Build een equatoriale Mount voor lange blootstelling Astrofotografie.  Ik schreef dit v
Hoe maak je een Green Lantern ring-met inbegrip van een gloeiende versie!

Hoe maak je een Green Lantern ring-met inbegrip van een gloeiende versie!

Hier is hoe te maken van je eigen hars gegoten Green Lantern ring. Dit een complete revisie van mijn oorspronkelijke instructable over hoe te maken van een ring, Green Lantern, die eerder alleen liet zien hoe een cast sterling silver ring wordt gemaa
Hoe maak je een grote 3D-Printer met behulp van een kleinere 3D-Printer - "Project Locus"

Hoe maak je een grote 3D-Printer met behulp van een kleinere 3D-Printer - "Project Locus"

Uit die eigen 3D printers, aan degenen die gewoon gewoon nieuwsgierig over hun mogelijkheden zijn, een onderwerp dat vrij vaak komt is het idee van 'Een andere 3D-Printer afdrukken'. Nu dit niet 100% mogelijk zijn kan bij het overwegen van onderdelen
Hoe maak je een slechte Instructable - door de hertogin van Blackpool!

Hoe maak je een slechte Instructable - door de hertogin van Blackpool!

Dit Instructable heeft betrekking op de essentie van het maken van een slechte Instructable. Het is gratis op Eric Wilhelm van Hoe maak je een geweldige Instructable, die ik aanbevelen dat u ziet als u nog niet hebt."Dit is mijn eerste Instructable,
Eenvoudig gerolde armband patronen - hoe maak je een kristal kralen armband met gesp van een knevel

Eenvoudig gerolde armband patronen - hoe maak je een kristal kralen armband met gesp van een knevel

Zoek eenvoudig gerolde armband patronen? Zo gelukkig! Hier wil ik je laten zien hoe maak je een gerolde armband met een gesp. Niet verlaten; een fab kristal kralen armband wacht op u!Stap 1: Materialen die nodig zijn in eenvoudige kristal kralen armb
Hoe maak je een eenvoudig Easter Bunny Cake | Ambacht van het geven van

Hoe maak je een eenvoudig Easter Bunny Cake | Ambacht van het geven van

Hoi!In deze video wil ik je laten zien hoe maak je een super makkelijk Easter Bunny taart met Fondant of Gumpaste en uw favoriete Cake vak mix of Cake Recept! Dit zou zo leuk om te maken met de kleintjes!Abonneer hier op mijn Youtube-kanaal: https://
Hoe maak je een schotel tuin iedereen zal hou van

Hoe maak je een schotel tuin iedereen zal hou van

Volg Nell aan vreugde ons tuinZelfs als u niet buiten een tuin hebt, kunt u nog steeds een binnenshuis. Schotel tuinen zijn al jaren populair en maken grote cadeaus voor huizen en kantoren. Ze zijn echt heel eenvoudig samen te stellen en zijn grote p
Hoe maak je een Random Number Generator met behulp van Visual Basic 2012

Hoe maak je een Random Number Generator met behulp van Visual Basic 2012

Hallo in dit instructable ga ik om u te tonen hoe maak je een random number generatoropen eerst de visual basic-programmaSleep vervolgens een knop op het formulieren een tekstvak toevoegenVervolgens tweevoudig tikken op de knopen zodra je in de code
Hoe maak je een droog Toilet systeem met behulp van gerecycled onbehandelde pallet hout. Deel 1. Waarom afval Water? Au petit coin du jardin.

Hoe maak je een droog Toilet systeem met behulp van gerecycled onbehandelde pallet hout. Deel 1. Waarom afval Water? Au petit coin du jardin.

Wij onze flush toilet gedurende een jaar en een half niet hebt gebruikt en al 2/3 van onze jaarlijkse waterrekening hebt opgeslagen. Beter voor ons beter voor de plant. Mijn vorige film toonde hoe maak je de compostbak, deze geeft gedetailleerd overz