51单片机delay延时1秒
答:这是机器周期的问题,在12M晶振下,一条for循环大概8个机器周期,一个机器周期是1us,上式的延时时间就是1000*125*8us=1s.这只是大概的时间,实际上C语言的延时是不准确的,只有汇编的延时是准确的.
答:void delay(unsigned char i) //延时程序{ unsigned char i,k;for(j=i;j>0;j--) for(k=125;k>0;k--);}
答:5、最后,将延时语句全部添加进去,代码按照图中所示的直接敲入即可。6、最后,点击编译,生成HEX文件就可以了,这样51单片机延时语句就完成了。
答:把t 改为你要延时的数就可以了,1毫秒就把t改为1 500毫秒就把t改为500
答:void main(){ while(1){ Delay1ms(1000);//1s延时;} } void Delay1ms(unsigned int a)//0~65535 { unsigned long b;//0~0xffffffff b = TimeTickCount;//记下及时器初始值 while((TimeTickCount-b<a)||(0xffffffff+TimeTickCount-b...
答:如果要精确的延时建议采用中断:include "reg51.h"//timer init void initTimer(void){ TMOD=0x2;TH0=0x6;TL0=0x6;} int T250uS;char T_mark;//timer0/counter0 interrupt void timer0(void) interrupt 1 { //add your code here.T250uS++;T_mark=0;} void Delay1S(char n){ for(...
答:当单片机LED灯一亮一灭间隔1秒时,可以使用以下代码实现:// 初始化IO口 P1 = 0xFF; // 设置延时时间 while (1) { P1 = 0x00; // 延时1秒 for (int i = 0; i < 10000; i++) { // 空循环 } P1 = 0xFF; // 延时1秒 for (int i = 0; i < 10000; i++) { // 空...
答:51单片机,有8个流水灯,每个之间延迟1秒,这个延迟用c程序编写怎么写 心肝脾肺都碎了 | 浏览1800 次 |举报 我有更好的答案推荐于2017-12-16 15:19:44 最佳答案 调用delay()函数其中x,y的最大数字根据调试结果做修改,很长时间没写了。。。void delay(){ int x,y; for(x=0;x<=5000;x++) for(y=0...
答:DEL1S:MOV R7,#10 D1: MOV R6,#200 D2: MOV R5,#250 DJNZ R5,DJNZ R6,D2 DJNZ R7,D1 RET 说明:1、如果不使用R5、R6、R7可以用别的单元替换,比如换成30H、31H、32H等等 2、这个程序是12M时钟,如果时钟不同,要修改数值。如6M时钟,要把MOV R7,#10 修改成:MOV R7,#5 ...
答:延时里面的前3个for循环后面的分号去掉 有分号只会自己循环不会执行for下面的程序的 顺便发个12MHz晶振1S的延时给你参考一下 void delay1s(void){ unsigned char a,b,c;for(c=46;c>0;c--)for(b=152;b>0;b--)for(a=70;a>0;a--);} ...
网友评论:
政树19754595344:
51单片机延时1秒子程序
4735隗生
: 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
政树19754595344:
51单片机按键延时1秒转换led状态,求大神写下程序 -
4735隗生
: 0 01 11 00 1 是这样的四种状态吗? 这样很简单的,, 主要还是检测按键, 按键按下 你把一个变量+1, 比如 if(Key == 0) { delay(); //延时10ms,延时函数 自己写吧 if(Key == 0) { num++; if(num >= 4) num = 0; while(!Key); } } 然后根据num ...
政树19754595344:
51单片机delay延时问题 -
4735隗生
: 这个延时要看编译后的汇编来计算,看具体的执行时间来定,延时1秒可以用多层圈来套用即可
政树19754595344:
求51单片机 延时1秒钟的子程序(没什么要求) -
4735隗生
: 如果是11.0592MHz的晶振,那么程序是: void delay(uint xms) {int i,j; for(int i=xms;i>0;i--)for(j=148;j>0;j--); } delay(1)是延时1ms,所以延时一秒就是delay(1000); 还有不懂的可以继续问
政树19754595344:
51单片机,有8个流水灯,每个之间延迟1秒,这个延迟用c程序编写怎么写 -
4735隗生
: 要看你的时钟周期,如果是12Mhz的话,每个时钟周期MC=6*2/12 M =1us,所以延迟是让机器计数1000000下,上面那个公式你自己套用24Mhz的就是2000000下.c语言的循环次数你自己算,每条指令一个周期,所以楼上的程序在12Mhz下是1s延迟.
政树19754595344:
AT89C51单片机,如何实现延迟一秒用C语言延迟一秒,我是用循
4735隗生
: 其实可以用C语言实现的,先要定义好定时器的初值 不管你使用多大的晶振,使用51单片机,一般都是12分频出来,也就可以得出一个机器周期 机器周期=12/n(n指晶振频率...
政树19754595344:
AT89C51单片机延时1秒程序怎么写??? -
4735隗生
: void DELAY(int z)//延时zms {int x,y;for(x = z;x > 0;x--)for(y = 110;y > 0;y--); }DELAY(1000); 就可以延时1S 但是有很小的误差 精确的只能用定时器了
政树19754595344:
在单片机AT89C51芯片中,设计一个一秒的延时程序,有多少种方法,具体如何? -
4735隗生
: 比较常用的有两种一种比较简单的就是粗略的软件延时;如:void delay_1s(void) { unsigned char i,j; for(i=0;i<128;i++) for(j=0;j<254;j++); }这种通过调整i和j的最终值来确定延时时间,没有办法精确计算的.另一种,做比较精确的延时,...
政树19754595344:
单片机的延时程序 -
4735隗生
: 去百度文库,查看完整内容>内容来自用户:天成信息单片机延时方法总结 实现延时通常有两种方法:一种是硬件延时,要用到定时器/计数器,这种方法可以提高CPU的工作效率,也能做到精确延时;另一种是软件延时,这种方法主要采用循...
政树19754595344:
C51单片机怎样实现延时控制 -
4735隗生
: 最简单的软件延时: unsigned char i; for(i=0;i<100;i++) {i++; } 可改变i的值以达到延迟的时间. 还有就是用定时器延时: void Delay(unsigned char t) {do{TH0 = 0xDC;//设置定时器初值(定时10ms)TL0 = 0x00;TR0 = 1; //启动定时器while ( !TF0 ); //等待定时器溢出TR0 = 0; //停止定时器TF0 = 0; //清除溢出标志} while ( --t != 0 ); //循环t次 }