Witam!
Pisze sprawozdanie laborki :) z takiego tematu jak w tytule. I mam problem z taka prosta rzecza jak kontrola parzystosci. Od czytania dokumentacji i rozmowy z prowadzacym mam juz straszny metlik. Glownie od rozmowy z prowadzacym.
Tytulowy mikrokontroler jest ustawiony na tryb 3 pracy poprzez odpowiednie wpisy w SCON. Tryb 3 czyli transmisja asynchroniczna i ramka zlozona z: bit_startu | 8 bitow danych | 9 bit ustawiany | bit stopu.
9 bit ustawiany przez bit TB8 z rejestru SCON. I teraz wysylamy do akumulatora wartosc ASCII jakiegos znaku np "G". Raz ustawiam w TB8 1 a raz 0 i na oscyloskopie ogladam sobie przebieg na linii TxD.Powyzszy akapit realizuje taka petla:
DO0: clr TB8 (lub setb TB8) mov G, #'G' lcall TB sjmp DO0
I nie potrafie wytlumaczyc jak dziala ta kontrola parzystosci. Bit TB8 ustawiam zanim transmituje dane do akumulatora. Dla litery G ktorej kod ASCII dwojkowo ma cztery 1. Bit startu to 0. Bit stopu to 1. Wiec w zaleznosci od TB8 liczba jedynek bedzie rozna: parzysta lub nieparzysta.
Tak wiec czy o to chodzi ze przed wyslaniem kazdej danej programista ma wiedziec ile jedynek bedzie w ramce i odpowiednio dla kazdej danej ustawiac bit TB8 (troche chyba bez sensu dla wiekszej ilosci danych)? Czy jest glebsze zagadnienie (tak podejrzewam)?
Prosze o jakies sugestie.
pozdrawiam