如何将1秒延时子程序加进来,是这段程序的时间变成秒,现在的时间走的很快。
你好,很高兴为你解答
2秒一般不会用延时函数做,应该用定时器实现
delay延时函数一般定时几毫秒~100毫秒
当然,可以调用delay100ms函数20次
希望我的回答对你有所帮助
如有其他问题,可以继续追问,
您的采纳是我前进的动力!
单片机延时一秒
程序是不固定的
要根据你的晶振 计算出一次循环执行需要的时间
然后 写循环次数
一般是
void delay_one_second(void){ int i; for(i = 0; i < TIMES; i++);}这样就可以了。 TIMES是要计算的。或者 根据示波器 自己尝试。
到1S才执行LP2
如:TH0=(65536-50000)/256
TL0=(65536-50000)%256
12M的时候50MS中断,则计数要到20为1S,则执行LP2:*****
DJNZ R4...
单片机1秒钟定时汇编语言怎么编?
可以有两种方法,设晶振为12M,则 第一种方法:用延时的方法实现 DELAY: MOV R3,#10;延时子程序,延时1秒 D1: MOV R4,#200 D2: MOV R5,#250 D3: DJNZ R5,D3 DJNZ R4,D2 DJNZ R3,D1 RET END 第二种方法:用定时器的方法实现 ———MOV R1,#20 ———DLY: MOV T...
延时子程序怎么算等于1秒
你的程序没有问题吗?应该是void delay吧。。。 K我估计可以设为10^6-10^7之间,然后在for前面加一句: int t=clock(); for完了以后,计算差值clock()-t;每次调整K值, 如果差值在1000(ms)的话说明是1s了,当然每次不会很精确的…… 具体的K也要根据你的机器而定。 还望采纳,谢谢!记得...
怎么样才能实现一秒的延迟,怎么才能用计时器实现一秒计时中断?
while(1) \/\/程序循环 { ;\/\/主程序在这里就不断自循环,实际应用中,这里是做主要工作 } } \/\/定时器2中断 timer2() interrupt 5 { static uchar t;TF2=0;t++;if(t==30) \/\/T2的预置值0x1000,溢出30次就是1秒钟,晶振22118400HZ { \/\/这里是中断子程序 } } \/\/我的注释还算详细吧...
汇编延迟代码
这要看你的CPU的主频了,计算执行周期,一般nop指令就一个时钟周期,你可以据此估算一下1秒钟要执行多少次nop指令 设置一个循环就可以了。
单片机汇编 只有1s延时子程序 怎么延时2s..不能改变子程序。
DELAY1S: MOV R0,#10H LOOP0:LCALL DELAY DJNZ R0,LOOP0 RET DELAY:MOV R6,#0C8H; 外循环 200 次 LOOP1:MOV R7,#0F8H; 内循环 248 次 NOP LOOP2:DJNZ R7,LOOP2; 延时2 μs×248=496 μs DJNZ R6,LOOP1; 延时 500 μs×200=100 ms RET 将上面函数调用两次就可以啦 ...
单片机延时子程序流程图
最后补充一点,编写程序时一般将延时程序编写成独立的子程序,而所谓子程序也就是一个实现某个功能 的小模块。这样在主程序中就可以方便地反复调用编写好的延时子程序。 小提示:循环转移指令(DJNZ )除了可以给定地址标号让其跳转外,还可以将地址标号改成$,这样 程序就跳回本指令执行。例如: DJNZ R7,$ ;R7 内容...
51单片机怎么延时程序
几个精确延时程序:在精确延时的计算当中,最容易让人忽略的是计算循环外的那部分延时,在对时间要求不高的场合,这部分对程序不会造成影响。500ms延时子程序程序:(晶振12MHz,一个机器周期1us。)void delay500ms(void){ unsigned char i,j,k;for(i=15;i>0;i--)for(j=202;j>0;j--)for(...
怎么用C语言写可以调节的延时程序,请大侠帮忙
C语言延时程序:10ms延时子程序(12MHZ)void delay10ms(void){ unsigned char i,j,k;for(i=5;i>0;i--)for(j=4;j>0;j--)for(k=248;k>0;k--);} 1s延时子程序(12MHZ)void delay1s(void){ unsigned char h,i,j,k;for(h=5;h>0;h--)for(i=4;i>0;i--)for(j=116;...
求解单片机延时子程序延时计算
DJNZ R7,$ 指令周期2*100*100*25 DJNZ R6,DLY2 指令周期2*100*25 DJNZ R5,DLY1 指令周期2*25 RET 指令周期2 1+25+2500+500000+5000+50+2=507578 12M 的晶振 每个机器周期为1us 那么就是0.507578s延时,可以简略认为0.5s延时。
若晶振为12MHz,试编制延迟2ms和1s的子程序 单片机程序
名称:delay2ms 功能:延时2ms 晶振:12MHz 机器周期1us 时间计算:t=2+1+1995+2=2000us =2.000ms ---*\/ void delay2ms(void) \/\/延时2ms子程序 { unsigned char i,j,z;for(z=5;z>0;z--)for(i=12;i>0;i--)for(j=15;j>0;j--);} void delay(void) \/\/延时1s 误差+0...
湛冉复方: 用定时器中断,50MS一中断,20次就是1秒.
建德市15631866002: PIC单片机延时子程序怎么添加到程序中 - ?
湛冉复方: 首先声明延时子程序,然后就可以直接在主程序中调用了
建德市15631866002: 跪求8086/8088系统的汇编程序延迟一秒子程序 - ?
湛冉复方: 默认的时间中断是每秒产生18.2次,如果要求不精确,就用18次时钟中断来延时一秒. 地址0:46c存放的就是这个计数器,可以读取这个,然后加上18,比较就可以实现.代码如下: mov ax,0 mov ds,ax mov si,46ch lodsw add ax,18 mov cx,ax loc_1: mov si,46ch lodsw cmp ax,cx jnb loc_2 jmp loc_1 loc_2: 如果要求非常精确,那就要直接对定时器进行编程,通过端口操作来实现.
建德市15631866002: 51单片机延时1秒子程序?
湛冉复方: 6M/12机器周期,2us/机器周期,1秒须50000个机器周期 DELAY: MOV R3,#10 M1: MOV R4,#200 M2: MOV R5,#250 M3: DJNZ R5,M3 DJNZ R4,M2 DJNZ R3,M1
建德市15631866002: PIC单片机延时子程序怎么添加到程序中?
湛冉复方: 把延时函数命名,而后直接调用就行了.
建德市15631866002: 单片机延迟1秒的两层循环子程序怎么写? - ?
湛冉复方: 汇编的话,两层实现不了一秒,255*255
建德市15631866002: 怎样在单片机C代码中加入汇编延时子程序? - ?
湛冉复方: (1)、C51语言中调用汇编语言程序;C51语言调用汇编语言程序要注意以下几点:1:在文件栏选中File Group和C51程序原文件,在配置文件选项中激活“产生汇编(SRC)文件,“编译(SRC)文件”和“创建工程(目标)时包含”三个选项...
建德市15631866002: AT89C51单片机延时1秒程序怎么写??? - ?
湛冉复方: void DELAY(int z)//延时zms {int x,y;for(x = z;x > 0;x--)for(y = 110;y > 0;y--); }DELAY(1000); 就可以延时1S 但是有很小的误差 精确的只能用定时器了
建德市15631866002: 12M晶振,89S51单片机的一秒延时程序,请高手帮忙 - ?
湛冉复方: 这个是一秒吗?明显不对,你看看这个吧 DELAY:MOV R7,#200 设定外循环次数200,本条指令用时1us,可忽略 L1:MOV R6,#250 设定中循环次数250,本条指令用时1us,可忽略 L2:MOV R5,#10 设定内循环次数10,本条指令用时1us,可忽略 L3JNZ R5,L3 内循环语句,本条指令用时2us DJNZ R6,L2 中循环语句,本条指令用时2us DJNZ R7,L1 外循环语句,本条指令用时2us RET 本条指令用时1us,可忽略 延时10*250*200*2us+4us=1s 详细请到QQ群:5729033讨论
建德市15631866002: 怎样写一个at89c2051的6秒延时和一个1秒延时子程序 - ?
湛冉复方: 你在主程序上设置好定时器的工作方式,然后找个51单片机定时器的计算软件,算出来的初值添在下面的子程序里面 delay:MOV THO,# ;软件计算出来的高位 MOV TL0,# ;软件计算出来的低位 SETB TRO RET 调用的时候用lcall delay 就可以了