
Bygga en miniräknare
Assembler är det "språk" som är mäst maskin-nära (det är samma språk som processorn läser) därför måste du välja Pic eller Avr innan det är någon ide' att lära sig språket.
Assembler har väldigt låg nivå (varje instruktion utför väldigt lite) så att lära sig språket går ganska fort men att lära sig programmera kan ta lite längre tid.
Valet av Pic eller Avr spelar egentligen ingen roll, "alla" på det här forumet är partiska så jag tycker ni ska gå genom ett datablad för en Pic18 och en ATmega, ha fokus på instruktions-uppsättningen, så får ni se vad magkänslan säger.
Assembler har väldigt låg nivå (varje instruktion utför väldigt lite) så att lära sig språket går ganska fort men att lära sig programmera kan ta lite längre tid.
Valet av Pic eller Avr spelar egentligen ingen roll, "alla" på det här forumet är partiska så jag tycker ni ska gå genom ett datablad för en Pic18 och en ATmega, ha fokus på instruktions-uppsättningen, så får ni se vad magkänslan säger.

Senast redigerad av Chribbe76 21 januari 2007, 20:53:19, redigerad totalt 1 gång.
Gick faktiskt en kurs i assembler för nått år sedan.
Då var all hårdvara färdig (en motorola 68000 processor tror jag det var)
och vi behövde bara skriva programet.
Vi arbetade 2 och 2.
Det tog nästan 50 timmar att få till en miniräknare för oss då.
Men då hade vi ju programerat en hel del i högre språk innan. Så om man
inte kan nått alls om programering kanske det tar längre tid?
Hursomhelst så borde ni klara det på 100 timmar. Kanske enklast att 2st gör hårdvaran och 2st gör mjukvaran?
Då var all hårdvara färdig (en motorola 68000 processor tror jag det var)
och vi behövde bara skriva programet.
Vi arbetade 2 och 2.
Det tog nästan 50 timmar att få till en miniräknare för oss då.
Men då hade vi ju programerat en hel del i högre språk innan. Så om man
inte kan nått alls om programering kanske det tar längre tid?
Hursomhelst så borde ni klara det på 100 timmar. Kanske enklast att 2st gör hårdvaran och 2st gör mjukvaran?
-
- Inlägg: 3663
- Blev medlem: 11 september 2004, 09:30:42
- Ort: gbg
- Kontakt:
Gick en kurs i microprocessorteknik för sådär 20-25 år sedan och som slutprov fick vi hitta på något med det material som fanns i fysiksalen.
Vi byggde en "miniräknare" med hjälp av ett 16-knappars tangentbord (0-F) som inmatningsenhet och en processor med väldigt lite minne för beräkning och som utmatningsenhet hittade vi en DA-omvandlare som vi kopplade till ett oscilloskop. Med lite assemblerprogrammering lyckades vi få till alla fyra räknesätten och plotta ut resultatet med åtta siffror och flytande decimalkomma. Läraren blev impad och gav 5:a i betyg.
Vi byggde en "miniräknare" med hjälp av ett 16-knappars tangentbord (0-F) som inmatningsenhet och en processor med väldigt lite minne för beräkning och som utmatningsenhet hittade vi en DA-omvandlare som vi kopplade till ett oscilloskop. Med lite assemblerprogrammering lyckades vi få till alla fyra räknesätten och plotta ut resultatet med åtta siffror och flytande decimalkomma. Läraren blev impad och gav 5:a i betyg.
Ja, då var det dags att sätta igång igen. Vi har haft lite problem med att fixa en handledare till vårt projekt, men idag ska gruppen träffas och vi ska försöka beställa hem alla delar så snart som möjligt.
Vi ska besluta vilken processor, vilken knappsats och vilken display vi ska använda. Vi ska också försöka besluta huruvida vi ska bygga en egen programmerare eller köpa en färdig.
Vad behöver man för att kunna koppla ihop alla komponenterna med varandra? Är det några sladdar som vi måste köpa eller?
Är det något mer än processor, knappsats, display, eventuella sladdar och programmerare som vi behöver ha?
Angående programmeringen, kan C vara vettigare att använda om man redan har programmerat 2-3 år i Java, vilket enligt vad jag har hört ska ha liknande grunder med C i alla fall?
Edit. Skulle det gå att använda 2 st telefontangentbord av sorten som är länkad till nedanför, och använda det ena till att skriva in siffrorna och det andra till att välja räknesätt osv.
http://www.elfa.se/elfa-bin/setpage.pl? ... 124650.htm
Edit2. Hur får man ström till miniräknaren?
Vi ska besluta vilken processor, vilken knappsats och vilken display vi ska använda. Vi ska också försöka besluta huruvida vi ska bygga en egen programmerare eller köpa en färdig.
Vad behöver man för att kunna koppla ihop alla komponenterna med varandra? Är det några sladdar som vi måste köpa eller?
Är det något mer än processor, knappsats, display, eventuella sladdar och programmerare som vi behöver ha?
Angående programmeringen, kan C vara vettigare att använda om man redan har programmerat 2-3 år i Java, vilket enligt vad jag har hört ska ha liknande grunder med C i alla fall?
Edit. Skulle det gå att använda 2 st telefontangentbord av sorten som är länkad till nedanför, och använda det ena till att skriva in siffrorna och det andra till att välja räknesätt osv.
http://www.elfa.se/elfa-bin/setpage.pl? ... 124650.htm
Edit2. Hur får man ström till miniräknaren?
Senast redigerad av Newi 18 februari 2007, 15:01:43, redigerad totalt 1 gång.
- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
16-tangenters tangentbord: Länk 1
För att spara I/O-pinnar: Länk 2
Labbkort: Länk 3 eller Länk 3.5
Kabel: Länk 4
C låter väl som ett bra val!
"Är det något mer än processor, knappsats, display, eventuella sladdar och programmerare som vi behöver ha? "
Kolla in databladen för de komponenter ni skall använda som processor, display och så vidare INNAN ni beställer, det blir billigare så!
Skulle det gå att använda 2 st telefontangentbord av sorten som är länkad till nedanför, och använda det ena till att skriva in siffrorna och det andra till att välja räknesätt osv
Låter lite onödigt, satsa på t.ex. det jag länkade till.
Lycka till!!
För att spara I/O-pinnar: Länk 2
Labbkort: Länk 3 eller Länk 3.5
Kabel: Länk 4
C låter väl som ett bra val!
"Är det något mer än processor, knappsats, display, eventuella sladdar och programmerare som vi behöver ha? "
Kolla in databladen för de komponenter ni skall använda som processor, display och så vidare INNAN ni beställer, det blir billigare så!

Skulle det gå att använda 2 st telefontangentbord av sorten som är länkad till nedanför, och använda det ena till att skriva in siffrorna och det andra till att välja räknesätt osv
Låter lite onödigt, satsa på t.ex. det jag länkade till.
Lycka till!!
Länk 2, 3 och 3.5 har jag inte en blekaste aning om vad det är för något.MicaelKarlsson skrev:16-tangenters tangentbord: Länk 1
För att spara I/O-pinnar: Länk 2
Labbkort: Länk 3 eller Länk 3.5
Kabel: Länk 4
C låter väl som ett bra val!
"Är det något mer än processor, knappsats, display, eventuella sladdar och programmerare som vi behöver ha? "
Kolla in databladen för de komponenter ni skall använda som processor, display och så vidare INNAN ni beställer, det blir billigare så!
Skulle det gå att använda 2 st telefontangentbord av sorten som är länkad till nedanför, och använda det ena till att skriva in siffrorna och det andra till att välja räknesätt osv
Låter lite onödigt, satsa på t.ex. det jag länkade till.
Lycka till!!
- MicaelKarlsson
- Inlägg: 4669
- Blev medlem: 18 juni 2004, 09:16:07
- Ort: Aneby
- Kontakt:
Länk 2: Kopplas in mellan uC och tangentbord för att det skall gå åt mindre antal I/O-pinnar och få enklare kod. Ta en titt i databladet: Länk det förklarar en hel del.
Länk 3: Experimentkort används för att löda fast komponenterna
Länk 3.5: Funktionen är samma som Länk 3 men du trycker bara ner komponenterna i kopplingsdäcket, riktigt praktiskt för experiment.
Länk 3: Experimentkort används för att löda fast komponenterna
Länk 3.5: Funktionen är samma som Länk 3 men du trycker bara ner komponenterna i kopplingsdäcket, riktigt praktiskt för experiment.
Måste säga att dom där databladen inte är lättaste laget att förstå, men jag för väl försöka att sätta mig in i det innan vi beställer.MicaelKarlsson skrev:Länk 2: Kopplas in mellan uC och tangentbord för att det skall gå åt mindre antal I/O-pinnar och få enklare kod. Ta en titt i databladet: Länk det förklarar en hel del.
Länk 3: Experimentkort används för att löda fast komponenterna
Länk 3.5: Funktionen är samma som Länk 3 men du trycker bara ner komponenterna i kopplingsdäcket, riktigt praktiskt för experiment.
Länk 3.5: Betyder det att man kan sätta fast alla komponenter och testa att det fungerar, utan att behöva löda något? Så ifall något blir fel så är det enkelt att byta plats på saker?
Tack för hjälpen för övrigt.
F'låt, gammal forum-vana att citera. Ska försöka behärska mig nu.
Idag ska delarna beställas, har bara en liten fråga. Vi hade tänkt att beställa en PIC16F874A, men det finns två att välja på - PIC16F874A-I/L och PIC16F874A-I/P. Den ena finns i lager just nu medan den andra är slut för tillfället. Spelar det någon roll vilken av dom vi köper, eller kan man ta vilken som helst? Det är I/L som finns i lager.
Idag ska delarna beställas, har bara en liten fråga. Vi hade tänkt att beställa en PIC16F874A, men det finns två att välja på - PIC16F874A-I/L och PIC16F874A-I/P. Den ena finns i lager just nu medan den andra är slut för tillfället. Spelar det någon roll vilken av dom vi köper, eller kan man ta vilken som helst? Det är I/L som finns i lager.
Vill ni köra i assembler så kan jag varmt rekomendera denna sida: http://www.mstracey.btinternet.co.uk/pi ... icmain.htm
Håller själv på att lära mig assembler och denna sida förklarar precis hur assembler fungerar. Dock så förklarar den hur man programmerar en PIC16F84A men kollar man i databladen så märker man snabbt att skillnaden inte är så stor mellan olika PICar.
Håller själv på att lära mig assembler och denna sida förklarar precis hur assembler fungerar. Dock så förklarar den hur man programmerar en PIC16F84A men kollar man i databladen så märker man snabbt att skillnaden inte är så stor mellan olika PICar.