Michael18964
-
Gesamte Inhalte
10 -
Benutzer seit
-
Letzter Besuch
Inhaltstyp
Profile
Forum
Downloads
Kalender
Blogs
Shop
Beiträge von Michael18964
-
-
ok hab da auf der hp geschaut hat sonst noch jemand ne ahnung wo man sowas finden könnte???
mfg michael
-
von atmel
-
kann mir vll jemand sagen woher man die hex adressen von r0, r1, r2, usw... für ein 8051atmel kontroller bekommt? oder sie vll direkt posten?
wäre sehr nett!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
mfg michael
-
also danke mal
aber ist dass etz nicht so dass wenn ich es so mache:
marke0:
CJNE R0, #4d, marke1
MOV R0, #0h ;r0 auf 0 zurück setzen
marke:
INC R1 ;1/1000sec
CJNE R1, #10d, marke ;solange r1 zählen bis 10mal durchgelaufen und somit 1/100sec gedauert hat
MOV R1, #0h ;r1 auf 0 zurück setzen
marke1:
INC R2 ;1/100
CJNE R2, #10d, marke1 ;solange r2 zählen bis 10mal durchgelaufen und somit 1/10sec gedauert hat
MOV R2, #0h ;r2 auf 0 zurück setzen
müsste ich nicht immer auf marke0 zurück gehen da sonst doch r1, r2 usw. zu schnell erhöht wird. sprich es läuft 4mal bei marke0 durch somit wird r1 um eins erhöht und ist es ungleich 10 wird r1 wieder um eins erhöht ist dass dann nicht zu schnell es sollte ja wieder genau 1000µs dauern damit ich auf die richtige zeit hab...
achja und warum:
mov r0,#hex-adresse von r5
hex von adresse r5 ist klar aber warum r0 bzw. muss ich dann in dem unterprog vom lcd prog r0 irgendwie als ausgabe definieren?
und dass mit der matrix tastatur müssen wir machen genau so dass lcd display dass prob ist ich muss dass morgen eingeltich abgeben und vortragen^^
ach und noch was wir haben nix bekommen wo die hex adressen von r1 r2 usw. stehen hast du ne ahnung wo man die her bkeommen könnte? weil der lehrer hat erstens überhaupt kein plan und hilft net und ich seh ihn vor der abgabe nimmer;-)
-
also mein etziges prob ist
wie schreib ich den dass rein dass zb r3 also die 1/10sek ausgeben werden bzw auch r4 r5 usw. eben alles zusammen...und wie macht man da ne leerstelle damit zwischen sekunde minute usw. immer eine zeile frei bleibt? ich habs etz mal so gemacht könnte das funktionieren wäre aber glaub ohne leerstellen und zeigt es dann auch alles gleichzeitig an?
INC R5 ;1/10
CJNE R5, #10d, marke1 ;solange r5 zählen bis 10mal durchgelaufen und somit 1sec gedauert hat
MOV anzeigen, R5 ;r5 und somit die 1/10sec ausgeben
MOV R5, #0h ;r5 auf 0 zurück setzen
und wie mach ich dass damit man zb auf 1drückt und die stoppuhr anfängt und wenn man 2drückt stoppt...bzw. dass man eben dass interrupt starten lässt und stoppen
wie gesagt unterprogs hab ich für alles...sollt ich die auch ganz posten?
mfg michael
-
hey
ja schon haben unterprogs bekommen für lcd und matrix
aber ka wie ich die einbauen kann bzw. was ich hinschreiben muss damit was ausgegeben wird...
-
die tastatur brauch ich dazu, weil das eine stoppuhr ist, mit der tastatur stopp und starte ich das ganze
schonmal vielen dank goblack3, werd mir deine infos mal durch den kopf gehen lassen
mfg
michael
-
kann mir keiner helfen?
schade, ich blick das überhaupt nicht
mfg
michael
-
Ich muss fürs Abitur eine Jahresarbeit machen und bei der muss ich eine Stoppuhr in Assembler programmieren, mit RIDE!!
Ich habe schon Timer und Interrupter soweit schon programmiert, aber ich weiß nicht wie man die Matrix-Tastatur und die LCD-Anzeige ansteuert!
Könnte mir da jemand helfen?
Ist wichtig für mein Abi und ich habe nurnoch eine Woche dafür Zeit
Das ist das was ich bisjetzt habe, ist das bis jetzt richtig? und könnte das jemand vervollständigen?
;timer2.a51
;Timer0-Interrupt alle 65 ms
;Ausgabe Lauflicht LEDs an P2
$include (reg52.inc)
ORG 0000h
ljmp init ;Das eigentliche Programm beginnt hinter
ORG 000Bh ;den Interrupt-Einsprung-Adressen
ljmp count_isr
;******* Initialisierung *************************************************************************************
init: mov TMOD, #00000010b
mov TL0, #6d
mov TH0, #6d
mov TCON, #00010000b
SETB ET0
SETB EA
;******** Hauptprogramm *************************************************************************
haupt: sjmp haupt ;Warten auf Interrupts
count_isr: INC R0
CJNE R0, #4d, marke1
MOV R0, #0h ;r0 auf 0 zurück setzen
INC R1 ;1/1000sec
CJNE R1, #10d, marke1 ;solange r1 zählen bis 10mal durchgelaufen und somit 1/100sec gedauert hat
MOV R1, #0h ;r1 auf 0 zurück setzen
INC R2 ;1/100
CJNE R2, #10d, marke1 ;solange r2 zählen bis 10mal durchgelaufen und somit 1/10sec gedauert hat
MOV R2, #0h ;r2 auf 0 zurück setzen
INC R3 ;1/10
CJNE R3, #10d, marke1 ;solange r3 zählen bis 10mal durchgelaufen und somit 1sec gedauert hat
;r3 und somit die 1/10sec ausgeben
MOV R3, #0h ;r3 auf 0 zurück setzen
INC R4 ;sec
CJNE R4, #60d, marke1 ;solange r4 zählen bis 60mal durchgelaufen und somit 1min gedauert hat
;r4 und somit die sec ausgeben
MOV R4, #0h ;r4 auf 0 zurück setzen
INC R5 ;min
CJNE R5, #60d, marke1 ;solange r5 zählen bis 60mal durchgelaufen und somit 1h gedauert hat
;r5 und somit die min ausgeben
MOV R5, #0h ;r5 auf 0 zurück setzen
INC R6 ;min
CJNE R6, #60d, marke1 ;solange r6 zählen bis 24mal durchgelaufen und somit 1d gedauert hat
;r6 und somit die h ausgeben
MOV R6, #0h ;r6 auf 0 zurück setzen
marke1: RETI
END
Zu den Hardwareangaben:
Mikrocontroller 8051
LCD 16 Zeichen Breit und 2 Zeilen hoch
Normale Matrix-Tastatur 0-9 Zeichen und Stern und Raute
Danke schonmal im Vorraus!
PS: Falls es im Falschen Thread ist, dann bitte verschieben diesen Post in den richtigen Bereich, wusste nicht wo es hin gehört!!
mfg
Michael
Hex Adressen von R0 usw.
in C++: Compiler, IDEs, APIs
Geschrieben
assembler