09第九講輸出型外設(shè)與51io口力天手把手教你學(xué)單片機(jī)之實(shí)戰(zhàn)篇一_第1頁
09第九講輸出型外設(shè)與51io口力天手把手教你學(xué)單片機(jī)之實(shí)戰(zhàn)篇一_第2頁
09第九講輸出型外設(shè)與51io口力天手把手教你學(xué)單片機(jī)之實(shí)戰(zhàn)篇一_第3頁
09第九講輸出型外設(shè)與51io口力天手把手教你學(xué)單片機(jī)之實(shí)戰(zhàn)篇一_第4頁
09第九講輸出型外設(shè)與51io口力天手把手教你學(xué)單片機(jī)之實(shí)戰(zhàn)篇一_第5頁
已閱讀5頁,還剩24頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

手把手教你學(xué)51單片機(jī)

——之MCS-51實(shí)戰(zhàn)篇

主講:尹延輝策劃:張勇開發(fā)板:LT-Super51QQ群:31646346網(wǎng)址:E-Mail:

實(shí)戰(zhàn)篇第一講

——輸出型外設(shè)與51的IO口本講內(nèi)容提要MCS51的IO口概述LED與流水燈蜂鳴器繼電器應(yīng)用實(shí)例習(xí)題溫故知新

——C語言函數(shù)與預(yù)處理函數(shù)定義的一般形式無參函數(shù)與有參函數(shù)函數(shù)參數(shù)和函數(shù)的值形參與實(shí)參,返回值與函數(shù)類型局部變量和全局變量變量的作用域,變量同名的處理預(yù)處理命令概述三種預(yù)處理命令,與C語句的區(qū)別宏定義無參宏與有參宏,有參宏與函數(shù)的區(qū)別條件編譯條件編譯用途,三種常見形式文件包含多文件程序釋疑解惑

——C語言函數(shù)與預(yù)處理填空題C語言函數(shù)的實(shí)參可以把自身數(shù)值傳遞給形參,形參不可以(可以,不可以)把自身數(shù)值傳遞給實(shí)參。在函數(shù)內(nèi)部定義的變量稱為局部變量。作用域可以達(dá)到整個文件的變量是全局變量。C提供的預(yù)處理功能主要有以下三種:

宏定義,條件編譯,文件包含。預(yù)處理中的參數(shù)宏可以實(shí)現(xiàn)類似函數(shù)的功能。實(shí)驗(yàn)題設(shè)計一個函數(shù)完成以下功能:計算一個字符型變量循環(huán)左移任意位之后的值。提示:循環(huán)左移的意思是將左邊移出的位補(bǔ)在右邊空出的位上;本函數(shù)需要2個參數(shù),一個是待移位的原始數(shù)據(jù),一個是循環(huán)左移的位數(shù);一個返回值,返回第一個參數(shù)循環(huán)移位后得到的結(jié)果。將第三講中的1秒延時函數(shù)封裝在一個名為delay.c文件中,并設(shè)計一個頭文件使該函數(shù)可以正常被外部調(diào)用。新語新知

——MCS51的IO口概述寄存器RAM中的一些特殊單元,映射到片上外設(shè)相應(yīng)的功能IO口概述可以將“0”與“1”轉(zhuǎn)換為電壓信號的端口單片機(jī)中最常用的TTL電平:0V代表“0”,+5V代表“1”MCS51有4個8位IO口:P0,P1,P2,P3IO口的性能指標(biāo)灌電流能力:能夠流入IO口的最大電流拉電流能力:能夠從IO口流出的最大電流上拉電阻與下拉電阻最大輸入電壓新語新知

——IO口的兩種狀態(tài)輸入與輸出口的等效模型輸入口等效模型輸出口等效模型新語新知

——IO口的輸出性能指標(biāo)MCS51的拉電流能力<100uA,灌電流能力10mA使用MCS51的IO直接驅(qū)動LED、數(shù)碼管等均采用“共陽”接法灌電流能力:能夠流入IO口的最大電流拉電流能力:能夠從IO口流出的最大電流共陽接法共陰接法新語新知

——IO口的輸入性能指標(biāo)能夠承受的最大輸入電壓范圍是否有上拉電阻MCS51的IO口輸入狀態(tài)時有弱上拉電阻效應(yīng),值為100k數(shù)量級最大輸入電壓范圍:-0.5V~Vcc+0.5V新語新知

——IO、寄存器與變量IO口與IO寄存器的映射(x代表0~3)IO口寄存器:PxC語言變量與寄存器的映射reg52.h這個文件中將所有寄存器映射為同名的變量,對這些變量的讀寫相當(dāng)于對寄存器的讀寫輸出狀態(tài)IO寄存器設(shè)置Px某一位置1或0,對應(yīng)IO口相應(yīng)位的電平高低在讀取Px某一位之前,要向該位寫入1,然后讀回的數(shù)據(jù)真實(shí)反映該位IO口的輸入狀態(tài)。新語新知

——C語言與硬件環(huán)境的映射新語新知

——位運(yùn)算回顧移位運(yùn)算符:左邊為最高位,右邊為最低位左移<<左移n位相當(dāng)于乘2n運(yùn)算,左側(cè)n位丟棄,右側(cè)補(bǔ)n個0右移>>右移n位相當(dāng)于乘2-n運(yùn)算,右側(cè)n位丟棄,左側(cè)補(bǔ)n個0將某一位置1、置0、取反置1:相應(yīng)位與1進(jìn)行按位或|運(yùn)算:P0|=(1<<n);置0:相應(yīng)位與0進(jìn)行按位與&運(yùn)算:P0&=~(1<<n);取反:相應(yīng)位與1進(jìn)行按位異或^運(yùn)算:P0^=(1<<n);MCS51特有的位操作(位變量):sbitsbitLED_BIT=P1^6;LED_BIT=1;//P1.6輸出1新語新知

——發(fā)光二極管發(fā)光二極管(LED)技術(shù)指標(biāo)封裝:直插:貼片:08050603顏色:紅黃綠,白發(fā)紅、白發(fā)綠、白發(fā)藍(lán)、白發(fā)白,雙色或者三基色結(jié)壓降:1.8V~3V不等

新語新知

——蜂鳴器有源蜂鳴器加上電源電壓即可發(fā)出鳴叫聲,消耗電流20mA左右MSC51的IO口無法提供大電流,需要用三極管擴(kuò)流學(xué)習(xí)板上采用74HC573驅(qū)動蜂鳴器新語新知

——繼電器基本原理:低壓電控制高壓電通斷,電磁鐵原理。技術(shù)指標(biāo):線圈額定電壓,觸點(diǎn)最大電壓、觸點(diǎn)最大電流LT-Super51學(xué)習(xí)板用的繼電器線圈額定電壓:5V觸點(diǎn)電壓、電流:AC220V/DC30V,3A新語新知

——流水燈部分原理圖新語新知

——流水燈例程(1)實(shí)驗(yàn)一閃爍燈實(shí)驗(yàn)?zāi)康模豪?位流水燈寫一個最簡單的程序,對單片機(jī)編程有一個初步而直觀的了解。實(shí)驗(yàn)現(xiàn)象:8位流水燈(位于學(xué)習(xí)板左上角的D2~D9)周期性的同時亮滅閃爍,閃爍周期為2S。實(shí)驗(yàn)原理:U11-74HC573的L端通過開關(guān)連接在單片機(jī)IO口P1.6上,當(dāng)P1.6輸出邏輯’1’(高電平,+5V)時,74HC573相當(dāng)于直通的作用,可以將單片機(jī)P0口的狀態(tài)反映在8路輸出上,而輸出端接了8個LED,故P0口輸出高電平時對應(yīng)位的LED發(fā)光。在單片機(jī)的編程環(huán)境中,P0對應(yīng)一個1字節(jié)的無符號字符型變量,我們在程序中對此變量賦值,反映到學(xué)習(xí)板上的現(xiàn)象就是P0口輸出的變化。因此我們在程序中先將P0賦值0xff,此時代表8個LED全亮,然后延時1秒;再將P0賦值0x00,然后再延時1秒。然后將此2步驟的代碼放到一個死循環(huán)的循環(huán)體中,實(shí)現(xiàn)LED的循環(huán)閃爍。注意事項:標(biāo)有LED的開關(guān)撥到上方開的位置;如果實(shí)驗(yàn)過程中蜂鳴器鳴響,可以將標(biāo)有OUTPUT的開關(guān)撥下來關(guān)掉蜂鳴器。新語新知

——流水燈例程(2)實(shí)驗(yàn)二1位流水燈實(shí)驗(yàn)?zāi)康模豪?位的流水燈實(shí)驗(yàn)了解移位運(yùn)算符,并對字符型變量對應(yīng)到硬件上的涵義有深入了解。實(shí)驗(yàn)現(xiàn)象:1位發(fā)光的LED在8位LED上周期性的循環(huán)移位,移位時間間隔為1S。實(shí)驗(yàn)原理:利用C語言的移位運(yùn)算符使1位發(fā)光的LED產(chǎn)生移位,通過檢查P0的數(shù)值是否為0判斷是否移出8位的位置,如果移出了,則給P0重新賦初值,從而實(shí)現(xiàn)循環(huán)移位。注意事項:標(biāo)有LED的開關(guān)撥到上方開的位置;如果實(shí)驗(yàn)過程中蜂鳴器鳴響,可以將標(biāo)有OUTPUT的開關(guān)撥下來關(guān)掉蜂鳴器。新語新知

——流水燈例程(3)實(shí)驗(yàn)三2位流水燈實(shí)驗(yàn)?zāi)康模豪?位的流水燈實(shí)驗(yàn)了解移位運(yùn)算符,并對字符型變量對應(yīng)到硬件上的涵義有深入了解。實(shí)驗(yàn)現(xiàn)象:2位發(fā)光的LED在8位LED上周期性的循環(huán)移位,移位時間間隔為1S。實(shí)驗(yàn)原理:利用C語言的移位運(yùn)算符使2位發(fā)光的LED產(chǎn)生移位,通過檢查P0的數(shù)值,判斷2位發(fā)光的LED的位置,從而實(shí)現(xiàn)循環(huán)移位。注意事項:標(biāo)有LED的開關(guān)撥到上方開的位置;如果實(shí)驗(yàn)過程中蜂鳴器鳴響,可以將OUTPUT開關(guān)關(guān)掉。新語新知

——流水燈例程(4)實(shí)驗(yàn)四模塊化設(shè)計的閃爍燈程序?qū)嶒?yàn)?zāi)康模和ㄟ^對實(shí)驗(yàn)一的相關(guān)代碼進(jìn)行函數(shù)封裝與預(yù)定義處理,熟悉模塊化編程的方法。實(shí)驗(yàn)現(xiàn)象:(同實(shí)驗(yàn)一)8位流水燈(位于學(xué)習(xí)板左上角的D2~D9)周期性的同時亮滅閃爍,閃爍周期為2S。實(shí)驗(yàn)原理:將實(shí)驗(yàn)一中用于延時的代碼封裝成函數(shù),對LED操作的代碼封裝成預(yù)定義宏的形式。注意事項:標(biāo)有LED的開關(guān)撥到上方開的位置;如果實(shí)驗(yàn)過程中蜂鳴器鳴響,可以將標(biāo)有OUTPUT的開關(guān)撥下來關(guān)掉蜂鳴器。新語新知

——流水燈例程(5)實(shí)驗(yàn)五速度可調(diào)的1位流水燈程序?qū)嶒?yàn)?zāi)康模和ㄟ^對實(shí)驗(yàn)二的相關(guān)代碼進(jìn)行函數(shù)封裝與預(yù)定義處理,熟悉帶參數(shù)的函數(shù)使用方法。實(shí)驗(yàn)現(xiàn)象:(同實(shí)驗(yàn)二)1位發(fā)光的LED在8位LED上周期性的循環(huán)移位,移位時間間隔可在代碼中調(diào)整。實(shí)驗(yàn)原理:將實(shí)驗(yàn)二中用于延時的代碼封裝成帶參數(shù)的函數(shù),對LED操作的代碼封裝成預(yù)定義宏的形式。注意事項:標(biāo)有LED的開關(guān)撥到上方開的位置;如果實(shí)驗(yàn)過程中蜂鳴器鳴響,可以將標(biāo)有OUTPUT的開關(guān)撥下來關(guān)掉蜂鳴器。新語新知

——蜂鳴器部分原理圖新語新知

——蜂鳴器等效原理圖新語新知

——蜂鳴器例程(1)實(shí)驗(yàn)七蜂鳴器周期性鳴響實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模撼醪搅私庥性捶澍Q器的用法。實(shí)驗(yàn)現(xiàn)象:蜂鳴器周期性鳴響,周期為2S。實(shí)驗(yàn)原理:學(xué)習(xí)板上采用的是有源蜂鳴器,即“給電即響”,控制蜂鳴器的IO口(P0.3)輸出高電平時蜂鳴器就會鳴響,低電平時蜂鳴器關(guān)閉。因此結(jié)合1S延時函數(shù),隔一秒鐘對P0.3取反一次,即可達(dá)到預(yù)計的實(shí)驗(yàn)效果。新語新知

——蜂鳴器例程(2)實(shí)驗(yàn)八蜂鳴器與流水燈同時工作實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模撼醪秸莆绽?4HC573鎖存器實(shí)現(xiàn)IO口復(fù)用的原理與方法,理解通過數(shù)字芯片產(chǎn)生片選信號的原理。實(shí)驗(yàn)現(xiàn)象:蜂鳴器周期性鳴響,周期為2S;同時1位流水燈以1S為周期循環(huán)移動實(shí)驗(yàn)原理:在實(shí)驗(yàn)六中,可以觀察到蜂鳴器鳴響的同時,流水燈第3位也同時閃爍,這是因?yàn)槲覀儧]有把控制流水燈的74HC573的片選信號置為低電平。我們可以利用74HC573的鎖存、數(shù)據(jù)保持功能,分別將流水燈與蜂鳴器的數(shù)據(jù)輸出到鎖存器,使得流水燈與蜂鳴器同時工作而互不影響。根據(jù)圖5.2.1,可以看出P2.7~P2.3輸出為二進(jìn)制的10001時,U24C的第8腳為低電平,此時P3.6(WR)也為低電平時,U24C會輸出高電平(U24C是一個或非門,0與0取或后結(jié)果為0,再取非結(jié)果為1)。因此保持P2口數(shù)據(jù)為二進(jìn)制10001000(十六進(jìn)制0x88),P3.6給一個低電平就可以將控制蜂鳴器的74HC573選通(L端為高電平),P3.6恢復(fù)高電平使得74HC573鎖存數(shù)據(jù)(L端恢復(fù)低電平)。因此這一句代碼實(shí)現(xiàn)的功能是使得控制蜂鳴器的74HC573處于直通狀態(tài)。P3&=~(1<<6);

P2=0x88;新語新知

——蜂鳴器例程(3)實(shí)驗(yàn)九英特爾總線方式控制蜂鳴器實(shí)驗(yàn)?zāi)康模簩W(xué)習(xí)時序圖的用法,初步掌握英特爾總線的工作時序與使用方法,理解利用數(shù)字芯片和74HC573制作英特爾總線輸出型單元的方法。實(shí)驗(yàn)現(xiàn)象:蜂鳴器周期性鳴響,周期為2S;同時1位流水燈以1S為周期循環(huán)移動。(同實(shí)驗(yàn)七)實(shí)驗(yàn)原理:英特爾總線時序相關(guān)原理見4.5節(jié)。對于外部存儲器的訪問,常用的有兩種方式,一是直接通過xdata關(guān)鍵字定義位于外部SRAM中的變量,二是通過XBYTE[Addr]的方式直接按地址訪問總線存儲單元。LT-Super51學(xué)習(xí)板的控制蜂鳴器IO相當(dāng)于處于特定地址(Addr=0x8800)的一字節(jié)外部存儲單元,因此宜采用第二種方式訪問。采用這種訪問方式,需要包含頭文件absacc.h。注意代碼的第26行,可以看出用這種方式操作擴(kuò)展IO是極其方便的。新語新知

——繼電器部分原理圖新語新知

——繼電器等效原理圖新語新知

——繼電器例程(1)實(shí)驗(yàn)十二繼電器定時實(shí)驗(yàn)實(shí)驗(yàn)?zāi)康模撼醪搅私饫^電器的工作原理與使用方法。實(shí)驗(yàn)現(xiàn)象:繼電器周期性吸合與斷開,周期為2S。實(shí)驗(yàn)原理:相比于蜂鳴器,繼電器的工作電流要大很多(蜂鳴器20mA,繼電器100mA左右),學(xué)習(xí)板上采用NPN型三極管D8050驅(qū)動繼電器。輸出到三極管的基極的IO口(P0.2)輸出高電平時繼電器就會吸合,低電平時繼電器斷開。因此結(jié)合1S延時函數(shù),隔一秒鐘對P0.2取反一次,即可達(dá)到預(yù)計的實(shí)驗(yàn)效果。動手實(shí)戰(zhàn)

——課后習(xí)題填空題MCS51的IO口拉電流能力是____,灌電流能力是____,因此用MCS51驅(qū)動LED

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論