Note: A Remote Programable Digital Input/Ouput module

這是一個用 8051實作使用 UART/RS485通訊的Keil C code的案例, 目前這個簡單的模組已經在某個大眾運輸系統中, 還算穩定的運行超過 10 years. 這個code 比較值得一提的是利用切換UART mode, 來避免當使用8051在RS485使用時需要去 delay 1bits的時間才能切換 Direction Pin. (將模式從 N, 8, 1 變成 N, 9, 1 , 因為8051的 TX Interrupt 是在stop bit 發出時同時 trigger 這時 stop bit 並未完成, 直接切 RS485的direction pin 的話, 會造成該 byte的 frame error!)

硬體是簡單的 8031 + ROM + TTL (最早的是 8031+ROM+PIC 8255, 但是應用上8255常發生latch up 導致損毀, 成本也高), 後來改用簡單的 GAL + TTL去做8255的基本功能模擬

基本的細節都在 CM.H這個檔案內

click here to download the project source code

or get from github

因為之前有寫過 8051 UART C Version 有些人光看該code, 好像還是不懂怎樣用, 所以現在放出一個簡單又完整的專案, 但是這個專案因為是比較早期寫的所以某些 code style會多少不一致, 但是思路是一致的.

廣告

對「Note: A Remote Programable Digital Input/Ouput module」的想法

    • 查一下 C preprocessor 語法吧, 主要是用來連接前後的 所以你可以看到 我用一個參數 去連, 這樣的用法可以方便 reuse, 當初用這考量是因為記憶體配置在8051上會有很大的 overhead, 所以採用在 compiling 階段配置的方法

    • SP485IC 是啥? 我沒用過說~ 不過看你的問法是在PC 上用的吧? 那基本上還是RS232 的寫法, 然後你要注意看你的環境是否有需要 自己控制RX/TX 的切換 要自己控制的 一般是接 RTS/CTS 那隻腳, 你就需要看TX/RX 把 RTX/CTS 那隻腳做 HI/LOW 變化, 希望能幫上你!

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

w

連結到 %s