problem z portów szeregowych portów

F

froten

Guest
Witaj, Im tring napisać program dla AT89C51, który może wysyłać strumień jeden znak (czyli 5) do komputera, napisałem ten program ale nie działa, bo nie widać żadnych sygnałów wychodzących z Tx pin za pomocą osciloscope. program jest w następujący sposób: mov TMOD, # 20 MOV TH1, # -3 mov scon, # 50 SETB TR1 PONOWNIE: mov, "5" acall TRANS sjmp PONOWNIE TRANS: mov SBUF, TUTAJ: JNB TI, TUTAJ CLR TI ret koniec buad powinna wynosić 9600 bps. Tak naprawdę nie połączyć w obwodzie, do komputera, ponieważ podczas korzystania z osciloscope nie widzę żadnego sygnału na pin Tx. Mam podłączone zarówno asm i hex plików uzyskać więcej informacji. Prosimy o jakąkolwiek pomoc w tej sprawie jest doceniana, ponieważ jest dla mnie bardzo ważne, aby uzyskać jego pracy.
 
Spróbuj kod thos:
Code:
 mov TMOD, # 20 dolarów mov TH1, # -3 mov scon, # 50 dolarów TR1 SETB PONOWNIE: mov a, # "5" acall TRANS sjmp PONOWNIE TRANS: mov SBUF, TUTAJ: JNB TI, TUTAJ CLR TI koniec ret
 
myślisz, że ten kod będzie działać jak kosztowało mnie przeprogramować MCU.
 
co masz na myśli przez to będzie kosztować, ru wypłacania programowania tha mc!
 
myślisz, że ten kod będzie działać
myślisz, że ten kod nie zadziała? Bassically kod ma rację, problem jest nie wpłacisz szesnastkowym prefiks ( $ ), i natychmiastowe prefiks danych ( # ) Oto lista błąd dokonane :
Code:
 mov TMOD, # 20
Celem niniejszej instrukcji jest określenie Timer1 w trybie 2 (przeładować auto), ale bez $ prefiks tej instrukcji jest określenie Timer1 w trybie 1 (i inne TIMER0 bitów konfiguracji). To oznacza, że nie mają Baudrate Generator UART, więc [color = red] port szeregowy nie funkcjonowała [/color].
Code:
 mov scon, # 50
ten sam błąd, bo źle konfiguracji UART!
Code:
 mov, "5"
oznacza: przesuń zawartość komórki pamięci 35 do
 
dlaczego nie używasz keil i c kody. będzie rozwiązać wiele problemów łatwo
 

Welcome to EDABoard.com

Sponsor

Back
Top