『壹』 單片機與PC通訊有什麼方式
電腦和單片機除了串口,再有就是網路通訊方式。但是需要有網口介面晶元,還要編寫支持TCP/IP協議的程序。可是用傳統的51單片機卻很難實現。你可以用STM32單片機組成支持互聯網通信的系統,就可以達到1Mbps以上。除此,再無其它方法。
『貳』 單片機與PC怎麼 通信
我就我所知道的給你說說。
單片機的邏輯0是0V,邏輯1是+5V;而PC用的是負邏輯,邏輯0在+9v~+15v之間,邏輯1在-9v~-15v之間。若用九針串口連接的話,先得電平轉換,(轉換晶元就是大家熟知的RS232,轉3.3v
的話用RS3232).之後最重要做麻煩的就是要把時序和波特率設置好(說白了就是遵循相同的協議),這樣單片機和PC之間就可以互聯互通了,單片機中的串口通信講的就是這方面的內容,這些資料網上很豐富,或者買個單片機開發板研究研究。
『叄』 編程實現51單片機與PC的串口通信,要求波特率設置為9600,循環發送字元串「abc
#include "reg51.h"
void initUart(void)
{
TMOD|=0x20;
SCON=0x50;
TH1=0xfd;
TL1=0xfd;
TR1=1;
}
void main(void)
{
initUart();
EA=1;
while(1)
{
send_byte('abc');
}
}
『肆』 怎麼實現單片機和PC機進行SPI通訊
實現單片機和PC機進行SPI通訊方法:x0dx0a1:電路設計x0dx0a設計的電路,利用兩片AT89C52晶元,一片做為發送模塊,一片做為接收模塊。分別編寫發送和接收程序,實現數據的發送和接受。通過LED顯示接收到的數據。通過示波器觀察輸出的波形。x0dx0a2:編寫程序x0dx0a根據設計好的電路及題目要求分別編寫數據發送程序和數據接收程序。①:數據發送程序###defineulongunsignedlongx0dx0a//---------------------------#includex0dx0a#includex0dx0a//---------------------------sbitSPICLK=P1^0;//時鍾信號sbitMOSI=P1^1;//主器件數據輸出,從器件數據輸入sbitMISO=P1^2;//主器件數據輸入,從器件數據輸出x0dx0asbitSS=P1^3;//從器件使能信號x0dx0avoidDat_Transmit(uchardat)//發送數據程序x0dx0a{uchari,datbuf;x0dx0adatbuf=dat;x0dx0aSS=1;while(SS){;}for(i=0;i<8;i++){x0dx0awhile(SPICLK){;}if(datbuf&0x80)MISO=1;elsex0dx0aMISO=0;x0dx0adatbuf=(datbuf<<1);while(~SPICLK){;}x0dx0a}x0dx0a}x0dx0avoidmain(void)x0dx0a{uchari;while(1){x0dx0afor(i=0;i<10;i++){x0dx0aDat_Transmit(i);x0dx0a}x0dx0a}x0dx0a}x0dx0a②:數據接收程序#defineucharunsignedcharx0dx0a#defineuintunsignedint#//---------------------------#includex0dx0a#includex0dx0a//---------------------------sbitSPICLK=P1^0;//時鍾信號sbitMOSI=P1^1;//主器件數據輸出,從器件數據輸入sbitMISO=P1^2;//主器件數據輸入,從器件數據輸出sbitSS=P1^3;//從器件使能信號x0dx0ax0dx0a//---------------------------voidNop(void)x0dx0a{;x0dx0a}x0dx0avoidDelay(uchart){while(t--){;}x0dx0a}x0dx0ax0dx0aucharData_Receive(void)//數據接收程序x0dx0a{uchari,dat=0,temp;bitx0dx0abt;x0dx0ax0dx0aSPICLK=1;MISO=1;SS=0;x0dx0a//選中器件x0dx0aNop();Nop();x0dx0afor(i=0;i<8;i++){SPICLK=1;x0dx0aNop()x0dx0aNop();Nop();SPICLK=0;Nop();Nop();x0dx0abt=MISO;if(bt)x0dx0atemp=0x01;x0dx0aelsex0dx0atemp=0x00;x0dx0adat=(dat<<1);x0dx0ax0dx0adat=(dat|temp);x0dx0a}x0dx0aSS=1;SPICLK=1;x0dx0areturndat;x0dx0ax0dx0a}x0dx0avoidmain(void)x0dx0a{ucharexdat;uchari=0;[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,x0dx0a0x7F,0x6F};P2=0;x0dx0awhile(1){exdat=Data_Receive();P0=table[exdat];x0dx0afor(i=0;i<200;i++)x0dx0aDelay(200);x0dx0a}x0dx0a}x0dx0a3:電路模擬x0dx0a將數據發送程序生成的HEX文件載入到發送數據的模塊,將數據接收程序生成的HEX文件載入到接收數據的模塊。在輸出埠連接LED燈等到輸出信息,利用示波器觀察輸出波形。x0dx0a4:SPI匯流排簡介x0dx0aSPI(SerialPeripheralInterface——串列外設介面)匯流排是Motorola公司推出的一種同步串列介面技術。SPI匯流排系統是一種同步串列外設介面,允許MCU(微控制器)與各種外圍設備以串列方式進行通信、數據交換。外圍設備包括FLASHRAM、A/D轉換器、網路控制器、MCU等。SPI,是一種高速的,全雙工,同步的通信匯流排,並且在晶元的管腳上只佔用四根線,節約了晶元的管腳,同時為PCB的布局上節省空間,提供方便,正是出於這種簡單易用的特性,現在越來越多的晶元集成了這種通信協議。其工作模式有兩種:主模式和從模式。SPI是一種允許一個主設備啟動一個從設備的同步通訊的協議,從而完成數據的交換。也就是SPI是一種規定好的通訊方式。這種通信方式的優點是佔用埠較少,一般4根就夠基本通訊了(不算電源線)。同時傳輸速度也很高。一般來說要求主設備要有SPI控制器(也可用模擬方式),就可以與基於SPI的晶元通訊了。x0dx0a利用SPI匯流排可在軟體的控制下構成各種系統。如1個主MCU和幾個從MCU、幾個從MCU相互連接構成多主機系統(分布式系統)、1個主MCU和1個或幾個從I/O設備所構成的各種系統等。在大多數應用場合,可使用1個MCU作為主控機來控制數據,並向1個或幾個從外圍器件傳送該數據。從器件只有在主機發命令時才能接收或發送數據。其數據的傳輸格式是高位(MSB)在前,低位(LSB)在後。x0dx0a當一個主控機通過SPI與幾種不同的串列I/O晶元相連時,必須使用每片的允許控制端,這可通過MCU的I/O埠輸出線來實現。但應特別注意這些串列I/O晶元的輸入輸出特性:首先是輸入晶元的串列數據輸出是否有三態控制端。平時未選中晶元時,輸出端應處於高阻態。x0dx0a若沒有三態控制端,則應外加三態門。否則MCU的MISO端只能連接1個輸入晶元。其次是輸出晶元的串列數據輸入是否有允許控制端。因為只有在此晶元允許時,SCK脈沖才把串列數據移入該晶元;在禁止時,SCK對晶元無影響。若沒有允許控制端,則應在外圍用門電路對SCK進行控制,然後再加到晶元的時鍾輸入端;當然,也可以只在SPI匯流排上連接1個晶元,而不再連接其它輸入或輸出晶元。x0dx0aSPI介面是在CPU和外圍低速器件之間進行同步串列數據傳輸,在主器件的移位脈沖下,數據按位傳輸,高位在前,低位在後,為全雙工通信,數據傳輸速度總體來說比I2C匯流排要快,速度可達到幾Mbps。x0dx0a5:SPI匯流排工作原理x0dx0aSPI匯流排系統是一種同步串列外設介面,它可以使MCU與各種外圍設備以串列方式進行通信以交換信息。SPI有三個寄存器分別為:控制寄存器SPCR,狀態寄存器SPSR,數據寄存器。外圍設備、網路控制器、LCD顯示驅動器、A/D轉換器和MCU等。x0dx0a介麵包括以下四種信號:x0dx0a(1)MOSI_主器件數據輸出,從器件數據輸入;x0dx0ax0dx0a(2)MISO_主器件數據輸入,從器件數據輸出;x0dx0ax0dx0a(3)SCLK_時鍾信號,由主器件產生;x0dx0a(4)SS_從器件使能信號,由主器件控制,有的IC會標注為CS(Chipselect)。在點對點的通信中,SPI介面不需要進行定址操作,且為全雙工通信,顯得簡單高效。
『伍』 單片機通過USB介面與計算機通訊電路圖
如圖所示:需要單片機51,溫度感測器18B02。USB轉RS485的轉串口線。直接用serialport控制項,設置通訊參數,然後向串口發數據。
比如發1,然後使用事件觸發接收單片機的數據,如果兩側通訊沒問題,電腦會收到2,然後把它顯示出來或者做喊旦中其他處理。
(5)單片機與pc通訊擴展閱讀:
控制器由程序計數器、指令寄存器、指令解碼器、時序發生器和操作控制器等組成,是發布命令的「決策機構」,即協調和指揮整個微機系統的操作。其主要功能有:
(1) 從內存中遲謹取出一條指令,並指出下一條指令在內存中的位置。
(2) 對指令進行解碼和測試,並產生相應的操作控制信號,以便於執行規定的動作。
(3) 指揮並控制CPU、內存和輸入輸出設備之間數據流動的方向。
微鄭山處理器內通過內部匯流排把ALU、計數器、寄存器和控制部分互聯,並通過外部匯流排與外部的存儲器、輸入輸出介面電路聯接。
外部匯流排又稱為系統匯流排,分為數據匯流排DB、地址匯流排AB和控制匯流排CB。通過輸入輸出介面電路,實現與各種外圍設備連接。
『陸』 〔求助〕單片機跟電腦有哪些通信方式
單片機跟電腦有通信,與單片機和單片機之間的通訊方法是一樣的,一般以串口形式通訊。
當然可以通過 轉換,單片機 與 電腦、手機等設備都可以通訊(如用WIFI模塊進行網路通訊)
現在有ESP8266wifi模塊與單片機串口連接,手機APP、電腦 就可以直接控制 單片機。
附件是多個單片機之間的通訊 模擬實例。
『柒』 PC機如何實現與單片機間串列通信
有兩種方法與PC通信:
1,加接一個USB轉串口的硬體設備(網上很容易買到),這樣既解決了數據線的連接又解決了單片機供電問題,但PC端可能需要安裝USB驅動,而且要碰運氣,往往因USB驅動問題無法一次成功;
2,通過RS232介面與PC通信,當然也少不了硬體支持,自己做或到網上買一RS232模塊,步驟1:將模塊9針D型介面連接至電腦COM1或COM2,按模塊的標注將RXD和TXD及公共地連接至單片機相關電路,步驟2:通過PC端USB介面取電並連接至單片機相關電路,USB介面的PIN1通常為VCC(正電源端)PIN4通常為GND(負電源端)。這樣做可能麻煩一些,但一次成功的概率會高很多。
如果你的電腦硬體配置中沒有RS232介面的COM1或COM2,那你只能採用第1種方法了。