怎样用keil编写单片机的计数程序

怎样用keil编写单片机的计数程序,第1张

如果你的计数过程不是非常快的话,可以不用外部型知碧中断。

include <reg51.h>

void xianshi(long unsigned int i) //显示子函数,用来显示数字。

{

}

void delay() //延迟函数

{

int x,y

for(x=0x<100x++) //修改卜举数值,可改变延迟时间

for(y=0y<10y++) //修改数值,可改变延迟时间

}

main()

{

long unsigned int a=0//定义无符号长整型 a

while(1) //大循环

{

if(P1_0==0) //判断脉冲信号,如果为低,进入计数,如果为高,则继续判断。

{

delay(); //等待一下猛晌,消抖,防止线路干扰等情况。

if(P1_0==0) //第二次判断

{ a++//计数加1

xianshi(a)//执行显示函数,现实数字。

while(P1_0==0)//脱离计数检测,即“松手检测”,当被测物体一直在时,防止重复计数。

}

}

}

}

说明:自己现写的程序,呵呵,不知道有没有错误。

P1.0口接脉冲输入,可以自己定义其它接口。

当输入电平为低时,a就会自增一次,一般情况下可以计数到6万多或者几十亿。

可以根据实际情况,如被测物体速度、晶振频率等,修改delay函数中的值,以适合实际测量。

没有写显示函数,这取决于你要用的显示方式。

使用定时器,设拍配塌置定时的时间为50ms,采用中断袭圆方式,每中断一次,计数一次,中断20次,就是1秒,再计秒,60秒为1分,再计分,计到10分就行。

其实,就是电子时钟的程序吗,要计秒,分,小时,这都卖大可以实现的,何况你是10分。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存