要求:讓兩台微控制器能相互通訊,這台微控制器按下在鍵盤能在另一台微控制器上在數碼管顯示。
鏈結線:將一台微控制器在p3.0(rxd)接到另一台微控制器在p3.1(txd),還有這台在p3.1接到另一台在p3.0,還有將兩台微控制器在gnd相連。
1 #include 2#define ledlen 6
34 xdata unsigned char outbit _at_ 0x8002; //
位控制口
5 xdata unsigned char outseg _at_ 0x8004; //
段控制口
6 xdata unsigned char in _at_ 0x8001; //
鍵盤讀入口
78 unsigned char ledbuf[ledlen]; //
顯示緩衝
9 unsigned char rcvbuf; //
接收緩衝
10 bit hasrcv = 0; //
接收標誌
1112 code unsigned char ledmap = ;
1617
void serialio0() interrupt 4
18else
2629}30
31void delay(unsigned char
cnt)
3238
39void
displayled()
4054}55
56 code unsigned char keytable = ;
6465 unsigned char
testkey()
6670
71 unsigned char
getkey()
72 while ((--i != 0) && (k == 0
));85
86//
鍵值 = 列 x 4 + 行
87if (k != 0
) else
return(0xff
);101
}102
103void
main()
104129
displayled();
130if (testkey()) sbuf =getkey();
131}
132 }
結果:會發現按下這台微控制器在鍵盤碼會在另一台微控制器在數碼管顯示出來。
串列埠通訊 串列埠通訊原理
1 rs232介面 rs232 c介面聯結器一般使用型號為db 9的9芯插頭座,只需3條介面線,即 傳送資料 接收資料 和 訊號地 即可傳輸資料,其9個引腳的定義如圖11 3所示。圖11 3 rs232 c介面聯結器定義 在rs232的規範中,電壓值在 3v 15v 一般使用 6v 稱為 0 或 o...
不用串列埠線除錯串列埠通訊程式
linux qt embedded寫串列埠程式 在辦公室都是用串列埠連線兩台電腦來除錯串列埠程式。因為電腦多,用一根線連起來,這邊發那邊收,收的一邊xp裡用串列埠除錯助手,很方便。有時候手頭沒有兩台電腦可以連,或者兩台中有一台筆記本,只有usb轉串列埠線,我的筆記本裡只有linux,反正怎麼都不方便...
串列埠同步通訊和串列埠非同步通訊
串列埠掃盲貼 現實中不存在絕對精確的時鐘,標稱值同樣是1mhz,發端和接收端的時鐘總會存在差異,如果接收端不進行時鐘同步,而是使用自己本地的時鐘,則足夠長的時間後接收到的資料總會出現不可預知的重複或丟失,導致接收錯誤。因此發端必須將與資料速率相關的時鐘訊號傳輸給接收端,時鐘訊號可以走單獨的訊號線,也...