Ich habe einen AT89C2051 auf einer Platiene und einen MAX232 auf der
anderen. Und ich verbinde die Datenleitung mit einem 10cm langen Kabel.
Und dann von dem MAX232 in den PC Win 3.11 Terminal.
Wenn ich das Programm für den Mikrocontroller in BASCOM schreibe dann
überträgt er die richtigen Zeichen . Aber wenn ich es in Asembler
schreibe dann kommen da nur so komische zeichen raus .
; 07.01.03 19:51:51
#cpu = 80C31 ; @24 MHz
; Initialisierung
; serielle Schnittstelle aktivieren
; 4800 Baud, Modus 1
clr TR1
mov TL1, #243
mov TH1, #243
; die SFR's initialisieren
mov SP, #20h
mov SCON,#42h
mov TMOD,#10h
mov TCON,#40h
mov IE,#0h
main:
mov a,#33h
serial_out:
; auf Abschluß des letzten Sendevorganges warten
jnb SCON.1,serial_out
clr SCON.1
; senden
mov SBUF,a
jmp main
end
ICh habe auch die Baudrate im Terminalfenster richtig eingestellt. Ich
weiss nicht mehr weiter. 33h ist doch eigentlich die Zahl 3 oder??? Das
heist der Controller müßte ständig eine 3 auf den PC schreiben , ins
Terminalfenster.
Hallo,
mit mov a,'3' gehts auch nicht weiter, damit lädtst Du den Inhalt des
Internen RAM Adresse 33h....
Meine MCS-51-Kenntnisse sind zwar schon ein wenig eingerostet, aber ich
denke, es liegt am Timer.
Du mußt Timer1 im Reload-Modus laufen lassen, also:
mov TMOD,20h
Dadurch wird Timer1 in zwei 8-Bit Register gesplittet, das Low-Byte wird
bei jedem Maschinenzyklus um 1 erhöht, bei einem Überlauf wird
automatisch das High-Byte ins Low-Byte übertragen.
Du brauchst also nur TH1 mit 243 zu initialisieren. Außerdem hast Du das
Timer-Run Bit gelöscht und nicht mehr gesetzt, somit läuft der Timer
nicht und eigentlich kann das Programm nichts senden.
By the way: Du hast den Transfer-Interrupt freigegeben, bei gesetztem
EAL und keinem definierten Sprungvektor kann dies auch recht
interessante Effekte haben. Also in SCON nur eine 40h reinschreiben.
Hoffe, Dir geholfen zu haben
Hi.
So müsste es klappen.
Denn den Timmer im 16Bit Modus verwendet, du musst ihn aber im
8-bit-autoreload-modus verwenden (TMOD,#20h).
; Initialisierung
;---------------------------------------------------------------
; serielle Schnittstelle aktivieren
; 4800 Baud, Modus 1
mov TL1, #243
mov TH1, #243
; die SFR's initialisieren
mov SP, #20h
mov SCON,#42h
mov TMOD,#20h
mov TCON,#40h
;---------------------------------------------------------------
MfG, Niglo
Wahnsinn , vielen DANK morgen probiere ich es gleich aus und wenn es
geht dann mache ich einen LUFTSPRUNG bis zum MOND und schreibe euch dann
eine Ansichtskarte !!!!!!!!!!
Geht immer noch nicht . Ich habe mal die Frequenz vom Quarz gemessen und
die liegt nur bei 20 Mhz und nicht bei 24 wie drauf steht .
Kann das daran liegen ?? Aber warum geht es dann bei BASCOM???
Ich habe jetzt das Bascom Programm mit einen Disasembler in
Maschienencode umgewandelt und habe mir den CODE angeschaut und dann das
Programm zum Teil übernommen und jetzt geht es , warum auch immer ??