MCS-51單片機(jī)含有2個(gè)定時(shí)器/計(jì)數(shù)器,具有4種工作方式。具有兩種工作模式(計(jì)數(shù)器模式和定時(shí)器模式)
MCS-51單片機(jī)含有1個(gè)全雙工串行口,具有4種工作方式。
TMOD-》定時(shí)器/計(jì)數(shù)器方式控制寄存器
TCON-》定時(shí)器/計(jì)數(shù)器控制寄存器
SMOD-》串行口波特率系數(shù)選擇位
SCON-》串行口控制寄存器
SBUF -》串行口數(shù)據(jù)緩沖器
TH0 -》定時(shí)器/計(jì)數(shù)器0(高字節(jié))
TL0 -》定時(shí)器/計(jì)數(shù)器0(低字節(jié))
TH1 -》定時(shí)器/計(jì)數(shù)器1(高字節(jié))
TL1 -》定時(shí)器/計(jì)數(shù)器1(低字節(jié))
一、定時(shí)器/計(jì)數(shù)器
定時(shí)器/計(jì)數(shù)器T0由特殊功能寄存器TH0、TL0構(gòu)成
定時(shí)器/計(jì)數(shù)器T1由特殊功能寄存器TH1、TL1構(gòu)成
特殊功能寄存器TMOD用于控制和確定 定時(shí)器/計(jì)數(shù)器 T0、T1的工作模式和工作方式。
特殊功能寄存器TCON用于控制T0、T1的啟動(dòng)和停止計(jì)數(shù),同時(shí)包含了T0、T1的狀態(tài)。
工作方式控制寄存器TMOD
TMOD用于控制定時(shí)器/計(jì)數(shù)器的工作模式及工作方式,它的字節(jié)地址為89H。
D7 D6 D5D4|D3 D2 D1D0
GATE C/TM1M0 | GATE C/TM1M0
T1 | T0
8位分為2組,高4位控制T1,低4位控制T0。
GATE:門控制位。若GATE=0,定時(shí)器/計(jì)數(shù)器的運(yùn)行不受外部輸入引腳INT0或INT1的控制。
C/T:計(jì)數(shù)器模式和定時(shí)器模式的選擇位。 C/T=0 為定時(shí)器模式。 C/T=1為計(jì)數(shù)器模式,計(jì)數(shù)器對(duì)外部輸入引腳T0(P3.4)或T1(P3.5)的外部脈沖(負(fù)跳變)計(jì)數(shù)。
M1、M0位:4種工作方式選擇位。
M1 M0 工作方式
0 0 方式0TLX(x=0,1)中低5位與THX的8位構(gòu)成13位計(jì)數(shù)器
0 1 方式1TLX與THX構(gòu)成16位計(jì)數(shù)器
1 0 方式2常數(shù)自動(dòng)重裝載的8位計(jì)數(shù)器,每當(dāng)計(jì)數(shù)器TLX溢出時(shí),THX中的內(nèi)容裝載到TLX
1 1 方式3僅適用于T0,分成2個(gè)8位計(jì)數(shù)器,T1停止計(jì)數(shù)
定時(shí)器/計(jì)數(shù)器控制寄存器TCONTCON的字節(jié)地址為88H
D7 D6 D5 D4D3 D2 D1D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
低4位與外部中斷有關(guān),高4位功能如下:
TF1:T1計(jì)數(shù)溢出標(biāo)志位。當(dāng)T1計(jì)數(shù)溢出時(shí),由硬件置1,申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后被硬件自動(dòng)清0
TR1:T1計(jì)數(shù)運(yùn)行控制位。由軟件置1或清0.當(dāng)GATE位(TMOD第7位)=0,TR1=1時(shí)允許T1計(jì)數(shù)。當(dāng)TR1=0時(shí)禁止計(jì)數(shù)
TF0:T0計(jì)數(shù)溢出標(biāo)志位。當(dāng)T0計(jì)數(shù)溢出時(shí),由硬件置1,申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后被硬件自動(dòng)清0
TR0:T0計(jì)數(shù)運(yùn)行控制位。由軟件置1或清0.當(dāng)GATE位(TMOD第3位)=0,TR0=1時(shí)允許T0計(jì)數(shù)。當(dāng)TR1=0時(shí)禁止計(jì)數(shù)
二、串行口
串行口有4種工作方式。波特率可用軟件設(shè)置,由片內(nèi)的定時(shí)器/計(jì)數(shù)器產(chǎn)生。
MCS-51單片機(jī)內(nèi)部的串行口有2個(gè)物理上獨(dú)立的接收、發(fā)送緩沖器SBUF,可同時(shí)發(fā)送、接收數(shù)據(jù)。發(fā)送緩沖器只能寫入不能讀出,接收緩沖器只能讀出不能寫入,兩個(gè)緩沖器共用一個(gè)字節(jié)地址(99H)。
控制MCS-51單片機(jī)串行口的控制寄存器共有兩個(gè):特殊功能寄存器SCON和PCON
串行口控制寄存器SCON(地址98H)
D7 D6 D5 D4 D3 D2 D1D0
SM0SM1SM2RENTB8RB8TI RI
SM0、SM1:串行口4種工作方式的選擇位
SM2:允許方式2和3的多機(jī)通訊控制位。 在方式2或3中,如果SM2置為1,則接收到的第9位數(shù)據(jù)(RB8)為0時(shí)不激活RI。在方式1時(shí),如果SM2=1,則只有收到有效的停止位時(shí)才會(huì)激活RI。在方式0時(shí)SM2必須清0。
REN:允許串行接收位。由軟件置1或清0.REN=1允許接收,REN=0則禁止接收。
TB8:是工作方式2和3時(shí),要發(fā)送的第9位數(shù)據(jù)。需要時(shí)由軟件置1或清0。在多機(jī)通訊中用來表示是地址幀還是數(shù)據(jù)幀。TB8=1為地址幀,TB8=0為數(shù)據(jù)幀
RB8:當(dāng)工作在方式2和3時(shí),為接收到的第9位數(shù)據(jù)。在多機(jī)通訊中為地址幀或數(shù)據(jù)幀的標(biāo)識(shí)位。在方式1如果SM2=0,RB8是接收到的停止位。在方式0不使用RB8.
TI:發(fā)送中斷標(biāo)志位,在方式0串行發(fā)送第8位數(shù)據(jù)結(jié)束時(shí)由硬件置1,或在其它方式串行發(fā)送停止位的開始時(shí)置1.TI=1時(shí)申請(qǐng)中斷,CPU響應(yīng)中斷后,發(fā)送下一幀數(shù)據(jù)。TI必須由軟件清0.
RI:接收中斷標(biāo)志位。在方式0串行接收到第8位數(shù)據(jù)結(jié)束時(shí),由硬件置1.在其它方式中,串行接收到停止位的中間點(diǎn)時(shí)置1.RI=1時(shí)申請(qǐng)中斷,要求CPU取走數(shù)據(jù)。但在方式1中,SM2=1時(shí),若未收到有效的停止位,不會(huì)對(duì)RI置1.RI必須由軟件清0.
特殊功能寄存器PCON(地址87H)
D7 。..。..D0
SMOD 。..。..。.
SMOD波特率系數(shù)選擇位。
串行口的工作方式
SM0 SM1 方式 功能說明
0 0 0 移位寄存器方式(用于擴(kuò)展I/O口)
0 1 1 8位UART,波特率可變(T1溢出率/n)
1 0 2 9位UART,波特率為 Fosc/64 或Fosc/32
1 1 3 9位UART,波特率可變(T1溢出率/n)
方式0:為移位寄存器輸入輸出方式,可外接移位寄存器,以擴(kuò)展I/O口,也可外接同步輸入輸出的設(shè)備
方式1:方式1的波特率由以下公式確定:
方式1波特率= 2SMOD/32 * 定時(shí)器1的溢出率 式中SMOD為PCON寄存器的最高位的值(0或1)
方式1輸出: 數(shù)據(jù)位由TXD端輸出,發(fā)送一幀信息為10位,1起始位,8位數(shù)據(jù)位,和1位停止位。
CPU執(zhí)行一條數(shù)據(jù)寫發(fā)送緩沖器SBUF的指令,就啟動(dòng)發(fā)送。 當(dāng)發(fā)送完數(shù)據(jù)位,置“1”中斷標(biāo)志位TI。
方式1輸入REN=1,SM0=0,SM1=1), 以所選波特率的16倍的速率采集RXD引腳狀態(tài),當(dāng)采集到RXD端從1到0的跳變時(shí)就啟動(dòng)定時(shí)器,接收的值是3次采用中至少兩次相同的值,以保證可靠無 誤。 當(dāng)檢測(cè)到起始位有效時(shí),開始接收一幀其余的信息。一幀信息為10位,1位起始位,8位數(shù)據(jù)位(先低位),1位停止位。當(dāng)滿足以下2個(gè)條件時(shí)1)RI=0 (2)收到的停止位=1 或SM2=0時(shí),停止位進(jìn)入RB8,且置1中斷標(biāo)志RI.若這2個(gè)條件不滿足,信息將丟失。因此中斷標(biāo)志必須由用戶的中斷服務(wù)程序(或查詢程序)清0。
方式2:
方式2輸出:發(fā)送數(shù)據(jù)由TXD端輸出,發(fā)送一幀信息為11位,1位起始位0,8位數(shù)據(jù)位(先低位),一位可編程為1或 0的第9位數(shù)據(jù),1位停止位。 附加中的第9位數(shù)據(jù)即SCON中的TB8的值,TB8由軟件置1或清0.可以做為多機(jī)通訊中的地址或數(shù)據(jù)的標(biāo)志位,也可以做為數(shù)據(jù)的奇偶檢驗(yàn)位。
方式2輸入:SM0=1 SM1=0,且REN=1時(shí),允許串行口以方式2接收數(shù)據(jù)。數(shù)據(jù)由RXD端輸入,接收11位信息。1位起始位0,8位數(shù)據(jù)位,1位附加的第9位數(shù)據(jù),1位 停止位1。當(dāng)接收器采樣到RXD端從1到0的跳變,并判斷起始位有效后,便開始接收一幀信息。 在接收器接收到第9位數(shù)據(jù)后,當(dāng)RI=0且SM2=0或接收到的第9位數(shù)據(jù)位為1時(shí),接收的數(shù)據(jù)送入SBUF(接收緩沖區(qū)),第9位數(shù)據(jù)送入RB8,并 置“1”RI.若不滿足這2個(gè)條件,接收到的信息被丟棄。
方式3:
方式3:除了波特率外,方式3和方式2相同。
三、多機(jī)通訊
串行口控制寄存器SCON中的SM2為方式2或方式3的多機(jī)通訊控制位,當(dāng)串行口以方式2或方式3工作時(shí),若SM2程序控制為1,此時(shí)只有當(dāng)串行口的第9 位數(shù)據(jù)RB8=1時(shí)才置1中斷標(biāo)志RI,若接收到的RB8=0,則不產(chǎn)生中斷,信息被丟失。應(yīng)用MCS-51串行口的這個(gè)特性,便可實(shí)現(xiàn)多機(jī)通訊。
來源;21ic
評(píng)論
查看更多