C语言编程(定时器50ms)

C语言编程(定时器50ms),第1张

#include“reg52.h”  //头文件,包含各种寄存器定义及函数库

time0()      interrupt 1        using 0

{

    TH0=0x3CTLO=0xB0

    P1_0=~P1_0

}

main()

{

      TMOD=0x01TH0=0x3CTLO=0xB0

//12MHz下,50ms定时所对应的初值

      EA=1ET0=1TRO=1

      while(1)

      {

        }

}

8盏LED灯循环点亮,间隔时间为50ms,你能分辨不?

还是给你改为间隔时间为1s,用定时器延时子程序实现

org 0000h

jmp start

org 0030h

start:

mov A,#0FEH

mov R2,#8

LOOP1: mov p1,A 左边4个LED每隔1S亮1个。从P1.0到P1.7。

call delay1s 调用定时1s程序

RL A

djnz R2,LOOP1

jmp start

delay1s:

mov r7,#20

lpr7: call delay50ms

djnz r7,lpr7

ret

delay50ms:

mov TMOD,#01H

mov TH0,#(65536-50000)/256

mov TL0,#(65536-50000) mod 256

setb TR0

jnb TF0,$

clr TF0

ret

jmp $

end


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11237354.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存