美女黄网站色视频国产免费_日韩中文在线青柠影院_久se在线观看视频_在线看片国产播放_高分电影在线观看免费_婬乱爆乳女教师波多野_日本黄色不卡视频_日韩新无码精品毛片视频_国产精品无码6080_伊人色欲综合网亚洲

首頁(yè)  >  新聞中心  >  技術(shù)文章
單片機(jī)之串口通信

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



寄存器SBUF
SBUF是數(shù)據(jù)緩沖寄存器,發(fā)送和接收用的是一個(gè)地址,但是不用擔(dān)心沖突,讀只能從接收緩沖區(qū),寫(xiě)只能在發(fā)送緩沖區(qū)里。

寄存器SCON
SM0和SM1:工作方式選擇(0-3),方式1和方式3使用T1產(chǎn)生波特率,方式0和方式2是固定速率。
SM2 :在方式2和方式3的多級(jí)通信控制位
REN:允許串行接收控制位,0禁止接收
TB8:對(duì)于方式2和方式3,是發(fā)送的第9位
RB8:對(duì)于方式2和方式3,是接收的第9位;對(duì)于方式1,是接收到的停止位
TI:發(fā)送中斷標(biāo)志,發(fā)送完一幀后置位,必須由軟件清零
RI:發(fā)送中斷標(biāo)志,接收完一幀后置位,必須由軟件清零

寄存器PCON(最高位SMOD)
SMOD=1時(shí),波特率加倍

程序
PC與單片機(jī)通信,PC發(fā)送字符,單片機(jī)接收后返回給PC。PC端程序,VB編寫(xiě),使用MSCOMM控件。

Private Sub Command1_Click()
MSComm1.Output = Text1.Text '發(fā)送數(shù)據(jù)
End Sub
Private Sub Form_Load()
MSComm1.CommPort = 4 '設(shè)置串口的端口號(hào)
MSComm1.Settings = 9600,n,8,1 '設(shè)置串口的波特率等參數(shù)
MSComm1.RThreshold = 1 '設(shè)置最小接收的字節(jié)數(shù)
MSComm1.PortOpen = True '打開(kāi)串口
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
Text2.Text = Text2.Text MSComm1.Input '接收數(shù)據(jù)
End Select
End Sub

單片機(jī)程序:
#include
void UartInit();
void UartSendchar(unsigned char ch);
void main(void)
{
UartInit();
while(1);
}
void UartInit()
{
SCON = 0x50; // SCON: 模式1
TMOD = 0x20; // TMOD: 定時(shí)器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);
}
轉(zhuǎn)自電子產(chǎn)品世界