電子工程網(wǎng)

標題: RS232通訊編程提問(wèn)(C51單片機) [打印本頁(yè)]

作者: zxf_love2    時(shí)間: 2012-4-15 09:18
標題: RS232通訊編程提問(wèn)(C51單片機)
我想用51單片機做通訊,RS232協(xié)議,比如我制定指令為#(x x x)格式,#(A 8 1)這條指令的意思是:#通訊請求,(為發(fā)送開(kāi)始位,A表示P0口8表示P0口的第7位(P0.7),1表示該位為1,)為結束位  請問(wèn)下位機的編程該怎樣做呢?
作者: zxf_love2    時(shí)間: 2012-4-15 09:19
請求各位高手給予解答啊
作者: zxf_love2    時(shí)間: 2012-4-15 09:30
我需要做個(gè)小實(shí)驗的 希望各位高手幫我一下啊 感激不盡
作者: lous    時(shí)間: 2012-4-15 09:34
基礎問(wèn)題,沒(méi)有人回答你。自己不動(dòng)腦
作者: zxf_love2    時(shí)間: 2012-4-15 10:33

作者: zxf_love2    時(shí)間: 2012-4-15 14:36
關(guān)鍵是 我是自學(xué)的  沒(méi)有基礎 期望能得到指點(diǎn)
作者: zxf_love2    時(shí)間: 2012-4-15 15:54
高手幫幫忙啦 給我一點(diǎn)思路也可以啊  謝謝啦
作者: sherwin    時(shí)間: 2012-4-15 20:43
俺不寫(xiě)代碼N多年了,只能給點(diǎn)提示給你吧:
1、先制定一個(gè)完整的命令表。這個(gè)很重要,否則后面你會(huì )越做越亂的。
2、下位機就是單片機,一般C51片子都會(huì )有專(zhuān)門(mén)的UART接口的,好好讀懂數據手冊,通過(guò)設置幾個(gè)寄存器,一般就能完成了。
3、如果不巧沒(méi)有專(zhuān)用UART接口,則需要自己用軟件來(lái)模擬。那么建議,一是要用中斷IO口來(lái)進(jìn)行接收,用其他IO口來(lái)做發(fā)送;二是調用內部計時(shí)器,來(lái)計算時(shí)間的長(cháng)短,設置IO的高低電平(或接收口的高低電平)的時(shí)間長(cháng)短;三則,在固定的時(shí)間段內(根據約定的速率來(lái)計算),讀取接口(或設置接口)的高低電平,高為1,低為0;最后,采用移位算法,將下一位數據調用(或保存),最后構成完整的單個(gè)字節或者整條命令。
作者: zxf_love2    時(shí)間: 2012-4-17 14:05
非常感謝sherwin 給我的寶貴意見(jiàn) 我現在嘗試這用switch  case 結合數組 現在做成功了 我就是想看看別人是怎么做的   我想看看別人的高效代碼  學(xué)習學(xué)習!
作者: McuPlayer    時(shí)間: 2012-4-17 14:17
指令格式為#(x x x)

這個(gè)做法可行的,有幀起始和結束標志

另外,盡量一開(kāi)始就考慮到協(xié)議的擴展性
作者: pcbkey    時(shí)間: 2015-2-7 12:04
支持一下




歡迎光臨 電子工程網(wǎng) (http://selenalain.com/) Powered by Discuz! X3.4
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页