下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第十講課題:MCS-51單片機(jī)控制與C語(yǔ)言二教學(xué)目的:掌握C51的語(yǔ)法和編程方法 學(xué)習(xí)C51程序設(shè)計(jì):常用程序設(shè)計(jì)教學(xué)難點(diǎn)、重點(diǎn):C51程序設(shè)計(jì)I、 課程復(fù)習(xí)、引入已經(jīng)復(fù)習(xí)了C語(yǔ)言的基本語(yǔ)法,學(xué)習(xí)了一些C51程序的編程,了解了C51程序的側(cè)重點(diǎn)還是在針對(duì)MCS-51應(yīng)用系統(tǒng)編程,在C51程序中對(duì)硬件的控制是學(xué)習(xí)本部分編程的重點(diǎn)。C51對(duì)I/O的操作:對(duì)I/O口(P口)的操作通常就是I/O的控制,與常規(guī)C語(yǔ)言程序中的輸入輸出程序有區(qū)別。接口的讀寫(xiě)l 輸入時(shí)需要先預(yù)置高電平C51關(guān)于SFR的數(shù)據(jù)類(lèi)型:sbit:預(yù)定義SFR位標(biāo)識(shí)符=可按位尋址的預(yù)定義SFR標(biāo)識(shí)符常量;例:sbit LED=P13;
2、 sbit TR1 = 1;Sfr;特殊功能寄存器預(yù)定義標(biāo)識(shí)符絕對(duì)地址;REG51.H例:sfr P1 = 0x90;數(shù)據(jù)長(zhǎng)度:l unsigned char/int/ long8/16/32l signed char/int/ long8/16/32l float32l double64l 一般指針24位II、 本課內(nèi)容第七章 MCS-51單片機(jī)控制與C語(yǔ)言7.2.2 C語(yǔ)言對(duì)MCS-51單片機(jī)位處理器的運(yùn)用標(biāo)準(zhǔn)C語(yǔ)言中是沒(méi)有比特變量的,8051單片機(jī)中有強(qiáng)大的位處理功能,如果不用將對(duì)編程效率是個(gè)很大的損失。Keil C51擴(kuò)展了標(biāo)準(zhǔn)C語(yǔ)言,很好地支持了8051特有的位處理功能。如上文提到的
3、sbit關(guān)鍵字,除了定義引腳以外還可以定義所有的特殊功能寄存器中可以位尋址的變量。如定義sbit spcialbit=0xe1;這時(shí)spcialbit就代表了累加器的第一位ACC.1。Keil C51也可以通過(guò)擴(kuò)展關(guān)鍵字bit來(lái)定義位變量。如bit bitval;這時(shí)bitval的值是0或1,它的實(shí)際物理地址將位于8051內(nèi)部20H2FH的可位尋址區(qū)。使用舉例:Bitval=spcialbit;/將ACC.1的值賦給了bitvalIf(bitval)button=0;else button=1;Button=! Bitval;/含義同上一句723 C語(yǔ)言管理MCS-51單片機(jī)內(nèi)部定時(shí)器兩個(gè)定時(shí)
4、器進(jìn)行初始化C語(yǔ)言函數(shù),給定時(shí)器1設(shè)置初始值,并啟動(dòng)定時(shí)器1:Void InitTimer1(void)TMOD=0x15;/*初始化定時(shí)器1為定時(shí)器工作方式,即對(duì)由系統(tǒng)晶振決定的機(jī)器周期進(jìn)行計(jì)數(shù),模式1,16位計(jì)數(shù),由TMOD的高4位決定。初始化定時(shí)器0為定時(shí)器工作方式,即對(duì)T0(P3.4)引腳上的脈沖進(jìn)行計(jì)數(shù),模式1,16位計(jì)數(shù),由TMOD的低4位決定*/TH1=0;TL1=0;/定時(shí)器1設(shè)初始值TR1=1;/位處理指令,啟動(dòng)定時(shí)器1TMOD復(fù)位值00H76543210GATE1C/TM1M0GATE0C/TM1M0TCON復(fù)位值00H76543210TF1TR1TF0TR0IE0IT1I
5、E0IT0如果要在運(yùn)行中查詢定時(shí)器1是否溢出,就必須用位處理指令查詢TF1。下面的程序段用查詢方法在LED口上輸出10Hz的方波。例7-2 用查詢方法在LED口上輸出10Hz的方波。/文件名:TF1.c/定時(shí)器查詢.系統(tǒng)晶體頻率11.0592MHz#include Sbit LED=P13;Void INIT-TMR1(void) TMOD=0x11; TH1=0x4C;/(65536-50000us/(12cyc/11.0592 MHz)/256 TL1=0;/(65536-50000us/(12cyc/11.0592 MHz)%256 TR1=1;Void main(void) INIT-
6、TMR1( ); While(1) If(TF1= =1) LED=LED; TF1=0; TH1=0x4C; TL1=0;/TL0在溢出時(shí)正好為0,可以不寫(xiě) 注意:注釋中的定時(shí)器時(shí)間常數(shù)計(jì)算公式,這個(gè)方式在模式1,即16位定時(shí)或計(jì)數(shù)模式可用:THX=(65536-定時(shí)時(shí)長(zhǎng)us/(機(jī)器周期數(shù)/時(shí)鐘頻率(MHz)/256TLX=(65536-定時(shí)時(shí)長(zhǎng)us/(機(jī)器周期數(shù)/時(shí)鐘頻率(MHz)%256在定時(shí)器重裝載過(guò)程中,TL1=0可以不寫(xiě),有利于提高定時(shí)精度。再舉一計(jì)算定時(shí)器常數(shù)的例子:已知P89C51RD2的機(jī)器周期為6個(gè)時(shí)鐘周期,晶體用12 MHz,要求產(chǎn)生10ms定時(shí),計(jì)算如下:(TMOD=0
7、x11;)TH0=(65536-10000us/(6cyc/12 MHz)/256=177.875取整177TL0=(65536-10000us/(6cyc/12 MHz)%256=224取余數(shù)TF1.C這段程序中CPU花了100%的時(shí)間來(lái)查詢定時(shí)器是否溢出,這就沒(méi)有時(shí)間做別的事情了。724 C語(yǔ)言管理MCS-51單片機(jī)中斷系統(tǒng)標(biāo)準(zhǔn)的MCS-51有5個(gè)中斷源,分別是外中斷0、定時(shí)計(jì)數(shù)器0、外中斷1、定時(shí)計(jì)數(shù)器1和串行接口。這些中斷源的管理有一個(gè)共同點(diǎn),就是必須在主函數(shù)中先寫(xiě)初始化指令,然后再寫(xiě)中斷服務(wù)程序。TCON復(fù)位值00H76543210TF1TR1TF0TR0IE0IT1IE0IT0P2
8、7頁(yè)定義中斷請(qǐng)求標(biāo)志:TF0、TF1、IE0、IE1(串口中斷請(qǐng)求標(biāo)志:SCON中的TI、RI)外部中斷控制方式:IT0、IT1外部中斷的信號(hào)是低電平OR下降沿方式中斷運(yùn)行控制:TR0、TR1例7-3 用中斷方式實(shí)現(xiàn)在LED口上輸出10Hz的方波的完整源程序:/文件名:TINT.C/定時(shí)器中斷方式,在LED上輸出10Hz的方波.系統(tǒng)晶體頻率為11.0592 MHz#include Sbit LED=P13;Void INIT-TMR1(void) TMOD=0x11; TH1=0x4C; /(65536-50000us/(12cyc/11.0592 MHz)/256 TL1=0; /(6553
9、6-50000us/(12cyc/11.0592 MHz)%256 TR1=1;Void INIT-TMR1INT(void) ET1=1;EA=1;/定時(shí)器1中斷服務(wù)程序,注意其句尾的關(guān)鍵字interrupt和中斷號(hào)3Void TMR1-INT-SRV(void) interrupt 3 TH1=0x4C;LED=LED;/主函數(shù)中沒(méi)有調(diào)用中斷服務(wù)程序,由硬件自動(dòng)調(diào)用Void main(void) INIT-TMR1( ); INIT-TMR1INT( ); While(1) 軟件調(diào)試TINT.C:例7-4 將一個(gè)按鍵接到外中斷0的端口線上,按鍵接通(按下)將端口線接地,按下后將引起8051
10、外中斷。中斷服務(wù)程序中CPU將點(diǎn)亮LED一會(huì)兒,然后關(guān)閉,等待下次中斷。硬件圖如圖7-6所示。/文件名:EXTINT.C#includeSbit LED=P13;Void EXT0-INIT(void) EX0=1;/允許外中斷0 IT0=1;/下降沿響應(yīng)外中斷 EA=1;Void EXT0-INT-SRV(void) interrupt 0 Data int j;/關(guān)鍵字Data將變量j定義在片內(nèi)RAM LED =0;/將引腳清0,因此點(diǎn)亮發(fā)光二極管 For (j=0;j30000;j+);/空循環(huán)延時(shí) For (j=0;j1右移;posi=posi1III、 本課小結(jié)學(xué)習(xí)了C51語(yǔ)言學(xué)習(xí)了C51對(duì)位尋址、內(nèi)部定時(shí)器、中斷系統(tǒng)的應(yīng)用編程IV、 作業(yè): 1) 一步了解uVision2 IDE and Debugger軟件的功能和應(yīng)用
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湘教版選擇性必修1物理下冊(cè)月考試卷含答案
- 2025年人教新課標(biāo)高一地理上冊(cè)月考試卷
- 2025年冀教新版九年級(jí)語(yǔ)文下冊(cè)月考試卷
- 2025年蘇人新版七年級(jí)歷史上冊(cè)月考試卷含答案
- 2025年外研版八年級(jí)科學(xué)上冊(cè)階段測(cè)試試卷
- 2025年湘教新版九年級(jí)歷史上冊(cè)月考試卷
- 二零二五年度體育產(chǎn)業(yè)投資擔(dān)保合同3篇
- 2025年度智能門(mén)禁系統(tǒng)租賃合同范本升級(jí)版4篇
- 2025年度民間借貸裁判觀點(diǎn)匯編及法律適用指南合同4篇
- 2025版模板工建筑工程施工圖審查合同范本(含技術(shù)要求)4篇
- 五年級(jí)上冊(cè)寒假作業(yè)答案(人教版)
- 2025年山東浪潮集團(tuán)限公司招聘25人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024年財(cái)政部會(huì)計(jì)法律法規(guī)答題活動(dòng)題目及答案一
- 2025年江西省港口集團(tuán)招聘筆試參考題庫(kù)含答案解析
- (2024年)中國(guó)傳統(tǒng)文化介紹課件
- 液化氣安全檢查及整改方案
- 《冠心病》課件(完整版)
- 2024年云網(wǎng)安全應(yīng)知應(yīng)會(huì)考試題庫(kù)
- 公園保潔服務(wù)投標(biāo)方案
- 光伏電站項(xiàng)目合作開(kāi)發(fā)合同協(xié)議書(shū)三方版
- 2024年秋季新滬教版九年級(jí)上冊(cè)化學(xué)課件 第2章 空氣與水資源第1節(jié) 空氣的組成
評(píng)論
0/150
提交評(píng)論