《單片機(jī)技術(shù)應(yīng)用》 課件_第1頁(yè)
《單片機(jī)技術(shù)應(yīng)用》 課件_第2頁(yè)
《單片機(jī)技術(shù)應(yīng)用》 課件_第3頁(yè)
《單片機(jī)技術(shù)應(yīng)用》 課件_第4頁(yè)
《單片機(jī)技術(shù)應(yīng)用》 課件_第5頁(yè)
已閱讀5頁(yè),還剩40頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

單片機(jī)應(yīng)用技術(shù)單片機(jī)應(yīng)用技術(shù)函數(shù)函數(shù)的定義及分類函數(shù)是一個(gè)完成一定相關(guān)功能的執(zhí)行代碼段。在高級(jí)語(yǔ)言中,函數(shù)與另外兩個(gè)名詞“子程序”和“過(guò)程”用來(lái)描述同樣的事情。在C51語(yǔ)言中使用的是函數(shù)這個(gè)術(shù)語(yǔ)。C51語(yǔ)言中函數(shù)的數(shù)目是不限制的,但是一個(gè)C51程序必須至少有一個(gè)函數(shù),以main為名,稱為主函數(shù),主函數(shù)是唯一的,整個(gè)程序從這個(gè)主函數(shù)開始執(zhí)行。從結(jié)構(gòu)上分,C51語(yǔ)言函數(shù)可分為主函數(shù)main()和普通函數(shù)兩種。而普通函數(shù)又劃分為兩種:標(biāo)準(zhǔn)庫(kù)函數(shù)和用戶自定義函數(shù)。標(biāo)準(zhǔn)庫(kù)函數(shù)標(biāo)準(zhǔn)庫(kù)函數(shù)是由C51編譯器提供的。編程者在進(jìn)行程序設(shè)計(jì)時(shí),應(yīng)該善于充分利用這些功能強(qiáng)大、資源豐富的標(biāo)準(zhǔn)庫(kù)函數(shù)資源,以提高編程效率。用戶可直接調(diào)用C51庫(kù)函數(shù)而不需為這個(gè)函數(shù)寫任何代碼,只需要包含具有該函數(shù)說(shuō)明的頭文件即可。例如調(diào)用輸出函數(shù)printf時(shí),要求程序在調(diào)用輸出庫(kù)函數(shù)前包含以下的include命令:

#include<stdio.h>用戶自定義函數(shù)用戶自定義函數(shù)是用戶根據(jù)需要所編寫的函數(shù)。從函數(shù)定義的形式分為:無(wú)參函數(shù)、有參函數(shù)和空函數(shù)。1.無(wú)參函數(shù)此種函數(shù)在被調(diào)用時(shí),既無(wú)參數(shù)輸入,也不返回結(jié)果給調(diào)用函數(shù),只是為完成某種操作而編寫的函數(shù)。無(wú)參函數(shù)的定義形式為:返回值類型標(biāo)識(shí)符函數(shù)名(){ 函數(shù)體;}無(wú)參函數(shù)一般不帶返回值,因此函數(shù)的返回值類型的標(biāo)識(shí)符可省略。例如:main(),為無(wú)參函數(shù),返回值類型的標(biāo)識(shí)符可省略,默認(rèn)值是int類型。用戶自定義函數(shù)返回值類型標(biāo)識(shí)符函數(shù)名(形式參數(shù)列表)形式參數(shù)說(shuō)明{ 函數(shù)體;}2.有參函數(shù)調(diào)用此種函數(shù)時(shí),必須提供實(shí)際的輸入函數(shù)。有參函數(shù)的定義形式為:用戶自定義函數(shù)【例】定義一個(gè)函數(shù)max(),用于求兩個(gè)數(shù)中的大數(shù)。inta,bintmax(a,b){ if(a>b)return(a); elsereturn(b);}程序段中,a、b為形式參數(shù)。return()為返回語(yǔ)句。用戶自定義函數(shù)返回值類型標(biāo)識(shí)符函數(shù)名(){}例如:floatmin(){} /*空函數(shù),占好位置*/3.空函數(shù)此種函數(shù)體內(nèi)是空白的。調(diào)用空函數(shù)時(shí),什么工作也不做,不起任何作用。定義空函數(shù)的目的,并不是為了執(zhí)行某種操作,而是為了以后程序功能的擴(kuò)充。先將一些基本模塊的功能函數(shù)定義成空函數(shù),占好位置,并寫好注釋,以后再用一個(gè)編好的函數(shù)代替它。這樣整個(gè)程序的結(jié)構(gòu)清晰,可讀性好,以后擴(kuò)充新功能方便??蘸瘮?shù)的定義形式為:函數(shù)的調(diào)用函數(shù)調(diào)用的一般形式在一個(gè)函數(shù)中需要用到某個(gè)函數(shù)的功能時(shí),就調(diào)用該函數(shù)。調(diào)用者稱為主調(diào)函數(shù),被調(diào)用者稱為被調(diào)函數(shù)。函數(shù)名{實(shí)際參數(shù)列表};若被調(diào)函數(shù)是有參函數(shù),則主調(diào)函數(shù)必須把被調(diào)函數(shù)所需的參數(shù)傳遞給被調(diào)函數(shù)。傳遞給被調(diào)函數(shù)的數(shù)據(jù)稱為實(shí)際參數(shù)(簡(jiǎn)稱實(shí)參),必須與形參的數(shù)據(jù)在數(shù)量、類型和順序上都一致。實(shí)參可以是常量、變量和表達(dá)式。實(shí)參對(duì)形參的數(shù)據(jù)是單向的,即只能將實(shí)參傳遞給形參.函數(shù)的調(diào)用函數(shù)調(diào)用的方式函數(shù)調(diào)用語(yǔ)句把被調(diào)用函數(shù)的函數(shù)名作為主調(diào)函數(shù)的一個(gè)語(yǔ)句。例如:print_message();此時(shí),并不要求函數(shù)返回結(jié)果數(shù)值,只要求函數(shù)完成某種操作。主調(diào)用函數(shù)對(duì)被調(diào)用函數(shù)的調(diào)用有以下3種方式。(1)函數(shù)調(diào)用語(yǔ)句函數(shù)的調(diào)用函數(shù)結(jié)果作為表達(dá)式的一個(gè)運(yùn)算對(duì)象,例如:

result=2*gcd(a,b);被調(diào)用函數(shù)以一個(gè)運(yùn)算對(duì)象出現(xiàn)在表達(dá)式中。這要求被調(diào)用函數(shù)帶有return語(yǔ)句,以便返回一個(gè)明確的數(shù)值參加表達(dá)式的運(yùn)算。被調(diào)用函數(shù)gcd為表達(dá)式的一部分,它的返回值乘2再賦給變量result。(2)函數(shù)結(jié)果作為表達(dá)式的一個(gè)運(yùn)算對(duì)象函數(shù)參數(shù)即被調(diào)用函數(shù)作為另一個(gè)函數(shù)的實(shí)際參數(shù)。例如:

m=max(a,gcd(u,v));其中,gcd(u,v)是一次函數(shù)調(diào)用,它的值作為另一個(gè)函數(shù)的max()的實(shí)際參數(shù)之一。(3)函數(shù)參數(shù)單片機(jī)與矩陣鍵盤接口電路單片機(jī)與矩陣鍵盤接口電路ATM機(jī)鍵盤POS機(jī)鍵盤門禁機(jī)鍵盤獨(dú)立按鍵是否按下的電平變化:當(dāng)獨(dú)立按鍵沒(méi)被按下時(shí),與其相連的單片機(jī)P1.0口的電平狀態(tài)為高電平;當(dāng)獨(dú)立按鍵被按下時(shí),與其相連的單片機(jī)P1.0口的電平狀態(tài),由高電平變?yōu)榈碗娖?。單片機(jī)與矩陣鍵盤接口電路矩陣鍵盤是單片機(jī)外部設(shè)備中所使用的排布類似于矩陣的鍵盤組單片機(jī)與矩陣鍵盤接口電路4X4矩陣鍵盤16個(gè)獨(dú)立按鍵的接口電路4X4矩陣鍵盤實(shí)物圖4X4矩陣鍵盤原理圖單片機(jī)與矩陣鍵盤接口電路4X4矩陣鍵盤原理圖單片機(jī)與矩陣鍵盤接口電路單片機(jī)與矩陣鍵盤接口電路在技能競(jìng)賽中的應(yīng)用矩陣鍵盤的接口電路設(shè)計(jì)是單片機(jī)應(yīng)用技術(shù)課程的重要知識(shí)點(diǎn)。在很多的單片機(jī)應(yīng)用技術(shù)相關(guān)的技能競(jìng)賽中,都有矩陣鍵盤的應(yīng)用。在學(xué)習(xí)過(guò)程中,可以為相關(guān)的技能競(jìng)賽夯實(shí)基礎(chǔ)。單片機(jī)與矩陣鍵盤接口電路定時(shí)器計(jì)數(shù)器相關(guān)寄存器TMOD定時(shí)/計(jì)數(shù)器的工作過(guò)程1、設(shè)定定時(shí)/計(jì)數(shù)器的工作方式2、設(shè)定定時(shí)/計(jì)數(shù)器的初值3、啟動(dòng)定時(shí)/計(jì)數(shù)器4、等待定時(shí)/計(jì)數(shù)器溢出那么工作方式的設(shè)定怎么來(lái)實(shí)現(xiàn)呢?定時(shí)/計(jì)數(shù)器的結(jié)構(gòu)TH0TL07700(0x8C)(0x8A)TH1TL17700(0x8D)(0x8B)定時(shí)器T1定時(shí)器T0TCON(0x88)TMOD(0x89)作用:TMOD用來(lái)確定兩個(gè)定時(shí)/計(jì)數(shù)器的工作方式。低半字節(jié)設(shè)置定時(shí)/計(jì)數(shù)器T0,高半字節(jié)設(shè)置定時(shí)/計(jì)數(shù)器T1。定時(shí)/計(jì)數(shù)器的方式寄存器TMOD字節(jié)地址:0x89,不可以位操作。TMOD(0x89)GATEM1M0GATEM1M0C/TC/T定時(shí)/計(jì)數(shù)器T1定時(shí)/計(jì)數(shù)器T0D7D6D5D4D3D2D1D0定時(shí)/計(jì)數(shù)器的方式寄存器TMODTMOD(0x89)GATEM1M0GATEM1M0C/TC/T定時(shí)/計(jì)數(shù)器T1定時(shí)/計(jì)數(shù)器T0M1,M0:方式選擇位??梢赃x擇為方式0、1、2、3之1。M1M0工作方式功能說(shuō)明

00方式013位計(jì)數(shù)器

01方式116位計(jì)數(shù)器10方式2自動(dòng)再裝入8位計(jì)數(shù)器11方式3定時(shí)器0:兩個(gè)各自獨(dú)立的8位計(jì)數(shù)器定時(shí)器1:停止計(jì)數(shù)定時(shí)/計(jì)數(shù)器的方式寄存器TMODTMOD(0x89)GATEM1M0GATEM1M0C/TC/T定時(shí)/計(jì)數(shù)器T1定時(shí)/計(jì)數(shù)器T0C/T:定時(shí)/計(jì)數(shù)器功能選擇位。

C/T=0,設(shè)置為定時(shí)功能。

定時(shí)/計(jì)數(shù)器對(duì)內(nèi)部機(jī)器周期計(jì)數(shù)。

C/T=1,設(shè)置為計(jì)數(shù)功能。定時(shí)/計(jì)數(shù)器對(duì)來(lái)自T0(P3.4)或T1(P3.5)端

的外部脈沖計(jì)數(shù)。

定時(shí)/計(jì)數(shù)器的方式寄存器TMODTMOD(0x89)GATEM1M0GATEM1M0C/TC/T定時(shí)/計(jì)數(shù)器T1定時(shí)/計(jì)數(shù)器T0計(jì)數(shù)器溢出標(biāo)志TF達(dá)到計(jì)數(shù)次數(shù)脈沖源啟動(dòng)控制TR0GATE&1>1INT0(P3.2)10111GATE:門控位。GATE=0:只要軟件控制TR0或TR1置1即可啟動(dòng)定時(shí)器開始工作,稱軟件啟動(dòng);定時(shí)/計(jì)數(shù)器的方式寄存器TMODTMOD(0x89)GATEM1M0GATEM1M0C/TC/T定時(shí)/計(jì)數(shù)器T1定時(shí)/計(jì)數(shù)器T0計(jì)數(shù)器溢出標(biāo)志TF達(dá)到計(jì)數(shù)次數(shù)脈沖源啟動(dòng)控制TR0GATE&1>1INT0(P3.2)11011GATE:門控位。1GATE=1:只有TR0或TR1置1且INT0或INT1引腳為高電平時(shí),才能啟動(dòng)相應(yīng)的定時(shí)器開始工作。也稱硬件啟動(dòng)。定時(shí)/計(jì)數(shù)器T1定時(shí)/計(jì)數(shù)器T0

TMOD(0x89)功能選擇0—定時(shí)功能1—計(jì)數(shù)功能工作方式00—方式001—方式110—方式211—方式3門控位0—軟件啟動(dòng),不受INT1控制

1—硬件啟動(dòng),受INT1控制門控位0—軟件啟動(dòng),不受INT0控制

1—硬件啟動(dòng),受INT0控制GATEM1M0GATEM1M0C/TC/T工作方式00—方式001—方式110—方式211—方式3功能選擇0—定時(shí)功能1—計(jì)數(shù)功能定時(shí)/計(jì)數(shù)器的方式寄存器TMOD將定時(shí)/計(jì)數(shù)器0設(shè)定為工作方式1下的定時(shí)功能,啟動(dòng)方式為軟件啟動(dòng),該如何設(shè)置TMOD?TMOD=0x01定時(shí)/計(jì)數(shù)器T1定時(shí)/計(jì)數(shù)器T0

TMOD(0x89)GATEM1M0GATEM1M0C/TC/T01000000定時(shí)/計(jì)數(shù)器的方式寄存器TMOD定時(shí)/計(jì)數(shù)器的TMOD寄存器是單片機(jī)應(yīng)用技術(shù)課程必須要熟練掌握的知識(shí)點(diǎn)。在很多的單片機(jī)應(yīng)用技術(shù)相關(guān)的技能競(jìng)賽中,都會(huì)用到定時(shí)/計(jì)數(shù)器,只有正確的設(shè)置TMOD寄存器,才能實(shí)現(xiàn)想要的定時(shí)/計(jì)數(shù)效果。在學(xué)習(xí)過(guò)程中,可以嘗試設(shè)置不同的定時(shí)/計(jì)數(shù)效果,以熟練TMOD寄存器的使用,為參加技能競(jìng)賽蓄力。在技能競(jìng)賽中的應(yīng)用賦值、關(guān)系和邏輯運(yùn)算賦值、關(guān)系和邏輯運(yùn)算賦值運(yùn)算賦值運(yùn)算的作用是把某個(gè)常量或變量或表達(dá)式的值賦值給另一個(gè)變量。符號(hào)為‘=’。這里并不是等于的意思,只是賦值,等于用‘==’表示。賦值語(yǔ)句左邊必須是變量或寄存器,且必須先定義。常量不能出現(xiàn)左邊。簡(jiǎn)單的賦值運(yùn)算符:

=復(fù)合的賦值運(yùn)算符:賦值運(yùn)算i+=2等價(jià)于i=i+2a*=b+5等價(jià)于a=a*(b+5)x%=3等價(jià)于x=x%3賦值、關(guān)系和邏輯運(yùn)算&& (邏輯與) 相當(dāng)于其他語(yǔ)言中的AND|| (邏輯或) 相當(dāng)于其他語(yǔ)言中的OR! (邏輯非) 相當(dāng)于其他語(yǔ)言中的NOT例: a&&b:若a,b為真,則a&&b為真。 a||b: 若a,b之一為真,則a||b為真。 !A: 若a為真,則!a為假。邏輯運(yùn)算符及其優(yōu)先次序從高到低的優(yōu)先次序:! 算術(shù)運(yùn)算符關(guān)系運(yùn)算符&&||賦值=賦值、關(guān)系和邏輯運(yùn)算賦值、關(guān)系和邏輯運(yùn)算邏輯表達(dá)式用邏輯運(yùn)算符將關(guān)系表達(dá)式或邏輯量連接起來(lái)的式子就是邏輯表達(dá)式。邏輯表達(dá)式的值應(yīng)該是一個(gè)邏輯量“真”或“假”。例:假設(shè)a=4,b=5:!a的值為0a&&b的值為1a||b的值為1!a||b的值為1 4&&0||2的值為1賦值、關(guān)系和邏輯運(yùn)算邏輯運(yùn)算使用注意:在邏輯表達(dá)式的求解中,并不是所有的邏輯運(yùn)算符都要被執(zhí)行。例如:a&&b&&c只有a為真時(shí),才需要判斷b的值,只有a和b都為真時(shí),才需要判斷c的值。a||b||c只要a為真,就不必判斷b和c的值,只有a為假,才判斷b。a和b都為假才判斷c。賦值、關(guān)系和邏輯運(yùn)算&:按位與<<:左移

~:取反∧:按位異或|:按位或>>:右移C語(yǔ)言提供的位運(yùn)算符有注意:位運(yùn)算符中除~以外,均為二目(元)運(yùn)算符,即要求兩側(cè)各有一個(gè)運(yùn)算量。運(yùn)算量只能是整型或字符型的數(shù)據(jù),不能為實(shí)型數(shù)據(jù)。賦值、關(guān)系和邏輯運(yùn)算與操作按位與操作符:&格式:x&y規(guī)則:對(duì)應(yīng)位均為1時(shí)才為1,否則為0。主要用途:取(或保留)1個(gè)數(shù)的某(些)位,其余各位置0。按位或操作符:|格式:x|y規(guī)則:對(duì)應(yīng)位均為0時(shí)才為0,否則為1例如。主要用途:將1個(gè)數(shù)的某(些)位置1,其余各位不變?;虿僮髻x值、關(guān)系和邏輯運(yùn)算異或操作按位異或操作符:^格式:x^y規(guī)則:對(duì)應(yīng)位相同時(shí)為0,不同時(shí)為1。主要用途:使1個(gè)數(shù)的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論