Arme man AVR muziekdoos (1 / 6 stap)

Stap 1: Broncode, geluid generatie

START:
. OMVATTEN "tn26def.inc"
CLR r23
CLR r24
CLR r25
CLR r26
CLR r27
CLR-r28
CLR r29
CLR r30
CLR r31
LDI r25, 0b10000000; hier is waar ik heb de verkeerde uitgang pin gedefinieerd... Het shoud worden
LDI r26, 0b00000000; 0b00000001 die ik denk. Gewoon gebruik maken van 0b11111111 voor het testen als onzeker.
uit DDRA, r25
NOP
uit PORTA, r26
NOP
uit DDRB, r26
NOP
INGANG:
96 notities mogelijk, plus stilte (nul)
uit PORTA, r26; Stilte als geen input
NOP
in r28, PINB
MOV r31, r28
CPI r28, 0b00000000
breq INPUT

D8S:
; 5.1 khz
CPI r28, 0b00000001
Brně D8
LDI r29, 0b00010000
LDI r30, 0b00000001

D8:
; 4,63 khz
CPI r28, 0b00000010
Brně C8S
LDI r29, 0b00010010
LDI r30, 0b00000001

C8S:
; 4,42 khz
CPI r28, 0b00000011
Brně C8
LDI r29, 0b00010011
LDI r30, 0b00000001

C8:
; 4.24 khz
CPI r28, 0b00000100
Brně B7
LDI r29, 0b00010100
LDI r30, 0b00000001
rjmp B7

INPUT91:
rjmp INPUT

B7:
; 3,91 khz
CPI r28, 0b00000101
Brně A7S
LDI r29, 0b00010110
LDI r30, 0b00000001

A7S:
; 3.70 khz
CPI r28, 0b00000110
Brně A7
LDI r29, 0b00010111
LDI r30, 0b00000001

A7:
; 3.57 khz
CPI r28, 0b00000111
Brně G7
LDI r29, 0b00011001
LDI r30, 0b00000001

G7:
; 3.13 khz
CPI r28, 0b00001000
Brně F7S
LDI r29, 0b00011010
LDI r30, 0b00000001

F7S:
; 2,94 khz
CPI r28, 0b00001001
Brně F7
LDI r29, 0b00011110
LDI r30, 0b00000001

F7:
; 2,78 khz
CPI r28, 0b00001010
Brně E7
LDI r29, 0b00100000
LDI r30, 0b00000001

E7:
; 2,63 khz
CPI r28, 0b00001011
Brně D7S
LDI r29, 0b00100010
LDI r30, 0b00000001

D7S:
; 2,50 khz
CPI r28, 0b00001100
Brně D7
LDI r29, 0b00100101
LDI r30, 0b00000001

D7:
; 2,33 khz
CPI r28, 0b00001101
Brně C7S
LDI r29, 0b00100111
LDI r30, 0b00000001

C7S:
; 2.22 khz
CPI r28, 0b00001110
Brně C7
LDI r29, 0b00101010
LDI r30, 0b00000001

C7:
; 2.08 khz
CPI r28, 0b00001111
Brně B6
LDI r29, 0b00101100
LDI r30, 0b00000001
rjmp B6

INPUT92:
rjmp INPUT91

B6:
; 1. 96 khz
CPI r28, 0b00010000
Brně A6S
LDI r29, 0b00101111
LDI r30, 0b00000001

A6S:
; 1,85 khz
CPI r28, 0b00010001
Brně A6
LDI r29, 0b00110010
LDI r30, 0b00000001

A6:
; 1,75 khz
CPI r28, 0b00010010
Brně G6S
LDI r29, 0b00110101
LDI r30, 0b00000001

G6S:
; 1,67 khz
CPI r28, 0b00010011
Brně G6
LDI r29, 0b00111001
LDI r30, 0b00000001

G6:
; 1.56 khz
CPI r28, 0b00010100
Brně F6S
LDI r29, 0b00111100
LDI r30, 0b00000001

F6S:
; 1.47 khz
CPI r28, 0b00010101
Brně F6
LDI r29, 0b01000000
LDI r30, 0b00000001

F6:
; 1.39 khz
CPI r28, 0b00010110
Brně E6
LDI r29, 0b01000100
LDI r30, 0b00000001

E6:
; 1,32 khz
CPI r28, 0b00010111
Brně D6S
LDI r29, 0b01001000
LDI r30, 0b00000001

D6S:
; 1,25 khz
CPI r28, 0b00011000
Brně D6
LDI r29, 0b01001101
LDI r30, 0b00000001

D6:
; 1.18 khz
CPI r28, 0b00011001
Brně C6S
LDI r29, 0b01010010
LDI r30, 0b00000001

C6S:
; 1.11 khz
CPI r28, 0b00011010
Brně C6
LDI r29, 0b01010111
LDI r30, 0b00000001

C6:
; 1.04 khz
CPI r28, 0b00011011
Brně B5
LDI r29, 0b01011100
LDI r30, 0b00000001
rjmp B5

INPUT93:
rjmp INPUT92

B5:
990Hz
CPI r28, 0b00011100
Brně A5S
LDI r29, 0b01100010
LDI r30, 0b00000001

A5S:
935Hz
CPI r28, 0b00011101
Brně A5
LDI r29, 0b01101000
LDI r30, 0b00000001

A5:
877Hz
CPI r28, 0b00011110
Brně G5S
LDI r29, 0b01101110
LDI r30, 0b00000001

G5S:
833Hz
CPI r28, 0b00011111
Brně G5
LDI r29, 0b01110101
LDI r30, 0b00000001

G5:
781Hz
CPI r28, 0b00100000
Brně F5S
LDI r29, 0b01111100
LDI r30, 0b00000001

F5S:
741Hz
CPI r28, 0b00100001
Brně F5
LDI r29, 0b10000100
LDI r30, 0b00000001

F5:
699Hz
CPI r28, 0b00100010
Brně E5
LDI r29, 0b10001100
LDI r30, 0b00000001

E5:
658Hz
CPI r28, 0b00100011
Brně D5S
LDI r29, 0b10010100
LDI r30, 0b00000001

D5S:
621Hz
CPI r28, 0b00100100
Brně D5
LDI r29, 0b10011101
LDI r30, 0b00000001

D5:
588Hz
CPI r28, 0b00100101
Brně C5S
LDI r29, 0b10100111
LDI r30, 0b00000001

C5S:
555Hz
CPI r28, 0b00100110
Brně C5
LDI r29, 0b10110001
LDI r30, 0b00000001

C5:
524Hz
CPI r28, 0b00100111
Brně B4
LDI r29, 0b10111100
LDI r30, 0b00000001
rjmp B4

INPUT94:
rjmp INPUT93

B4:
;
CPI r28, 0b00101000
Brně A4S
LDI r29, 0b11000111
LDI r30, 0b00000001

A4S:
;
CPI r28, 0b00101001
Brně A4
LDI r29, 0b11010011
LDI r30, 0b00000001

A4:
;
CPI r28, 0b00101010
Brně G4S
LDI r29, 0b11100000
LDI r30, 0b00000001

G4S:
;
CPI r28, 0b00101011
Brně G4
LDI r29, 0b11101101
LDI r30, 0b00000001

G4:
;
CPI r28, 0b00101100
Brně F4S
LDI r29, 0b11111100
LDI r30, 0b00000001

F4S:
;
CPI r28, 0b00101101
Brně F4
LDI r29, 0b00101011
LDI r30, 0b00000101

F4:
;
CPI r28, 0b00101110
Brně E4
LDI r29, 0b00101101
LDI r30, 0b00000101

E4:
;
CPI r28, 0b00101111
Brně D4S
LDI r29, 0b00110000
LDI r30, 0b00000101

D4S:
;
CPI r28, 0b00110000
Brně D4
LDI r29, 0b00110011
LDI r30, 0b00000101

D4:
;
CPI r28, 0b00110001
Brně C4S
LDI r29, 0b00110110
LDI r30, 0b00000101

C4S:
;
CPI r28, 0b00110010
Brně C4
LDI r29, 0b00111010
LDI r30, 0b00000101

C4:
;
CPI r28, 0b00110011
Brně B3
LDI r29, 0b00111101
LDI r30, 0b00000101
rjmp B3

INPUT95:
rjmp INPUT94

B3:
;
CPI r28, 0b00110100
Brně A3S
LDI r29, 0b01000001
LDI r30, 0b00000101

A3S:
;
CPI r28, 0b00110101
Brně A3
LDI r29, 0b01000101
LDI r30, 0b00000101

A3:
;
CPI r28, 0b00110110
Brně G3S
LDI r29, 0b01001001
LDI r30, 0b00000101

G3S:
;
CPI r28, 0b00110111
Brně G3
LDI r29, 0b01001110
LDI r30, 0b00000101

G3:
;
CPI r28, 0b00111000
Brně F3S
LDI r29, 0b01010011
LDI r30, 0b00000101

F3S:
;
CPI r28, 0b00111001
Brně F3
LDI r29, 0b01011000
LDI r30, 0b00000101

F3:
;
CPI r28, 0b00111010
Brně E3
LDI r29, 0b01011101
LDI r30, 0b00000101

E3:
;
CPI r28, 0b00111011
Brně D3S
LDI r29, 0b01100011
LDI r30, 0b00000101

D3S:
;
CPI r28, 0b00111100
Brně D3
LDI r29, 0b01101000
LDI r30, 0b00000101

D3:
;
CPI r28, 0b00111101
Brně C3S
LDI r29, 0b01101111
LDI r30, 0b00000101

C3S:
;
CPI r28, 0b00111110
Brně C3
LDI r29, 0b01110101
LDI r30, 0b00000101

C3:
;
CPI r28, 0b01111111
Brně B2
LDI r29, 0b01111101
LDI r30, 0b00000101
rjmp B2

INPUT96:
rjmp INPUT95

B2:
;
CPI r28, 0b01000000
Brně A2S
LDI r29, 0b10000101
LDI r30, 0b00000101

A2S:
;
CPI r28, 0b01000001
Brně A2
LDI r29, 0b10001101
LDI r30, 0b00000101

A2:
;
CPI r28, 0b01000010
Brně G2S
LDI r29, 0b10010101
LDI r30, 0b00000101

G2S:
;
CPI r28, 0b01000011
Brně G2
LDI r29, 0b10011110
LDI r30, 0b00000101

G2:
;
CPI r28, 0b01000100
Brně F2S
LDI r29, 0b10101000
LDI r30, 0b00000101

F2S:
;
CPI r28, 0b01000101
Brně F2
LDI r29, 0b10110010
LDI r30, 0b00000101

F2:
;
CPI r28, 0b01000110
Brně E2
LDI r29, 0b10111100
LDI r30, 0b00000101

E2:
;
CPI r28, 0b01000111
Brně D2S
LDI r29, 0b11001000
LDI r30, 0b00000101

D2S:
;
CPI r28, 0b01001000
Brně D2
LDI r29, 0b11010100
LDI r30, 0b00000101

D2:
;
CPI r28, 0b01001001
Brně C2S
LDI r29, 0b11100001
LDI r30, 0b00000101

C2S:
;
CPI r28, 0b01001010
Brně C2
LDI r29, 0b11101110
LDI r30, 0b00000101

C2:
;
CPI r28, 0b01001011
Brně B1
LDI r29, 0b11111100
LDI r30, 0b00000101
rjmp B1

INPUT97:
rjmp INPUT96

B1:
;
CPI r28, 0b01001011
Brně A1S
LDI r29, 0b00111111
LDI r30, 0b00011001

A1S:
;
CPI r28, 0b01001100
Brně A1
LDI r29, 0b01000010
LDI r30, 0b00011001

A1:
;
CPI r28, 0b01001101
Brně G1S
LDI r29, 0b01000110
LDI r30, 0b00011001

G1S:
;
CPI r28, 0b01001110
Brně G1
LDI r29, 0b01001011
LDI r30, 0b00011001

G1:
;
CPI r28, 0b01001111
Brně F1S
LDI r29, 0b01001111
LDI r30, 0b00011001

F1S:
;
CPI r28, 0b01010000
Brně F1
LDI r29, 0b01010100
LDI r30, 0b00011001

F1:
;
CPI r28, 0b01010001
Brně E1
LDI r29, 0b01011001
LDI r30, 0b00011001

E1:
;
CPI r28, 0b01010010
Brně D1S
LDI r29, 0b01011111
LDI r30, 0b00011001

D1S:
;
CPI r28, 0b01010011
Brně D1
LDI r29, 0b01100101
LDI r30, 0b00011001

D1:
;
CPI r28, 0b01010100
Brně C1S
LDI r29, 0b01101011
LDI r30, 0b00011001

C1S:
;
CPI r28, 0b01010101
Brně C1
LDI r29, 0b01110001
LDI r30, 0b00011001

C1:
;
CPI r28, 0b01010110
Brně B0
LDI r29, 0b01111000
LDI r30, 0b00011001
rjmp B0

INPUT98:
rjmp INPUT97

B0:
;
CPI r28, 0b01010111
Brně A0S
LDI r29, 0b01111111
LDI r30, 0b00011001

A0S:
;
CPI r28, 0b01011000
Brně A0
LDI r29, 0b10000111
LDI r30, 0b00011001

A0:
;
CPI r28, 0b01011001
Brně G0S
LDI r29, 0b10001111
LDI r30, 0b00011001

G0S:
;
CPI r28, 0b01011010
Brně G0
LDI r29, 0b10011000
LDI r30, 0b00011001

G0:
;
CPI r28, 0b01011011
Brně F0S
LDI r29, 0b10100001
LDI r30, 0b00011001

F0S:
;
CPI r28, 0b01011100
Brně F0
LDI r29, 0b10101011
LDI r30, 0b00011001

F0:
;
CPI r28, 0b01011101
Brně E0
LDI r29, 0b10110101
LDI r30, 0b00011001

E0:
;
CPI r28, 0b01011110
Brně D0S
LDI r29, 0b11000000
LDI r30, 0b00011001

D0S:
;
CPI r28, 0b01011111
Brně D0
LDI r29, 0b11001011
LDI r30, 0b00011001

D0:
;
CPI r28, 0b01100000
Brně C0S
LDI r29, 0b11011000
LDI r30, 0b00011001

C0S:
;
CPI r28, 0b01100001
Brně C0
LDI r29, 0b11100101
LDI r30, 0b00011001

C0:
;
CPI r28, 0b01100010
Brně hi
LDI r29, 0b11110010
LDI r30, 0b00011001
rjmp hi

INPUT99:
rjmp INPUT98

Hallo:
uit PORTA, r25
CLR r27
NOP; Om te compenseren voor Ingang1 functie, waardoor hi/lo gelijke lengtes
NOP
NOP
NOP
NOP

TIMER0h:; 5 cpu-cycli per tellen
Inc r24
NOP
CP r24, r29
Brně TIMER0h
rjmp TIMER1h

TIMER1h:; 6 cpu-cycli per tellen
CLR r24
Inc r27
CP r27, r30
NOP
Brně TIMER0h
rjmp lo

Lo:
uit PORTA, r26
CLR r27

TIMER0l:; 5 cpu-cycli per tellen
Inc r24
NOP
CP r24, r29
Brně TIMER0l
rjmp TIMER1l

TIMER1l:; 6 cpu-cycli per tellen
Inc r27
NOP
CLR r24
CP r27, r30
Brně TIMER0l
rjmp Ingang1

INGANG1:; Controleren om te zien als input is veranderd, zo niet, blijven uitvoer
in r28, PINB; 5 cycli in deze functie
CP r28, r31
Brně INPUT99
rjmp hi

Gerelateerde Artikelen

Arme Mans Composite (of Pimp My koeler)

Arme Mans Composite (of Pimp My koeler)

"I 'm back in the game" (mijn trieste Dave Chappel referentie)Het is een tijdje geweest aangezien ik een instructie samen opbrengen kon. Met een paar grote projecten in de werken (en een nieuwsgierig 9 maand oud) al mijn vrije tijd op een premie
Arme Mans Sinus reinigingsmiddel

Arme Mans Sinus reinigingsmiddel

Hallo aan u allen en welsome aan mijn absolute eerste instructable (paus voor applaus) hehe na Im enkel kiddin, maar echt het is mijn eerste instructable!Anywho, Im hier te laten zien een andere Sinus reinigingsmiddel (arme man stijl)Dus hier gaan we
Tafelblad wasmachine (4 Da arme Man)

Tafelblad wasmachine (4 Da arme Man)

ik vind ik heb idealen de hele tijd, maar leg ze op de lange baan geschoven oorzaak Im gewoon niet zeker hoe om te gaan doen. Zo slecht zie iets in mijn hoofd en gewoon wachten tot ik wat het is zien dat ik echt nodig om medeplichtige wat ik wil.Op e
Arme man ipod-speakers.

Arme man ipod-speakers.

Ooit nodig een paar sprekers voor je ipod die u op ebay gezocht? Teveel kost?Nou... in dit instructable, dit de goedkoopste ipod-speakers die u ooit zult vinden.Opmerking: Ik ontdekte die dit al op instructables was. Maar ik denk niet dat haar prakti
Arme man camera statief

Arme man camera statief

arme man camera statiefis heel erg goedkoop om te maken en portable ook zodat geen behoefte om te zoeken plaatsen waar te zettenhet maakt gebruik van eigen gemaakte dingen om een schaar en tube kun je uit aluminiumfolie vakhet kan worden gebruikt voo
Arme Mans GPS

Arme Mans GPS

een goedkope versie van GPS voor navigatie op de fiets... Goed KindaStap 1: Het idee Ten eerste wil ik mij verontschuldigen voor de beelden, (en mijn spelling) mijn camera is gebroken, dus dit de webcam, lol is.Ik was op vakantie aan de kust, en was
Een gitaarband en 2 capos voor de arme man

Een gitaarband en 2 capos voor de arme man

bent u net als ik een arme man die zijn gitaar kenmerken zich maakt, maar is niet triggervoorwaarden met het uiterlijk en de kwaliteit van een shoestring riem en een capo rubberbands-potlood? Welnu, hier is de perfecte instructable voor u!In dit Inst
Tafelblad drukkend wasmachine (4 Da arme Man)

Tafelblad drukkend wasmachine (4 Da arme Man)

op veler verzoek (net als drie mensen). Ive nu de wasmachine tafelblad gemaakt (4 de arme Man) in een hogedrukspuit!Dit is echt gemakkelijk toe te voegen aan de tafelblad wasmachine, dus ziek het allemaal op één stap zetVOOR EDUCATIEVE ALLEEN DOELEIN
De arme man de soldering iron

De arme man de soldering iron

Welkom bij mijn eerste instructable! Zoals gezegd in de titel, zal ik proberen om je te leren hoe te bouwen van een eenvoudige soldeerbout op weinig tot geen last. "Waarom zou ik een soldeerbout in plaats van het kopen van een bouwen?" Afgezien
Laser show voor de arme man

Laser show voor de arme man

hier is nog een nutteloze maar cool uitziende "moet bouwen" gadget voor elke romantische geek.Laat me introduceren PIC microcontroller gebaseerd drie assen laser spirograaf....Check onderstaande link als je wilt om meer patronen te zien
De Scariac (arme Mans variabele macht Controller)

De Scariac (arme Mans variabele macht Controller)

water mengen met elektriciteit is riskant, en dodelijk kunnen zijn.  Echter, in dit project we gebruiken het om een van de goedkoopste soorten macht controller.  De Scariac.http://www.thekingofrandom.comStap 1: Bekijk de VideoWaarschuwing: Dit projec
De arme Man wasruimte

De arme Man wasruimte

een geldbesparende wasruimteStap 1: Inleiding Dit instrueren kunnen toont hoe met verschillende huishoudelijke artikelen en producten maken een Wasserij-station dat is goedkoper te handhaven en gemakkelijker te behandelen terwijl geld te besparen en
20 gal Tabletop wasmachine (4 Da arme Man)

20 gal Tabletop wasmachine (4 Da arme Man)

ik roepen deze 'De koppelschotel', zoals u waarom zien zult als wij te werk gaan. Ik denk niet dat ziek worden afgewerkt met deze man-aangedreven wasmachines voor een tijdje. Ik ben het opstellen van plannen voor een Full Sized Front Loading wasmachi
Arme Mans glasvezel, permanente exterieur verf, verf nooit weer (bijna), impregneren met uit epoxy, polyester epoxy allergie vrijstelling

Arme Mans glasvezel, permanente exterieur verf, verf nooit weer (bijna), impregneren met uit epoxy, polyester epoxy allergie vrijstelling

Terug in 2011 ik bouwde een teardrop camper, op het moment dat ik moest een plek om te slapen een paar nachten per week als de lange rit naar huis was waardoor ik in slaap achter wiel kunnen vaak vallen. Ik heb de plannen voor de teardrop vrij van de