Saya mencoba melihat karakter ASCII "A" dengan osiloskop tetapi nilai biner yang sebenarnya dan nilai osiloskop berbeda mengapa? ASCII "A" Nilai biner - 01000001
Osiloskop menampilkan grafik ini:
Saya menggunakan Arduino Uno untuk mengirim nilai ASCII menggunakan kode:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("A");
delay(1000);
}
sumber
println
perintah, yang berarti mencetak string, serta "\ r \ n". Jadi tiga karakterJika Anda melihat dokumentasi Arduino println (), Anda akan melihat bahwa itu menambahkan carriage return dan linefeed di akhir. Jadi dalam desimal Anda akan berakhir dengan 65 (A), 13 (CR) dan 10 (LF) yang dalam biner diterjemahkan menjadi:
Data serial Async dikirim LSB terlebih dahulu sehingga menjadi:
Sinyal Anda idle tinggi sehingga bit mulai akan 0 dan bit berhenti akan 1 sehingga menambahkan itu ke setiap byte dan Anda berakhir dengan:
Agak sulit untuk menentukan waktu yang tepat dari diagram Anda, tetapi tampaknya setidaknya cocok secara kasar dan akan memberi Anda gambaran di mana beberapa bit tambahan berasal dan mengapa mereka dipesan ulang. Tautan Wikipedia yang disediakan oleh Kvegaoro memberikan banyak informasi latar belakang yang bagus tentang data serial async.
sumber
Jika aliran yang Anda tunjukkan ada serial Asynchronous , osiloskop akan menunjukkan bit mulai yang sesuai, stop bit dan bit paritas. Juga memperhitungkan apakah sinyal Anda terbalik atau tidak dan cuaca itu bit pertama yang paling signifikan atau sedikit lebih dulu. Jika Anda menambahkan detail lebih lanjut tentang aliran serial yang telah Anda wakili dalam gambar,, kami dapat memberikan jawaban yang lebih rinci dan lebih baik jika tidak, ini hanya tebakan yang terpelajar.
sumber