日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] M1M0工作方式功能描述00工作方式013位計(jì)數(shù)器01工作方式116位計(jì)數(shù)器10工作方式2自動(dòng)再裝入8位計(jì)數(shù)器11工作方式3定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器;定時(shí)器1:停止計(jì)數(shù)定時(shí)器/計(jì)數(shù)器方式控制寄存器TMOD不能進(jìn)行

M1M0工作方式功能描述00工作方式013位計(jì)數(shù)器01工作方式116位計(jì)數(shù)器10工作方式2自動(dòng)再裝入8位計(jì)數(shù)器11工作方式3定時(shí)器0:分成兩個(gè)8位計(jì)數(shù)器;
定時(shí)器1:停止計(jì)數(shù)

定時(shí)器/計(jì)數(shù)器方式控制寄存器TMOD不能進(jìn)行位尋址,只能用字節(jié)傳送指令設(shè)置定時(shí)器工作方式,低半字節(jié)定義為定時(shí)器0,高半字節(jié)定義為定時(shí)器1。復(fù)位時(shí),TMOD所有位均為0。

例:設(shè)定定時(shí)器1為定時(shí)工作方式,要求軟件啟動(dòng)定時(shí)器1按方式2工作。定時(shí)器0為計(jì)數(shù)方式,要求由軟件啟動(dòng)定時(shí)器0,按方式1工作。

我們?cè)趺磥?lái)實(shí)現(xiàn)這個(gè)要求呢?

大家先看上面TMOD寄存器各位的分布圖

第一個(gè)問題:控制定時(shí)器1工作在定時(shí)方式或計(jì)數(shù)方式是哪個(gè)位?通過前面的學(xué)習(xí),我們已知道,C/T位(D6)是定時(shí)或計(jì)數(shù)功能選擇位,當(dāng)C/T=0時(shí)定時(shí)/計(jì)數(shù)器就為定時(shí)工作方式。所以要使定時(shí)/計(jì)數(shù)器1工作在定時(shí)器方式就必需使D6為0。

第二個(gè)問題:設(shè)定定時(shí)器1按方式2工作。上表中可以看出,要使定時(shí)/計(jì)數(shù)器1工作在方式2,M0(D4) M1(D5)的值必須是1 0。

第三個(gè)問題:設(shè)定定時(shí)器0為計(jì)數(shù)方式。與第一個(gè)問題一樣,定時(shí)/計(jì)數(shù)器0的工作方式選擇位也是C/T(D2),當(dāng)C/T=1時(shí),就工作在計(jì)數(shù)器方式。

第四個(gè)問題:由軟件啟動(dòng)定時(shí)器0,前面已講過,當(dāng)門控位GATE=0時(shí),定時(shí)/計(jì)數(shù)器的啟停就由軟件控制。

第五個(gè)問題:設(shè)定定時(shí)/計(jì)數(shù)器工作在方式1,使定時(shí)/計(jì)數(shù)器0工作在方式1,M0(D0) M1(D1)的值必須是0 1。

從上面的分析我們可以知道,只要將TMOD的各位,按規(guī)定的要求設(shè)置好后,定時(shí)器/計(jì)靈敏器就會(huì)按我們預(yù)定的要求工作。我們分析的這個(gè)例子最后各位的情況如下:

D7 D6 D5 D4 D3 D2 D1 D0

0 0 1 0 0 1 0 1

二進(jìn)制數(shù)00100101=十六進(jìn)制數(shù)25H。所以執(zhí)行MOV TMOD,#25H這條指令就可以實(shí)現(xiàn)上述要求。

TCON定時(shí)器/計(jì)數(shù)器控制寄存器

TCON在特殊功能寄存器中,字節(jié)地址為88H,位地址(由低位到高位)為88H一8FH,由于有位地址,十分便于進(jìn)行位操作。

TCON的作用是控制定時(shí)器的啟、停,標(biāo)志定時(shí)器溢出和中斷情況。

TCON的格式如下圖所示。其中,TFl,TRl,TF0和TR0位用于定時(shí)器/計(jì)數(shù)器;IEl,ITl,IE0和IT0位用于中斷系統(tǒng)。


各位定義如下:

TF1:定時(shí)器1溢出標(biāo)志位。當(dāng)字時(shí)器1計(jì)滿溢出時(shí),由硬件使TF1置“1”,并且申請(qǐng)中斷。進(jìn)入中斷服務(wù)程序后,由硬件自動(dòng)清“0”,在查詢方式下用軟件清“0”。

TR1:定時(shí)器1運(yùn)行控制位。由軟件清“0”關(guān)閉定時(shí)器1。當(dāng)GATE=1,且INT1為高電平時(shí),TR1置“1”啟動(dòng)定時(shí)器1;當(dāng)GATE=0,TR1置“1”啟動(dòng)定時(shí)器1。

TF0:定時(shí)器0溢出標(biāo)志。其功能及操作情況同TF1。

TR0:定時(shí)器0運(yùn)行控制位。其功能及操作情況同TR1。

IE1:外部中斷1請(qǐng)求標(biāo)志。

IT1:外部中斷1觸發(fā)方式選擇位。

IE0:外部中斷0請(qǐng)求標(biāo)志。

IT0:外部中斷0觸發(fā)方式選擇位。

TCON中低4位與中斷有關(guān),我們將在下節(jié)課講中斷時(shí)再給予講解。由于TCON是可以位尋址的,因而如果只清溢出或啟動(dòng)定時(shí)器工作,可以用位操作命令。例如:執(zhí)行“CLR TF0”后則清定時(shí)器0的溢出;執(zhí)行“SETB TR1”后可啟動(dòng)定時(shí)器1開始工作(當(dāng)然前面還要設(shè)置方式定)。

定時(shí)器/計(jì)數(shù)器的初始化

由于定時(shí)器/計(jì)數(shù)器的功能是由軟件編程確定的,所以一般在使用定時(shí)/計(jì)數(shù)器前都要對(duì)其進(jìn)行初始化,使其按設(shè)定的功能工作。初始貨的步驟一般如下:

1、確定工作方式(即對(duì)TMOD賦值);

2、預(yù)置定時(shí)或計(jì)數(shù)的初值(可直接將初值寫入TH0、TL0或TH1、TL1);

3、根據(jù)需要開放定時(shí)器/計(jì)數(shù)器的中斷(直接對(duì)IE位賦值);

4、啟動(dòng)定時(shí)器/計(jì)數(shù)器(若已規(guī)定用軟件啟動(dòng),則可把TR0或TR1置“1”;若已規(guī)定由外中斷引腳電平啟動(dòng),則需給外引腳步加啟動(dòng)電平。當(dāng)實(shí)現(xiàn)了啟動(dòng)要求后,定時(shí)器即按規(guī)定的工作方式和初值開始計(jì)數(shù)或定時(shí))。

下面介紹一下確定時(shí)時(shí)/計(jì)數(shù)器初值的具體方法。

因?yàn)樵诓煌ぷ鞣绞较掠?jì)數(shù)器位數(shù)不同,因而最大計(jì)數(shù)值也不同。

現(xiàn)假設(shè)最大計(jì)數(shù)值為M,那么各方式下的

最大值M值如下:

方式0:M=213=8 192

方式1:M=216=65 536

方式2:M=28=256

方式3:定時(shí)器0分成兩個(gè)8位計(jì)數(shù)器,所以兩個(gè)M均為256。

因?yàn)槎〞r(shí)器/計(jì)數(shù)器是作“加1”計(jì)數(shù),并在計(jì)數(shù)滿溢出時(shí)產(chǎn)生中斷,因此初值X可以這樣計(jì)算:

X=M-計(jì)數(shù)值

下面舉例說明初值的確定方法。

例1、選擇T1方式0用于定時(shí),在P1.1輸出周期為1ms方波,晶振fosc=6MHz。

解:根據(jù)題意,只要使P1.1每隔500us取反一次即可得到1ms的方波,因而T1的定時(shí)時(shí)間為500us,因定時(shí)時(shí)間不長(zhǎng),取方式0即可。則M1 M0=0;因是定時(shí)器方式,所以C/T=0;在此用軟件啟動(dòng)T1,所以GATE=0。T0不用,方式字可任意設(shè)置,只要不使其進(jìn)入方式3即可,一般取0,故TMOD=00H。系統(tǒng)復(fù)位后TMOD為0,可不對(duì)TMOD重新清0。

下面計(jì)算500us定時(shí)T1初始值:

機(jī)器周期T=12/fosc=12/(6×106)Hz=2μs

設(shè)初值為X,則:

(1013-X)×2×10-6s=500×10-6s

X=7942D=1111100000110B=1F06H

因?yàn)樵谧?3位計(jì)數(shù)器用時(shí),TL1的高3位未用,應(yīng)填寫0,TH1占用高8位,所以X的實(shí)際填寫應(yīng)為:

X=111100000000110B=F806H

結(jié)果:TH1=F8H,TL1=06H

源程序如下:

ORG 2000H

MOV TL1,#06H ;給TL1置初值

MOV TH1,#0F8H ;給TH1置初值

SETB TR1 ;啟動(dòng)T1

LP1:JBC TF1,LP2 ;查詢計(jì)數(shù)溢出否?

AJMP LP1

LP2:MOV TL1,#06H ;重新設(shè)置計(jì)數(shù)初值

MOV TH1,#0F8H

CPL P1.1 ;輸出取反

AJMP LP1 ;重復(fù)循環(huán)


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉