a一级爱做片免费观看欧美,久久国产一区二区,日本一二三区免费,久草视频手机在线观看

新聞中心

EEPW首頁 > 電源與新能源 > 設計應用 > 單片機之串口通信

單片機之串口通信

作者: 時間:2018-08-15 來源:網絡 收藏

串口一個重要的部分,和PC,和單片機之間的大都用串口。單片機的串口是全雙工異步串口方式。通過TXD(P3.1)發送,RXD(P3.0)引腳接收輸入。串口傳送數據是一幀一幀發送的,它有四種工作方式,同時也可以做并行I/O的擴展。

本文引用地址:http://www.j9360.com/article/201808/386936.htm

圖上是串口的結構圖。

SBUF是數據緩沖寄存器,發送和接收用的是一個地址,但是不用擔心沖突,讀只能從接收緩沖區,寫只能在發送緩沖區里。

寄存器SCON(SM0 SM1 SM2 REN TB8 RB8 TI RI)

SM0和SM1: 工作方式選擇(0-3),方式1和方式3使用T1產生波特率,方式0和方式2是固定速率。

SM2 :在方式2和方式3的多級通信控制位

REN:允許串行接收控制位,0禁止接收

TB8:對于方式2和方式3,是發送的第9位

RB8:對于方式2和方式3,是接收的第9位;對于方式1,是接收到的停止位

TI:發送中斷標志,發送完一幀后置位,必須由軟件清零

RI:發送中斷標志,接收完一幀后置位,必須由軟件清零

寄存器PCON(最高位SMOD)

SMOD=1時,波特率加倍

程序:PC與單片機通信,PC發送字符,單片機接收后返回給PC

PC端程序,VB編寫,使用MSCOMM控件

Private Sub Command1_Click()

MSComm1.Output = Text1.Text '發送數據

End Sub

Private Sub Form_Load()

MSComm1.CommPort = 4 '設置串口的端口號

MSComm1.Settings = 9600,n,8,1 '設置串口的波特率等參數

MSComm1.RThreshold = 1 '設置最小接收的字節數

MSComm1.PortOpen = True '打開串口

End Sub

Private Sub MSComm1_OnComm()

Select Case MSComm1.CommEvent

Case comEvReceive

Text2.Text = Text2.Text MSComm1.Input '接收數據

End Select

End Sub

單片機程序:

#include

void UartInit();

void UartSendchar(unsigned char ch);

void main(void)

{

UartInit();

while(1);

}

void UartInit()

{

SCON = 0x50; // SCON: 模式1

TMOD = 0x20; // TMOD: 定時器1 模式2

PCON = 0x00; // SMOD=0;

TH1 = 0xFD; // Baud:9600 波特率=2SMOD×fosc/(32×12×(256-TH1))

TL1 = 0xFD;

IE = 0x90;

TR1 = 1;

EA = 1;

}

void UartSendChar(unsigned char ch)

{

SBUF = ch;

while(TI==0);

TI=0;

}

void UartRec() interrupt 4

{

unsigned char ch;

ch = SBUF;

if(RI)

{

RI = 0;

UartSendChar(ch);

}



關鍵詞: 單片機 通信

評論


相關推薦

技術專區

關閉