《基于C語(yǔ)言的MCS-51單片機(jī)教程》-項(xiàng)目1 彩燈控制器的設(shè)計(jì)與制作_第1頁(yè)
《基于C語(yǔ)言的MCS-51單片機(jī)教程》-項(xiàng)目1 彩燈控制器的設(shè)計(jì)與制作_第2頁(yè)
《基于C語(yǔ)言的MCS-51單片機(jī)教程》-項(xiàng)目1 彩燈控制器的設(shè)計(jì)與制作_第3頁(yè)
《基于C語(yǔ)言的MCS-51單片機(jī)教程》-項(xiàng)目1 彩燈控制器的設(shè)計(jì)與制作_第4頁(yè)
《基于C語(yǔ)言的MCS-51單片機(jī)教程》-項(xiàng)目1 彩燈控制器的設(shè)計(jì)與制作_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目1

彩燈控制器的設(shè)計(jì)與制作知識(shí)與能力目標(biāo)1

熟悉單片機(jī)應(yīng)用系統(tǒng)的開(kāi)發(fā)流程2

加深對(duì)單片機(jī)最小系統(tǒng)概念的理解3

熟練掌握51

單片機(jī)I/O

口的輸入和輸出控制方法4

理解中斷的相關(guān)概念5

熟練編寫(xiě)外部中斷程序MCS-51◎?qū)纹瑱C(jī)的控制,其實(shí)就是對(duì)I/O口的控制,無(wú)論單片機(jī)對(duì)外界進(jìn)行何種控制,亦或接受外部的控

制,都是通過(guò)I/O口進(jìn)行的,所以并行I/O端口是

實(shí)現(xiàn)單片機(jī)與外部進(jìn)行并行數(shù)據(jù)交換的通道。任務(wù)1:51單片機(jī)I/O

(輸入/輸出)接口1、認(rèn)識(shí)并行I/0

口輸入輸出端口輸入輸出端口外部設(shè)備內(nèi)總線CPU51系列單片機(jī)有4個(gè)I/0

端口,每個(gè)端口都是8

位準(zhǔn)雙向口,共占32根引腳。每個(gè)端口都包括一個(gè)

鎖存器(即專(zhuān)用寄存器P0~P3)、一個(gè)輸出驅(qū)動(dòng)器和

輸入緩沖器。通常把4個(gè)端口籠統(tǒng)地表示為P0~P3。在無(wú)片外擴(kuò)展存儲(chǔ)器的系統(tǒng)中,這4個(gè)端口的每一位都可以作為準(zhǔn)雙向通用I/0端口使用。在具有片外擴(kuò)

展存儲(chǔ)器的系統(tǒng)中,

P2口作為高8位地址線,

PO口分時(shí)

作為低8位地址線和雙向數(shù)據(jù)總線。U?讀引腳一P0.n由1個(gè)鎖存器、2個(gè)三態(tài)緩沖器、1個(gè)輸出控制電路和1個(gè)輸出驅(qū)動(dòng)電路組成。2

、51單片機(jī)I/0

(輸入/輸出)接口的結(jié)構(gòu)及特點(diǎn)(1)PO

口的結(jié)構(gòu)地址/數(shù)據(jù)控制&MUXUQ-鎖存器CP讀鎖存器一內(nèi)部總線一寫(xiě)鎖存器

—VccT?T?—P0.X2、

51單片機(jī)I/0

(輸入/輸出)接口的結(jié)構(gòu)及特點(diǎn)(2)PO

口的工作方式具有兩種工作方式1.

“通用數(shù)據(jù)I/O雙向端口”;2.“地址、數(shù)據(jù)復(fù)用總線”。在具有片外

擴(kuò)展存儲(chǔ)器的系統(tǒng)中,

P2口作為高8位

地址線,PO口分時(shí)作為低8位地址線和

雙向數(shù)據(jù)總線。注意:PO口作為普通I/0口輸出時(shí)需要外接上拉電阻,其電阻值為4.7歐姆~10K歐姆。U?讀引腳一P1.n

由1個(gè)鎖存器、1個(gè)場(chǎng)效應(yīng)管驅(qū)動(dòng)器、2個(gè)三態(tài)緩沖器組成。2

、51單片機(jī)I/0

(輸入/輸出)接口的結(jié)構(gòu)及特點(diǎn)(3)P1

口的結(jié)構(gòu)讀鎖存器U?

Vcc內(nèi)部上拉電阻—P1.X內(nèi)部總線寫(xiě)鎖存器鎖存器CPQ(4)P1

口的工作方式具有一種工作方式:“

通用數(shù)據(jù)I/O雙向端口”;①P1

口作為通用輸出口使用時(shí),可以實(shí)現(xiàn)0或1的輸出。②P1口作為輸入口使用時(shí),有兩種工作方式:讀端口(讀鎖存器)與讀引腳。讀端口實(shí)際上并不是從外部直接讀入數(shù)據(jù),而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線,經(jīng)過(guò)某種運(yùn)算或變換后寫(xiě)回到端口鎖存器,比如取反、置位、清零等指令。讀引腳方式才是真正地把外部數(shù)據(jù)讀入到內(nèi)部總線。但這里要注意:P1口作為輸入口需要先向端口寫(xiě)1,因此P1口稱為準(zhǔn)雙向口。U?讀引腳P2.n由1個(gè)鎖存器、2個(gè)三態(tài)緩沖器、1個(gè)輸出控制單元、1個(gè)輸出驅(qū)動(dòng)單元組成。(5)P2口的結(jié)構(gòu)讀鎖存器一U2

、51單片機(jī)I/0

(輸入/輸出)接口的結(jié)構(gòu)及特點(diǎn)內(nèi)部上拉電阻P2.X地址

控制VccD鎖存器CPo內(nèi)部總線

·寫(xiě)鎖存器一QMUX(6)P2口的工作方式

具有兩種工作方式:1、

通用數(shù)據(jù)I/O

雙向端口”;2.

地址復(fù)用總線”。在具有片外擴(kuò)展存

儲(chǔ)器的系統(tǒng)中,

P2口作為高8位地址線。U?

U?讀引腳第二功能輸入P3.n由1個(gè)鎖存器、2個(gè)三態(tài)緩沖器、1個(gè)第二功能控制單元、1個(gè)輸出驅(qū)動(dòng)單元組成。2、

51單片機(jī)I/0

(輸入/輸出)接口的結(jié)構(gòu)及特點(diǎn)(7)P3口的結(jié)構(gòu)讀鎖存器一內(nèi)部總線一寫(xiě)鎖存器·Vee內(nèi)部上拉電阻P3.X第二功能輸出&U?Qō鎖存器CP(8)P3口的工作方式具有兩種工作方式:1、

通用數(shù)據(jù)I/O雙向端口”;2.

第二功能方式”。引腳名稱第二功能名稱?功

能?信號(hào)方向?P3.0?RXD串行數(shù)據(jù)接收輸入P3.1?TXD串行數(shù)據(jù)發(fā)送輸

出?P3.2?INTO?外部中斷0請(qǐng)求端口輸入P3.3?INT1?外部中斷1請(qǐng)求端口輸入P3.4?TO?定時(shí)器/計(jì)數(shù)器0外部計(jì)數(shù)輸入端口?輸入P3.5?T1?定時(shí)器/計(jì)數(shù)器0外部計(jì)數(shù)輸入端口輸入P3.6?WR?片外數(shù)據(jù)存儲(chǔ)器寫(xiě)選通輸出P3.7?RD片外數(shù)據(jù)存儲(chǔ)器讀選通?輸出P3口各位的第二功能返回補(bǔ)充知識(shí):二極管相關(guān)知識(shí)點(diǎn)1)發(fā)光二極管簡(jiǎn)稱為

LED。由鎵

(

Ga)與砷

(

AS)、磷(P)

的化合物制成。磷砷化鎵二極管發(fā)紅光,磷化鎵

二極管發(fā)綠光,碳化硅二極管發(fā)黃光。2)工作原理發(fā)光二極管使用時(shí)必須串聯(lián)限流電阻以控制通過(guò)管子的電流。限流電阻

R可用下式計(jì)算:R=(VS-VL)/I;VS

為電源電壓,VL

為L(zhǎng)ED

的正向壓降,I

LED

的一般工作電流。3)、LE

D

燈的內(nèi)部結(jié)構(gòu)與連線發(fā)光二極管的兩根引線中較長(zhǎng)的一根為正極,應(yīng)連接電源正極。黃金導(dǎo)線接合部分圖形環(huán)氧樹(shù)脂透鏡LED

片反射帽負(fù)極引腳

正極引腳4)IFD

線與數(shù)字I/0

口相連

發(fā)光二極管陽(yáng)極

發(fā)光二極管陰極220ΩGNDR1

LED與數(shù)字I/0口相連發(fā)光二極管陰極

發(fā)光二極管陽(yáng)極220ΩR1LED返回C1U1X1XTAL112MP0.2/AD2XTAL222pFR1RST10kP2.0/A8

P2.1/A9PSENALE31二P2.6/A14

P2.7/A15D1LED-REDLED-GREEN17AT89C51任務(wù)2:

按鍵和點(diǎn)燈應(yīng)用系統(tǒng)功能演示P3.0RXDP3.1TXDP3.2ANT0P3.3MNT1P3.4/T0

P3.5/T1

P3.6ANRP3.7RDP0.3/AD3

P0.4/AD4P0.5/AD5

P0.6/AD6P0.7/AD7P1.0

P1.1

P1.2

P1.3

P1.4

P1.5

P1.6

P1.7R2220R3

220P2.2/A10P2.3/A11P2.4/A12P2.5/A1322pFC21918P0.0/AD0

P0.1/AD129BC3D210uF任務(wù)目示設(shè)計(jì)系統(tǒng)的開(kāi)發(fā)流程2

系統(tǒng)硬

件路設(shè)計(jì)與制作③系統(tǒng)軟

程序設(shè)計(jì)與調(diào)試系統(tǒng)的⑤

擴(kuò)展王務(wù)任務(wù)2:

按鍵和點(diǎn)燈1.任務(wù)目標(biāo)·

加深理解單片機(jī)復(fù)位電路的工作原理?!?/p>

掌握時(shí)鐘發(fā)生電路的基本工作原理?!?/p>

理解單片機(jī)最小系統(tǒng)的工作方式?!袷炀氄莆?1

單片機(jī)I/O口的輸入和輸出控制方法?!だ斫饨o出的C

語(yǔ)言源程序的結(jié)構(gòu)和各語(yǔ)句所起作用?!ぴ谶_(dá)到以上5點(diǎn)目標(biāo)的基礎(chǔ)上,根據(jù)“任務(wù)擴(kuò)展”中提出

的問(wèn)題,以組或個(gè)人為單位,在規(guī)定時(shí)間里完成任務(wù)。任務(wù)2:

按鍵和點(diǎn)燈任務(wù)2:

按鍵和點(diǎn)燈2.

任務(wù)要求本任務(wù)通過(guò)單片機(jī)P1口完成對(duì)其端口的輸入與輸出控制。按鍵作為

端口輸入信號(hào)源,

LED

燈作為端口輸出信號(hào)的狀態(tài)指示。按鍵S1

為獨(dú)立

按鍵,紅色LED燈D1、綠色LED

燈D2分別連接51單片機(jī)的P1.0、P1.1、P1.2

引腳。本項(xiàng)目通過(guò)編寫(xiě)相應(yīng)的程序,實(shí)現(xiàn)開(kāi)后D1和D2亮1.5s

左右,然后

紅燈亮、綠燈滅,當(dāng)S1

按鍵按下時(shí),紅燈滅、綠燈亮;釋放S1

按鍵,紅燈重新亮,綠燈重新滅。1、最小系統(tǒng)模塊的設(shè)計(jì)2、按鍵控制模塊的設(shè)計(jì)3、發(fā)光二極管模塊的設(shè)計(jì)4、

電源模塊的設(shè)計(jì)任務(wù)2:

按鍵和點(diǎn)燈0.③③R1DI220ΩRedLEDR2D2220ΩGreenLEDS2SW-PB(AD5)P0.5(AD7)P0.7C1c30pFEAVPP12MHzC2XTAL1VCC30pF200ΩR3IkΩAT89C51系統(tǒng)總體硬件電路任務(wù)2:

按鍵和點(diǎn)燈P1.0P1.2P1.3P1.5P1.7P3.3(INTIP3.2(INT0)P3.5(T1)P3.4(TO)(A8)P2.0

(A9)P2.1

(A10)P2.2

(A11)P2.3

(A12)P2.4

(A13)P2.5

(A14)P2.6

(A15)P2.7XTAL2RSTP3.7(RD)

P3.6(WR)GND

(RXD)P3.0

(TXD)P3.1ALE/PROG

PSEN(AD0)P0.0

(AD1)P0.1(AD3)P0.331。1918C322uF微動(dòng)開(kāi)關(guān)4020U?R3點(diǎn)亮紅燈和綠燈延時(shí)1.5秒?S1

鍵被按下?紅燈亮,綠燈滅任務(wù)2:

按鍵和點(diǎn)燈系統(tǒng)程序流程圖紅燈滅,綠燈亮開(kāi)始X1

12MR110kLED-REDLED-GREENU1XTAL1XTAL2RSTPSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P0.0/AD0

P0.1AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7/AD7P2.0/A8

P2.1A9

P2.2/A10

P2.3/A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15P3.0RXD

P3.1/TXD

P3.2ANT0

P3.3ANT1

P3.4/T0

P3.5/T1

P3.6AAR P3.7RDC122pFC222pFC310uFD1D219182930二31234678任務(wù)2:

按鍵和點(diǎn)燈393824281011121314151617系統(tǒng)仿真電路圖R2220

R3220373635

3332#include

<reg51.h>#defineuchar

unsigned

char#defineuint

unsigned

intsbit

RedLed=P1^0;//紅色LED燈D1的控制輸出端sbit

GreenLed=P1^1;//綠色LED燈D2的控制輸出端sbit

SelectKey=P1^2;//獨(dú)立按鍵S1的控制輸入端

void

delay(uchar);/*****主函數(shù)***********************void

main(void){RedLed=0;

//點(diǎn)亮紅色LED燈D1GreenLed=0;

//點(diǎn)亮綠色LED燈D2delay(255);delay(255);delay(255);delay(255);delay(255);delay(255);//延時(shí)while(1){if(SelectKey==0)//按鍵S1被按下RedLed=1;//紅燈滅GreenLed=0;

//綠燈亮}else//按鍵S1未按{RedLed=0;//紅燈亮GreenLed=1;//綠燈滅}}}/********主函數(shù)結(jié)束***************void

delay(uchar

x)//延時(shí),系統(tǒng)主頻為

11.0592MHzuchar

k;while(x--)

//延時(shí)大約x毫秒鐘for(k=0;k<125;k++){}程序設(shè)計(jì)任務(wù)2:

按鍵和點(diǎn)燈理解按鍵和點(diǎn)燈任務(wù)的軟、硬件原然后以個(gè)人為單位,設(shè)計(jì)程序完成以下任務(wù):開(kāi)機(jī)后,紅燈3

s,綠燈不亮;然后綠燈亮3s,同時(shí)紅燈熄滅,如此反復(fù),1鍵被按下時(shí),紅綠兩燈全滅:釋放后重復(fù)紅、綠兩燈依次點(diǎn)的過(guò)程。完成如下任務(wù):·

硬件電

路板的制作、調(diào)試;·

程序的

編寫(xiě)和仿真;·

軟硬件

聯(lián)

調(diào)

。任務(wù)2:

按鍵和點(diǎn)燈項(xiàng)目任務(wù)擴(kuò)展任務(wù)3

按鍵和流水燈應(yīng)用系統(tǒng)功能演示U1PXTAL1XTAL2RSTP1.0P1.1P12P13P14P1.5P1.6AT89C51PO.O/AD0

P0.1/AD1

P0.2/AD2

P0.3/AD3

P0.4/AD4

P0.5/AD5

P0.6/AD6

P0.7AD7P2.0/A8P2.3A11

P2.4/A12

P2.5/A13

P2.6/A14

P2.7/A15P3.0RXD

P3.1/TXD

P3.2INTOP3.3INT1

P3.4/T0

P3.5T1P3.6MR

P3.7RDR11R12220R13220

R14

220

R15

220

R16220R17220R18220D1D2D3D4D5D6D7D819182922FC322pFC2X1L12MR1C1任務(wù)目示設(shè)計(jì)系統(tǒng)的開(kāi)發(fā)流程2

系統(tǒng)硬

件路設(shè)計(jì)與制作③系統(tǒng)軟

程序設(shè)計(jì)與調(diào)試系統(tǒng)的⑤

擴(kuò)展王務(wù)任務(wù)3

按鍵和流水燈1.

任務(wù)目標(biāo)·加深對(duì)單片機(jī)最小系統(tǒng)工作原理的理解。·熟練掌握51

單片機(jī)I/O

口的輸入和輸出控制方法。·理解給出的C語(yǔ)言源程序的結(jié)構(gòu)和各語(yǔ)句所起作用。·在達(dá)到以上3點(diǎn)目標(biāo)的基礎(chǔ)上,根據(jù)“任務(wù)擴(kuò)展”中提出的

問(wèn)題,以組或個(gè)人為單位,在規(guī)定時(shí)間里完成任務(wù)。任務(wù)3

按鍵和流水燈任務(wù)3

按鍵和流水燈2.

任務(wù)要求按鍵S1、S2

為獨(dú)立按鍵,分別連接單片機(jī)的P1.0

和P1.1口,8個(gè)

LED燈分別連接單片機(jī)的P2口

。這里設(shè)計(jì)了兩類(lèi)花樣,第一類(lèi)是8個(gè)LED燈從上到下依次逐個(gè)點(diǎn)亮,再?gòu)南碌缴弦来沃饌€(gè)熄滅;第二類(lèi)是8個(gè)LED燈從中間開(kāi)始兩顆燈依次點(diǎn)亮,即D4D5

亮,然后D3D6

亮(D4D5不熄滅),然后D2D7

亮(D3D4D5D6

不熄

)

,

然后D1D8

亮(

D

2D3D4D5D6D7

不熄滅);

然后再?gòu)膬啥碎_(kāi)始兩顆燈依次熄滅,即D1D8

滅,然后D2D7

滅,然后

D3D6

滅,然后D4D5

滅。當(dāng)按下S1

鍵則顯示第一類(lèi)花樣,按下S2則顯

示第二類(lèi)花樣。1、最小系統(tǒng)模塊的設(shè)計(jì)2、按鍵控制模塊的設(shè)計(jì)3、發(fā)光二極管模塊的設(shè)計(jì)4、

電源模塊的設(shè)計(jì)任務(wù)3

按鍵和流水燈0.③③RIP20(AD0)P0.0(AD1)P0.1(AD2)P0.2(AD3)P0.3(AD4)P0.4(ADS)P0.5(AD6)P0.6(AD7)P0.7GND(A8)P2.0(A9)P2.1(A10)P2.2(A11)P2.3(A12)P2.4(A13)P2.5EAVPP(A15)P2.7XTALI40VCCGND(RXD)P3.0(TXD)P3.1ALE/PROGikΩPSENAT89C51GND系統(tǒng)總體硬件電路任務(wù)3

按鍵和流水燈R52202R6220ΩR72200R8P3.3(INTI)P3.2(INT0)P3.5(T1)P3.4(T0)R32202R4P3.7(RD

P3.6(WR)P22P242200R2P1.4P1.5|·GND

D22ufXTAL212MHzD330pF30pFDIL200Ω220ΩvccPL.0PL.7RSTP1.220R10P23P25P26P21P22P24U?R9C2Cl開(kāi)始?燈全滅系統(tǒng)程序流程圖按鍵掃描S2

鍵被按下?N?S3

鍵被按下?N?花樣類(lèi)一?花樣類(lèi)二?任務(wù)3

按鍵和流水燈R11GREENR12220R13220

R14220R15

220R16220R17220R18

220D2D3cD4

dD5D6D7D8hU1X

TAL1XTAL2RSTPSENALEP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51P0.0/AD0P0.1AD1P0.2/AD2P0.3/AD3P?.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8

P2.1A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0RXDP3.1TXDP3.2ANT0P3.3INT1P3.4/T0P3.5T1P3.6RP3.7RD任務(wù)3

按鍵和流水燈39363522232627.2812141617系統(tǒng)仿真電路圖1918293031622pFC222pFX1L

12MR110k343332#include

<reg51.h>#defineucharunsigned

char#defineuint

unsigned

int#define

LED

P2sbit

SelectKey1=P3^2;//獨(dú)立按鍵S1的控制輸入

端sbit

SelectKey2=P3^3;//獨(dú)立按鍵S2的控制輸入

端//函數(shù)聲明void

delay(uchar);void

Huayang1(void);void

Huayang2(void);void

main(void){LED=0xff;while(1){if(SelectKey1==0){Huayang1();}else

if(SelectKey2==0){Huayang2();}else

LED=0xff;void

delay(uchar

x)//延時(shí),系統(tǒng)主頻為

11.0592MHz{uchar

k;while(x--)//延時(shí)大約x毫秒鐘

for(k=0;k<125;k++){}}void

Huayang1(void){LED=0xfe;delay(500);LED=0xfc;delay(500);LED=0xf8;delay(500);LED=0xf0;delay(500);LED=0xe0;delay(500);LED=0xc0;delay(500);LED=0x80;delay(500);LED=0x00;delay(500);LED=0x80;delay(500);LED=0xc0;delay(500);LED=0xe0;delay(500);LED=0xf8;delay(500);

LED=0xfc;

delay(500);

LED=0xfe;

delay(500);

LED=0xff;

delay(500);}void

Huayang2(void)

{LED=0xe7;delay(500);LED=0xc3;delay(500);LED=0x81;

delay(500);LED=0x00;

delay(500);LED=0x81;

delay(500);LED=0xc3;delay(500);LED=0xe7;delay(500);LED=0xff;delay(500);delay(500);LED=0xf0;程序設(shè)計(jì)任務(wù)3

按鍵和流水燈項(xiàng)目任務(wù)擴(kuò)展理解按鍵和流水燈任務(wù)的軟、硬件原然后以個(gè)人為單位,

在“按健和流水燈任務(wù)工作表”中隨機(jī)事以兩個(gè)子任務(wù),完成如

任務(wù):·

花樣的

編碼用數(shù)組的方式存放;·

硬件電

路板的制作、調(diào)試;·

程序的

編寫(xiě)和仿真;·

軟硬件

的聯(lián)調(diào)。任務(wù)3

按鍵和流水燈任務(wù)4

外部中斷和花樣流水燈應(yīng)用系統(tǒng)功能演示C1U119R1RSTR11R12R13R14R15R16R17R1881DD1D2D3D4D5D6D7D8P8EWP1DP1.1

P1Z

P13

P1.4

P15

P16P1.7P3Z/IKTD

P33WT1P3.4/TDP360UR

P3.7/RD票任務(wù)目示設(shè)計(jì)系統(tǒng)的開(kāi)發(fā)流程2

系統(tǒng)硬

件路設(shè)計(jì)與制作③系統(tǒng)軟

程序設(shè)計(jì)與調(diào)試系統(tǒng)的⑤

擴(kuò)展王務(wù)任務(wù)4

外部中斷和花樣流水燈1.任務(wù)目標(biāo)·

理解中斷的相關(guān)概念。●熟練掌握51

單片機(jī)外部中斷的使用?!だ斫饨o出的C

語(yǔ)言源程序的結(jié)構(gòu)和各語(yǔ)句所起作用?!?/p>

掌握中斷子函數(shù)的編寫(xiě)格式?!?/p>

理解中斷子函數(shù)與主函數(shù)之間的關(guān)系及中斷子函數(shù)與普通

子函數(shù)的區(qū)別?!?/p>

在達(dá)到以上5點(diǎn)目標(biāo)的基礎(chǔ)上,根據(jù)“任務(wù)擴(kuò)展”中提出

的問(wèn)題,以組或個(gè)人為單位,在規(guī)定時(shí)間里完成任務(wù)。任務(wù)4

外部中斷和花樣流水燈任務(wù)4

外部中斷和花樣流水燈2.

任務(wù)要求按鍵S1、S2

為獨(dú)立按鍵,分別連接單片機(jī)的P3.2

和P3.3口

,24個(gè)LED燈分別連接單片機(jī)的P0、P1、P2

。自行設(shè)計(jì)流水燈花樣,和LED

燈排布的樣式,同時(shí)要求實(shí)現(xiàn)

按下S1

按鍵花樣流動(dòng)暫停,按下S2

鍵花樣繼續(xù)流動(dòng)。當(dāng)CPU在執(zhí)行程序時(shí),由單片機(jī)內(nèi)部或外部的原因引

起的隨機(jī)事件要求CPU暫時(shí)停

止正在執(zhí)行的程序,而轉(zhuǎn)向

執(zhí)行一個(gè)用于處理該隨機(jī)事

件的程序,處理完后又返回

被中止的程序斷點(diǎn)處繼續(xù)執(zhí)

行,這一過(guò)程就稱為中斷!斷任務(wù)4

外部中斷和花樣流水燈3.

知識(shí)補(bǔ)充一中斷的概念繼續(xù)執(zhí)行主程序中斷服務(wù)程序主程

序斷點(diǎn)RETI外部中斷:由外部信號(hào)引起:定時(shí)/計(jì)數(shù)器中斷:內(nèi)部2個(gè)16位定時(shí)/計(jì)數(shù)器T0、T1串行口中斷源:內(nèi)部有一個(gè)全雙工的串行接口INTO(P3.2)和INT1(P3.3)2、51系列單片機(jī)的中斷源123中斷源(5個(gè))TCON(88H)D7D6D5D4D3D2D1D0位名稱TF1TR1TF0TROIE1IT1IEOITO位含義T1的

溢出

中斷

標(biāo)志

位T1的

啟動(dòng)停止控制

位TO的

溢出中斷標(biāo)志位TO的啟動(dòng)停止控制位INT1中

斷請(qǐng)求

標(biāo)志位INT1

觸發(fā)方式控制

位INTO中

斷請(qǐng)求

標(biāo)志位INTO觸發(fā)方式控制

位1)中斷請(qǐng)求標(biāo)志TCON

(定時(shí)器控制寄存器)3、中斷結(jié)構(gòu)IT1

為INT1觸發(fā)方式控制位。由軟件進(jìn)(TCON.2

置位和復(fù)位,當(dāng)IT1=0時(shí),為低電平觸發(fā)

;當(dāng)IT1=1時(shí),為負(fù)跳變觸發(fā)。門(mén)為INT1中斷請(qǐng)求標(biāo)

位。當(dāng)

INT1有請(qǐng)求信號(hào)時(shí),

該位就會(huì)由硬件自動(dòng)置1,在CPU響應(yīng)中斷后,才由硬件自動(dòng)將IE1清零。為INT0

中斷請(qǐng)

標(biāo)志位。當(dāng)INTO

有請(qǐng)求

信號(hào)時(shí),該位就會(huì)

硬件自動(dòng)置1,在CPU響應(yīng)中斷后,才由便件自動(dòng)將IEO清零。為INTO

觸發(fā)萬(wàn)式控制位,

由軟件進(jìn)

行置位和復(fù)位,當(dāng)ITO=0時(shí)

,為低電平

觸發(fā);當(dāng)IT0=1

曠為負(fù)跳變觸發(fā)。IT0(TCON.0)IE0(TCON.1)IE1(TCON.3)TR0

為定時(shí)/計(jì)數(shù)器T

0的

動(dòng)停止控制位。(TCON.4)

由軟件進(jìn)行設(shè)定,當(dāng)TR=0時(shí),停止T0定

時(shí)

或計(jì)數(shù));當(dāng)0=1時(shí),啟動(dòng)TO定時(shí)(或

計(jì)

數(shù)

)

。為定時(shí)器/計(jì)數(shù)器下0的溢出中斷標(biāo)志位。當(dāng)T0

定時(shí)

(或十?dāng)?shù))結(jié)束時(shí),出硬件自動(dòng)置1,在CPU

響應(yīng)中斷

,才由硬件自動(dòng)將TFO清零。也可以由軟件查詢?cè)摌?biāo)

志,并由軟件清零。為定時(shí)/計(jì)數(shù)器T1的溢出中斷標(biāo)志位,當(dāng)T1

定時(shí)(

或計(jì)數(shù))結(jié)束時(shí),由硬件自動(dòng)置1,在CPU

響應(yīng)中斷

后,才由硬件自己將TF1清零。也可以由軟件查詢?cè)摌?biāo)

志,并由軟件清零。力

定時(shí)/計(jì)數(shù)器T1

的啟動(dòng)停止控制位。

由軟件進(jìn)行設(shè)定,當(dāng)TR1=0時(shí),停止TO

定時(shí)

(

計(jì)

數(shù)

);

當(dāng)TR1:

時(shí),啟動(dòng)T1

定時(shí)(或TF0(TCON.5)TF1(TCON.7)TR1(TCON.6

)SCON(98H)D7D6D5D4D3D2D1D0位名稱一一一一一TIRI位含義一—————串行口發(fā)送中斷標(biāo)志位串行口接收中斷標(biāo)志位1)中斷請(qǐng)求標(biāo)志SCON

(串行口控制寄存器)3

、中斷結(jié)構(gòu)·RI(SCON.O):串行口接收中斷標(biāo)志位。當(dāng)串行口

接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置RI為1,

CPU相應(yīng)中斷,但硬件不能自動(dòng)清除RI,所

以RI必須

由軟件來(lái)清零。·TI(SCON.1)

:串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU

一個(gè)發(fā)送數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖器時(shí),就啟動(dòng)了發(fā)

送過(guò)程。每發(fā)送完一個(gè)串行幀,由硬件置TI為1,CPU

相應(yīng)中斷,但硬件不能自動(dòng)清除TI,所以TI必須由軟件來(lái)清零。IE(A8H)D7D6D5D4D3D2D1D0位名稱EA——ESET1EX1ET0EXO位含義中斷總允許控制位一

串行口中斷允許位T1中

斷允許位INT1中斷允許位T0中

斷允許位INT0中斷允許位2)中斷允許控制IE寄存器3、中斷結(jié)構(gòu)

EA(IE.7)

為所有中斷總允許控制位。EA=0,

中斷總

禁止;EA=1,中斷總允許。

ES(IE.4)為串行口中斷允許位。ES=1,允許串行口

中斷;ES=0,禁止串行口中斷。ET1(IE.3)為T(mén)1中斷允許位。ET1=1,

允許T1中斷;

ET1=0,

禁止T1中斷。EX1(IE.2)為INT1中斷允許位。EX1=1,

允許外部中

斷INT1中斷;EX1=0,禁止外部中斷INT1中斷。ETO(IE.1)為T(mén)O中斷允許位。ET0=1,

允許T0中斷;

ETO=0,禁止T0中斷。EXO(IE.0)

為INT0中斷允許位。EXO=1,允許INTO中

;EXO=0,禁止INTO中斷。IP(B8H)D7D6D5D4D3D2D1DO位名稱一—PT2PSPT1PX1PTOPXO位含義一

一定時(shí)/計(jì)數(shù)器2優(yōu)先級(jí)設(shè)定位串行口中斷優(yōu)先級(jí)設(shè)定位定時(shí)/計(jì)數(shù)器1優(yōu)先級(jí)設(shè)定

位外部中斷1優(yōu)先級(jí)設(shè)定位定時(shí)/計(jì)數(shù)器0優(yōu)先級(jí)設(shè)定位外部中斷0優(yōu)先級(jí)設(shè)定位2)中斷優(yōu)先級(jí)控制中斷優(yōu)先級(jí)控制寄存器IP說(shuō)明:PT2(IP.5):

定時(shí)/計(jì)數(shù)器2優(yōu)先級(jí)設(shè)定位。(8052擴(kuò)展,

8051無(wú))以上各位為1時(shí),是高優(yōu)先級(jí),為0時(shí)為低優(yōu)先級(jí)。3、中斷結(jié)構(gòu)中斷源中斷標(biāo)志中斷服務(wù)程序入口優(yōu)先級(jí)順序外部中斷0?IE0?0003H高定時(shí)/計(jì)數(shù)器0?TFO?000BH外部中斷1?IE1?0013H上定時(shí)/計(jì)數(shù)器1?TF1?001BH上串行口RI或Tle0023H?低8051單片機(jī)的中斷系統(tǒng)硬件默認(rèn)自然優(yōu)先級(jí)排列4、8051單片機(jī)的中斷優(yōu)先級(jí)的三條原則OCPU同時(shí)接收到幾個(gè)中斷時(shí),首先相應(yīng)優(yōu)先級(jí)最

高的中斷請(qǐng)求。●正在進(jìn)行的中斷過(guò)程不能被新的同級(jí)或低優(yōu)先級(jí)

的中斷請(qǐng)求中斷。●正在進(jìn)行的中斷過(guò)程能被新的高優(yōu)先級(jí)的中斷請(qǐng)

求中斷。5、8051中斷處理過(guò)程執(zhí)行指令有

請(qǐng)

?滿

足響應(yīng)條件?保

護(hù)

現(xiàn)

場(chǎng)中

務(wù)恢

復(fù)

現(xiàn)場(chǎng)中

回NN編制應(yīng)用程序時(shí)中斷

初始化中斷服務(wù)程序6

、8051中斷服務(wù)函數(shù)的編制包含中斷服務(wù)程序的格式中斷響應(yīng)過(guò)程就是自動(dòng)調(diào)用并執(zhí)行中斷函數(shù)的過(guò)程。C51編譯器支

持在C語(yǔ)言源程序中直接以函數(shù)形式編寫(xiě)中斷服務(wù)程序。常用的中斷函數(shù)

定義語(yǔ)法如下:void

函數(shù)名()interrupt

n其中,

n為中斷類(lèi)型號(hào),

C51

編譯器允許0~31個(gè)中斷,所以n的取值

范圍為0~31。下面表給出了8051控制器提供的5個(gè)中斷源對(duì)應(yīng)的中斷類(lèi)

型號(hào)。中斷源中斷類(lèi)型號(hào)ne外部中斷00?定時(shí)/計(jì)數(shù)器01?外部中斷1?2?定時(shí)/計(jì)數(shù)器13?串行口4?7、外部中斷舉例1)

任務(wù)要求本例子實(shí)現(xiàn)的是按鍵計(jì)數(shù)顯示。按鍵S1連接到單片機(jī)的

P3.2口,兩個(gè)共陰極數(shù)碼管分別段選端分別連接單片機(jī)的PO和P2口,利用P3.2口的第二功能,實(shí)現(xiàn)每按下一次按鍵就觸發(fā)一次外部中斷,用數(shù)碼管顯示按鍵次數(shù),最大計(jì)數(shù)到

99,

當(dāng)計(jì)數(shù)到100時(shí),又重新開(kāi)始計(jì)數(shù)。P00POIP02P05P06PO7P20P23P24P27vccGND系統(tǒng)總體硬件電路(ADO)P0.0

(ADI)PO.1(AD2)P0.2

(AD3)P0.3(AD4)P0.4

(AD5)P0.5(AD6)P?.6(AD7)P0.7(A8)P2.0

(A9)P2.1(A10)P2.2(A11)P2.3

(A12)P2.4(A13)P2.5

(A14)P2.6(A15)P2.7VCC

GND

(RXD)P3.0TXDP3.1

ALEPROGPSENg

P33INTI)10

P3.2([NT)P3.5(T1)

P3.4(T0)EAVPPXTALIXTAL2DSI

DS2P22P00

10POIP02P3P04P05P062

2ufIk9P3.7(RD)

P3.6(WR)AT89CS130pF30pFPLIP12P1.3P1.4P1.5P1.6PL.7RI2002vcU1XTAL1XTALZPSENALEP1□P1.1P1ZP13P1.4P15P16P1.7AT9051PAC

KAGE-DIL40X111DEZHZsTEXTR1sTEXTPDDYADOPD.1AD1

PDZADZPD3AD3PD.4AD+

PDSAD5PDEAD6PD.7IAD7PZDAZPZ.1A9PZZA10PZ3A11PZ.4A12PZSA13PZBA14PZ.7A15P3DYRXD

P3.1TXDP3Z/IWTDP33IWT1P3.4/TDP3ST1

P360P3.7RD系統(tǒng)仿真電路圖C1sTEXTSTET五五334衛(wèi)二N26Z但1但141718316R2廣TETETER7[

R8TETETR6JeTE版R9#include<reg51.h>#defineuint

unsigned

int#defineucharunsigned

charsbit

key=P3^2;uchar

count;uchar

code

table[]={Ox3f,Ox06,0x5b,0x4f,Ox66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void

delay(uint

z){uint

x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);voidmain()ITO=1;EXO=1;EA=1;count=0;PO=table[count/10];P2=table[count%10];

while(1);voidint0()interrupt0count++;if(count==100)count=0;

PO=table[count/10];P2=table[count%10];程序設(shè)計(jì)程序外部中斷和花樣流水燈任務(wù)舉例1)

任務(wù)要求這里我們以任務(wù)3中的兩類(lèi)花樣進(jìn)行合并,即在此例子中

實(shí)現(xiàn)的花樣是:8個(gè)LED燈從上到下依次逐個(gè)點(diǎn)亮,再?gòu)南?/p>

到上依次逐個(gè)熄滅;然后8

個(gè)LED

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論