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

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

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

?? 專(zhuān)欄簡(jiǎn)介:本專(zhuān)欄記錄了從零學(xué)習(xí)單片機(jī)的過(guò)程,其中包括51單片機(jī)和STM32單片機(jī)兩部分;建議先學(xué)習(xí)51單片機(jī),其是STM32等高級(jí)單片機(jī)的基礎(chǔ);這樣再學(xué)習(xí)STM32時(shí)才能融會(huì)貫通。
?? 專(zhuān)欄適用人群 :適用于想要從零基礎(chǔ)開(kāi)始學(xué)習(xí)入門(mén)單片機(jī),且有一定C語(yǔ)言基礎(chǔ)的的童鞋。
??專(zhuān)欄目標(biāo):實(shí)現(xiàn)從零基礎(chǔ)入門(mén)51單片機(jī)和STM32單片機(jī),力求在玩好單片機(jī)的同時(shí),能夠了解一些計(jì)算機(jī)的基本概念,了解電路及其元器件的基本理論等。

?? 專(zhuān)欄主要內(nèi)容: 主要學(xué)習(xí)51單片機(jī)的功能、各個(gè)模塊、單片機(jī)的外設(shè)、驅(qū)動(dòng)等,最終玩好單片機(jī)和單片機(jī)的外設(shè),全程手敲代碼,實(shí)現(xiàn)我們所要實(shí)現(xiàn)的功能。
?? 專(zhuān)欄說(shuō)明 :如果文章知識(shí)點(diǎn)有錯(cuò)誤的地方,歡迎大家隨時(shí)在文章下面評(píng)論,我會(huì)第一時(shí)間改正。讓我們一起學(xué)習(xí),一起進(jìn)步。
??專(zhuān)欄主頁(yè):http://t.csdn.cn/HCD8v

本學(xué)習(xí)過(guò)程參考:https://space.bilibili.com/383400717

單片機(jī)安裝軟件、各種資料以及源碼的路徑:
https://pan.baidu.com/s/1vDTN2o8ffvczzNQGfyjHng
提取碼:gdzf

本節(jié)主要介紹學(xué)習(xí)串口通信的相關(guān)知識(shí),包括串口基礎(chǔ)知識(shí)介紹、本節(jié)目標(biāo)等;并利用兩個(gè)小實(shí)驗(yàn)來(lái)進(jìn)行練習(xí),分別是串口向電腦發(fā)送數(shù)據(jù)以及電腦通過(guò)串口控制LED。

一、串口介紹和本節(jié)目標(biāo)

1.1 串口介紹

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

本節(jié)主要介紹51單片機(jī)和個(gè)人電腦之間,是如何使用串口進(jìn)行通信的。

串口的硬件電路

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

電平標(biāo)準(zhǔn)

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

  • 我們單片機(jī)使用的就是TTL電平;(缺點(diǎn):只能傳輸10米之內(nèi))
  • CAN總線以及USB使用的是RS485電平,通過(guò)兩根線的壓差來(lái)區(qū)分,也就是查分信號(hào);而不是用電源正負(fù)極來(lái)區(qū)分電壓。(最大傳送距離可以達(dá)到千米以上)

接口及引腳定義:

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

常見(jiàn)的通信接口

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
相關(guān)術(shù)語(yǔ)

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

  • 全雙工方式,在A和B雙方之間存在兩根通信線,通信雙方使用這兩根線,A在向B發(fā)送數(shù)據(jù)的同時(shí),B也可以通過(guò)另一個(gè)線向A發(fā)數(shù)據(jù);

  • 半雙工方式,再A和B雙方之間只存在一根通信線,利用這根線,通信雙方可以互相發(fā)送數(shù)據(jù),分時(shí)復(fù)用,也就是說(shuō)同一時(shí)間只能有一方發(fā)送,另一方接收;

  • 同步和異步比較,同步會(huì)比異步多一根時(shí)鐘線,用來(lái)實(shí)現(xiàn)同步的功能。

下面介紹一下51單片機(jī)里的UART。

51單片機(jī)里的UART

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

STC89C52里只集成了一個(gè)UART

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

上圖是其電路圖,上圖中的TXD和RXD就分別連接到單片機(jī)上的RXD和TXD;也就是下圖的11和10口:

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

這些其實(shí)單片機(jī)開(kāi)發(fā)板已經(jīng)幫我們焊好了,所以將USB插到電腦上就可以進(jìn)行通信了。

串口參數(shù)和時(shí)序圖

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

檢驗(yàn)位:用于檢驗(yàn)發(fā)送數(shù)據(jù)的正確性;一般的方法有,奇偶校驗(yàn)(校驗(yàn)發(fā)送的數(shù)據(jù)和接收的數(shù)據(jù)里的1的個(gè)數(shù)是奇數(shù)還是偶數(shù));

串口模式圖

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

上圖解釋了在串口內(nèi)部,數(shù)據(jù)是如何進(jìn)行收發(fā)的;

上圖虛線右邊的部分都是單片機(jī)內(nèi)部的電路;

其中最左邊的雙向箭頭表示單片機(jī)的總線;T1溢出率部分是時(shí)鐘;

除此之外還有兩個(gè)寄存器SBUF(串口數(shù)據(jù)緩存寄存器),這兩個(gè)寄存器都叫SBUR,且擁有相同的地址;上面的為寫(xiě)SBUF,MCU向該寄存器寫(xiě)入數(shù)據(jù),并通過(guò)TXD發(fā)送出去;下面的為讀SBUF,通過(guò)RXD接收數(shù)據(jù),然后MCU讀取該寄存器中的數(shù)據(jù)。

串口和中斷系統(tǒng)

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

串口相關(guān)寄存器

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

1.2 本節(jié)目標(biāo)

1.2.1 目標(biāo)1:?jiǎn)纹瑱C(jī)通過(guò)串口向個(gè)人電腦發(fā)送數(shù)據(jù)

具體的為,單片機(jī)每隔1s,向電腦發(fā)送一次遞增的數(shù)據(jù);如下圖所示:
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

1.2.2 目標(biāo)2:電腦通過(guò)串口控制LED

電腦通過(guò)串口向單片機(jī)發(fā)送數(shù)據(jù),進(jìn)而控制LED的狀態(tài),例如當(dāng)發(fā)送1時(shí),第一個(gè)LED點(diǎn)亮
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

當(dāng)發(fā)送0時(shí),第一個(gè)LED熄滅,同時(shí)單片機(jī)會(huì)將收到的信息原封不動(dòng)發(fā)回給電腦

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

當(dāng)發(fā)送十進(jìn)制的55時(shí)(對(duì)應(yīng)的16進(jìn)制是0101 0101),所以LED等也按照0101 0101的方式點(diǎn)亮;

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

當(dāng)發(fā)送十六進(jìn)制的aa給單片機(jī)時(shí),也會(huì)按照對(duì)應(yīng)的順序點(diǎn)亮LED,如下圖所示:

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

二、串口向電腦發(fā)送數(shù)據(jù)

代碼路徑:51單片機(jī)入門(mén)教程資料\課件及程序源碼\程序源碼\KeilProject\8-1 串口向電腦發(fā)送數(shù)據(jù)

具體代碼:

#include <REGX52.H>
#include "Delay.h"
#include "UART.h"

unsigned char Sec;

void main()
{
	UART_Init();			//串口初始化
	while(1)
	{
		UART_SendByte(Sec);	//串口發(fā)送一個(gè)字節(jié)
		Sec++;				//Sec自增
		Delay(1000);		//延時(shí)1秒
	}
}

UART.c代碼如下:

#include <REGX52.H>

/**
  * @brief  串口初始化,4800bps@12.000MHz
  * @param  無(wú)
  * @retval 無(wú)
  */
void UART_Init()
{
	SCON=0x40;
	PCON |= 0x80;
	TMOD &= 0x0F;		//設(shè)置定時(shí)器模式
	TMOD |= 0x20;		//設(shè)置定時(shí)器模式
	TL1 = 0xF3;		//設(shè)定定時(shí)初值
	TH1 = 0xF3;		//設(shè)定定時(shí)器重裝值
	ET1 = 0;		//禁止定時(shí)器1中斷
	TR1 = 1;		//啟動(dòng)定時(shí)器1
}

/**
  * @brief  串口發(fā)送一個(gè)字節(jié)數(shù)據(jù)
  * @param  Byte 要發(fā)送的一個(gè)字節(jié)數(shù)據(jù)
  * @retval 無(wú)
  */
void UART_SendByte(unsigned char Byte)
{
	SBUF=Byte;
	while(TI==0);
	TI=0;
}

代碼解釋?zhuān)?/p>

UART_Init函數(shù)其實(shí)就是在對(duì)串口相關(guān)的寄存器進(jìn)行初始化配置,也就是對(duì)以下八個(gè)寄存器進(jìn)行配置,下面一一解釋各個(gè)寄存器的配置。
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

在UART_Init函數(shù)中,各個(gè)寄存器為什么會(huì)進(jìn)行以上設(shè)置呢?

SCON

首先是SCON寄存器的配置,代碼中寫(xiě)的是SCON=0x40;,關(guān)于SCON的設(shè)置,我們看下手冊(cè)的內(nèi)容,如下圖所示,SCON由B0-B7 等8位構(gòu)成,那么每一位分別設(shè)置成0還是1,怎么確認(rèn)呢?
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
在上面的內(nèi)容中有寫(xiě)我們最常用的就是8位UART模式,所以SM0(B7)設(shè)置為0,SM1(B6)設(shè)置為1;
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
從上圖可知,
SM2是方式2和方式3用的,我們使用的方式1,所以不用管這個(gè)值,直接給0即可。
REN負(fù)責(zé)控制是否允許接收操作,我們此次是單片機(jī)向電腦發(fā)送數(shù)據(jù),所以不涉及到接收,給0即可;
TB8和RB8也是方式2和方式3用的,我們使用的方式1,所以不用管這個(gè)值,直接給0即可;

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
對(duì)于TI和RI,上圖手冊(cè)中描述的有些難以理解,通俗點(diǎn)解釋就是,參考串口模式圖,其實(shí)就是圖中的TI和RI:

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
TI和RI都是標(biāo)志位,當(dāng)TI等于1時(shí),表示已經(jīng)發(fā)送完成;當(dāng)RI等于1時(shí)表示已經(jīng)接收完成;當(dāng)檢測(cè)到發(fā)送完成時(shí),TI必須手動(dòng)置為0;當(dāng)檢測(cè)到接收完成時(shí),RI必須手動(dòng)置為0;

所以總結(jié)一下,在初始化時(shí),SCON的配置如下:
從高到低以此為B7=0,B6=1,B5=0,B4=0,B3=0,B2=0,B1=0,B0=0;
SCON=0100 0000,也就是SCON=0x40;

SBUF
SBUF是串口數(shù)據(jù)緩存,在初始化的時(shí)候不需要配置。

PCON
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
SMOD對(duì)應(yīng)串口模式圖中位置如下:
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
SMOD控制波特率是否加倍,當(dāng)SMOD=0時(shí),表示波特率除以2;當(dāng)SMOD=1時(shí),表示不除以2,也就相當(dāng)于加倍。

SMOD0表示幀錯(cuò)誤檢查,如果不需要,配置0即可。

因?yàn)槭浅跏蓟?,所以以下幾個(gè)都可以不用配置。

IE
不配置

IPH
不配置

IP
不配置

SADEN
不配置

SADDR
不配置

至此,串口部分就配置好了,剩下還需要配置定時(shí)器的初始化,結(jié)合上一節(jié),上一節(jié)我們使用的是定時(shí)器0,但是串口部分需要定時(shí)器1,即將TMOD的高四位設(shè)置為1,低四位為0;TMOD &= 0x0F表示先把高四位清空,以便后面對(duì)其進(jìn)行設(shè)置。
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
另外,在串口模式,定時(shí)器要使用雙八位自動(dòng)模式,
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

即M1、M0要設(shè)置為1、0,即TMOD |= 0x20

另外TH1和TL1涉及到波特率的設(shè)置,如下圖所示:
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

TL1和TH1的值的設(shè)置,我們可以使用STC-ISP里帶的波特率計(jì)算器生成工具來(lái)生成代碼,如下進(jìn)行配置:

單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32
然后拿出其中的TL1和TH1的配置即可。

所以代碼如下:

TMOD &= 0x0F;		//設(shè)置定時(shí)器模式
TMOD |= 0x20;		//設(shè)置定時(shí)器模式
TL1 = 0xF3;		//設(shè)定定時(shí)初值
TH1 = 0xF3;		//設(shè)定定時(shí)器重裝值
ET1 = 0;		//禁止定時(shí)器1中斷
TR1 = 1;		//啟動(dòng)定時(shí)器1

所以整體的UART_Init函數(shù)代碼就寫(xiě)好了:

void UART_Init()
{
	SCON=0x40;
	PCON |= 0x80;
	TMOD &= 0x0F;		//設(shè)置定時(shí)器模式
	TMOD |= 0x20;		//設(shè)置定時(shí)器模式
	TL1 = 0xF3;		//設(shè)定定時(shí)初值
	TH1 = 0xF3;		//設(shè)定定時(shí)器重裝值
	ET1 = 0;		//禁止定時(shí)器1中斷
	TR1 = 1;		//啟動(dòng)定時(shí)器1
}

初始化函數(shù)寫(xiě)好后,下面就是串口向電腦發(fā)送數(shù)據(jù),寫(xiě)一個(gè)發(fā)送數(shù)據(jù)的函數(shù),如下:

/**
  * @brief  串口發(fā)送一個(gè)字節(jié)數(shù)據(jù)
  * @param  Byte 要發(fā)送的一個(gè)字節(jié)數(shù)據(jù)
  * @retval 無(wú)
  */
void UART_SendByte(unsigned char Byte)
{
	SBUF=Byte;
	while(TI==0);
	TI=0;
}

即將Byte賦值給SBUF即可,(SBUF在左邊,即給他賦值,此時(shí)SBUF就默認(rèn)是寫(xiě)寄存器了。
前面提到,發(fā)送完成之后,TI被置為1,需要我們軟件手動(dòng)置為0,所以當(dāng)檢測(cè)到TI為0時(shí),說(shuō)明發(fā)送完了,手動(dòng)TI=0;

然后將代碼寫(xiě)好編譯后,下載到單片機(jī),打開(kāi)STC-ISP軟件中的串口助手,點(diǎn)擊打開(kāi)串口,按下單片機(jī)的復(fù)位鍵,即可發(fā)現(xiàn)單片機(jī)在向電腦從0開(kāi)始遞增發(fā)數(shù)據(jù),即目標(biāo)1的效果;(這里需要注意,因?yàn)槲覀兇a中寫(xiě)的波特率是4800,所以串口助手中一定要選擇波特率為4800,即約定好波特率,否則數(shù)據(jù)會(huì)發(fā)送錯(cuò)誤,如下圖進(jìn)行設(shè)置)
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

三、電腦通過(guò)串口控制LED

代碼路徑:51單片機(jī)入門(mén)教程資料\課件及程序源碼\程序源碼\KeilProject\8-2 電腦通過(guò)串口控制LED

具體代碼如下:

#include <REGX52.H>
#include "Delay.h"
#include "UART.h"

void main()
{
	UART_Init();		//串口初始化
	while(1)
	{
		
	}
}

void UART_Routine() interrupt 4
{
	if(RI==1)					//如果接收標(biāo)志位為1,接收到了數(shù)據(jù)
	{
		P2=~SBUF;				//讀取數(shù)據(jù),取反后輸出到LED
		UART_SendByte(SBUF);	//將受到的數(shù)據(jù)發(fā)回串口
		RI=0;					//接收標(biāo)志位清0
	}
}

這里需要注意的是,接收函數(shù)設(shè)置為了中斷觸發(fā)模式,即void UART_Routine() interrupt 4
為什么是 interrupt 4呢?因?yàn)?interrupt 4表示串口的中斷函數(shù):
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

所以相較于上一節(jié),需要多配置中斷模式;如下,初始化時(shí),EA=1,表示啟動(dòng)所有中斷;ES=1,表示啟動(dòng)串口中斷:

/**
  * @brief  串口初始化,4800bps@12.000MHz
  * @param  無(wú)
  * @retval 無(wú)
  */
void UART_Init()
{
	SCON=0x50;
	PCON |= 0x80;
	TMOD &= 0x0F;		//設(shè)置定時(shí)器模式
	TMOD |= 0x20;		//設(shè)置定時(shí)器模式
	TL1 = 0xF3;		//設(shè)定定時(shí)初值
	TH1 = 0xF3;		//設(shè)定定時(shí)器重裝值
	ET1 = 0;		//禁止定時(shí)器1中斷
	TR1 = 1;		//啟動(dòng)定時(shí)器1
	EA=1;
	ES=1;
}

在中斷處理函數(shù)中:

void UART_Routine() interrupt 4
{
	if(RI==1)					//如果接收標(biāo)志位為1,接收到了數(shù)據(jù)
	{
		P2=~SBUF;				//讀取數(shù)據(jù),取反后輸出到LED
		UART_SendByte(SBUF);	//將受到的數(shù)據(jù)發(fā)回串口
		RI=0;					//接收標(biāo)志位清0
	}
}

RI==1表示如果是接收到了信息,因?yàn)镽I是接收的標(biāo)志位,當(dāng)RI等于1時(shí),說(shuō)明已經(jīng)成功接收到了數(shù)據(jù)(判斷RI=1的目的是一定要保證這是接收數(shù)據(jù)觸發(fā)的中斷,因?yàn)榘l(fā)送數(shù)據(jù)也會(huì)觸發(fā)該中斷,從以下串口和中斷系統(tǒng)圖中可以看出,發(fā)送和接收是共用同一個(gè)中斷的,所以一定要進(jìn)行判斷)。
單片機(jī)串口怎么發(fā)送數(shù)據(jù),51單片機(jī)和STM32單片機(jī)入門(mén),單片機(jī),51單片機(jī),stm32

下一步P2=~SBUF;表示將接收到的數(shù)據(jù)賦值給P2,此時(shí)SBUF在右邊,說(shuō)明是讀取SBUF的值,此時(shí)SBUF就表示讀SBUF了。后面RI=0,是表示讀取到數(shù)據(jù)后,需要軟件手動(dòng)將RI置為0;

其他的代碼,跟第二節(jié)的代碼基本一致。不再詳細(xì)講解。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-754551.html

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

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(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)文章

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

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

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

    2024年02月13日
    瀏覽(106)
  • 51單片機(jī)串口通信的原理及使用方法(附串口收發(fā)數(shù)據(jù)例程代碼)

    51單片機(jī)串口通信的原理及使用方法(附串口收發(fā)數(shù)據(jù)例程代碼)

    溫馨提示:本篇文章詳細(xì)介紹了串口的原理及使用方法,涉及的內(nèi)容較多,但也較為全面,學(xué)者若想充分掌握串口通信的原理和具體使用方法(部分限于51單片機(jī)),請(qǐng)靜下心來(lái)將其讀完,相信一定會(huì)受益匪淺!而且對(duì)32單片機(jī)的串口學(xué)習(xí)也有非常好的輔助! 一.串行通信的原

    2024年02月09日
    瀏覽(24)
  • 基于串口通信技術(shù)——讓數(shù)碼管顯示的數(shù)據(jù)發(fā)送給電腦,電腦控制單片機(jī)外設(shè)——15單片機(jī)

    基于串口通信技術(shù)——讓數(shù)碼管顯示的數(shù)據(jù)發(fā)送給電腦,電腦控制單片機(jī)外設(shè)——15單片機(jī)

    目錄 1.使用的單片機(jī)為IAPI15F2K61S2 2.使用的外設(shè) 3.各個(gè)外設(shè)的作用 1.數(shù)碼管功能 ?2.LED燈 3.蜂鳴器與繼電器 4.按鍵 5.串口通信 4.利用發(fā)送單個(gè)字符函數(shù) 發(fā)送字符型的數(shù)字值,為一個(gè)變量+\\\'0\\\',發(fā)送為字符型數(shù)字。 4.初始化 5.程序 1.main 2.iic.h 3.onewire.c 1.LED燈,繼電器與蜂鳴器。 2.數(shù)

    2024年02月10日
    瀏覽(23)
  • 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)稱(chēng)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ī)(串口通信、藍(lán)牙)

    51單片機(jī)(串口通信、藍(lán)牙)

    串行接口簡(jiǎn)稱(chēng)串口,也稱(chēng) 串行通信接口 或串行通訊接口(通常指COM接口),是采用串行通信方 式的擴(kuò)展接口。串行接口(Serial Interface)是指 數(shù)據(jù)一位一位地順序傳送。 其特點(diǎn)是通信線路簡(jiǎn) 單,只要一對(duì)傳輸線就可以實(shí)現(xiàn) 雙向通信( 可以直接利用電話線作為傳輸線),從

    2024年02月15日
    瀏覽(24)
  • 51單片機(jī) | 串口通信實(shí)驗(yàn)

    51單片機(jī) | 串口通信實(shí)驗(yàn)

    ??這一節(jié)我們就來(lái)學(xué)習(xí) 51 單片機(jī)的串口通信。開(kāi)發(fā)板上集成了 1 個(gè)串口通信電路,是 USB 轉(zhuǎn)串口模塊,它既可下載程序也可實(shí)現(xiàn)串口通信功能。本節(jié)要實(shí)現(xiàn)的功能是: 51 單片機(jī)通過(guò)串口( UART )實(shí)現(xiàn)與 PC 機(jī)對(duì)話, 51 單片機(jī)的串口收到 PC 機(jī)發(fā)來(lái)的數(shù)據(jù)后原封不動(dòng)的返回給

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

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

    ?? 專(zhuān)欄簡(jiǎn)介:本專(zhuān)欄記錄了從零學(xué)習(xí)單片機(jī)的過(guò)程,其中包括51單片機(jī)和STM32單片機(jī)兩部分;建議先學(xué)習(xí)51單片機(jī),其是STM32等高級(jí)單片機(jī)的基礎(chǔ);這樣再學(xué)習(xí)STM32時(shí)才能融會(huì)貫通。 ?? 專(zhuān)欄適用人群 :適用于想要從零基礎(chǔ)開(kāi)始學(xué)習(xí)入門(mén)單片機(jī),且有一定C語(yǔ)言基礎(chǔ)的的童鞋

    2024年02月05日
    瀏覽(28)
  • 51單片機(jī)學(xué)習(xí)--串口通信

    51單片機(jī)學(xué)習(xí)--串口通信

    首先需要配置寄存器: 下面這里SCON配0x40和0x50都可以,因?yàn)闀簳r(shí)還不需要接受信息,所以REN置1置0都可 在main中調(diào)用SendByte函數(shù),每按下一次復(fù)位鍵,接收緩沖區(qū)就會(huì)收到一個(gè)11 這就是單向發(fā)送的一個(gè)簡(jiǎn)單實(shí)例,接下來(lái)實(shí)現(xiàn)每隔一秒發(fā)送一個(gè)遞增的數(shù)據(jù),只需要添加一個(gè)全局變

    2024年02月14日
    瀏覽(26)
  • 【51單片機(jī)】串口通信&&使用串口通信控制LED燈

    【51單片機(jī)】串口通信&&使用串口通信控制LED燈

    ??專(zhuān)欄【51單片機(jī)】 ??喜歡的詩(shī)句:更喜岷山千里雪 三軍過(guò)后盡開(kāi)顏。 ??音樂(lè)分享【Promise】 ??大一同學(xué)小吉,歡迎并且感謝大家指出我的問(wèn)題?? 目錄 ??串口通信 ??代碼? ???串口初始化 ?分析? ??????確定T1的工作方式 ??TMOD=0X20;? ??????確定T1的初值 ??

    2024年02月17日
    瀏覽(58)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包