重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

51c语言延时函数1s 延时程序c语言

单片机C语言编程中,编一个延时约1s的语句

每一遍,如果是1us,才能是延时约1s。但是,晶振是12MHz,一条汇编的指令就至少是1us,C语言的语句,就要更多。

创新互联建站是一家集网站建设,万安企业网站建设,万安品牌网站建设,网站定制,万安网站建设报价,网络营销,网络优化,万安网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

记下当前时间T1,然后按F10(不进入子函数)调试,再记录当前时间T2,则延时=T2-T1。多试几个A,差不多调到1s就够了。我一般都这么调。你要想明白其中原理,想自己算的话,你就看看delay的汇编代码段自己算吧。

void main(){ TMOD=0x00;TH1=0x3c;TL1=0xb0;EA=1;ET1=1;TR1=1;while(1){ if(i==20){ i=0;//下面写你要处理的的其他程序,你只要了定时1s。

然后,进行宏定义,代码如图所示。然后声明P1口,如下图所示。最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。最后,点击编译,生成HEX文件就可以了,这样51单片机延时语句就完成了。

51单片机延时函数的问题。晶振是12MHz..需要延时1秒

51单片机12M晶振延时1us,只需要执行一个NOP就是了。C语言中也是如此。

这样初始化就没问题了,另外要实现1S延时,需要在中断函数里加个变量自增,因为我定义的是50ms中断一次,那么这个变量值自增到20后就代表1s时间到,清零这个变量之后方可写你的服务程序。希望我的回答能帮助到你。

51单片机晶振12MHz软件延时1秒程序:DELAY:MOV R7,#500 D1:MOV R6,#250 D2:NOP NOPNOPNOPNOPNOPDJNZ R6,D2 DJNZ R7,D1 .以上程序为何能定时1秒? 请阅附件。

应该是 12MHz 吧?单片机内部,计时的单位是《机器周期T》。

12MHz频率,延迟1us,是不可能的。就是调用函数、什么也不干、马上就返回,也不止 4us。

C51延时1秒问题

执行空语句执行124次,大概就能延时到1秒.不是很准的.经验值。

先打开我们熟悉的单片机c51编程软件——keil,先把主方法写好。然后,我们要定义两个变量。接着,设定好定时器的工作方式。设置中断发生的机制。最后,我们要加进这几行代码进行初值的重装。

j=t*100;这一句了,如果把这一句给删了,那么你的程序就是延时100ms的,delay(10)就是延时一秒。

要延时1s就是要执行1000000个机器周期,我们要进行3层循环,因此记每层循环要执行100次,但是这样会使延时大于1000000个机器周期。

调用延时程序期间,单片机什么事都不做,一直占着单片机 使用定时器中断定时,单片机还可以做其他事,比如:扫面键盘、调用显示程序。


文章标题:51c语言延时函数1s 延时程序c语言
本文来源:http://cqcxhl.cn/article/dsjeedp.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP