国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信

這篇具有很好參考價(jià)值的文章主要介紹了【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、單片機(jī)與PC機(jī)串行通信的設(shè)計(jì)

工業(yè)現(xiàn)場(chǎng)的測(cè)控系統(tǒng)中,常使用單片機(jī)進(jìn)行監(jiān)測(cè)點(diǎn)的數(shù)據(jù)采集,然后單片機(jī)通過(guò)串口與PC通信,把采集的數(shù)據(jù)串行傳送到PC機(jī)上,再在PC機(jī)上進(jìn)行數(shù)據(jù)處理。

PC機(jī)配置的都是RS-232標(biāo)準(zhǔn)串口,為D型9針插座,輸入/輸出為RS-232電平。D型9針插頭引腳如下:

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信,51單片機(jī),單片機(jī),51單片機(jī),mongodb

如下表為RS-232C的D型9針插頭的引腳定義。

引腳號(hào) 功能 符號(hào) 方向
1 數(shù)據(jù)暫替檢測(cè) DCD 輸入
2 接收數(shù)據(jù) RXD 輸入
3 發(fā)送數(shù)據(jù) TXD 輸出
4 數(shù)據(jù)終端就緒 DTR 輸出
5 信號(hào)地 GND
6 數(shù)據(jù)通信設(shè)備準(zhǔn)備好 DSR 輸入
7 請(qǐng)求發(fā)送 RTS 輸出
8 清除發(fā)送 CTS 輸入
9 振鈴指示 RI 輸入

由于兩者電平不匹配,因此必須把單片機(jī)輸出的TTL電平轉(zhuǎn)換為RS-232電平。

單片機(jī)與PC的接口如下圖所示。圖中的轉(zhuǎn)換芯片為MAX232,接口連接只用了3條線,即RS-232插座中的2引腳、3引腳與5引腳。

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信,51單片機(jī),單片機(jī),51單片機(jī),mongodb

二、單片機(jī)向PC發(fā)送數(shù)據(jù)示例

要求單片機(jī)通過(guò)串行口的TXD引腳向PC機(jī)串行發(fā)送8個(gè)數(shù)據(jù)字節(jié)。在proteus中使用兩個(gè)串行口虛擬終端觀察串行口線上出現(xiàn)的串行傳輸數(shù)據(jù)。

兩個(gè)虛擬終端窗口為VT1和VT2,其中窗口VT1顯示的數(shù)據(jù)表示單片機(jī)串口發(fā)送給PC機(jī)的數(shù)據(jù),窗口VT2顯示的數(shù)據(jù)表示由PC機(jī)經(jīng)RS-232串口模型COMPIM接收到的數(shù)據(jù),由于使用了串口模型COMPIM,從而省去了PC機(jī)的模型。

proteus仿真原理圖如下:

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信,51單片機(jī),單片機(jī),51單片機(jī),mongodb

需要注意要設(shè)置虛擬終端的波特率與代碼中設(shè)置的波特率保持一致。經(jīng)過(guò)MAX232轉(zhuǎn)換后電平是相反的,設(shè)置VT2屬性中的【RX/TX Polarity】為【Inverted】。

軟件設(shè)計(jì),首先初始化串口通信,設(shè)置串口工作方式1,定時(shí)器工作方式2,波特率9600bps,波特率不加倍,代碼如下:

void UsartInit()
{
	SCON=0x40;  // 設(shè)置串口工作方式1
	TMOD=0x20;  // 設(shè)置定時(shí)器T1工作方式2
	TH1=TL1=0xFD;  // 設(shè)置波特率為9600bps,波特率不倍增
	PCON=0x00;
	EA=1;
	TR1=1;
}

發(fā)送數(shù)據(jù)功能單獨(dú)編寫(xiě)一個(gè)函數(shù),如下:

void send(u8 dat)
{
	SBUF=dat;  // 將待發(fā)送數(shù)據(jù)寫(xiě)入發(fā)送緩沖器SBUF
	while(!TI);  // 等待串行口發(fā)送完畢
	_nop_();  // 空操作
	TI=0;  // 1個(gè)字節(jié)發(fā)送完成,清零TI
}

主函數(shù)中首先調(diào)用串口通信初始化函數(shù),然后調(diào)用發(fā)送數(shù)據(jù)函數(shù),調(diào)用8次后,如果不想再次發(fā)送數(shù)據(jù)進(jìn)入while(1)循環(huán)。如下:

void main()
{
	u8 i;
	UsartInit();  // 串口通信初始化
	for(i=0;i<8;i++)
	{
		send(sendBytes[i]);  // 發(fā)送數(shù)據(jù)
		delay();  // 每次發(fā)送完數(shù)據(jù)延時(shí)200ms
	}
	while(1);
}

其中sendBytes定義如下:

// 單片機(jī)發(fā)送給PC機(jī)的數(shù)據(jù)
u8 code sendBytes[]="12345678";

proteus仿真結(jié)果如下:

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信,51單片機(jī),單片機(jī),51單片機(jī),mongodb

三、單片機(jī)接收PC機(jī)發(fā)送的數(shù)據(jù)使用示例

單片機(jī)接收PC機(jī)發(fā)送的串行數(shù)據(jù),并把接收到的數(shù)據(jù)送P1口的8位LED顯示。采用單片機(jī)的串行口模擬P機(jī) 串行口。proteus仿真原理圖如下:

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信,51單片機(jī),單片機(jī),51單片機(jī),mongodb

軟件設(shè)計(jì),發(fā)送數(shù)據(jù)的代碼如下:

/*
	實(shí)現(xiàn)功能:串口通信,單片機(jī)與PC機(jī)通信,單片機(jī)接收PC機(jī)發(fā)送的數(shù)據(jù)。	
		使用一個(gè)單片機(jī)模擬PC機(jī)
		
	[2024-01-15] zoya
*/

#include <reg52.h>
#include <intrins.h>

typedef unsigned char u8;
typedef unsigned int u16;

u8 sendBytes=0xFE;

// 延時(shí)函數(shù),單位ms
void delay(u16 i)
{
	u8 j;
	for(;i>0;i--)
	{
		for(j=0;j<125;j++);
	}
}

// 串口通信初始化函數(shù)
void UsartInit()
{
	SCON=0x40;  // 串口工作方式1,只發(fā)送不接收
	TMOD=0x20;  // 定時(shí)器工作方式2
	TH1=TL1=0xFD;  // 設(shè)置波特率為9600bps,波特率不倍增
	PCON=0x00;
	TR1=1;  // 啟動(dòng)計(jì)數(shù)
}

void main()
{
	u8 i;
	UsartInit();
	while(1)
	{
		for(i=0;i<7;i++)
		{
			// 發(fā)送數(shù)據(jù)
			SBUF = sendBytes;
			while(!TI);
			_nop_();
			TI=0;
			delay(200);
			sendBytes=_crol_(sendBytes,1);
		}
		for(i=0;i<7;i++)
		{
			// 發(fā)送數(shù)據(jù)
			SBUF = sendBytes;
			while(!TI);
			_nop_();
			TI=0;
			delay(200);
			sendBytes=_cror_(sendBytes,1);
		}
	}
}

接收數(shù)據(jù)的代碼如下:

/*
	實(shí)現(xiàn)功能:串口通信,單片機(jī)與PC機(jī)通信,單片機(jī)接收PC機(jī)發(fā)送的數(shù)據(jù)。	
		接收PC機(jī)數(shù)據(jù)
		
	[2024-01-15] zoya
*/
#include <reg52.h>

typedef unsigned char u8;
typedef unsigned int u16;

#define GPIO_LED P1

void UsartInit()
{
	SCON=0x50;  // 串口工作方式1,接收數(shù)據(jù)
	TMOD=0x20;  // 定時(shí)器T1工作方式2
	TH1=TL1=0xFD;  // 波特率9600bps,不倍增
	PCON=0x00;
	TR1=1;  // 啟動(dòng)計(jì)數(shù)
}
void main()
{
	u8 tmp;
	UsartInit();
	while(1)
	{
		while(!RI);  // 等待接收數(shù)據(jù)結(jié)束
		RI=0;
		tmp=SBUF;
		GPIO_LED=tmp;
	}
}

仿真結(jié)果:

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信,51單片機(jī),單片機(jī),51單片機(jī),mongodb

四、PC機(jī)與單片機(jī)或與多個(gè)單片機(jī)的串行通信

一臺(tái)PC機(jī)與若干臺(tái)單片機(jī)可構(gòu)成小型分布式測(cè)控系統(tǒng),如下圖所示,該系統(tǒng)在許多實(shí)時(shí)的工業(yè)控制和數(shù)據(jù)采集系統(tǒng)中,可以充分發(fā)揮單片機(jī)功能強(qiáng)、抗干擾性好、面向控制等優(yōu)點(diǎn),同時(shí)又可利用PC機(jī)彌補(bǔ)單片機(jī)在數(shù)據(jù)處理和人機(jī)對(duì)話等方面的不足。

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信,51單片機(jī),單片機(jī),51單片機(jī),mongodb

在應(yīng)用系統(tǒng)中,一般是以PC機(jī)作為主機(jī),定時(shí)掃描以AT89S52單片機(jī)為核心的前沿單片機(jī),以便采集數(shù)據(jù)或發(fā)送控制信息。

在這樣的系統(tǒng)中,以AT89S52單片機(jī)為核心的智能式測(cè)量和控制儀表(從機(jī))既能獨(dú)立地完成數(shù)據(jù)處理和控制任務(wù),又可將數(shù)據(jù)傳送給PC機(jī)(主機(jī))。PC機(jī)將這些數(shù)據(jù)進(jìn)行處理,或顯示,或打印,同時(shí)將各種控制命令傳送給各從機(jī),以實(shí)現(xiàn)集中管理和最優(yōu)控制。

要組成上圖的分布式測(cè)控系統(tǒng),首先要解決的是PC機(jī)與單片機(jī)之間的串行通信接口問(wèn)題。

下面以采用RS-485接口的串行多機(jī)通信為例,說(shuō)明PC機(jī)與數(shù)臺(tái)AT89S52單片機(jī)進(jìn)行多機(jī)通信的接口電路設(shè)計(jì)方案。PC機(jī)配有RS-232串行標(biāo)準(zhǔn)接口,可通過(guò)電路板卡轉(zhuǎn)換成RS-485串行接口,AT89S52單片機(jī)本身具有全雙工的串行口,該串行口加上驅(qū)動(dòng)電路后就可以實(shí)現(xiàn)RS-485接口的串行通信。

PC機(jī)與數(shù)臺(tái)AT89S52單片機(jī)進(jìn)行多機(jī)通信的RS-485串行通信接口電路如下所示:

【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信,51單片機(jī),單片機(jī),51單片機(jī),mongodb

上圖中,AT89S52單片機(jī)的串行口通過(guò)75176芯片驅(qū)動(dòng)后就可以轉(zhuǎn)換成RS-485標(biāo)準(zhǔn)接口,根據(jù)RS-485標(biāo)準(zhǔn)接口的電器特性,從機(jī)數(shù)量不多于32個(gè)。PC機(jī)與AT89S52單片機(jī)之間的串行通信采用主從方式,PC機(jī)為主機(jī),各AT89S52為從機(jī),由PC機(jī)來(lái)確定與哪個(gè)單片機(jī)進(jìn)行通信。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-796636.html

到了這里,關(guān)于【51單片機(jī)系列】單片機(jī)與PC進(jìn)行串行通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STC89C51系列單片機(jī)與ADC0832通信

    ADC0832是一種常用的8位模數(shù)轉(zhuǎn)換器,它可以將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào),以供單片機(jī)進(jìn)行處理。STC89C51系列單片機(jī)是一款常見(jiàn)的8位單片機(jī),具有強(qiáng)大的處理能力和豐富的外設(shè)資源,可以與ADC0832通信,實(shí)現(xiàn)模擬信號(hào)采集的功能。 本文將介紹如何使用STC89C51單片機(jī)與ADC0832通信,并

    2024年02月13日
    瀏覽(29)
  • 基于單片機(jī)的串行通信發(fā)射機(jī)設(shè)計(jì)

    基于單片機(jī)的串行通信發(fā)射機(jī)設(shè)計(jì)

    串行通信是一種常見(jiàn)的數(shù)據(jù)傳輸方式,允許將數(shù)據(jù)以比特流的形式在發(fā)送端和接收端之間傳輸。當(dāng)前實(shí)現(xiàn)基于STC89C52單片機(jī)的串行通信發(fā)射機(jī),通過(guò)紅外發(fā)射管和接收頭實(shí)現(xiàn)自定義協(xié)議的數(shù)據(jù)無(wú)線傳輸。 在本設(shè)計(jì)中,選擇了STC89C52作為主控芯片。單片機(jī)具有較高的性能和豐富

    2024年02月10日
    瀏覽(20)
  • 【期末不掛科-單片機(jī)考前速過(guò)系列P7】(第七章:11題速過(guò)串行口基本概念/結(jié)構(gòu)/工作方式/雙機(jī)通信例題)經(jīng)典例題盤點(diǎn)(帶圖解析)

    【期末不掛科-單片機(jī)考前速過(guò)系列P7】(第七章:11題速過(guò)串行口基本概念/結(jié)構(gòu)/工作方式/雙機(jī)通信例題)經(jīng)典例題盤點(diǎn)(帶圖解析)

    前言 大家好吖,歡迎來(lái)到 YY 滴單片機(jī)系列 ,熱烈歡迎! 本章主要內(nèi)容面向接觸過(guò)單片機(jī)的老鐵 主要內(nèi)容含: 歡迎訂閱 YY 滴C++專欄!更多干貨持續(xù)更新!以下是傳送門! YY的《C++》專欄 YY的《C++11》專欄 YY的《Linux》專欄 YY的《數(shù)據(jù)結(jié)構(gòu)》專欄 YY的《C語(yǔ)言基礎(chǔ)》專欄 YY的《

    2024年02月02日
    瀏覽(96)
  • STM32F103單片機(jī)通過(guò)SPI全雙工通信協(xié)議與W25Q64(FLASH)進(jìn)行通信【串行同步通信(數(shù)據(jù)線與時(shí)鐘線配合),(一主多從模式)】附相關(guān)驅(qū)動(dòng)代碼詳解

    STM32F103單片機(jī)通過(guò)SPI全雙工通信協(xié)議與W25Q64(FLASH)進(jìn)行通信【串行同步通信(數(shù)據(jù)線與時(shí)鐘線配合),(一主多從模式)】附相關(guān)驅(qū)動(dòng)代碼詳解

    1.W25Qxx系列是一種低成本、小型化、使用簡(jiǎn)單的 非易失性存儲(chǔ)器 ,常應(yīng)用于數(shù)據(jù)存儲(chǔ)、字庫(kù)存儲(chǔ)、固件程序存儲(chǔ)等場(chǎng)景 2.存儲(chǔ)介質(zhì): Nor Flash(閃存) 3.時(shí)鐘頻率:80MHz / 160MHz (Dual SPI) / 320MHz (Quad SPI) 4.存儲(chǔ)容量(24位地址): W25Q40: 4Mbit / 512KByte W25Q80: 8Mbit / 1MByte W25Q16: 16

    2024年04月13日
    瀏覽(46)
  • 51單片機(jī):設(shè)計(jì)一單片機(jī)雙機(jī)通信電路

    51單片機(jī):設(shè)計(jì)一單片機(jī)雙機(jī)通信電路

    魚(yú)弦:CSDN內(nèi)容合伙人、CSDN新星導(dǎo)師、全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者 、51CTO(Top紅人+專家博主) 、github開(kāi)源愛(ài)好者(go-zero源碼二次開(kāi)發(fā)、游戲后端架構(gòu) https://github.com/Peakchen) 設(shè)計(jì)一單片機(jī)雙機(jī)通信電路。要求編程實(shí)現(xiàn):甲單片機(jī)系統(tǒng)中的按鍵可以控制乙單片機(jī)系統(tǒng)中的數(shù)碼管(MPX8)動(dòng)

    2024年02月20日
    瀏覽(29)
  • PC 機(jī)與單片機(jī)通信(RS232 協(xié)議)

    PC 機(jī)與單片機(jī)通信(RS232 協(xié)議)

    PC 機(jī)與單片機(jī)通信 (RS232 協(xié)議 ) 目錄: 1、單片機(jī)串口通信的應(yīng)用 2、PC控制單片機(jī)IO口輸出 3、單片機(jī)控制實(shí)訓(xùn)指導(dǎo)及綜合應(yīng)用實(shí)例 4、單片機(jī)給計(jì)算機(jī)發(fā)送數(shù)據(jù): [實(shí)驗(yàn)任務(wù)] 單片機(jī)串口通信的應(yīng)用,通過(guò)串口,我們的個(gè)人電腦和單片機(jī)系統(tǒng)進(jìn)行通信。 個(gè)人電腦作為上位機(jī),向

    2024年02月04日
    瀏覽(21)
  • 51單片機(jī)串口通信

    51單片機(jī)串口通信

    串口通信(serial communication)是指外設(shè)和計(jì)算機(jī)間通過(guò)數(shù)據(jù)信號(hào)線、地線等按位進(jìn)行傳輸數(shù)據(jù)的一種通信方式,屬于串行通信方式。 接口標(biāo)準(zhǔn):常用RS-232和RS-485 RS-232C有一種9針的非標(biāo)準(zhǔn)連接器口,簡(jiǎn)稱DB9。串口通信使用的大多都是DB9接口。在串口通信中,通常我們只使用2、

    2024年02月05日
    瀏覽(26)
  • 51單片機(jī)-串口通信

    51單片機(jī)-串口通信

    目錄 1.什么是通信 1.1.通信的概念 1.2.傳送方式 1.3.同步方式 1.4.傳送方向 1.5.校驗(yàn)方式 2.單片機(jī)串口介紹 2.1.硬件電路 2.2.電平標(biāo)準(zhǔn) 2.3.常見(jiàn)接口 2.4.內(nèi)部結(jié)構(gòu) 2.5.相關(guān)寄存器 2.6.工作模式(模式1) 2.7.如何配置串口中斷 3.實(shí)際應(yīng)用 3.1.單片機(jī)向電腦發(fā)送數(shù)據(jù) 3.2.電腦向單片機(jī)發(fā)送

    2024年02月01日
    瀏覽(24)
  • 51單片機(jī)學(xué)習(xí)筆記_6 IO通信:電腦與單片機(jī)之間的通信

    51單片機(jī)學(xué)習(xí)筆記_6 IO通信:電腦與單片機(jī)之間的通信

    單片機(jī)還可以通過(guò)IO口實(shí)現(xiàn)多種通信。 串行通信 :一條數(shù)據(jù)線,一次發(fā)1bit,發(fā)很久。 并行通信 :多條數(shù)據(jù)線,同時(shí)發(fā)送,發(fā)的速度快多了但是費(fèi)用高、接收困難、抗干擾性差。 異步通信 :發(fā)送和接收方時(shí)鐘可以不用完全一致。 同步通信 :發(fā)送和接收方時(shí)鐘要完全一致。

    2024年02月08日
    瀏覽(22)
  • c51單片機(jī)串口通信(中斷方式接收數(shù)據(jù))(單片機(jī)--單片機(jī)通信)示例代碼 附proteus圖

    c51單片機(jī)串口通信(中斷方式接收數(shù)據(jù))(單片機(jī)--單片機(jī)通信)示例代碼 附proteus圖

    ? ? ?單片機(jī)一般采用中斷方式接受數(shù)據(jù),這樣便于及時(shí)處理 其中發(fā)送數(shù)據(jù)段采用的是查詢方式,接收端采用了中斷方式, 要注意的地方有: 在中斷處理函數(shù)int_0()內(nèi),處理數(shù)據(jù)前要先關(guān)閉中斷,否則中斷可能會(huì)不斷傳過(guò)來(lái), EA=0; 然后退出中斷處理函數(shù)前恢復(fù)中斷處理能力:

    2024年02月13日
    瀏覽(105)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包