第02章-單片機輸入輸出端口_第1頁
第02章-單片機輸入輸出端口_第2頁
第02章-單片機輸入輸出端口_第3頁
第02章-單片機輸入輸出端口_第4頁
第02章-單片機輸入輸出端口_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2章單片機輸入/輸出端口章節(jié)安排:

2.1單片機時序簡介 2.2單片機外部引腳簡介 2.3C51語言簡介 2.4輸入/輸出端口編程實踐能力要求: 了解單片機時序 掌握單片機端口輸入/輸出操作 掌握編程實踐環(huán)境與工具的應(yīng)用 2.1單片機時序簡介時鐘周期概念:單片機在工作時,由內(nèi)部振蕩器產(chǎn)生或由外部直接輸入的送至內(nèi)部控制邏輯單元的時鐘信號稱為時鐘周期時鐘周期的大小是時鐘信號頻率(常用fosc表示)的倒數(shù)若時鐘頻率為12MHz,即fosc=12MHz,則時鐘周期=1/(12*106)狀態(tài)周期概念:一個狀態(tài)周期S由2個時鐘周期構(gòu)成機器周期一個機器周期由6個狀態(tài)周期或者說由12個時鐘周期構(gòu)成2.1單片機時序簡介機器周期機器周期是單片機的基本操作周期每個機器周期包含S1、S2、

、S66個狀態(tài),每個狀態(tài)包含2拍P1和P2,每一拍為一個時鐘周期(振蕩周期)。因此,一個機器周期包含12個時鐘周期。依次可表示為S1P1、S1P2、S2P1、S2P2、…、S6P1、S6P2。S1P1P2S2P1P2S3P1P2S4P1P2S5P1P2S6P1P2時鐘信號2.1單片機時序簡介指令周期概念:CPU取出一條指令到該指令執(zhí)行結(jié)束后所需要的時間指令周期是以機器周期為單位來衡量時間的長短不同指令,其指令周期不盡相同MCS-51系列單片機中,大多數(shù)指令的指令周期由一個機器周期或兩個機器周期組成,只有乘法、除法指令須要4機器周期指令。單機器周期指令的時序S1S2S3S4S5S6讀操作碼讀無效(丟失)單字節(jié)單機器周期指令S1S2S3S4S5S6讀操作碼讀第二個字節(jié)雙字節(jié)單機器周期指令雙機器周期指令的時序S1S2S3S4S5S6讀操作碼S1S2S3S4S5S6三次讀操作無效(丟失)單字節(jié)、雙機器周期指令的時序2.2單片機外部引腳簡介(以40引腳為例)

2.2單片機外部引腳簡介40個引腳按功能分為3類:電源和時鐘引腳:Vcc,GND,XTAL1,XTAL2編程控制引腳:RST,,

(只要求了解這些引腳即可)I/O端口引腳:P0,P1,P2,P3(必須掌握)電源引腳VCC(40腳):接+5V電源正端。GND(20腳):接電源地端。時鐘引腳XTAL1(19腳):內(nèi)部振蕩電路的輸入端XTAL2(18腳):內(nèi)部震蕩電路的輸出端8051時鐘通常采取片內(nèi)時鐘振蕩方式:兩個引腳需要外接石英晶體和振蕩電容(該電容取值一般在10pF~30pF之間)2.2單片機外部引腳簡介--電源和時鐘引腳RST(9腳):RST即為RESET。當(dāng)單片機振蕩器工作時,該引腳上出現(xiàn)持續(xù)兩個機器周期的高電平,就可實現(xiàn)復(fù)位操作,使單片機回復(fù)到初始狀態(tài)。單片機復(fù)位后,從0000H地址處讀取第一條指令并開始執(zhí)行(29腳):外部程序存儲器的讀選通信號,低電平有效。在對外部程序存儲器進行讀操作時,每個周期出現(xiàn)兩次信號,連線時與外部ROM的OE引腳相連在讀取外部的RAM時,該引腳不會有輸出單片機內(nèi)部已經(jīng)有足夠大的ROM,通常不需要外擴程序存儲器,因此該引腳通常不使用2.2單片機外部引腳簡介—編程控制引腳ALE/PROG(30腳):地址鎖存信號輸出端當(dāng)外接存儲器(ROM或RAM)時,ALE的輸出用于鎖存地址的低8位,一般ALE接鎖存器的EN端當(dāng)沒有外部存儲器時,ALE端可用于脈沖信號輸出,且頻率是石英振蕩頻率的1/6。在燒寫EPROM時,該引腳用作編程脈沖PROG的輸入端(31腳):訪問程序存儲器控制信號當(dāng)該引腳接低電平時,對ROM的讀操作限定于對外部程序存儲器訪問(內(nèi)部的失效)當(dāng)該引腳接高電平時,對ROM的讀操作首先從內(nèi)部ROM開始,內(nèi)部訪問完畢后才訪問外部ROM(內(nèi)部ROM沒有的編織部分)2.2單片機外部引腳簡介—編程控制引腳P0口(39~32腳):P0.0~P0.7統(tǒng)稱為P0口。P0口的每一位端口都可以單獨控制輸入或者輸出P0口作為I/O口使用時,必須外接上拉電阻(一般選擇10K左右)。P1口(1~8腳):P1.0~P1.7統(tǒng)稱為P1口。P1口的每一位端口都可以單獨控制輸入或者輸出P1口內(nèi)部自帶上拉電阻,使用時不需要外接P2口(21~28腳):P2.0~P2.7統(tǒng)稱為P2口同P1口P3口(10~17腳):P3.0~P3.7統(tǒng)稱為P3口P3口作為普通端口使用時,同P1口P3口還可以將每一位用于第二功能,而且P3口的每一條引腳均可獨立定義為第一功能的輸入輸出或第二功能。P0~P3口都是準(zhǔn)雙向口端口在作為輸入使用前,必須先向該口寫1(即輸出1),然后在執(zhí)行讀取操作,才能獲取正確結(jié)果端口輸出可以直接進行2.2單片機外部引腳簡介—I/O端口引腳2.2單片機外部引腳簡介—I/O端口引腳P3口第二功能P3.0RXD串行口輸入端P3.1TXD串行口輸出端P3.2INT0外部中斷0請求輸入端,低電平有效P3.3INT1外部中斷1請求輸入端,低電平有效P3.4T0定時/計數(shù)器0外部計數(shù)脈沖輸入端P3.5T1定時/計數(shù)器0外部計數(shù)脈沖輸入端P3.6WR外部數(shù)據(jù)存儲器寫信號,低電平有效P3.7RD外部數(shù)據(jù)存儲器讀信號,低電平有效2.2單片機外部引腳簡介—I/O端口引腳強調(diào)51單片機中4個8位的并行I/O接口P0,P1,P2,P3:分別對應(yīng)著1個特殊功能寄存器,這些寄存器分別稱之為P0,P1,P2,P3口寄存器通過特殊功能寄存器的讀寫完成對端口的操作每個端口既可以數(shù)據(jù)輸入,也可以數(shù)據(jù)輸出每個端口既可以整體8位一起操作,也可以按位操作。2.3C51語言簡介在C51語言編程中,對數(shù)據(jù)類型與變量的定義,必須要與單片機的存儲結(jié)構(gòu)相關(guān)聯(lián),否則編譯器不能正確地映射定位。

用C語言編寫單片機應(yīng)用程序與標(biāo)準(zhǔn)的C語言程序也有相應(yīng)的區(qū)別C語言編寫單片機應(yīng)用程序時,需根據(jù)單片機存儲結(jié)構(gòu)及內(nèi)部資源定義相應(yīng)的數(shù)據(jù)類型和變量,而標(biāo)準(zhǔn)的C語言程序不需要考慮這些問題;C51包含的數(shù)據(jù)類型、變量存儲模式、輸入輸出處理、函數(shù)等方面與標(biāo)準(zhǔn)的C語言有一定的區(qū)別。其它的語法規(guī)則、程序結(jié)構(gòu)及程序設(shè)計方法等與標(biāo)準(zhǔn)的C語言程序設(shè)計相同。2.3C51語言簡介2.3.1C51中常用數(shù)據(jù)類型(基本類型)基本數(shù)據(jù)類型長度取值范圍unsignedchar1字節(jié)0~255signedchar1字節(jié)-128~+127unsignedint2字節(jié)0~65535signedint2字節(jié)-32768~+32767unsignedlong4字節(jié)0~4294967295signedlong4字節(jié)-2147483648~+2147483647float4字節(jié)

1.175494E-38~

3.402823E+382.3C51語言簡介2.3.1C51中常用數(shù)據(jù)類型(擴充類型)基本數(shù)據(jù)類型長度取值范圍bit1位0或1sbit1位0或1sfr1字節(jié)0~255sfr162字節(jié)0~65535bit:位變量聲明例如:bitflag=0; //聲明一個變量flag,只占據(jù)一個二進制位sbit:特殊功能位聲明,即聲明一個特殊功能寄存器中的某一位例如:sbitEA=IE^7;//EA是IE寄存器中的最高一位,該定義之后,可直接用EA對此位操作:EA=1或者EA=0;2.3C51語言簡介2.3.1C51中常用數(shù)據(jù)類型(擴充類型)基本數(shù)據(jù)類型長度取值范圍bit1位0或1sbit1位0或1sfr1字節(jié)0~255sfr162字節(jié)0~65535sfr:8位特殊功能寄存器聲明例如:sfrP0=0x80;//P0是P0端口寄存器,它在存儲器中的地址是0x80,此定義之后,可以通過該變量符號對P0端口直接操作(即告知編譯器,程序要操作的是地址為0x80地址處的寄存器)。當(dāng)然,我們可以定義其它的名字。換種角度:通過sfr關(guān)鍵詞,讓keil編譯器在單片機與人之間搭建一條溝通的渠道,我們對P0符號操作,單片機雖不知道P0是什么,但是它知道他的內(nèi)部地址0x80是什么,從而完成操作。sfr16:16位特殊功能寄存器聲明2.3C51語言簡介2.3.2C51中常用庫函數(shù)reg51.h:特殊功能寄存器和特殊功能位的聲明absacc.h:絕對地址的聲明(系統(tǒng)擴展一章時才用到)math.h:定義常用數(shù)學(xué)運算的2.4輸入/輸出端口編程實踐2.4.1keil軟件的使用(詳見教材P274)2.4.2USBISP下載線的使用首先插入USBISP下載線,安裝驅(qū)動(在16上網(wǎng)下載)將“配套軟件”中的progisp.exe

發(fā)送到桌面快捷方式雙擊運行progisp.exe

,“選擇芯片”中選擇AT89S52將ISP下載線接頭插入電路板點擊按鈕“調(diào)入Flash”,選擇要運行程序的.hex文件點擊按鈕“自動”開始下載程序電路板復(fù)位,運行程序2.4輸入/輸出端口編程實踐2.4.3端口基本輸入/輸出操作端口輸出操作(以P1口為例)位操作: P1^0=1;//從P1.0口輸出數(shù)據(jù)1或者:

sbit P1.1=P1^1; P1.1=1;P1端口整體操作:

P1=0x55;//通過P1口輸出數(shù)據(jù)0x552.4輸入/輸出端口編程實踐2.4.3端口基本輸入輸出操作端口輸入操作(以P1口為例)位操作:bittemp;P1^0=1;//必須先讓該端口輸出1,temp=P1^0;//再從該端口輸入數(shù)據(jù),賦值給變量tempP1端口整體操作:

unsignedchartemp;P1=0xFF;temp=P1;2.4輸入/輸出端口編程實踐2.4.4實踐項目:流水燈硬件連線:使單片機的P1、P2或者P3端口與發(fā)光二極管相連(以P2口為例)電路原理分析單片機P2口通過連線與JP14相接,從而控制發(fā)光二極管的陰極。當(dāng)P2端口輸出1時(二極管陰極呈現(xiàn)高電平),發(fā)光二極管不能導(dǎo)通,不發(fā)光;輸出0時發(fā)光。2.4輸入/輸出端口編程實踐2.4.4實踐項目:流水燈軟件流程分析點亮一個發(fā)光二極管,并延遲一段時間,然后選中下一個點亮,如此循環(huán)。流水燈參考代碼一#include<reg51.h>sbitled1=P2^0;sbitled2=P2^1;sbitled3=P2^2;sbitled4=P2^3;sbitled5=P2^4;sbitled6=P2^5;sbitled7=P2^6;sbitled8=P2^7;voiddelayms(unsigned

inti);/*延時函數(shù)*/main(){ while(1) { led1=0; delayms(100); led1=1; led2=0; delayms(100); led2=1; led3=0; delayms(100); led3=1; led4=0; delayms(100); led4=1; led5=0; delayms(100); led5=1; led6=0; delayms(100); led6=1; led7=0; delayms(100); led7=1; led8=0; delayms(100); led8=1; led1=0; delayms(100); }}voiddelayms(unsigned

inti)//延遲函數(shù){unsignedintj;

for(;i>0;i--)

for(j=100;j>0;j--);}流水燈參考代碼二#include<reg

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論