pic单片机 实现10ms定时的简单程序

pic单片机 实现10ms定时的简单程序,第1张

这个可以用几种办法:

1、直接用软件延时,如纯喊蚂用以下的DELAY()延时子程序,如要延时5ms,直接调用DELAY(5)就好了,做埋但这种是纯软件的延时。

//======延时(n)ms,在4MHz晶振下!!!

void DELAY(uint n)

{ uint j

uchar k

for (j=0j<nj++)

for (k=246k>0k--) NOP()

}

2、用定时器延时,要通过计算延时渗岩的时间来确定延时的常数(分频比和定时器初值)。

PIC单片机没玩过,倒是用过51单片机。

申请一个定时败粗器(一定要计算好时间,也就是初始值的设定),闹枯中然后控制I/O引脚让一个LED亮,维持30s,在控制I/O口让另一个灯亮60s。

注意寄存液山器的配置。

你应该去找PIC16F873的数据说明书来看看(电子版免费可下载的梁族)。说含配明书里连样例程序都有。

就如图可以看出:这是873的定时器1的结构图。当4Mhz的晶振时候,则单个指令周期谈渣指为1uS,而定时器1的TMR1是16位的,如果预分频1:1,则从0计算到0xffff溢出时间需要65536个指令周期,也就是65mS多点。而当TMR1里存有0x3CAF时候,TMR1就会易拓为初值自加到0xFFFF。

就是0xFFFF-0x3CAF=OxC350=50000.

所以程序就是:

MOVLW 0xAF

MOVWF TMR1L

MOVLW 0x3C

MOVWF TMR1H

并且要开中断和设置中断服务子程序。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存