永发信息网

单片机延时时间程序怎么编程

答案:5  悬赏:20  手机版
解决时间 2021-02-04 11:54
单片机延时时间程序怎么编程
最佳答案
举一个例子来说明吧.比如你要编一个延时50毫秒的子程序,那么步骤如下:
1、查看一下你的硬件环境,比如晶振大小,CPU型号,不用CPU指令的机器周期是不一样的。
2、计算延时需要的机器周期。比如采用12M晶振,CPU采用通用8051,那么一个机器周期为1US,50毫秒为50*1000=50000US,需要的机器周期=50000/1=50000。
3、试编程,如下:

程序代码 指令时间 总共时间
DELAY50MS: ;2 2
MOV R7,#A ;1 1
DELAY1:
MOV R6,#B ;1 1*A
DJNZ R6,$ ;2 2*B*A
DJNZ R7,DELAY1 ;2 2*A
RET ;2 2
所以总时间=2+1+A+2*A*B+2*A+2=5+3A+2AB
4、凑数求A、B
根据2、3得到如下式子:
50000=5+3A+2AB
可以有很多种结果,不过最好是以A尽可能小,B尽可能大为原则,当然不能大于255.
我现在凑出A=110,B=225;那么总延时时间=5+3*110+2*110*225=49835。还差165US
5、补齐不够时间
再加一个小循环就OK了,呵呵如下:
MOV R6,#C
DJNZ R6,$
会算了吧,2*C+1=165;所以C=82。
现在完整的延时程序出来了,如下:
DELAY50MS: ;2 2
MOV R7,#110 ;1 1
DELAY1:
MOV R6,#225 ;1 1*110
DJNZ R6,$ ;2 2*225*110
DJNZ R7,DELAY1 ;2 2*110
MOV R6,#82 ;1 1
DJNZ R6,$ ;2 2*82
RET ;2 2
很圆满:总的时间50000微妙,也就是50毫秒。这种方式编程,在该硬件环境下可以保证最大误差为1微妙。
全部回答
单片机语言的延时程序如下: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV P1,#00H LCALL DELAY MOV P1,#0FFH DELAY: MOV R5,#20 DELAY1 :MOV R6,#100 DELAY2:MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY2 DJNZ R5,DELAY1 RET END
看你做什么语言了,如果是c的话就类似于以下: …… delay(100); …… void delay(int i) { while(i--); } 如果是汇编的话就类似以下: …… call delay ; …… delay: mov r7,#0 ddd: djnz r7,ddd djnz r6,ddd djnz r5,ddd ret
比较精确的延时一般用定时器,定义一个全局变量g_delay_count: unsigned char volatile g_delay_count; //延时节拍个数 设置定时中断,比如1ms,在定时中断中执行: if (g_delay_count) g_delay_count--; 延时程序如下: void Delay_1ms(unsigned char ms) { g_delay_count=ms; while(g_delay_count); } 调用方法: Delay_1ms(100); // delay 100ms
这个很简单那: f=1mhz/4=250khz,内部振荡模式 ;t=4us 这样是什么意思? 如果采用的是1mhz的情况下4分频率得到 t表示单个周期的时间 dly80m mov a,@220 2 mov t3,a 2 mov a,@16 2 mov t4,a 2 dly2 nop 1 wdtc 2 ;防止程序跑飞,喂狗 djz t3 ;2 不是0 循环 220*2 jmp dly2 ;2 nop 1 mov a,@250 2 mov t3,a ;2 这个语句放在这因为第一次算出的时间和后面的组合刚好合适 djz t4 ; 2 外循环再延时间 大约时间应该是 [15*250*8+220*8+10]*4=12。7 jmp dly2 2 nop ret
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有用过米诺系列很长时间的吗?两三年以上的。
发宣发型设计怎么去啊,我要去那办事
盈祥银饰我想知道这个在什么地方
很纠结,要让老人把宝宝带回老家养吗
viv0y29手机解锁图案丢失找回秘码
求一支偏软的乒乓球拍底板 100元以内 谢谢
I live in an apartment across the street f
海岛椰林水果超市怎么去啊,有知道地址的么
疚悔的意思是什么啊?知道的请说下!
200乌兹别克斯坦钱对人民币
剪约专业美发地址在什么地方,我要处理点事
【机位】电影拍摄机位是指()。
小东食杂批零商店地址有知道的么?有点事想过
阿权发艺地址好找么,我有些事要过去
trace在通信专业怎么解释?
推荐资讯
再婚父母签订财产及抚养协议,需要谁签字才能
生物学家研究发现,癌细胞的无限增殖受某调控
屠格涅夫的意思是什么啊?知道的请说下!
初放女子是什么成语
其貌不扬的意思是什么啊?知道的请说下!
下述哪一种表现不属于右心衰竭的体征A.双肺满
宏源五金水暖电怎么去啊,有知道地址的么
QQ删了好友,好友还能看你空间么
效节的意思是什么啊?知道的请说下!
岁晏的意思是什么啊?知道的请说下!
The senses of satisfaction and safety both
冬云砂锅在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?