You are here

Fel/le számláló 7 szegmenses kijelzővel.

Üdv mindenkinek!

Szeretnék egy számlálót építeni, ami 0tól-64ig le és fel számol, találtam egy oldalt ahol egy ilyen kapcsolást közöltek, ezzel annyi a baj hogy 99ig számol. Hogy tudnám azt megoldani hogy csak 64ig számoljon és ne tovább?!
16f628A ic áll rendelkezésre.

Itt található a kapcsolás

Előre is köszönöm.
Üdv

Comments
Lengyel József
Lengyel József picture

Szia Anonymous !

Itt vannak a csatolmányok a következő linkek:

- A Proteus projekt is itt van csatolva ,hex fájl stb....

A hex fájl szükséges a proteusz szimuláciohóz is !

A linkek tehát :

http://data.hu/get/10273975/Szamlalo_64.zip

http://data.hu/get/10273976/Szamlalo_64.pdsprj

http://data.hu/get/10273977/Szamlalo_64.pdsprj.Lilian-PC.Lilian.workspace

http://data.hu/get/10273978/Szamlalo_64.hex

Üdv : Lengyel József

0

Lengyel József
Lengyel József picture

Szia ,Anonymous !

A rajz alapján a "C" fejlesztő rendszer segítségével ,van egy olyan számláló amely 0 tól 64 -ig számol oda vissza.

A PIC16F628A alapján készült.Csatoltam volna ide a de nem látok olyan menüt ,hogy dokumentum csatolás ,vagy hasonló.

Van hozzá PROTEUS simulációs anyagom is. Amint meg van a modja ,hogyan lehetne csatolni ,akkor csatolnám .

Magát a C nyelvű forrás kódot így tudom be másolni ,be illeszteni :

unsigned short szamlalo = 0 ; //Magának a számláló változója

unsigned short leptet = 0 ; // az egy léptetést jelző "flag"
unsigned short Led[3]; // a kijelezendő digit változója tömb
unsigned short multiplexer = 0 ; // a kijelzés multiplexer változója
unsigned short egyes = 0 ; // az számlálandó / kijelezendő egységek változója
unsigned short tizes = 0 ; // az számlálandó / kijelezendő tizesek változója

unsigned short Mask(unsigned short); // a hét szegmens "Maszk" függvény deklarációja

void main() {
// A mikrokontroller inicializálása
TRISA = 0x0C;
CMCON = 0x07;
TRISB = 0x00;
PORTB = 0x00;
PORTA.RA0 = 0;
PORTA.RA1 = 0;
leptet = 0 ;
multiplexer = 0;
Delay_ms(200);
do // a program ciklus kezdete
{

// A felfele számlálás 64-ig inkrementálás
if(PORTA.RA2 == 0 &&PORTA.RA3 == 1 && szamlalo < 64 && leptet == 0 )
{
Delay_ms(50);

szamlalo = szamlalo + 1 ;
leptet = 1 ;

}
// A lefele számlálás dekrementálás
if(PORTA.RA3 == 0 && PORTA.RA2 == 1 && szamlalo > 0 && leptet == 0 )
{
Delay_ms(50);

szamlalo = szamlalo - 1 ;
leptet = 1 ;

}
if(PORTA.RA2 == 1 && PORTA.RA3 == 1) leptet = 0 ;

// A kijelző kezelése
tizes = ((szamlalo)/10) % 10 ;
egyes = szamlalo % 10 ;
Led[0] = Mask(tizes);
Led[1] = Mask(egyes);
for(multiplexer = 0 ; multiplexer < 2 ; multiplexer ++)
{
PORTB = Led[multiplexer];
if(multiplexer == 0) PORTA.RA0 = 1 ; else PORTA.RA0 = 0 ;
if(multiplexer == 1) PORTA.RA1 = 1 ; else PORTA.RA1 = 0;
Delay_ms(1);
PORTB = 0 ;
PORTA.RA0 = 0;
PORTA.RA1 = 0;
}
}while(1); // a program cilus vége (végtelenített ciklus).

}
unsigned short Mask(unsigned short digit) // a hét szegmens digitt Mask függv definicíoja
{
unsigned short result;
switch(digit)
{
case 0:
return result = 0x3F;
case 1:
return result = 0x06;
case 2:
return result = 0x5B;
case 3:
return result = 0x4F;
case 4:
return result = 0x66;
case 5:
return result = 0x6D;
case 6:
return result = 0x7D;
case 7:
return result = 0x07;
case 8:
return result = 0x7F;
case 9:
return result = 0x6F;

}

}
Maga a forrás fájl MIkroC for PIC fejlesztőrendszerrel készült. Persze a mikrokontrrollert konfigurálni kell még ,óra ,jel stb. Én belsó oszcillátorra configuráltam (4MHz). A config itt nem látszik mert azt egy erre való fájlé tartalmazza.

Én eszt le szimuláltam PROTEUS-ban ez oda vissza számol 64-ig . Egy gomb nyomás egyet léptet "elv" alapján. Üdv : Lengyel József

0

Jaca
Jaca picture
****

Szia József!

rar-t vagy zip-et enged csatolni!

Üdv: Jácint

0

iparos
iparos picture

Üdv!
Anonymous topikban valószínű biztonsági okokból le van tiltva a csatolás.

0

Lengyel József
Lengyel József picture

Szia iparos !

Köszönöm szépe a segítséget ! Közben keresgéltem ,hogyan tudom csatolni a zip csomagot de nem találtam semmit... Meg lehet ,hogy az én hibámból...

Üdv : Lengyel Józsi

0

iparos
iparos picture

Üdv!
Linket lehet csatolni, például innen is:
http://data.hu/

0

Lengyel József
Lengyel József picture

Szia ,iparos !

Köszönöm Szépen ! Már is csatolom a projektet !

Üdv : Lengyel Józsi

0

Lengyel József
Lengyel József picture

Szia Jaca !

Ilyeneket látok itt ,hogy :Internet cim , Képet beilleszt , különböző írási modók .A csatolás az hol van ? :)

Köszi a segítséget !

Üdv : Lengyel Józsi

0

zsugori
zsugori picture
***

Üdv
ez sem nehezebb csak nagyobb helyet igényel
https://www.youtube.com/watch?v=VEG6-rdNZHI

0

ty
ty picture

Az "Up" rutint kell módosítanod, ami a számláló gomb megnyomásakor hívódik meg.
Ez lenne az eredeti kódrészlet:


Up btfsc Sw_Flag,2
retlw 00
bsf Sw_Flag,2
incf units,f
movlw 0Ah         ;put 10 into w
xorwf units,w     ;compare units file with 10
btfss status,2    ;zero flag in status file. Set if units is 10
retlw 00
clrf units
incf tens,f
movlw 0Ah        ;put 10 into w
xorwf tens,w     ;compare units file with 10
btfsc status,2   ;zero flag in status file. Set if tens is 10
clrf tens
retlw 00        ;display passes 99 but not below 0

Üdv, ty

0

Jaca
Jaca picture
****

Sziasztok!

Most itt röhögök magamban, hogy anno ilyenre a 74-es sorozat IC-it használtuk. Tény és való, lement a mikrokontorllerek ára, sok feladatra olcsóbb megoldást biztosítanak. Aztán jött az ISIS nevű grafikus program, amihez szinte nem is kell tudnunk programozni. Bocs a kifakadásért, csak még a hatása alatt vagyok annak az egyszerű feladatnak, hogy egy kábel átmeneti ellenállását kell tesztelni a munkahelyen, és ezt úgy oldották meg, hogy a tápegységet kérdezik le soros vonalon, hogy mekkora az áram, meg mekkora a feszültség. Mindez 40 másodpercbe telik. Anno ezt megoldottuk 3 komparátorral pár tized másodperc alatt. Csak ahhoz ismerni kellett Ohm törvényét...

Üdv: Jácint

0

zoli710802
zoli710802 picture

Helló!
Én meg 4510 és 4543-ból csináltam a tekercselő gépre számlálót.
De ugye így elegánsabb, mert én pl nem tudnám lemásolni!
Üdv: Zoli

0

DINO54
DINO54 picture

Szia !
Az 555 egyáltalán nem egy bonyolult eset kapcsolást építeni vele de...
http://nutsvolts.texterity.com/nutsvolts/201612/?folio=34&pg=34#pg34
Itt a programja:
http://www.nutsvolts.com/uploads/magazine_downloads/201612-Cicchinelli.zip
Üdv. Laci

0

Kari
Kari picture
*****

Hali!
Ugyan erösen ketlem, hogy a "nutsvolts" cikkiroja olvasta volna ezeket az elmelkedeseket, de a hobbystak közt univerzalis megoldasnak velt 555 egyaltalan nem az, de föleg nem azzal a pontossaggal-üzembiztonsaggal mint sokan gondoljak_erdemes a cikket atnyalazni...
Kari

0

DINO54
DINO54 picture

Szia !
Ezt csak elrettentő példának hoztam fel arra, hogy lehet a legegyszerűbb dolgot kvázi "elbonyolítani". Ha egy ilyen szerkezet beadja a kulcsot és nem Te vagy az alkotója, dobhatod el az egészet mert nincs vele mit kezdeni. Ez nagyjából igaz a PIC-es és egyéb társaival megvalósított s...ok igen komoly hányadára.
Üdv. Laci

0

ty
ty picture

Ellenben van egy olyan flexibilitása ami a logikai IC-knek soha nem volt.
Egy FW cserével számolhat 64 helyett 87-ig, vagy törölhet hosszú gombnyomásra,
várhat egy percet 20-nál, stb.
Mindennek megvan az optimális alkalmazási területe, de ezeket pl. logikai IC-vel nehéz lenne megoldani.

Üdv, ty

0

Jaca
Jaca picture
****

Sziasztok!

Viszont egy 24C-s IC-be be (vagy egy SPI flash-be)lehet mellé égetni a kódot, és egy bekötetlen foglalatba belerakni. Ha gond van, ott van mellette a mentés, és csak 2-3 száz forint.

Üdv: Jácint

0

ty
ty picture

Ahol ez számít, ott a készülékkel vásárolni kell felprogramozott tartalék MCU-t,
vagy megvenni a gyártási jogot és a bináris állományt/forráskódot.
El kell fogadni, hogy a dolgok nem az öröklétnek készülnek.
Egy körültekintéssel betervezett processzor normál esetben még így is tovább bírja
mint a tápok, vagy perifériához kapcsolódó alkatrészek.

De azt hiszem már csak magunk között beszélgetünk, a kérdezőnk számára érdektelen a diskurzusunk :)

Üdv, ty

0

Jaca
Jaca picture
****

Szia!

Hátha egyszer elolvassa más is. De ha magának csinálja az ember, akkor így a legjobb tárolni mellette a kódot.

Üdv: Jácint

0

Sponsored links