C51单片机学习笔记之串口通信
簡介
串口通信就是單片機(jī)和pc之間的一種通信方式。
通信方式:并行,串行,同步,異步(最常用的)
傳輸方向:單工,半雙工(不同時(shí)間),全雙工
基本結(jié)構(gòu)
?
相關(guān)寄存器
SCON串口控制寄存器(主要用方式1)
| 位 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| 符號 | SM0 | SM1 | SM2 | REN | TB8 | RB8 | TI | RI |
| 多機(jī)通信控制位 | 允許接收位 | 是要發(fā)送的第9位數(shù)據(jù)位 | 接收到的第9位數(shù)據(jù)位 | 發(fā)送中斷標(biāo)志位 | 接收中斷標(biāo)志位 | |||
| 主要用于方式2,3中 | 1允許接收 | |||||||
| 0拒絕接收 |
TB8——在方式2和方式3中,TB8是要作為數(shù)據(jù)幀第9位被發(fā)送出去的,在多機(jī)通信中,可用于判斷當(dāng)前數(shù)據(jù)幀的數(shù)據(jù)是地址還是數(shù)據(jù),TB8=0為數(shù)據(jù),TB8=1為地址?
RB8——當(dāng)單片機(jī)已經(jīng)接收一幀數(shù)據(jù)幀時(shí),會把數(shù)據(jù)幀中的第9位放到 RB8中。方式0不使用RB8,在方式2和方式3中,RB8為接收到的數(shù)據(jù)幀的第9位數(shù)據(jù)位。
TI——方式1、2、3中。當(dāng)發(fā)送數(shù)據(jù)完畢,硬件會將其置1,當(dāng) TI 被置1,會向CPU發(fā)送中斷請求。我們記得要在中斷服務(wù)程序中把 IT 置回0
RI——當(dāng)接受完一幀數(shù)據(jù)時(shí),RI ?由硬件置1,當(dāng)RI 被置1,會向CPU請求中斷。同樣要在中斷服務(wù)程序中把 RI 置回0。
| SM0 | SM1 | 工作方式 | 功能 | 波特率 |
| 0 | 0 | 方式0 | 8位同步移位寄存器 | 晶振頻率 / 12 |
| 0 | 1 | 方式1 | 10位UART | 可變 |
| 1 | 0 | 方式2 | 11位 | 晶振頻率/32或晶振頻率/64 |
| 1 | 1 | 方式3 | 11位 | 可變 |
PCON功率控制寄存器
| 位 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
| PCON | SMOD |
這個寄存器只有一個位SMOD,在方式1,2.,3時(shí),波特率都與SMOD有關(guān),當(dāng)SMOD=1時(shí),波特率會增加一倍。復(fù)位時(shí),SMOD變回0。
SBUF寄存器:51單片機(jī)中的特殊寄存器,串行數(shù)據(jù)緩沖器(一個接收一個發(fā)送),兩個其實(shí)是共用的一個地址99H,但是兩個在物理上面是分開的。
當(dāng)發(fā)送使用時(shí),就采用SBUF=XXX; ?(XXX為需要傳送的數(shù)據(jù))
當(dāng)接收使用時(shí),采用XXX=SBUF;
記得因?yàn)槭谴械乃詡鬏敹际且晃灰晃贿M(jìn)行的。
波特率計(jì)算?
?
?代碼部分
#include <REGX52.H> #include "delay.h" #include "DigitalTube.h" void init() {SCON=0x50;//配置寄存器PCON=0;//波特率不加倍TMOD |=0X20;//定時(shí)器選擇工作模式2TH1=TL1=0xfd;//波特率9600EA=1;//中斷打開ES=1;//接受中斷ET1=1;//定時(shí)器中斷關(guān)閉TR1=1;//定時(shí)器開關(guān)打開 } void UART_SendByte() interrupt 4 {unsigned char date; //定義一個數(shù)據(jù)delay();date = SBUF;//pc發(fā)送數(shù)據(jù)RI = 0; //接收關(guān)閉print(date/10,1);//控制數(shù)碼管print(date%10,2);SBUF = date;//pc接收數(shù)據(jù)while(!TI);//判斷發(fā)送是否關(guān)閉TI = 0;//發(fā)送關(guān)閉 }?結(jié)論
代碼部分我只給了中斷配置及串口通信的代碼,其余大家自由發(fā)揮。本章重點(diǎn)是搞清楚串口通信的寄存器配置,波特率的計(jì)算,以及與之前中斷、定時(shí)器相關(guān)知識相結(jié)合。——中斷——定時(shí)器
總結(jié)
以上是生活随笔為你收集整理的C51单片机学习笔记之串口通信的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: EA 交易中的限制和验证
- 下一篇: docker搭建蚂蚁笔记