|
可以自己定義(軟件方式):
用一根、兩根、三根IO線,都可以,只要雙方的通訊協(xié)議一樣即可。
以兩線為例,P1.0 = clk、P1.1 = data。通訊的雙方再協(xié)議一下,如:頻率,同步方式……。(可以對(duì)照232的協(xié)議進(jìn)行,8位改9位,不就可以了嗎?)
不過(guò),用軟件做很麻煩,又要求有一定的水準(zhǔn)。
用硬件做:用9位以上的移位寄存器,搭建。也很麻煩,也要求有一定硬件水準(zhǔn)。
一般方案:就用現(xiàn)成的8位,9位用兩個(gè)字節(jié)16位傳遞,做做組合、拆分就行了,16位去除7位,也不錯(cuò)啊。
最接近可行的方案:利用奇偶校驗(yàn)位傳輸?shù)?位。
發(fā)送方:
1、將SCON的SM0設(shè)置成1,9位串行模式。
2、先將第9位寫(xiě)入TB8。
3、再將第1-8位寫(xiě)入SBUF,發(fā)送。
接收方:
1、將SCON的SM0設(shè)置成1,9位串行模式。
2、將SCON的SM2=0,這個(gè)設(shè)置是關(guān)鍵。。∪绻鸖M2設(shè)置為1,則收不到第9位=0的數(shù)據(jù)。
3、將收到的RB8存于第9位,SBUF存于前8位。
|
|