4.1 任務(wù)4.1 簡(jiǎn)易交通燈的實(shí)現(xiàn)-正計(jì)數(shù)倒計(jì)數(shù)模式_第1頁(yè)
4.1 任務(wù)4.1 簡(jiǎn)易交通燈的實(shí)現(xiàn)-正計(jì)數(shù)倒計(jì)數(shù)模式_第2頁(yè)
4.1 任務(wù)4.1 簡(jiǎn)易交通燈的實(shí)現(xiàn)-正計(jì)數(shù)倒計(jì)數(shù)模式_第3頁(yè)
4.1 任務(wù)4.1 簡(jiǎn)易交通燈的實(shí)現(xiàn)-正計(jì)數(shù)倒計(jì)數(shù)模式_第4頁(yè)
4.1 任務(wù)4.1 簡(jiǎn)易交通燈的實(shí)現(xiàn)-正計(jì)數(shù)倒計(jì)數(shù)模式_第5頁(yè)
已閱讀5頁(yè),還剩27頁(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ù)項(xiàng)目四簡(jiǎn)易交通燈的實(shí)現(xiàn)任務(wù)4.1簡(jiǎn)易交通燈的實(shí)現(xiàn)—正計(jì)數(shù)/倒計(jì)數(shù)模式任務(wù)要求

使用CC2530開發(fā)板的D4、D3兩個(gè)燈分別來(lái)模擬交通燈的紅燈、綠燈,同一時(shí)刻只有一個(gè)燈亮,D4亮或D3亮,用來(lái)表示禁行或者通行,且紅燈亮1s后,綠燈再亮1s,依次交替。1基礎(chǔ)知識(shí)2相關(guān)寄存器3中斷運(yùn)用4任務(wù)分析5任務(wù)實(shí)現(xiàn)一、基礎(chǔ)知識(shí)

什么是定時(shí)/計(jì)數(shù)器一種能夠?qū)?nèi)部的時(shí)鐘信號(hào)或外部的輸入信號(hào)進(jìn)行計(jì)數(shù),當(dāng)計(jì)數(shù)值達(dá)到設(shè)定要求時(shí)便向CPU提出處理請(qǐng)求,從而實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能的外設(shè)。也稱為定時(shí)計(jì)數(shù)器,或定時(shí)器,或計(jì)數(shù)器,用T表示。一、基礎(chǔ)知識(shí)

工作原理定時(shí)/計(jì)數(shù)器的核心是一個(gè)計(jì)數(shù)器,可以進(jìn)行加1(或減1)計(jì)數(shù),每出現(xiàn)一個(gè)計(jì)數(shù)信號(hào),計(jì)數(shù)器就自動(dòng)加1(或自動(dòng)減1),當(dāng)計(jì)數(shù)值從0變成最大值(或從最大值變成0)產(chǎn)生溢出,定時(shí)/計(jì)數(shù)器便向CPU發(fā)出中斷請(qǐng)求。計(jì)數(shù)信號(hào)周期性的內(nèi)部時(shí)鐘信號(hào)非周期性的外部輸入信號(hào)計(jì)數(shù)功能定時(shí)功能計(jì)數(shù)信號(hào)的周期,也稱為計(jì)數(shù)周期一、基礎(chǔ)知識(shí)

解放CPU,提高CPU工作效率定時(shí)器的工作示意圖一、基礎(chǔ)知識(shí)

作用實(shí)現(xiàn)定時(shí)和計(jì)數(shù),且在整個(gè)工作過(guò)程中不需要CPU進(jìn)行過(guò)多參與,它的出現(xiàn)將CPU從相關(guān)任務(wù)中解放出來(lái),提高了CPU的使用效率。一、基礎(chǔ)知識(shí)

定時(shí)功能計(jì)數(shù)功能定時(shí)功能,即每隔一個(gè)計(jì)數(shù)周期,定時(shí)/計(jì)數(shù)器計(jì)數(shù)值加1(或減1),當(dāng)計(jì)數(shù)值達(dá)到指定值時(shí),說(shuō)明定時(shí)時(shí)間已到。這是定時(shí)/計(jì)數(shù)器的常用功能,可用來(lái)實(shí)現(xiàn)延時(shí)或定時(shí)控制。計(jì)數(shù)功能,即對(duì)任意時(shí)間間隔的輸入信號(hào)的個(gè)數(shù)進(jìn)行計(jì)數(shù)。一般用來(lái)對(duì)外界事件進(jìn)行計(jì)數(shù),其輸入信號(hào)一般來(lái)自CC2530單片機(jī)外部開關(guān)型傳感器,可用于生產(chǎn)線產(chǎn)品計(jì)數(shù)、信號(hào)數(shù)量統(tǒng)計(jì)和轉(zhuǎn)速測(cè)量等方面。一、基礎(chǔ)知識(shí)

計(jì)數(shù)周期

二、工作模式

五個(gè)定時(shí)器1定時(shí)器2定時(shí)器3定時(shí)器4睡眠定時(shí)器16位8位8位自由運(yùn)行模正計(jì)數(shù)/倒計(jì)數(shù)二、工作模式

T1從0x0000開始,每經(jīng)過(guò)一個(gè)計(jì)數(shù)周期增加1,當(dāng)計(jì)數(shù)器達(dá)到0xFFFF時(shí)溢出,計(jì)數(shù)器重新載入0x0000,開始新一輪遞增計(jì)數(shù)。自由運(yùn)行模式16位達(dá)到最大值時(shí),系統(tǒng)設(shè)置標(biāo)志位IRCON.T1IF和T1STAT.OVFIF。如果設(shè)置了相應(yīng)的中斷屏蔽位TIMIF.T1OVFIM和IEN1.T1IE,將產(chǎn)生溢出中斷.運(yùn)行周期FFFF+1二、工作模式

模模式T1從0x0000開始,每經(jīng)過(guò)一個(gè)計(jì)數(shù)周期增加1,當(dāng)計(jì)數(shù)器達(dá)到T1CC0寄存器保存的值時(shí)溢出,計(jì)數(shù)器重新載入0x0000,開始新一輪遞增計(jì)數(shù)。一般用于自定義定時(shí)周期,且需要啟動(dòng)通道0的輸出比較模式,產(chǎn)生輸出比較中斷。特殊情況:從比T1CC0寄存器值大的數(shù)值可以計(jì)數(shù),則會(huì)增加到OxFFFF,且產(chǎn)生溢出中斷。達(dá)到OxFFFF時(shí),系統(tǒng)設(shè)置標(biāo)志位IRCON.T1IF和T1STAT.OVFIF。二、工作模式

T1CCO模模式T1CCO寄存器由2個(gè)8位寄存器T1CC0H、T1CCOL構(gòu)成,分別用來(lái)保存最終計(jì)數(shù)值的高8位和低8位。定時(shí)周期不固定,由用戶自行設(shè)定。對(duì)于T1來(lái)說(shuō),共有5個(gè)比較通道,即T1CC0、T1CC1、T1CC2、T1CC3、T1CC4;均16位。補(bǔ)充:對(duì)于T2來(lái)說(shuō),共有2個(gè)比較通道;均8位。二、工作模式

正計(jì)數(shù)/倒計(jì)數(shù)模式T1從0x0000開始,每經(jīng)過(guò)一個(gè)計(jì)數(shù)周期增加1,正計(jì)數(shù)到T1CCO保存的最終計(jì)數(shù)值,然后再倒計(jì)數(shù)回0x0000。再次到達(dá)0時(shí),系統(tǒng)設(shè)置標(biāo)志位IRCON.T1IF和T1STAT.OVFIF.如果設(shè)置了相應(yīng)的中斷屏蔽位TIMIF.T1OVFIM和IEN1.T1IE,將產(chǎn)生中斷.二、工作模式

補(bǔ)充T3和T4還有倒計(jì)數(shù)模式,共4種運(yùn)行模式,類似于模模式,只不過(guò)是設(shè)定值倒計(jì)數(shù)到0。三、相關(guān)寄存器T1STAT寄存器位名稱復(fù)位操作描述7:6—00R0保留5OVFIF0R/W0T1溢出中斷標(biāo)志位。當(dāng)T1在自由運(yùn)行模式或模模式下,計(jì)數(shù)值達(dá)到最終計(jì)數(shù)數(shù)值時(shí)置位,在正計(jì)數(shù)/倒計(jì)數(shù)模式下,計(jì)數(shù)值達(dá)到0時(shí)置位。寫1沒有影響4CH4IF0R/W0T1通道4中斷標(biāo)志位。當(dāng)通道4中斷條件發(fā)生時(shí)置位。寫1沒有影響3CH3IF0R/W0T1通道3中斷標(biāo)志位。當(dāng)通道3中斷條件發(fā)生時(shí)置位。寫1沒有影響2CH2IF0R/W0T1通道2中斷標(biāo)志位。當(dāng)通道2中斷條件發(fā)生時(shí)置位。寫1沒有影響1CH1IF0R/W0T1通道1中斷標(biāo)志位。當(dāng)通道1中斷條件發(fā)生時(shí)置位。寫1沒有影響0CH0IF0R/W0T1通道0中斷標(biāo)志位。當(dāng)通道0中斷條件發(fā)生時(shí)置位。寫1沒有影響

三、相關(guān)寄存器IRCON寄存器不需要手動(dòng)清除可以位尋址

位名稱復(fù)位操作描述7STIF0R/W睡眠定時(shí)器中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決6—0R/W必須寫為0,寫入1總是使能中斷源5P0IF0R/WP0端口中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決4T4IF0R/WH0T4中斷標(biāo)志位。當(dāng)T4中斷發(fā)生時(shí)置位,且當(dāng)CPU指向中斷服務(wù)函數(shù)時(shí)清除。0:無(wú)中斷未決。1:中斷未決3T3IF0R/WH0T3中斷標(biāo)志位。當(dāng)T3中斷發(fā)生時(shí)置位,且當(dāng)CPU指向中斷服務(wù)函數(shù)時(shí)清除。0:無(wú)中斷未決。1:中斷未決2T2IF0R/WH0T2中斷標(biāo)志位。當(dāng)T2中斷發(fā)生時(shí)置位,且當(dāng)CPU指向中斷服務(wù)函數(shù)時(shí)清除。0:無(wú)中斷未決。1:中斷未決1T1IF0R/WH0T1中斷標(biāo)志位。當(dāng)T1中斷發(fā)生時(shí)置位,且當(dāng)CPU指向中斷服務(wù)函數(shù)時(shí)清除。0:無(wú)中斷未決。1:中斷未決0DMAIF0R/WDMA完成中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決三、相關(guān)寄存器可位尋址默認(rèn)是1,說(shuō)明這個(gè)“開關(guān)”默認(rèn)是開著的,允許中斷位名稱復(fù)位操作描述7—0R0沒有使用6T1OVFIM1R/WT1溢出中斷屏蔽位5T4CH1IF0R/W0T4通道1中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決4T4CH0IF0R/W0T4通道0中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決3T4OVFIF0R/W0T4溢出中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決2T3CH1IF0R/W0T4通道1中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決1T3CH0IF0R/W0T4通道0中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決0T3OVFIF0R/W0T3溢出中斷標(biāo)志位。0:無(wú)中斷未決。1:中斷未決

TIMIF寄存器三、相關(guān)寄存器T1CTL位名稱復(fù)位操作描述7:4-0000R0未使用3:2DIV[1:0]00R/WT1時(shí)鐘分頻設(shè)置00:1分頻01:8分頻10:32分頻11:128分頻1:0MODE[1:0]00R/W定時(shí)器1工作模式設(shè)置00:暫停運(yùn)行01:自由運(yùn)行模式10:模模式11:正計(jì)數(shù)/倒計(jì)數(shù)模式16MHZ的內(nèi)部RC振蕩器32MHZ的外接晶體振蕩器振蕩周期分頻系數(shù)計(jì)數(shù)周期設(shè)置工作模式之后,T1就開始工作注意:默認(rèn)采用16MHZ三、相關(guān)寄存器

問題:T1在自由運(yùn)行模式下,最長(zhǎng)定時(shí)時(shí)間為多少?問:T1是否最多就可以定時(shí)0.524288s?假如要求T1定時(shí)3S,應(yīng)該怎么做呢?三、相關(guān)寄存器

T1CCxHT1CCxLx:0-4,表示定時(shí)器1的通道0到通道4x取值后,T1CCxH與T1CCxL配對(duì)使用,分別存放高8位和低8位先寫T1CCxL,再寫T1CCxHT1通道0-4捕獲/比較值的高8位,低8位。三、相關(guān)寄存器

T1CNTHT1CNTL分別記錄當(dāng)前計(jì)數(shù)值的高8位和低8位先讀T1CNTL,再讀T1CNTH四、中斷運(yùn)用

定時(shí)器產(chǎn)生中斷的3種情況定時(shí)器達(dá)到最終計(jì)數(shù)值,自由運(yùn)行模式或模模式下計(jì)數(shù)到0xFFFF;正計(jì)數(shù)/倒計(jì)數(shù)模式下到Ox0000。輸出比較事件。輸入捕獲事件。四、中斷運(yùn)用

T1的中斷控制位T1IET1OVFIM使能T1中斷;位于IEN1寄存器中。計(jì)數(shù)溢出中斷屏蔽位;置1時(shí),計(jì)數(shù)溢出中斷使能;默認(rèn)值為1。EA中斷系統(tǒng)控制位;位于IEN0寄存器中。四、中斷運(yùn)用

IRCON寄存器T1IFT2IFT3IFT4IF該中斷標(biāo)志位會(huì)在執(zhí)行中斷服務(wù)函數(shù)時(shí)會(huì)自動(dòng)清除,不需要用戶手動(dòng)操作。T1STAT寄存器位名稱復(fù)位值操作描述7:6--00R0未使用5OVFIF0R/W0T1溢出中斷標(biāo)志4:0CHxIF0R/W0定時(shí)器1通道4到通道0的中斷標(biāo)志T1的中斷標(biāo)志位五、任務(wù)分析

選用T1,讓其每隔固定時(shí)間產(chǎn)生一次中斷請(qǐng)求。在T1的中斷服務(wù)函數(shù)中判斷定時(shí)時(shí)間是否到達(dá)1s,如果到達(dá)1s則直接在中斷服務(wù)函數(shù)中切換D4、D3的亮滅狀態(tài)。六、任務(wù)實(shí)現(xiàn)

初始化T1設(shè)置T1分頻系數(shù)T1CTL

|=

0x0c;設(shè)置T1最大計(jì)數(shù)值本任務(wù)要求定時(shí)時(shí)間為1s,根據(jù)CC2530單片機(jī)時(shí)鐘源的選擇和T1的分頻系數(shù)選擇可知,T1在自由運(yùn)行模式下,最長(zhǎng)定時(shí)時(shí)間略大于0.52s。為便于在程序中進(jìn)行計(jì)算,可設(shè)置T1的定時(shí)時(shí)間為0.5s。六、任務(wù)實(shí)現(xiàn)

定時(shí)器最大計(jì)數(shù)值計(jì)算過(guò)程1.T定時(shí)

=0.5s。2.當(dāng)T1使用正計(jì)數(shù)/倒計(jì)數(shù)模式時(shí),在一個(gè)定時(shí)周期中,正計(jì)數(shù)時(shí)間和倒計(jì)數(shù)時(shí)間相同,故T正計(jì)數(shù)

=T倒計(jì)數(shù)=0.25s。3.定時(shí)0.25s,則需要計(jì)數(shù)周期的個(gè)數(shù)是:0.25s/T計(jì)數(shù)

=0.25/8*10-6=31250。4.31250是十進(jìn)制,轉(zhuǎn)換為十六進(jìn)制,為0x7a12。即在正計(jì)數(shù)/倒計(jì)數(shù)模式下,T1的最大計(jì)數(shù)值為:0x7a12。設(shè)置T1最大計(jì)數(shù)值0x7a12,其實(shí)現(xiàn)代碼如下所示。T1CC0L

=

0x12;

//設(shè)置最大計(jì)數(shù)值的低位字節(jié)

T1CC0H

=

0x7a;

//設(shè)置最大計(jì)數(shù)值的高位字節(jié)。六、任務(wù)實(shí)現(xiàn)

T1中斷服務(wù)函數(shù)#pragma

vector

=

T1_VECTOR

__interrupt

void

t1_fuc(void)

{

T1STAT

&=~

0x20;

//清除T1溢出中斷標(biāo)志位

count++;

//T1溢出次數(shù)加1

if(count

==

2)

//如果溢出次數(shù)到達(dá)2說(shuō)明經(jīng)過(guò)了1s

{

D4

=

!D4;

//D4切換亮滅狀態(tài)

D3

=

!D3;

//D3切換亮滅狀態(tài)

count

=

0;

//溢出次數(shù)清零

}

}六、任務(wù)實(shí)現(xiàn)

void

main()

{

/***********D3、D4初始化部分*************/

P1SEL

&=~

0x03;

//設(shè)置P1_0、P1_1為普通I/O引腳

P1DIR

|=

0x03;

//設(shè)置P1_0、P1_1為輸出方向

D4

=

1;

//點(diǎn)亮D4

D3

=

0;

溫馨提示

  • 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ù)覽,若沒有圖紙預(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論