單片機(jī)學(xué)習(xí)資料4教學(xué)課件_第1頁
單片機(jī)學(xué)習(xí)資料4教學(xué)課件_第2頁
單片機(jī)學(xué)習(xí)資料4教學(xué)課件_第3頁
單片機(jī)學(xué)習(xí)資料4教學(xué)課件_第4頁
單片機(jī)學(xué)習(xí)資料4教學(xué)課件_第5頁
已閱讀5頁,還剩70頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

C51單片機(jī)的

功能單元2020/12/121一、并行I/O接口80C51共有四個(gè)8位的并行雙向口。每位均有鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器組成。它們?cè)诮Y(jié)構(gòu)和功能上均有差異,下面逐一介紹之。2020/12/1221.P1口P1口是一個(gè)8位口,可以字節(jié)訪問也可以位訪問。其字節(jié)地址為90H,位地址為90H——97H。2020/12/123P1口結(jié)構(gòu)和工作過程分析P1.i鎖存器讀鎖存器VccP1.i引腳內(nèi)部總線寫鎖存器讀引腳BA內(nèi)部上拉電阻DCLQQBUF2BUF1Q2020/12/124輸出上拉結(jié)構(gòu)QVCC+2020/12/125P1口特點(diǎn)輸出鎖存輸出高電平能力弱,低電平能力強(qiáng)特殊的讀、修改、寫指令,只讀鎖存器的輸出。當(dāng)目的操作數(shù)是斷口時(shí),下列指令讀鎖存器而不是管腳。ANL、ORL、XRL、JBC、CPL、INCDEC、DJNZ、MOVPX.Y,C、CLR、SETB2020/12/126p1口舉例P1口高電平輸出能力差,對(duì)HMOS系列只有0.2mA以下,因此,直接驅(qū)動(dòng)負(fù)載時(shí)應(yīng)該用低電平驅(qū)動(dòng).低電平的拉電流能力強(qiáng).+5VP1.X2020/12/127p1口舉例輸入時(shí)應(yīng)先把I/O口置高,如果置低,可能損壞I/O口.最好硬件電路設(shè)計(jì)上有所考慮.+5VGNDP1.x2020/12/1282.P3口P3口是一個(gè)多功能8位口,可以字節(jié)訪問也可以位訪問。其字節(jié)地址為B0H,位地址為B0H—B7H。2020/12/129P3口結(jié)構(gòu)和工作過程分析P3.i鎖存器讀鎖存器VccP1.i引腳內(nèi)部總線寫鎖存器讀引腳BA內(nèi)部上拉電阻DCLQQBUF2BUF1Q第二功能輸入第二功能輸出2020/12/1210P3口第二功能P3.0—RXD,串行口輸入P3.1—TXD,串行口輸出P3.2—INT0,外部中斷0P3.3—INT1,外部中斷1P3.4—T0,定時(shí)/計(jì)數(shù)器0P3.5—T1,定時(shí)/計(jì)數(shù)器1P3.6—WR,外部存儲(chǔ)器寫選通P3.7—RD,外部存儲(chǔ)器讀選通2020/12/12113.P2口P2口是一個(gè)多功能8位口,可以字節(jié)訪問也可以位訪問。其字節(jié)地址為A0H,位地址為A0H—A7H。其第二功能是作為外部存儲(chǔ)器的高地址輸出。2020/12/1212P2口結(jié)構(gòu)和工作過程分析P2.i鎖存器讀鎖存器VccP1.i引腳內(nèi)部總線寫鎖存器讀引腳BA內(nèi)部上拉電阻DCLQQBUF2BUF1Q地址控制2020/12/1213P2口的功能特點(diǎn)不輸出地址時(shí),作為雙向I/O口使用可以作為高地址輸出能驅(qū)動(dòng)4個(gè)TTL門2020/12/12144.P0口P0口是一個(gè)多功能8位口,可以字節(jié)訪問也可以位訪問。其字節(jié)地址為80H,位地址為80H—87H。其第二功能是作為外部存儲(chǔ)器的低地址輸出和數(shù)據(jù)輸入輸出。2020/12/1215P0口結(jié)構(gòu)和工作過程分析P0.i鎖存器讀鎖存器VccP0.i引腳內(nèi)部總線寫鎖存器讀引腳BADCLQQBUF2BUF1Q01地址/數(shù)據(jù)控制2020/12/1216P0口的特點(diǎn)P0口作為總線時(shí)是地址、數(shù)據(jù)復(fù)用。作為I/O口使用時(shí)是漏極開路應(yīng)用。P0口能驅(qū)動(dòng)8個(gè)TTL門。2020/12/1217二、定時(shí)/計(jì)數(shù)器2020/12/12181、定時(shí)/計(jì)數(shù)器概述80C51系列單片機(jī)中總是包含T0,T1兩個(gè)定時(shí)/計(jì)數(shù)器,有的型號(hào)還有定時(shí)/計(jì)數(shù)器T2,定時(shí)計(jì)數(shù)器的核心是一個(gè)加一計(jì)數(shù)器,其基本功能是加一操作。如果對(duì)外部信號(hào)加一,就是計(jì)數(shù)器。如果對(duì)時(shí)鐘信號(hào)加一,就是定時(shí)器。2020/12/12192、定時(shí)/計(jì)數(shù)器T0、T12020/12/1220內(nèi)部結(jié)構(gòu)

16位計(jì)數(shù)器TH0、TL0和TH1、TL1特殊功能寄存器TMOD、TCON時(shí)鐘分頻器輸入引腳T0、T1、INT0、INT12020/12/1221內(nèi)部結(jié)構(gòu)圖TMOD(89H)不可位尋址TCON(88H)可位尋址TL1TH1TFTL1TH1TFINT1T1INT0T0CLK/12CLK/122020/12/1222TMOD方式寄存器GATED7C/TD6M1D5M0D4GATED3C/TD2M1D1M0D0T1T0M0、M1,選擇定時(shí)/計(jì)數(shù)器的模式0、1、2、3C/T,選擇定時(shí)或計(jì)數(shù)功能GATE,選擇脈沖源2020/12/1223TCON控制寄存器TFx,計(jì)數(shù)溢出時(shí)置1,進(jìn)入中斷程序時(shí)硬件清零。如果不允許中斷,需要軟件清零。TRx,控制計(jì)數(shù)定時(shí)脈沖的輸入。由軟件控制。其它位與中斷控制有關(guān),以后詳述。TF1D7TR1D6TF0D5TR0D4IE1D3IT1D2IE0D1IT0D0T1T088H8FH與中斷控制有關(guān)2020/12/1224定時(shí)/計(jì)數(shù)器T0、T1方式0TLx(5位)THx(8位)TFx申請(qǐng)中斷÷12振蕩器Tx引腳C/T=0C/T=1+TRxGATEINTx引腳AB控制x=0,1M1=0M0=02020/12/1225定時(shí)/計(jì)數(shù)器T0、T1方式1TLx(8位)THx(8位)TFx申請(qǐng)中斷÷12振蕩器Tx引腳C/T=0C/T=1+TRxGATEINTx引腳AB控制x=0,1M1=0M0=12020/12/1226定時(shí)/計(jì)數(shù)器T0、T1方式2TLx(8位)THx(8位)TFx申請(qǐng)中斷÷12振蕩器Tx引腳C/T=0C/T=1+TRxGATEINTx引腳AB控制x=0,1M1=1M0=0重裝載2020/12/1227方式3時(shí)定時(shí)/計(jì)數(shù)器T0TL0(8位)TF0申請(qǐng)中斷T0÷12振蕩器T0引腳C/T=0C/T=1+TR0GATEINT0引腳AB控制M1=1M0=1TH0(8位)TF1申請(qǐng)中斷T1÷12振蕩器TR12020/12/1228T0方式3時(shí)T1方式選擇TL1(5,8)TH1(8位)串行口÷12振蕩器T1引腳C/T=0C/T=1串行口÷12振蕩器T1引腳C/T=0C/T=1TL1(8位)TH1(8位)重裝載(a)T1方式1或0(b)T1方式22020/12/1229定時(shí)/計(jì)數(shù)器T2在51系列單片機(jī)中,8052子系列除了有定時(shí)/計(jì)數(shù)器T0、T1外,還具有功能更強(qiáng)的定時(shí)/計(jì)數(shù)器T2。除了兩個(gè)8位計(jì)數(shù)器TL2、TH2和控制寄存器T2CON及T2MOD之外,還有捕獲寄存器RCAP2L和RCAP2H。輸入引腳T2(P1.0)是外部計(jì)數(shù)脈沖輸入端。輸入引腳T2EX(P1.1)是外部控制信號(hào)輸入端。2020/12/1230T2中的特殊功能寄存器位地址位功能0CFHTF20CEHEXF20CDHRCLK0CCHTCLK0CBHEXEN20CAHTR20C9HC/T20C8HCP/RL2T2CON控制寄存器:C/T2=0功能選擇為定時(shí)器C/T2=0功能選擇為計(jì)數(shù)器2020/12/1231T2中的特殊功能寄存器T2MOD是字節(jié)尋址的,字節(jié)地址為0C9H,只有最低位有定義。D7-D1--D0DCENDCEN=1,減計(jì)數(shù);DCEN=0,加計(jì)數(shù);2020/12/1232T2的工作方式RCLK+TCLKCP/RL2TR2工作方式001自動(dòng)重裝載方式011捕獲方式1x1波特率發(fā)生器xx0關(guān)閉2020/12/1233捕獲方式TL2(8位)TF2申請(qǐng)中斷÷12振蕩器T2引腳C/T=0C/T=1控制TR2TH2(8位)RCAP2LRCAP2H控制EXF2EXEN2邊沿檢測(cè)T2EX引腳2020/12/1234自動(dòng)重裝載方式(DCEN=0)TL2(8位)TF2申請(qǐng)中斷÷12振蕩器T2引腳C/T=0C/T=1控制TR2TH2(8位)RCAP2LRCAP2H控制EXF2EXEN2邊沿檢測(cè)T2EX引腳重載2020/12/1235自動(dòng)重裝載方式(DCEN=1)TL2(8位)申請(qǐng)中斷÷12振蕩器T2引腳C/T=0C/T=1控制TR2TH2(8位)RCAP2LRCAP2H0FFH0FFHTF2T2EX管腳EXF22020/12/1236波特率發(fā)生器方式TL2(8位)TF2÷12振蕩器T2引腳C/T=0C/T=1控制TR2TH2(8位)RCAP2LRCAP2H控制EXF2EXEN2邊沿檢測(cè)T2EX引腳÷16重載中斷申請(qǐng)2020/12/1237定時(shí)器、計(jì)數(shù)器定時(shí)常數(shù)計(jì)算由于計(jì)數(shù)器是加1計(jì)數(shù)的,所以定時(shí)常數(shù)應(yīng)該求補(bǔ)碼。t=Tc×(2L-TC)=12/f(2L-TC)t:定時(shí)時(shí)間;Tc:機(jī)器周期;f:震蕩器頻率;L:計(jì)數(shù)器字長(zhǎng);2020/12/1238計(jì)算舉例:要使定時(shí)時(shí)間為2ms,而晶體震蕩頻率為12MHz,求定時(shí)常數(shù)。2ms=1us(216-TC)TC=216-2000=65536-2000=63536化成兩個(gè)字節(jié):=0f830h2020/12/1239定時(shí)/計(jì)數(shù)器編程寫TMOD,只能用字節(jié)尋址(M0,M1,C/T,GATE)。將時(shí)間常數(shù)或計(jì)數(shù)常數(shù)寫入計(jì)數(shù)器寄存器。設(shè)置中斷開放或禁止。啟動(dòng)計(jì)數(shù)器。2020/12/1240例1使用T0在P1.0腳產(chǎn)生周期為2ms方波,震蕩器頻率為6MHz。設(shè)計(jì)思路是每1ms產(chǎn)生一個(gè)中斷,中斷程序中除了重新初始化計(jì)數(shù)器外,使P1.0電平反轉(zhuǎn)。選用模式1作為T0的工作模式。即TMOD=01H由于震蕩器頻率為6MHz,即2微妙計(jì)數(shù)器計(jì)數(shù)一次。計(jì)數(shù)500次就是1ms。定時(shí)常數(shù)為65536-500=0FE0CH,即TH=0FEH,TL=0CH。主程序先初始化定時(shí)計(jì)數(shù)器,然后開啟計(jì)數(shù)器。2020/12/1241具體程序主程序段:MOVTMOD,#01HMOVTH0,#0FEHMOVTL0,#0CHSETBET0SETBEASETBTR0中斷程序:ORG000BHMOVTH0,#0F0HMOVTL0,#0CHCPLP1.0RETI2020/12/1242例2T0用方式3,這時(shí)TL0、TH0分別可作為兩個(gè)8位計(jì)數(shù)器,產(chǎn)生兩個(gè)方波。定時(shí)常數(shù)為:256-100*(12/11.0592)=147256-150*(12/11.0592)=93T1用方式2,自動(dòng)重裝載,定時(shí)常數(shù)0F9H。使用80C51單片機(jī),用T1為串行口提供波特率9600定時(shí),同時(shí)希望產(chǎn)生兩個(gè)方波,周期為200和300微妙。為產(chǎn)生準(zhǔn)確的標(biāo)準(zhǔn)波特率,震蕩器通常選擇頻率為11.0592Mhz。2020/12/1243具體程序org0bh;tl0中斷movtl0,#147cplp1.0retiorg1bh;th0中斷movth0,#93cplp1.1reti主程序片段如下:......movtmod,#23hmovtl0,#147movth0,#93movtl1,#0f9hmovth1,#0f9hsetbtr0setbtr1setbet0setbet1setbea......2020/12/1244例3T0采用方式1,中斷程序中通過判斷p1.0是高電平還是低電平來重新設(shè)置計(jì)數(shù)器初始值。計(jì)數(shù)器初始值從變量中得出,該變量的值同時(shí)由主程序動(dòng)態(tài)給出,這樣,PWM波的占空比等參數(shù)就由主程序決定了。產(chǎn)生PWM波形,PWM波形的參數(shù)由主程序動(dòng)態(tài)設(shè)置,只能使用一個(gè)定時(shí)器,比如T0。2020/12/1245具體程序;中斷程序t0int:cplp1.0jbp1.0,highmovtl0,low_level_lmovth0,low_level_hretihigh:movtl0,high_level_lmovth0,high_level_hreti;主程序 org0 ljmpstart org0bh ljmpt0int org100hstart: movtmod,#1h clrp1.0 movtl0,low_level_l movth0,low_level_h setbet0 setbea setbtr0;下面可以設(shè)定波形變量的值2020/12/12463.串行接口51系列單片機(jī)中有一個(gè)全雙工異步串行接口,可以用來和其它串行設(shè)備通訊。全雙工意味著它可以同時(shí)接收和發(fā)送。2020/12/1247UART串行口結(jié)構(gòu)接收寄存器和發(fā)送寄存器??刂七壿嫶锌诳刂萍拇嫫鞔袛?shù)據(jù)輸入輸出引腳2020/12/1248結(jié)構(gòu)圖SCON串行口控制邏輯接受SBUF發(fā)送SBUFTXRX申請(qǐng)中斷定時(shí)器單元2020/12/1249串行口的特殊功能寄存器狀態(tài)控制寄存器(SCON):位地址位功能9FHSM09EHSM19DHSM29CHREN9BHTB89AHRB899HTI98HRI2020/12/1250功率控制寄存器D7SMOD與串行口無關(guān)PCON只有最高位SMOD與串行口有關(guān):2020/12/1251串行數(shù)據(jù)寄存器發(fā)送SBUF接受SBUF寫讀2020/12/1252串行口工作方式多機(jī)通訊2020/12/1253模式0-同步移位寄存器方式數(shù)據(jù)輸入時(shí),數(shù)據(jù)由RXD引腳輸入,同時(shí)TXD引腳給出同步時(shí)鐘。數(shù)據(jù)的輸入由REN=1和RI=0啟動(dòng)。數(shù)據(jù)輸出時(shí),數(shù)據(jù)有TXD引腳輸出,同時(shí)TXD引腳給出同步時(shí)鐘。輸出由對(duì)SBUF的寫操作觸發(fā)。同步脈沖的頻率是FCLK/12。2020/12/1254輸入時(shí)序和電路D0D1D2D3D4D5D6D7RXDTXDCD4014CD4014QSQCLKCLKRXDTXD2020/12/1255輸出時(shí)序和電路D0D1D2D3D4D5D6D7RXDTXDCD4094CD4094DATAQDATACLKCLKRXDTXD2020/12/1256方式1:8個(gè)數(shù)據(jù)位通訊方式當(dāng)SM0=0、SM1=1時(shí),串行口選擇方式1。其波特率由定時(shí)計(jì)數(shù)器T1或T2的溢出速率決定。它是全雙工模式,輸入由Rx引腳,輸出由Tx引腳。它的一幀數(shù)據(jù)由一個(gè)起始位(1)、8個(gè)數(shù)據(jù)位和一個(gè)停止位(0)組成。2020/12/1257方式1幀格式D0D1D2D4D3D5D6D7起始停止1100100193H2020/12/1258方式1發(fā)送和接收完成的條件單片機(jī)1單片機(jī)2RxTxRxTx寫SBUF指令后,就觸發(fā)一個(gè)發(fā)送過程。發(fā)送完成時(shí),Ti置位表明發(fā)送寄存器空,可以寫入新內(nèi)容。當(dāng)Ri清除和REN置位后,接受到起始位觸發(fā)一個(gè)接受過程。接收完成后,置位Ri并出發(fā)中斷。只有Ri清0后,表明數(shù)據(jù)已被處理,新的數(shù)據(jù)才能接受成功。2020/12/1259方式2、3,9位數(shù)據(jù)方式當(dāng)SM0=1、SM1=0時(shí),串行口選擇方式2。當(dāng)SM0=1、SM1=1時(shí),串行口選擇方式3。發(fā)送和接收一幀信息為11位:一個(gè)起始位(1)、9個(gè)數(shù)據(jù)位和一個(gè)停止位(0)組成。數(shù)據(jù)除了8位要發(fā)送數(shù)據(jù)外,還包含第九位,發(fā)送由TB8組成,接收由RB8組成??紤]SM2=0的情況,這時(shí)第九位常用來作奇偶校驗(yàn)位。在SM2=0時(shí),接受到完整字符包括第九位時(shí)置位Ri,產(chǎn)生中斷。發(fā)送完成時(shí),置位Ti產(chǎn)生中斷。方式2和3的區(qū)別在于方式2的波特率是固定的,為f/32或f/16。而方式3的波特率由定時(shí)器的溢出速率決定。2020/12/1260方式2、3的幀格式D0D1D2D4D3D5D6D7起始停止11001001093H+0D82020/12/1261多機(jī)通訊主機(jī)從機(jī)機(jī)號(hào)1從機(jī)機(jī)號(hào)2從機(jī)機(jī)號(hào)3TXDRXDRXDRXDRXDTXDTXDTXD2020/12/1262多機(jī)通訊的設(shè)置單片機(jī)設(shè)有多機(jī)通訊位SM2(SCON.5)。當(dāng)串行口工作于方式2或3時(shí),若設(shè)置SM2=1,只有接收到的第九位(RB8)為1,才置位RI,觸發(fā)中斷,否則,數(shù)據(jù)將會(huì)丟失。利用這個(gè)特點(diǎn)可以實(shí)現(xiàn)多機(jī)通訊。每次通訊從主機(jī)對(duì)從機(jī)點(diǎn)名開始。各從機(jī)先設(shè)定SM2=1,通訊時(shí)主機(jī)先發(fā)送某從機(jī)的機(jī)號(hào),并使第九位為1。這時(shí)所有從機(jī)接收并產(chǎn)生中斷。從機(jī)把接收到的機(jī)號(hào)和自己的機(jī)號(hào)比較,如果是自己,就接著進(jìn)行下面的通訊過程。否則結(jié)束通訊,并繼續(xù)保持SM2=1。接下來主機(jī)和被點(diǎn)名的從機(jī)繼續(xù)通訊,但這時(shí)都設(shè)置SM2=0,并且發(fā)送的數(shù)據(jù)第九位0,這時(shí)不會(huì)打擾其它從機(jī)。2020/12/1263多機(jī)通訊這樣能夠使主機(jī)發(fā)送數(shù)據(jù)或命令時(shí),只有發(fā)送機(jī)號(hào)的字節(jié)使所有從機(jī)中斷,發(fā)送其它字節(jié)時(shí)并不干擾不通訊的從機(jī)。還可以定義廣播方式,比如假設(shè)機(jī)號(hào)0是廣播地址,當(dāng)收到機(jī)號(hào)0時(shí),所有從機(jī)接受數(shù)據(jù)。2020/12/1264波特率發(fā)生器和計(jì)算方式2的波特率是固定的,為:波特率=(f×2SMOD)/64方式1、3的波特率用T1產(chǎn)生:波特率=(定時(shí)器T1的溢出率×2SMOD)/32用定時(shí)器T2產(chǎn)生波特率:波特率=(定時(shí)器T1的溢出率)/162020/12/1265波特率計(jì)算舉例設(shè)震蕩器頻率為f=11.0592MHz,方式1、3,用T1方式2產(chǎn)生波特率9600,計(jì)算T1溢出率、定時(shí)器初始值。定時(shí)器T1溢出率=9600×32=30720011059200/307200=36初始值=256-36=220=0DCH2020/12/1266例1把片內(nèi)RAM內(nèi)容從50h開始16字節(jié)發(fā)送出去。接收方接收16字節(jié)后存儲(chǔ)于50h開始的內(nèi)部RAM中。使用方式1。2020/12/1267中斷系統(tǒng)突發(fā)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論