《單片機控制技術(shù)》課件-任務(wù)2_第1頁
《單片機控制技術(shù)》課件-任務(wù)2_第2頁
《單片機控制技術(shù)》課件-任務(wù)2_第3頁
《單片機控制技術(shù)》課件-任務(wù)2_第4頁
《單片機控制技術(shù)》課件-任務(wù)2_第5頁
已閱讀5頁,還剩80頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

主講教師單片機控制技術(shù)(C語言版)任務(wù)2-1單片機控制蜂鳴器發(fā)聲任務(wù)導(dǎo)入01能發(fā)聲的蜂鳴器02單片機控制蜂鳴器硬件設(shè)計03單片機控制蜂鳴器程序設(shè)計04一、任務(wù)導(dǎo)入PARTONE01用單片機控制蜂鳴器,實現(xiàn)聲音報警系統(tǒng)的設(shè)計。任務(wù)要求硬件設(shè)計驅(qū)動電路二、能發(fā)聲的蜂鳴器PARTTWO02在計算機中,簡單的提示音,是什么器件發(fā)出來的呢?——它就是我們經(jīng)常用到的一個能發(fā)出聲音的器件,叫做蜂鳴器。蜂鳴器蜂鳴電路符號按照驅(qū)動方式來劃分蜂鳴器有源蜂鳴器無源蜂鳴器電源×振蕩源有源蜂鳴器:一通電就會響,直流信號驅(qū)動無源蜂鳴器:方波驅(qū)動,頻率一般在2kHz到5kHz之間有源蜂鳴器無源蜂鳴器9mm8mm有源蜂鳴器無源蜂鳴器+-有源蜂鳴器V不能超過標注的額定值+-無源蜂鳴器頻率一般在2kHz~5kHz,頻率越高,音調(diào)也就越高無源蜂鳴器,內(nèi)部不帶振蕩源,用高低電平交錯的方波來驅(qū)動它發(fā)聲。三、單片機控制蜂鳴器硬件設(shè)計PARTTHREE03資源分配單片機接口電路P1.0蜂鳴器驅(qū)動硬件電路圖P1.0器件清單序號名稱型號/參數(shù)數(shù)量151單片機STC90516RD+12晶振12MHz13電容30pF24電解電容10uF15按鍵彈性按鍵16蜂鳴器無源17三極管9012/PNP18電阻10KΩ19電阻100Ω110電阻3.3KΩ1四、單片機控制蜂鳴器程序設(shè)計PARTFOUR04給P1.0引腳高電平延時給P1.0引腳低電平延時重復(fù)以上過程聲音報警系統(tǒng)編程思路給P1.0引腳高電平延時給P1.0引腳低電平延時重復(fù)以上過程聲音報警系統(tǒng)開始P1.01延時延時P1.00預(yù)編譯聲音報警系統(tǒng)C語言程序//程序名:beep.c//功能:聲音報警系統(tǒng)#include<REGX51.H>//包含頭文件REGX51.HsbitBEEP=P1^0;//定義P1.1引腳位名稱為BEEP開始P1.01延時延時P1.00預(yù)編譯聲音報警系統(tǒng)C語言程序//程序名:beep.c//功能:聲音報警系統(tǒng)#include<REGX51.H>//包含頭文件REGX51.HsbitBEEP=P1^0;//定義P1.0引腳位名稱為BEEPvoidmain()//主函數(shù){while(1)//無限循環(huán)

{ BEEP=1;//給P1.1引腳高電平

delay(200);

//延時

BEEP=0;//給P1.1引腳低電平 delay(200);//延時

}}預(yù)編譯聲音報警系統(tǒng)C語言程序//程序名:beep.c//功能:聲音報警系統(tǒng)#include<REGX51.H>//包含頭文件REGX51.HsbitBEEP=P1^0;//定義P1.0引腳位名稱為BEEP//函數(shù)名:delay//函數(shù)功能:實現(xiàn)軟件延時//形式參數(shù):無符號整型變量i//返回值:無voiddelay(unsignedinti){while(i--);//i次空操作}延時子函數(shù)定義開始P1.01延時延時P1.00聲音報警系統(tǒng)C語言程序//程序名:beep.c//功能:聲音報警系統(tǒng)#include<REGX51.H>//包含頭文件REGX51.HsbitBEEP=P1^0;//定義P2.1引腳位名稱為BEEP//函數(shù)名:delay//函數(shù)功能:實現(xiàn)軟件延時//形式參數(shù):無符號整型變量i//返回值:無voiddelay(unsignedinti){while(i--);//i次空操作}voidmain() //主函數(shù){while(1)//無限循環(huán)

{BEEP=1;//給P1.1引腳高電平

delay(200);//延時

BEEP=0;//給P1.1引腳低電平 delay(200);

//延時

}}預(yù)編譯延時函數(shù)定義主函數(shù)開始P1.01延時延時P1.00我們通過編程控制P1.1引腳的電平生成方波,實現(xiàn)了聲音報警系統(tǒng)的功能,大家試著把延時delay(200);都修改為delay(1000);,觀察蜂鳴器的發(fā)聲有什么變化吧?

主講教師單片機控制技術(shù)(C語言版)任務(wù)2-2模擬汽車左右轉(zhuǎn)向燈控制任務(wù)導(dǎo)入01可撥動的開關(guān)02模擬汽車左右轉(zhuǎn)向燈制電路設(shè)計03模擬汽車左右轉(zhuǎn)向燈制程序設(shè)計04舉一反三05一、任務(wù)導(dǎo)入PARTONE01通過單片機的并行I/O口來控制LED的亮滅。單極三位開關(guān)有三個撥動位置,正好分別撥到這三個位置就可以模擬處于正常運行,右轉(zhuǎn)和左轉(zhuǎn)狀態(tài)。單片機讀入單極三位開關(guān)的狀態(tài)來控制轉(zhuǎn)向燈的狀態(tài)。汽車狀態(tài)單極三位開關(guān)位置轉(zhuǎn)向燈顯示狀態(tài)右轉(zhuǎn)向燈狀態(tài)左轉(zhuǎn)向燈狀態(tài)正常行駛位置2滅滅右轉(zhuǎn)位置1亮滅閃爍滅左轉(zhuǎn)位置3滅亮滅閃爍二、可撥動的開關(guān)PARTTWO02電腦開關(guān)手機開關(guān)電梯開關(guān)燈的開關(guān)開關(guān)開啟關(guān)閉開關(guān)電路符號通斷ONOFFA123BCD單極三位開關(guān)三、模擬汽車左右轉(zhuǎn)向燈制電路設(shè)計PARTTHREE03資源分配單片機轉(zhuǎn)向燈接口電路開關(guān)接口電路P1.0P1.2前后左轉(zhuǎn)向燈P1.1P1.3前后右轉(zhuǎn)向燈P3.1位置1P3.0位置3輸入:開關(guān)斷開,I/O引腳為1開關(guān)閉合,I/O引腳為0輸出:I/O引腳為0,點亮燈I/O引腳為1,熄滅燈汽車狀態(tài)單極三位開關(guān)位置輸入右轉(zhuǎn)控制P3.1左轉(zhuǎn)控制P3.0正常行駛位置211右轉(zhuǎn)位置101左轉(zhuǎn)位置310四、模擬汽車左右轉(zhuǎn)向燈制程序設(shè)計PARTFOUR04汽車狀態(tài)單極三位開關(guān)位置輸入輸出右轉(zhuǎn)控制P3.1左轉(zhuǎn)控制P3.0右轉(zhuǎn)向燈狀態(tài)P1.1P1.3左轉(zhuǎn)向燈狀態(tài)P1.0P1.2正常行駛位置2

1111P3.0和P3.1都為1

汽車正常行駛汽車狀態(tài)單極三位開關(guān)位置輸入輸出右轉(zhuǎn)控制P3.1左轉(zhuǎn)控制P3.0右轉(zhuǎn)向燈狀態(tài)P1.1P1.3左轉(zhuǎn)向燈狀態(tài)P1.0P1.2正常行駛位置2

11

11右轉(zhuǎn)位置1010,1交替

1P3.1為0,P3.0為1汽車右轉(zhuǎn)P3.1為0,P3.0為1汽車左轉(zhuǎn)汽車狀態(tài)單極三位開關(guān)位置輸入輸出右轉(zhuǎn)控制P3.1左轉(zhuǎn)控制P3.0右轉(zhuǎn)向燈狀態(tài)P1.1P1.3左轉(zhuǎn)向燈狀態(tài)P1.0P1.2正常行駛位置2

1111右轉(zhuǎn)位置1010,1交替1左轉(zhuǎn)位置3

1010,1交替汽車狀態(tài)單極三位開關(guān)位置輸入輸出右轉(zhuǎn)控制P3.1左轉(zhuǎn)控制P3.0右轉(zhuǎn)向燈狀態(tài)P1.1P1.3左轉(zhuǎn)向燈狀態(tài)P1.0P1.2正常行駛位置2

1111右轉(zhuǎn)位置1010,1交替1左轉(zhuǎn)位置3

1010,1交替汽車狀態(tài)單極三位開關(guān)位置輸入輸出右轉(zhuǎn)控制P3.1左轉(zhuǎn)控制P3.0右轉(zhuǎn)向燈狀態(tài)P1.1P1.3左轉(zhuǎn)向燈狀態(tài)P1.0P1.2正常行駛位置2

1111右轉(zhuǎn)位置1010,1交替1左轉(zhuǎn)位置3

1010,1交替P3寄存器P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0111111110xff開始P1.0P3.0P1.2P3.0P1.1P3.1P1.3P3.1延時P1.01P1.21P1.11P1.31延時P30xff預(yù)編譯汽車左右轉(zhuǎn)向燈控制系統(tǒng)C語言程序//程序名:led_turn.c//功能:汽車左右轉(zhuǎn)向燈程序#include<REGX51.H>//包含頭文件REGX51.HsbitLEDL1=P1^0;

//定義P1.0引腳位名稱為LEDL1,左前轉(zhuǎn)向燈sbitLEDL2=P1^2;//定義P1.2引腳位名稱為LEDL2,左后轉(zhuǎn)向燈sbitLEDR1=P1^1;//定義P1.1引腳位名稱為LEDR1,右前轉(zhuǎn)向燈sbitLEDR2=P1^3;//定義P1.3引腳位名稱為LEDR2,右后轉(zhuǎn)向燈sbitS1=P3^0;

//定義P3.0引腳位名稱為S1,S1為0,左轉(zhuǎn)向燈閃爍sbitS2=P3^1;

//定義P3.1引腳位名稱為S2,S2為0,右轉(zhuǎn)向燈閃爍開始P1.0P3.0P1.2P3.0P1.1P3.1P1.3P3.1延時P1.01P1.21P1.11P1.31延時P30xff預(yù)編譯汽車左右轉(zhuǎn)向燈控制系統(tǒng)C語言程序//程序名:led_turn.c//功能:汽車左右轉(zhuǎn)向燈程序sbitLEDL1=P1^0;

//定義P1.0引腳位名稱為LEDL1,左前轉(zhuǎn)向燈sbitLEDL2=P1^2;//定義P1.2引腳位名稱為LEDL2,左后轉(zhuǎn)向燈sbitLEDR1=P1^1;//定義P1.1引腳位名稱為LEDR1,右前轉(zhuǎn)向燈sbitLEDR2=P1^3;//定義P1.3引腳位名稱為LEDR2,右后轉(zhuǎn)向燈sbitS1=P3^0;

//定義P3.0引腳位名稱為S1,S1為0,左轉(zhuǎn)向燈閃爍sbitS2=P3^1;

//定義P3.1引腳位名稱為S2,S2為0,右轉(zhuǎn)向燈閃爍//函數(shù)名:delay//函數(shù)功能:實現(xiàn)軟件延時//形式參數(shù):無符號整型變量i//返回值:無voiddelay(unsignedint

i){while(i--);//i次空操作}開始P0.0P1.0P0.1P1.0P0.2P1.1P0.3P1.1延時P0.01P0.11P0.21P0.31延時P10xff延時函數(shù)定義汽車左右轉(zhuǎn)向燈控制系統(tǒng)C語言程序voidmain() //主函數(shù){}

開始P0.0P1.0P0.1P1.0P0.2P1.1P0.3P1.1延時P0.01P0.11P0.21P0.31延時P10xff汽車左右轉(zhuǎn)向燈控制系統(tǒng)C語言程序voidmain()

//主函數(shù){P1=0xff;LEDL1=S1;//讀取S1引腳的控制狀態(tài)并賦值給左轉(zhuǎn)向燈LEDL1LEDL2=S1;

//讀取S1引腳的控制狀態(tài)并賦值給左轉(zhuǎn)向燈LEDL2LEDR1=S2;

//讀取S2引腳的控制狀態(tài)并賦值給右轉(zhuǎn)向燈LEDR1LEDR2=S2;//讀取S2引腳的控制狀態(tài)并賦值給右轉(zhuǎn)向燈LEDR2delay(20000);//軟件延時

LEDL1=1;//將LEDL1引腳置1,熄滅LEDL1LEDL2=1;//將LEDL2引腳置1,熄滅LEDL2LEDR1=1;//將LEDR1引腳置1,熄滅LEDR1LEDR2=1;//將LEDR2引腳置1,熄滅LEDR2delay(20000);

//軟件延時

} 開始P0.0P1.0P0.1P1.0P0.2P1.1P0.3P1.1延時P0.01P0.11P0.21P0.31延時P10xff汽車左右轉(zhuǎn)向燈控制系統(tǒng)C語言程序voidmain()

//主函數(shù){while(1)//無限循環(huán)

{P1=0xff;LEDL1=S1;//讀取S1引腳的控制狀態(tài)并賦值給左轉(zhuǎn)向燈LEDL1LEDL2=S1;

//讀取S1引腳的控制狀態(tài)并賦值給左轉(zhuǎn)向燈LEDL2LEDR1=S2;

//讀取S2引腳的控制狀態(tài)并賦值給右轉(zhuǎn)向燈LEDR1LEDR2=S2;//讀取S2引腳的控制狀態(tài)并賦值給右轉(zhuǎn)向燈LEDR2delay(20000);//軟件延時

LEDL1=1;//將LEDL1引腳置1,熄滅LEDL1LEDL2=1;//將LEDL2引腳置1,熄滅LEDL2LEDR1=1;//將LEDR1引腳置1,熄滅LEDR1LEDR2=1;//將LEDR2引腳置1,熄滅LEDR2delay(20000);

//軟件延時

}

} 開始P0.0P1.0P0.1P1.0P0.2P1.1P0.3P1.1延時P0.01P0.11P0.21P0.31延時P10xff五、舉一反三PARTFIFTH05I/O接口并行I/O接口單片機并行I/O口功能單片機并行I/O口應(yīng)用方法功能擴展增加一個開關(guān),開關(guān)閉合時,左右轉(zhuǎn)向燈同時閃爍。(雙閃)主講教師單片機控制技術(shù)(C語言版)任務(wù)2-3仿真調(diào)試發(fā)光二極管閃爍控制系統(tǒng)打開任務(wù)1中新建的工程。在KeilC51主界面中,點擊“Project”→“OpenProject”,找到工程所在目錄,打開工程。配置軟件仿真器。將鼠標移到工程管理窗口的“Target1”上,點擊右鍵,再點擊“OptionsforTarget1’Target1’”,出現(xiàn)工程配置窗口

Xtal(晶振頻率):缺省值是所選目標CPU的最高可用頻率值,該值與最終產(chǎn)生的目標代碼無關(guān),僅用于軟件模擬調(diào)試時顯示程序執(zhí)行時間。正確設(shè)置該數(shù)值可使顯示時間與實際所用時間一致,一般將其設(shè)置成實際硬件所用晶振頻率;如果沒有必要了解程序執(zhí)行的時間,也可以不設(shè)該項。配置軟件仿真器——“Target”屬性窗口Memorymodel(存儲器模式):用于設(shè)置RAM使用模式,有三個選擇項:Small(小型):所有變量都定義在單片機的內(nèi)部RAM中。Compact(緊湊):可以使用一頁(256B)外部擴展RAM。Large(大型):可以使用全部64KB外部擴展RAM。配置軟件仿真器——“Target”屬性窗口CodeRomSize(代碼存儲器模式):用于設(shè)置ROM空間的使用,同樣也有三個選擇項:Small(小型):只使用低2KB程序空間。Compact(緊湊):單個函數(shù)的代碼量不能超過2KB,整個程序可以使用64KB程序空間。Large(大型):可用全部64KB空間。

這些選擇必須根據(jù)所用硬件來決定。配置軟件仿真器——“Target”屬性窗口Operating(操作系統(tǒng)):KeilC51提供了兩種操作系統(tǒng):Rtxtiny和Rtxfull,通常不使用任何操作系統(tǒng),即使用該項的缺省值None。配置軟件仿真器——“Target”屬性窗口Off-chipcodememory(片外代碼存儲器):用于確定系統(tǒng)擴展ROM的地址范圍,由硬件確定,一般為缺省值。。配置軟件仿真器——“Target”屬性窗口Off-chipXdatamemory(片外Xdata存儲器):用于確定系統(tǒng)擴展RAM的地址范圍,由硬件確定,一般為缺省值。。配置軟件仿真器——“Target

溫馨提示

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

評論

0/150

提交評論