版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度山西省高校教師資格證之高等教育法規(guī)真題練習(xí)試卷B卷附答案
- 2024年大、中容量數(shù)字程控交換機(jī)項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 2024年機(jī)械治療及病房護(hù)理設(shè)備項(xiàng)目資金申請(qǐng)報(bào)告代可行性研究報(bào)告
- 幼兒園校舍安全排查自查報(bào)告范文
- 2024年產(chǎn)品保修服務(wù)協(xié)議文本
- 2024年專用液化氣運(yùn)輸服務(wù)協(xié)議范本
- 2024年建筑效果設(shè)計(jì)方案協(xié)議模板
- 2024年二手車銷售協(xié)議:全面細(xì)化
- 倉(cāng)庫(kù)租賃與承包協(xié)議范本2024年適用
- 出口業(yè)務(wù)協(xié)議樣式2024年專業(yè)
- 別墅改造項(xiàng)目合同書
- 期中測(cè)試卷(1-4單元)(試題)-2024-2025學(xué)年六年級(jí)上冊(cè)數(shù)學(xué)北師大版
- 期中測(cè)試卷-2024-2025學(xué)年統(tǒng)編版語文二年級(jí)上冊(cè)
- 2024年軟件資格考試系統(tǒng)集成項(xiàng)目管理工程師(中級(jí))(基礎(chǔ)知識(shí)、應(yīng)用技術(shù))合卷試卷及解答參考
- 學(xué)年深圳市南山區(qū)初中八年級(jí)的上數(shù)學(xué)期末試卷試題包括答案
- 2024年資格考試-注冊(cè)質(zhì)量經(jīng)理考試近5年真題附答案
- 人教版三年級(jí)語文上冊(cè)第三、四單元試卷(含答案)
- 歷史丨四川省南充市高2025屆高考適應(yīng)性考試(南充一診)高三10月聯(lián)考?xì)v史試卷及答案
- 浙江省溫州市2023-2024學(xué)年高一上學(xué)期期中考試物理試題(含答案)
- 湖北省武漢市洪山區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期中英語試題(無答案)
- 人教版七年級(jí)上冊(cè)數(shù)學(xué)期中測(cè)試卷(含答案)
評(píng)論
0/150
提交評(píng)論