-
硬體--- 8051 微控制器。
工作量太大了,我的畢業設計就是用微控制器來控制燈光。
要幾個月了,老大哥。
-
懶得靠在樓上吧?當人們問起系統設計時,你可以談論RS485,你不能給分數。
-
這很簡單,只要找到一本關於微控制器的書,你就可以解決它。
-
工作量太大了......順便說一句,要乙份,給錢。
-
MCU多機通訊,一台主機多從機+乙個通訊協議即可,正常串列埠設定即可,協議可以採用資料包的形式,如:開機字元、從機號、資料長度、指令型別、資料1---資料n、校驗碼、結束字元,向主機傳送指令從機應答,從機需要主機協助。
-
林黛玉和賈寶玉林黛玉和賈寶玉。
-
MCU和PC之間最簡單的通訊方式是使用串列埠,PC的RS232埠中的一對串列埠線對應MCU的一對串列埠引腳進行通訊。
序列通訊最重要的引數是波特率、資料位、停止位和奇偶校驗,資料以位為單位傳輸。
需要先定義微控制器和PC之間的通訊資料使用什麼格式,然後寫入程式中。 例如,如果通訊是 ASCII 程式碼字串,則微控制器從 PC 接收資料並以 char 格式儲存資料。 如果正在傳達十進位數,則資料以 int 格式儲存在變數中。
PC 上的程式也將執行相同的操作。
網上關於微控制器和PC序列通訊的程式太多了,建議大家了解一下,看完應該很清楚。
微控制器是一種非常基礎的通訊裝置,它不像PC、交換機、路由器那樣有一整套通訊協議,微控制器的通訊協議是由設計人員定義的,當然,一些先進的微控制器都有通訊模組,但歸根結底,還是要有乙個設計人員先把程式燒進去。 此外,事實上,這些交換機和路由器的通訊模組實際上是像微控制器一樣的晶元。
-
微控制器不可能在沒有作業系統(例如Linux)的情況下接收字元。
對於微控制器傳輸,如果要向PC傳送乙個數字,例如將數字“1”傳送到PC,讓串列埠除錯軟體以ASCII字元的形式顯示,則必須傳送'1'ASCII 程式碼 31
實際上,除錯助手接收到的所有十六進製資料都是除錯助手接收到的十六進製資料的ASCII轉換結果,無論是ASC字元顯示還是十六進製顯示。
如果顯示十六進製系統,則除錯助手會顯示接收到的實際資料。
如果顯示 ASC,則除錯助手將檢查 ASCII 表中接收到的十六進製資料,以檢視十六進製資料表示的字元。
如果你希望微控制器也能夠處理字元,就像你說的'/n',然後需要在微控制器中儲存乙個 ASCII 表,然後使用接收到的字元查詢表,然後進行轉換。
它仍然是你的'/n'例如,微控制器接收 0a,然後轉到 ASCII 表差異,0a 表示正式的 n
-
建議您閱讀有關該主題的書籍。
-
微控制器的串列埠通訊是一次傳送乙個位元組,即8位二進位數字。
這是最基本的知識。
房東想傳輸:或其他任何東西,只需將它們視為 8 位二進位數即可。
這也是最簡單的知識。 簡單,沒有比這更簡單的了。
只需要設定一種通訊格式。
完全沒有:ASCII 程式碼、協議、資料包、幀、亂碼。
-
他是對的,我崇拜他! 向他學習,我也扔磚頭和石頭。
下面是乙個簡單的微控制器和PC機接受我之前寫的資訊傳送的程式,可以參考一下,我用的網路拓撲是星形的,程式開始具有確認PC傳送位址的功能,然後不停止接受約定的資料長度, 並且接受的資料從80h開始儲存在儲存空間中,這些你可以根據自己的要求進行更改,但PC端必須先傳送位址,微控制器傳送位址確認後,就可以傳送資料了。
包括晶體振盪器。
#include
定義 data51 dbyte[0x80] 80h 儲存資料。
定義 AddressId 1 個本機位址。
unsigned char call,*p;呼叫命令 00h(由從機接收)01h(由從機傳送)。
unsigned char l;傳送的字數。
void rs485();
main()
void rs485()
void counter4(void) interrupt 4 串列埠中斷。
51機串列埠低電平以下,高電平5V以下,PC串列埠低電平-12V,高電平+12V,51機與PC機之間的串列埠通訊應加電平轉換IC >>>More