您的位置:控制工程论坛网论坛 » 嵌入式系统 » 定时器应用实验

mcumao

mcumao   |   当前状态:离线

总积分:1503  2024年可用积分:0

注册时间: 2006-01-20

最后登录时间: 2007-06-11

空间 发短消息加为好友

定时器应用实验

mcumao  发表于 2006/7/11 17:48:13      1001 查看 0 回复  [上一主题]  [下一主题]

手机阅读

功能说明:

定时器的应用(广告灯的左移右移,延时时间使用TIMER0在MODE0下工作)

开始时P1.0亮,延时0.2秒后左移于P1.1亮,如此左移7次后至P1.7亮,再延时右移至P1.6亮,如此右移7次后至P1.0亮.

2) 硬件电路

3) 本实验主程序如下.

ORG 0030H ;起始地址 
MOV TMOD,#00H;设定TIMER0工作在MODE0
START:CLR C;C=0
MOV A,#0FFH;ACC=FFH,左移初值
MOV R2,#08;R2=08,设左移8次
LOOP: RLC A;左移一位
MOV P1,A;输出至P1口
MOV R3,#100;0.2秒
CALL DELAY;2000微秒
DJNZ R2,LOOP;左移8次
MOV R2,#07;R2=07,设右移7次
LOOP1:RRC A;右移一位
MOV P1,A;输出至P1
MOV R3,#100;0.2秒
CALL DELAY;2000微秒
DJNZ R2,LOOP1;右移7次
JMP START 
DELAY:SETB TR0;启动TEMER0开如计时
AGAIN:MOV TL0,#(8192-2000);设定TL0的值
MOV TH0,#(8192-2000);设定TH0的值
LOOP2:JBC TF0,LOOP3;TF0是否为1,是则跳至LOOP3,并清除TF0
JMP LOOP2;不是则跳到LOOP2
LOOP3: 
DJNZ R3,AGAIN;R3是否为0?不是则跳到AGAIN
CLR TR0;是则停止TIMR0计数
RET 
END

                           

1楼 0 0 回复