介绍计数器 定时器 程序 的编写步骤 (C语言的)

介绍计数器 定时器 程序 的编写步骤 (C语言的),第1张

假设你用的晶振为12m,用p1.0口输出周期为2ms的方波。使用定时器工作方式1.

至于计数初值的计算,授之以鱼不如授之以渔!

在定时器模式下,计数器的计数脉冲腊厅来自于晶振脉冲的12分频信号,即对机器周期进行计数。若选择12m晶振,则定时器的计数频率为1mhz。假设定时时间为谈局御t,机器周期为t1,即12/晶振频率。x为定时器初值。则

x=2^n-t/t1。方式0,n=13,方式1时,n=16,方式2和方式3,n=8

自己算去吧!

#include

void

inittimer0(void)//

{

tmod

=

0x01

th0

=

0x0fc

//计数器初值

tl0

=

0x18

ea

=

1

et0

=

1

tr0

=

1//开启定时器t0

}

void

main(void)

{

inittimer0()

}

void

timer0interrupt(void)

interrupt

1

{

th0

=

0x0fc//重新赋初值

tl0

=

0x18

p1.0=~p1.0

//输含岩出方波

}

1.以查询方式工作,每计满100个脉冲,则取反P1.0口线状态。

    ORG   0000H

    MOV   TMOD, #06H

    MOV  伍野 TH0, #156

    MOV   TL0, #156

    SETB  TR0

LP: JNB   TF0, LP

    CPL   P1.0

    SJMP  LP

    

END

2.以中断方式工作,每计腊橘耐满200个脉冲,则取反轮春P1.0口线状态。

    ORG   0000H

    SJMP  START

    ORG   000BH

    CPL   P1.0

    RETI

START:

    MOV   TMOD, #06H

    MOV   TH0, #56

    MOV   TL0, #56

    SETB  TR0

    MOV   IE, #82H

    SJMP  $

    

END


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存