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

下載本文檔

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

文檔簡(jiǎn)介

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

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

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

2.2單片機(jī)外部引腳簡(jiǎn)介40個(gè)引腳按功能分為3類:電源和時(shí)鐘引腳:Vcc,GND,XTAL1,XTAL2編程控制引腳:RST,,

,

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

用C語言編寫單片機(jī)應(yīng)用程序與標(biāo)準(zhǔn)的C語言程序也有相應(yīng)的區(qū)別C語言編寫單片機(jī)應(yīng)用程序時(shí),需根據(jù)單片機(jī)存儲(chǔ)結(jié)構(gòu)及內(nèi)部資源定義相應(yīng)的數(shù)據(jù)類型和變量,而標(biāo)準(zhǔn)的C語言程序不需要考慮這些問題;C51包含的數(shù)據(jù)類型、變量存儲(chǔ)模式、輸入輸出處理、函數(shù)等方面與標(biāo)準(zhǔn)的C語言有一定的區(qū)別。其它的語法規(guī)則、程序結(jié)構(gòu)及程序設(shè)計(jì)方法等與標(biāo)準(zhǔn)的C語言程序設(shè)計(jì)相同。2.3C51語言簡(jiǎn)介2.3.1C51中常用數(shù)據(jù)類型(基本類型)基本數(shù)據(jù)類型長(zhǎng)度取值范圍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語言簡(jiǎn)介2.3.1C51中常用數(shù)據(jù)類型(擴(kuò)充類型)基本數(shù)據(jù)類型長(zhǎng)度取值范圍bit1位0或1sbit1位0或1sfr1字節(jié)0~255sfr162字節(jié)0~65535bit:位變量聲明例如:bitflag=0; //聲明一個(gè)變量flag,只占據(jù)一個(gè)二進(jìn)制位sbit:特殊功能位聲明,即聲明一個(gè)特殊功能寄存器中的某一位例如:sbitEA=IE^7;//EA是IE寄存器中的最高一位,該定義之后,可直接用EA對(duì)此位操作:EA=1或者EA=0;2.3C51語言簡(jiǎn)介2.3.1C51中常用數(shù)據(jù)類型(擴(kuò)充類型)基本數(shù)據(jù)類型長(zhǎng)度取值范圍bit1位0或1sbit1位0或1sfr1字節(jié)0~255sfr162字節(jié)0~65535sfr:8位特殊功能寄存器聲明例如:sfrP0=0x80;//P0是P0端口寄存器,它在存儲(chǔ)器中的地址是0x80,此定義之后,可以通過該變量符號(hào)對(duì)P0端口直接操作(即告知編譯器,程序要操作的是地址為0x80地址處的寄存器)。當(dāng)然,我們可以定義其它的名字。換種角度:通過sfr關(guān)鍵詞,讓keil編譯器在單片機(jī)與人之間搭建一條溝通的渠道,我們對(duì)P0符號(hào)操作,單片機(jī)雖不知道P0是什么,但是它知道他的內(nèi)部地址0x80是什么,從而完成操作。sfr16:16位特殊功能寄存器聲明2.3C51語言簡(jiǎn)介2.3.2C51中常用庫(kù)函數(shù)reg51.h:特殊功能寄存器和特殊功能位的聲明absacc.h:絕對(duì)地址的聲明(系統(tǒng)擴(kuò)展一章時(shí)才用到)math.h:定義常用數(shù)學(xué)運(yùn)算的2.4輸入/輸出端口編程實(shí)踐2.4.1keil軟件的使用(詳見教材P274)2.4.2USBISP下載線的使用首先插入U(xiǎn)SBISP下載線,安裝驅(qū)動(dòng)(在16上網(wǎng)下載)將“配套軟件”中的progisp.exe

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

,“選擇芯片”中選擇AT89S52將ISP下載線接頭插入電路板點(diǎn)擊按鈕“調(diào)入Flash”,選擇要運(yùn)行程序的.hex文件點(diǎn)擊按鈕“自動(dòng)”開始下載程序電路板復(fù)位,運(yùn)行程序2.4輸入/輸出端口編程實(shí)踐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輸入/輸出端口編程實(shí)踐2.4.3端口基本輸入輸出操作端口輸入操作(以P1口為例)位操作:bittemp;P1^0=1;//必須先讓該端口輸出1,temp=P1^0;//再?gòu)脑摱丝谳斎霐?shù)據(jù),賦值給變量tempP1端口整體操作:

unsignedchartemp;P1=0xFF;temp=P1;2.4輸入/輸出端口編程實(shí)踐2.4.4實(shí)踐項(xiàng)目:流水燈硬件連線:使單片機(jī)的P1、P2或者P3端口與發(fā)光二極管相連(以P2口為例)電路原理分析單片機(jī)P2口通過連線與JP14相接,從而控制發(fā)光二極管的陰極。當(dāng)P2端口輸出1時(shí)(二極管陰極呈現(xiàn)高電平),發(fā)光二極管不能導(dǎo)通,不發(fā)光;輸出0時(shí)發(fā)光。2.4輸入/輸出端口編程實(shí)踐2.4.4實(shí)踐項(xiàng)目:流水燈軟件流程分析點(diǎn)亮一個(gè)發(fā)光二極管,并延遲一段時(shí)間,然后選中下一個(gè)點(diǎn)亮,如此循環(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í)函數(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等.壓縮文件請(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. 人人文庫(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)論