2016 - 2024

感恩一路有你

c语言一毫秒的延时程序 单片机延时1秒如何计算要最详细一点的要过程用C语言?

浏览量:2027 时间:2021-03-12 18:40:33 作者:admin

单片机延时1秒如何计算要最详细一点的要过程用C语言?

Unsigned char rsecondcount//seconds count

Unsigned char rmintecount//minutes

sbit isonnesecondarch

sbit pulse|Sec=P1^0

sbit pulse|Min=P1^1

main()]{

rsecondcount=0

rmintecount=0

th1=0x3c

tl1=0xaf//计时器50ms生成中断(ffff-3caf)us

mod 0x10//计时器1工作在模式1中,(它可以在模式2下工作,而且更简单)

tr1=1//启用定时器1

ET1=1//开/关

ea=1//开全局中断

而(1)]{

[if](isonesecondarch){

]isonesecondarch=0

//做点什么。如果1秒的延迟标志为1,则清除该标志,等待下一秒,然后执行要执行的程序

}

!/*定时器50ms生成一个中断*/

无效定时器(void)中断3

{

/*重新加载T1参数*/

th1=0x3c

tl1=0xaf

/*1秒累计*/

rsecondcount//秒计时1

如果(rsecondcount==20)//1秒到,50ms*20]{{{

!]脉冲宽度为50ms。如果有其他要求,修改T1参数和“秒分钟”参数连接在一起

在keil中,如果模拟,在配置中将晶体振荡器调整为12Mhz,然后在调用延迟函数的地方设置断点。开始调试程序并运行到断点。注意,在程序的左侧有一个窗口来记录当前寄存器和一些状态。其中,有一个变量记录当前运行时间,记录当前时间T1,然后按F10(不进入子函数)调试,并记录当前时间T2,则延时=T2-T1。

再尝试几次,就可以调整到大约一秒钟。

我通常都是这样。

如果您想了解原理并自己计算,可以查看delay的汇编代码部分。

c语言一毫秒的延时程序 单片机c语言延时一秒 c语言delay函数

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。