Elektronika.lt
 2024 m. gruodžio 26 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

Elektronika.lt portalo forumas

Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo. Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.

Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius, kurie nesilaiko forumo taisyklių. Pastebėjus nusižengimus, prašome pranešti.

Dabar yra 2024 12 26, 22:53. Visos datos yra GMT + 2 valandos.
 Forumas » Mikrovaldikliai » 7segnentu LED valdynas
Jūs negalite rašyti naujų pranešimų į šį forumą
Jūs negalite atsakinėti į pranešimus šiame forume
Jūs negalite redaguoti savo pranešimų šiame forume
Jūs negalite ištrinti savo pranešimų šiame forume
Jūs negalite dalyvauti apklausose šiame forume
 
  
Puslapis 12
Pereiti prie 1, 2  Toliau
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 18, 10:46 Pranešti apie taisyklių pažeidimą Atsakyti su citata
evvaldis
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
Kontroleryje pasiskaiciuoja kazkox skaicius nuo 1 iki 9999, kaip ji uzrasyti ant keturiu 7segmentu LED?kalbu apie pacia programa.
http://www.lemona.lt/lemona/servlet/ItemDetailsServlet?id=310573
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 18, 15:09 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vakaras
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Kiekvienam skaitmeniui apsirašyti reikia konstantų masyvą, kur kreipiantis pagal jo indeksą gautum 7 segmentų kodą. Ir tada išvesti į LEDą.
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 19, 14:03 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JAULER
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
vakaras rašo:
Kiekvienam skaitmeniui apsirašyti reikia konstantų masyvą, kur kreipiantis pagal jo indeksą gautum 7 segmentų kodą. Ir tada išvesti į LEDą.
gal gali kokį PVZ mestelt, ar bent jau esmę C kalbai papasakot, nes dabar rašau tokią programą, kuriai to reiks, paskui rašysiu kitą, kurtiai irgi reiks. Rolling Eyes

_________________
nepamirškit, klysti žmogiška Wink
privatas - privatiems klausimams
arch linux Wink Smile
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 19, 14:29 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Realizacija naudojant WinAVR. Gal kur ir suklydau - su notepad sumeciau ir netikrinau.



Kodas:
#include <avr/pgmspace.h>//reikalinga biblioteka
#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>
#include <avr/iom8.h>//atmega8
#include <avr/pgmspace.h>


//skaitmenu lentele saugome flash atminty
const uint8_t skaitmenys[] PROGMEM=
{
0b00000000,//susidelioji kievieno pino reiksmes
0b00010000,
0b00001000,
0b00000100,
0b00000010,
0b00000001,
0b00000000,
0b00000000
};
int main(void)
{
uint8_t pcc, i;
DDRD=0xFF;
i=0;
while(1)//amzinas ciklas
{
//skaitai is programu atminties norima skaiciu su komanda
pcc=pgm_read_byte(&skaitmenys[i++]);
//isvedi i porta kur prijungtas indikatorius
PORTD=pcc;
_delay_ms(30);//velinimas
if (i==8) i=0;
}
}
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 19, 19:37 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vakaras
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Štai vienos mano programos kodas:
Kodas:

__flash unsigned char Digits[]=
   {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
//  0    1    2    3    4    5    6    7    8    9

........

PORTC = Digits[A];         // Išvedamas A skaitmuo 0..9


Rašyta IAR kompiliatoriui.
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 20, 20:25 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JAULER
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
Mindaugasu rašo:
Realizacija naudojant WinAVR. Gal kur ir suklydau - su notepad sumeciau ir netikrinau.



Kodas:
#include <avr/pgmspace.h>//reikalinga biblioteka
#include <inttypes.h>
#include <avr/io.h>
#include <util/delay.h>
#include <avr/iom8.h>//atmega8
#include <avr/pgmspace.h>


//skaitmenu lentele saugome flash atminty
const uint8_t skaitmenys[] PROGMEM=
{
0b00000000,//susidelioji kievieno pino reiksmes
0b00010000,
0b00001000,
0b00000100,
0b00000010,
0b00000001,
0b00000000,
0b00000000
};
int main(void)
{
uint8_t pcc, i;
DDRD=0xFF;
i=0;
while(1)//amzinas ciklas
{
//skaitai is programu atminties norima skaiciu su komanda
pcc=pgm_read_byte(&skaitmenys[i++]);
//isvedi i porta kur prijungtas indikatorius
PORTD=pcc;
_delay_ms(30);//velinimas
if (i==8) i=0;
}
}


hmm, kažkaip man kompas nenori priimti pgmspace includo, pažiūrėjau, tai jis yra savo vietoj, ir kompas jį randa kai kompiliuoji, tik su tuo includu AVRSTUDIO pakimba. na bet jei ką aš jau kažką panašaus parašiau kitaip, ir viskas veikia. Smile , panaudojau naują void`ą, ir iš esmės gerai išėjo Smile .

_________________
nepamirškit, klysti žmogiška Wink
privatas - privatiems klausimams
arch linux Wink Smile
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 20, 20:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JAULER
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
tiesa, ten reikėjo iš ne pagrindinės programos(na kai būna void main, ar pan.), įvesti duomenis į main`ą? toje programoj aš laikinai panaudojau, portą. taigi, koks yra paprasčiausias būdas pernešti 8 bitus, iš nepagrindinės programos dalies, į pagrindinę (main`ą)? kažkaip į kitą pusę pervesti paprasčiau.

_________________
nepamirškit, klysti žmogiška Wink
privatas - privatiems klausimams
arch linux Wink Smile
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 20, 21:21 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vakaras
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
JAULER rašo:
tiesa, ten reikėjo iš ne pagrindinės programos(na kai būna void main, ar pan.), įvesti duomenis į main`ą? toje programoj aš laikinai panaudojau, portą. taigi, koks yra paprasčiausias būdas pernešti 8 bitus, iš nepagrindinės programos dalies, į pagrindinę (main`ą)? kažkaip į kitą pusę pervesti paprasčiau.


Įdomu, kas nors supras ko norėjai paklausti?...
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 20, 21:56 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JAULER
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
pabandysiu aiškiau, vienu žodžiu yra pas mane taip, kadangi kompas nepriėmė PGMSPACE includo, man reikėjo kažkaip parašyt tą konstantų masyvą, ar kažką panašaus (naudoju winAVR). ir šovė į galvą mintis. panaudojau atskirą void apelsinas() (pavadinimą tokį "apelsinas" sugalvojo draugas Laughing Very Happy ) kurioje surašytos reikšmės su if funckija, prireikė tik 10 if, nes yra 10 skaičių 1,2,3,4,5,6,7,8,9,0. informacija apie tai, koks skaičius yra perduodama per s kintamajį, kuris yra tarp tų skliaustų, kur būna void apelsinas(unsigned int s). programa atrodo taip:
void apelsinas(unsigned int s)
Kodas:

void apelsinas(unsigned int s)
{
if(s==1) {PORTB = 96 ;}
if(s==2) {PORTB = 218;}
if(s==3) {PORTB = 242;}
if(s==4) {PORTB = 102;}
if(s==5) {PORTB = 182;}
if(s==6) {PORTB = 190;}
if(s==7) {PORTB = 224;}
if(s==8) {PORTB = 254;}
if(s==9) {PORTB = 246;}
if(s==0) {PORTB = 252;}   
}

šį kartą, kol kas, na visos programos išbandymui parašiau tą reikšmę išduotų per PORTB, ir paskui main`e rašau kad PORTA = PORTB, taip pernešdamas 8 bit į main`ą iš apelsino. O man įdomu, kaip tai padaryti, nenaudojant portB, na dabar gal aiškiau?

_________________
nepamirškit, klysti žmogiška Wink
privatas - privatiems klausimams
arch linux Wink Smile
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 20, 23:16 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
JAULER rašo:

Kodas:

void apelsinas(unsigned int s)
{
if(s==1) {PORTB = 96 ;}
if(s==2) {PORTB = 218;}
if(s==3) {PORTB = 242;}
if(s==4) {PORTB = 102;}
if(s==5) {PORTB = 182;}
if(s==6) {PORTB = 190;}
if(s==7) {PORTB = 224;}
if(s==8) {PORTB = 254;}
if(s==9) {PORTB = 246;}
if(s==0) {PORTB = 252;}   
}


Na siuo atveju mazas pakeitimas padetu, jeigu supratau tavo klausima..
Kodas:

uint8_t apelsinas(uint8_t s)
{
if(s==1) return 96;
if(s==2) return 218;
if(s==3) return 242;
if(s==4) return 102;
if(s==5) return 182;
if(s==6) return 190;
if(s==7) return 224;
if(s==8) return 254;
if(s==9) return 246;
if(s==0) return 252;   
}


siaip geriausia tokias lenteles apsirasyti masyve.
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 20, 23:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
vakaras
VIP narys
VIP narys
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
JAULER rašo:
na visos programos išbandymui parašiau tą reikšmę išduotų per PORTB, ir paskui main`e rašau kad PORTA = PORTB, taip pernešdamas 8 bit į main`ą iš apelsino.


Jooo... Va čia tai dviratininkas....

Juk esu viršuje parašęs kaip reikia daryti. Vos dvi eilutės, ir viskas. Na bet jei nesiklausai - Tavo reikalas. Perdavinėk duomenis per portus jei tau taip patogiau...
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 21, 15:17 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JAULER
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
ką gi, susitvarkiau, ir parašiau konstantų masyvą, tokį kokį vakaras siūlė, ačiū. Smile Rolling Eyes .

P.S. vakare, tavo programoj, kur siūlei, na, ją reikėjo patobulint, nes tiesiogiai ji neveikė, tik patvarkius.

_________________
nepamirškit, klysti žmogiška Wink
privatas - privatiems klausimams
arch linux Wink Smile
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 21, 16:05 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
JAULER rašo:
ką gi, susitvarkiau, ir parašiau konstantų masyvą, tokį kokį vakaras siūlė, ačiū. Smile Rolling Eyes .

P.S. vakare, tavo programoj, kur siūlei, na, ją reikėjo patobulint, nes tiesiogiai ji neveikė, tik patvarkius.

Na cia klausimas koki tu C kompiliatoriu naudoji. Nes ivairios direktyvos tai skiriasi...
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 21, 16:38 Pranešti apie taisyklių pažeidimą Atsakyti su citata
JAULER
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką MSN Messenger
naudoju winAVR. turbūt dėl to ir nepriėmė man visų tų dviejų eilučių, jei konkrečiau nepriėmė:
Kodas:
__flash
be jo veikia gerai, išbandžiau Smile

_________________
nepamirškit, klysti žmogiška Wink
privatas - privatiems klausimams
arch linux Wink Smile
 7segnentu LED valdynas
PranešimasParašytas: 2006 06 22, 08:44 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Dreifas
Moderatorius
Moderatorius
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Apsilankyti vartotojo tinklapyje ICQ numeris
Jeigu tu nuemei ta _flash, tai dabar tavo lentele yra saugoma mikrokontrolerio RAM atmintyje. Gerai jeigu lentele nedidele, tai išsiteks, bet jeigu lentele virsys RAM Steko dydi, tada niekur nedingsi, teks grusti i Flash atminti.
Pradėti naują temą  Atsakyti į pranešimą Pereiti prie 1, 2  Toliau
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

FS25 Tractors
Farming Simulator 25 Mods, FS25 Maps, FS25 Trucks
ETS2 Mods
ETS2 Trucks, ETS2 Bus, Euro Truck Simulator 2 Mods
FS22 Tractors
Farming Simulator 22 Mods, FS22 Maps, FS25 Mods
VAT calculator
VAT number check, What is VAT, How much is VAT
LEGO
Mänguköök, mudelautod, nukuvanker
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope
FS25 Mods
FS25 Harvesters, FS25 Tractors Mods, FS25 Maps Mods
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija
FS25 Mods
FS25 Maps, FS25 Cheats, FS25 Install Mods
GTA 6 Weapons
GTA 6 Characters, GTA 6 Map, GTA 6 Vehicles
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps
ATS Trailers
American Truck Simulator Mods, ATS Trucks, ATS Maps
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama