新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 串行口通信原理及操作流程

串行口通信原理及操作流程

作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏

在具體操作串口之前需要對(duì)單片機(jī)的一些與串口有關(guān)的特殊功能寄存器進(jìn)行初始化設(shè)置,主要是設(shè)置產(chǎn)生波特率的定時(shí)器1、串行口控制和中斷控制。具體步驟如下:

1. 確定T1的工作方式(編程TMOD寄存器)

2. 計(jì)算T1的初值,載入TH1、TL1

3. 啟動(dòng)T1(編程TCON中的TR1位)

4. 確定串行口工作方式(編程SCON寄存器)

5. 串行口工作在中斷方式時(shí),要進(jìn)行中斷設(shè)置(編程IE,IP)

/**********************

實(shí)現(xiàn)功能:

RS232通信(串口通信)

**********************/

#include

#define uint unsigned int

#define uchar unsigned char

uchar flag;

uchar date;

void init()

{

TMOD=0X20;//定時(shí)器1工作方式2

TH1=0xfd;//9600

TH0=0xfd;//9600

TR1=1;//啟動(dòng)定時(shí)器1

REN=1;//允許串口接收

SM0=0;//設(shè)定串口工作方式1

SM1=1;//設(shè)定串口工作方式1

EA=1; //開(kāi)總中斷

ES=1;//開(kāi)串口中斷

}

void main()

{

init();

while(1)

{

if(flag==1)

{

ES=0; //關(guān)閉串口中斷

P1=date;

SBUF=date;

while(!TI);//等待串行發(fā)送停止位的開(kāi)始,TI=1,并向CPU發(fā)送中斷請(qǐng)求

TI=0;//取消此次中斷

ES=1; //開(kāi)串口中斷

flag=0;

}

}

}

void time1() interrupt 4

{

RI=0;//取消中斷申請(qǐng)

date=SBUF;

flag=1;

}


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 串行口通信原理操作流

評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉