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

下載本文檔

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

文檔簡介

C51單片機的

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

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

溫馨提示

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

評論

0/150

提交評論