টিটিএল সিরিয়াল সহ, দুটি দিকনির্দেশক ডেটা লাইন রয়েছে। প্রতিটি উচ্চ এবং নিম্ন উভয়ই প্রেরকের দ্বারা পরিচালিত হয়। একটি 0 বিট ভিসিসি দ্বারা 0 ভি 1 বিট দ্বারা উপস্থাপন করা হয়।
রিসিভারের পিনটি একটি ইনপুটতে সেট করা উচিত।
সুতরাং, একটি মাইক্রোকন্ট্রোলারকে বাইট প্রেরণের জন্য (8-এন -1 কোনও প্রবাহ নিয়ন্ত্রণ নয়) এটি এমন কিছু করতে পারে:
#define BAUDRATE 9600
#define DELAY (SYS_CLK/BAUDRATE)
#define UART_BITBANG_OFF UART_BITBANG_PORT |= _BV(UART_BITBANG_PIN)
#define UART_BITBANG_ON UART_BITBANG_PORT &= ~ _BV(UART_BITBANG_PIN)
#define UART_BITBANG_BIT(bit) {if (bit) UART_BITBANG_ON; else UART_BITBANG_OFF; _delay_us(DELAY);}
void uart_bitbang_init(void)
{
UART_BITBANG_DDR &= ~ _BV(UART_BITBANG_PIN); // TX output
}
void uart_bitbang_putc(uint8_t c)
{
UART_BITBANG_BIT(1)
UART_BITBANG_BIT((c & 0x1) == 0);
UART_BITBANG_BIT((c & 0x2) == 0);
UART_BITBANG_BIT((c & 0x4) == 0);
UART_BITBANG_BIT((c & 0x8) == 0);
UART_BITBANG_BIT((c & 0x10) == 0);
UART_BITBANG_BIT((c & 0x20) == 0);
UART_BITBANG_BIT((c & 0x40) == 0);
UART_BITBANG_BIT((c & 0x80) == 0);
UART_BITBANG_BIT(0);
}
(এই কোডটি কিছুটা পিছনের দিকে পড়ে কারণ এটি মূলত ইনভার্টেড টিটিএল সিরিয়ালের জন্য বোঝানো হয়েছিল)
অবশ্যই, বেশিরভাগ এমসিইউগুলিতে হার্ডওয়্যার ইউআআআটি থাকে যা আপনার জন্য এই সমস্ত করে।
আপনি সুযোগে যা দেখতে চান তা এখানে:
https://www.pololu.com/docs/0J25/4.a
এখানে সিরিয়ালটি ব্যাখ্যা করে লেডিডা থেকে একটি দুর্দান্ত ভিডিও দেওয়া হয়েছে: http://www.adafruit.com/blog/2010/09/15/usb-serial-and-you-video-an-adafruit- after-school-sp خصوصی
/