您的位置 首页 软件

单片机入门试验九

;*****************************************;;实验名称:定时器T0控制LED灯闪烁时间的实验;;作者:龙谊;;版本:VER10

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

;试验称号: 守时器T0操控LED灯闪耀时刻的试验;
;作者: 龙谊
;版别: VER 1.0
;阐明: 运用守时器T0
;修正:
;编程言语: 汇编言语

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

一、作业形式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

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/ruanjian/259928.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部