Ü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.
Előre is köszönöm.
Üdv
Comments
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
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
Szia József!
rar-t vagy zip-et enged csatolni!
Üdv: Jácint
0
Üdv!
Anonymous topikban valószínű biztonsági okokból le van tiltva a csatolás.
0
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
Üdv!
Linket lehet csatolni, például innen is:
http://data.hu/
0
Szia ,iparos !
Köszönöm Szépen ! Már is csatolom a projektet !
Üdv : Lengyel Józsi
0
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
Üdv
ez sem nehezebb csak nagyobb helyet igényel
https://www.youtube.com/watch?v=VEG6-rdNZHI
0
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
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
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
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
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
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
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
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
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
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