一份寄存器匯總讓你成為單片機(jī)編程高手
單片機(jī)中斷源
一、一般而言,MCS-51單片機(jī)有5個(gè)中斷源,分別是:
1、外部中斷0;
2、外部中斷1;
3、定時(shí)/計(jì)數(shù)器0中斷;
4、定時(shí)/計(jì)數(shù)器1中斷;
5、串行口發(fā)送或接受中斷;
1)用到外部中斷時(shí):
EX0 = 1;//中斷允許開(kāi)關(guān)
IT0 = 0;//下降沿觸發(fā)方式
EA = 1;//總開(kāi)關(guān)
2)用到定時(shí)/計(jì)數(shù)器中斷時(shí)
ET0 = 1;//啟動(dòng)計(jì)數(shù)器中斷開(kāi)關(guān)
EA = 1;//總開(kāi)關(guān)
//定時(shí)器的核心在這下面這段代碼
TMOD = 0x09;
TH0 = 0x0D8;
TL0 = 0x0F0;
TR0 = 1;//啟動(dòng)定時(shí)器
3)用到串口中斷時(shí)
EX1 = 1;//外部中斷1分開(kāi)關(guān)
IT1 = 1;//觸發(fā)方式:下降沿
PX1 = 1;//設(shè)置為高優(yōu)先級(jí)
//步驟一:波特率配置,由定時(shí)器1的益處率決定
TMOD = 0x20;//0010 0000 = 0x20,定時(shí)器1設(shè)置為工作方式2,8位自動(dòng)裝載的定時(shí)器
TH1 = 0xF4;//初值
TL1 = 0xF4;//波特率4800
ET1 = 1;//定時(shí)器1允許分開(kāi)關(guān)
TR1 = 1;//啟動(dòng)定時(shí)
//設(shè)置串口工作方式
SCON = 0x50;//等同于TMOD,方式一,允許接收 0101 0000
//PCON = 0x00;
//TI = 0;發(fā)送中斷標(biāo)志位
//RI = 0;接收中斷標(biāo)志位
ES = 1;//IE寄存器第四位,串口中斷允許位
EA = 1;//外部中斷總開(kāi)關(guān)
二、
1、中斷允許寄存器IETimeInterrupt
2、定時(shí)器控制寄存器TCON 8位寄存器
3、中斷優(yōu)先級(jí)寄存器IP(不常用)
4、定時(shí)器方式寄存器TMOD
5、串行口控制寄存器SCON
1、中斷允許寄存器IE
(EX中斷 、ET定時(shí)器/計(jì)數(shù)器)
位7 位6 位5 位4 位3 位2 位1 位0
EA ES ET1 EX1 ET0 EX0
EX0: 中斷0中斷允許位。1為允許,0否則相反。
EX1: 中斷1中斷允許位。1為允許,0否則相反。
ET0:定時(shí)器/計(jì)數(shù)器0中斷允許位。1為允許,0否則相反。
ET1:定時(shí)器/計(jì)數(shù)器1中斷允許位。1為允許,0否則相反。
ES:串口中斷允許位
EA:總開(kāi)關(guān)
(如果定時(shí)器工作在中斷方式下,則當(dāng)定時(shí)器的當(dāng)前值計(jì)滿溢出時(shí),就會(huì)觸發(fā)定時(shí)器溢出中斷)
2、定時(shí)器控制寄存器TCON(低4位用作外部中斷,高4位用作定時(shí))
IT0:外部中斷0觸發(fā)方式。1為低電平,0為下降沿信號(hào)。
IT1:外部中斷1觸發(fā)方式。1為低電平,0為下降沿信號(hào)。
IE0:外部中斷0請(qǐng)求標(biāo)志位。IE0=1,有中斷請(qǐng)求,0則沒(méi)有。
IE1:外部中斷1請(qǐng)求標(biāo)志位。IE0=1,有中斷請(qǐng)求,0則沒(méi)有。
TR0:定時(shí)器/計(jì)數(shù)器0啟動(dòng)停止。1為啟動(dòng),0為停止。
TR1:定時(shí)器/計(jì)數(shù)器1啟動(dòng)停止。1為啟動(dòng),0為停止。
TF0:定時(shí)器/計(jì)數(shù)器標(biāo)志位。1為溢出,0則沒(méi)有溢出。
TF1:定時(shí)器/計(jì)數(shù)器標(biāo)志位。1為溢出,0則沒(méi)有溢出。
3、中斷優(yōu)先級(jí)寄存器IP(不常用)
PX0:外部中斷0
PX1:外部中斷1
PT0:定時(shí)器/計(jì)數(shù)器0中斷
PT1:定時(shí)器/計(jì)數(shù)器1中斷
PS:串口中斷
4、定時(shí)器方式寄存器TMOD
位7 位6 位5 位4 位3 位2 位1 位0
GATE C/T M1 M0 GATE C/T M1 M0
T1方式 T0方式
工作方式選擇表
M1 M0 方式 說(shuō)明
0 0 0 13位定時(shí)器/計(jì)數(shù)器,TL存放低5位,TH存放高八位
0 1 1 16位定時(shí)器/計(jì)數(shù)器
1 0 2 初值自動(dòng)裝載的8位定時(shí)器/計(jì)數(shù)器
1 1 3 (不重要)
GATE:門控制位,相當(dāng)于總開(kāi)關(guān)
C/T:0定時(shí)器 1計(jì)數(shù)器
5、串行口控制寄存器SCON
位7 位6 位5 位4 位3 位2 位1 位0
SM0 SM1 SM2 REN TB8 RB8 TI RI
SM0 SM 1 組合選擇位
串行口方式選擇
SM0 SM1 方式 說(shuō)明 波特率
0 0 0 8位全部數(shù)據(jù)發(fā)送 fosc/12
0 1 1 10位數(shù)據(jù)發(fā)送,包括起始位,停止位 可變
1 0 2 11位數(shù)據(jù)發(fā)送,包括起始位,停止位 ,校驗(yàn)位 fosc/64
1 1 3 同方式2
SM2 多機(jī)通信使能位
REN:串口數(shù)據(jù)接收允許位 1允許,0禁止。該位有軟件置位或清0
TB8:在方式2和方式3中,這位發(fā)送的是第9位,就是校驗(yàn)位。
RB8:在方式2和方式3中,這位發(fā)送的是第9位,就是校驗(yàn)位。
TI:發(fā)送中斷標(biāo)志位 ,用完時(shí)要用軟件清0
RI:接受中斷標(biāo)志位,用完時(shí)要用軟件清0
嵌入式時(shí)代已經(jīng)來(lái)了,不要糾結(jié)要不要踏入嵌入式的領(lǐng)域了,以下課程可免費(fèi)試聽(tīng)C語(yǔ)言、電子、PCB、STM32、Linux、FPGA、Python、安卓等。