久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機入門實驗九

單片機入門實驗九

作者: 時間:2016-11-24 來源:網絡 收藏
;*****************************************;

;實驗名稱: 定時器T0控制LED燈閃爍時間的實驗;
;作者: 龍誼
;版本: VER 1.0
;說明: 使用定時器T0
;修改:
;編程語言: 匯編語言

;******************************************;

本文引用地址:http://cqxgywz.com/article/201611/320657.htm

一、工作模式0

ORG00H
MOVTMOD,#00H ;設定定時器T0工作為模式0
START: CPLP0.0 ;位P0.0做取反處理,使LED燈亮與滅交替工作
MOVR1,#100 ;延時0.2秒
CALLDELAY ;設定時間為2毫秒(即2000微秒)
JMPSTART
DELAY: SETBTR0 ;啟動定時器T0開始計時
D1: MOVTL0,#(8192-2000)MOD 32 ;設定TL0的值
MOVTH0,#(8192-2000)/32 ;設定TH0的值
D2: JBCTF0,D3 ;TF0=1?是就跳到D3,同時清除TF0
JMPD2 ;不是則跳到D2
D3: DJNZR1,D1 ;定時夠0.2秒了嗎?
CLRTR0 ;夠了則停止T0計時
RET
END

二、工作模式1

ORG00H
MOVTMOD,#01H ;設定定時器T0工作為模式1
START: CPLP0.0 ;位P0.0做取反處理,使LED燈亮與滅交替工作
MOVR1,#20 ;延時0.2秒
CALLDELAY ;設定時間為10毫秒(即10000微秒)
JMPSTART
DELAY: SETBTR0 ;啟動定時器T0開始計時
D1: MOVTL0,#(65536-10000)MOD 256 ;設定TL0的值
MOVTH0,#(65536-10000)/256 ;設定TH0的值
D2: JBCTF0,D3 ;TF0=1?是就跳到D3,同時清除TF0
JMPD2 ;不是則跳到D2
D3: DJNZR1,D1 ;定時夠0.2秒了嗎?
CLRTR0 ;夠了則停止T0計時
RET
END

三、工作模式2

ORG00H
MOVTMOD,#02H ;設定定時器T0工作為模式2
START: CPLP0.0 ;位P0.0做取反處理,使LED燈亮與滅交替工作
MOVR2,#04 ;延時0.2秒
LOOP:MOVR1,#200 ;延時50毫秒
CALLDELAY ;設定時間為250微秒
DJNZR2,LOOP ;定時夠0.2秒了嗎?
JMPSTART
DELAY: SETBTR0 ;啟動定時器T0開始計時
D1: MOVTL0,#(256-250) ;設定TL0的值
MOVTH0,#(256-250) ;設定TH0的值
D2: JBCTF0,D3 ;TF0=1?是就跳到D3,同時清除TF0
JMPD2 ;不是則跳到D2
D3: DJNZR1,D1 ;定時夠50毫秒了嗎?
CLRTR0 ;夠了則停止T0計時
RET
END

四、工作模式3

ORG00H
MOVTMOD,#03H ;設定定時器T0工作為模式3
START: CPLP0.0 ;位P0.0做取反處理,使LED燈亮與滅交替工作
MOVR2,#04 ;延時0.2秒
LOOP: MOVR1,#200 ;延時50毫秒
CALLDELAY ;設定時間為250微秒
DJNZR2,LOOP ;定時夠0.2秒了嗎?
JMPSTART
DELAY: SETBTR0 ;啟動定時器T0開始計時
D1: MOVTL0,#(256-250) ;設定TL0的值
D2: JBCTF0,D3 ;TF0=1?是就跳到D3,同時清除TF0
JMPD2 ;不是則跳到D2
D3: DJNZR1,D1 ;定時夠50毫秒了嗎?
CLRTR0 ;夠了則停止T0計時
RET
END



關鍵詞: 單片機入門實

評論


技術專區

關閉