110592m晶振1s延时
@隗家2925:我的单片机用的11.0592M的晶振,想写一个大概延时1MS的子程序,应该怎样写?(用C语言)
吉莲18057957524…… void delay(uint n) { uint i,j; for(i=n;i>0;i--) { for(j=110;j>0;j--); } } 当n=1是延时大约是1ms,就是说n等于都少就延时多少ms,当然n的值不超过uint的最大值. 头文件下请定义宏 #define uchar unsigned char #define uint unsigned int
@隗家2925:11.0592M晶振能的51单片机,想要定时1S,TH0和TL0分别是多少? -
吉莲18057957524…… 5ms是 th 0x0d tl 0xff 1s是在定时中断定一个变量++加到200为1s 变量清0
@隗家2925:STC89C52单片机,时钟电路用的晶振为11.0592M,关于延时程序的几个问题 -
吉莲18057957524…… 这个123是经验值,是仿真或实际测试得出的数据,STC89C52是6T工作模式,比普通的51快一些,普通51的话这个值一般是110. 第二个延时,while(--i)类似于汇编的djnz Rn ,dest,这条指令为2个执行周期,因为i是整型数,所以实际上不止这一条指令,完成一个延时循环需要四五个机器周期,每个周期时间约为0.5us,所以这里有i>12. 第三个延时,900也是经验数据,调用一个delay_nus延时约为1us,实际仿真或测试可能为1个多微妙,所以这里给出900的参数.延时约1毫秒.
@隗家2925:51单片机延迟时间计算,晶振11.0592MHz ,下面的延迟时间怎么计算呢,麻烦写下. -
吉莲18057957524…… DELAY: MOV R3,#20 ; 2s = 100 mS * 20 D1: MOV R4,#200 ; 500 * 200 = 100 mS D2: MOV R5,#230 ; 2.17 * 230 = 500 uS DJNZ R5,$ ; 2.17 uS DJNZ R4,D2 DJNZ R3,D1 RET END
@隗家2925:帮忙计算下这个单片机c语言的延时程序的时间? 这个用的是12m晶振 如果改为11.0592m晶振该如何写延时? -
吉莲18057957524…… 你这样的软件延时只是个大概值,12m和11.0592m差不了多少,所以不用改
@隗家2925:求一个严格的单片机c语言延迟函数 要求延迟0.5s 单片机晶振为11.0592Mhz -
吉莲18057957524…… void Delayms_110592(unsigned int time_)//延时时间为 1ms * x 晶振是11.0592M { unsigned int _x,_y; for(_y = 0; _y < time_; _y++) for(_x = 0;_x < 111; _x++); } 我用示波器调出来的
@隗家2925:51单片机用定时器延时1s,晶振是11.0592m的,貌似超过th和tl的范围了,则么延时.
吉莲18057957524…… 重复计数
@隗家2925:STC 12T单片机延时10US的c语言程序,11.0592M的晶振 -
吉莲18057957524…… #include void _nop_ (void); 用 _nop_(); 来延时,一个 _nop_(); 是一个 硬件 周期."US" 是 什么单位? 1/1000000 秒?按 11.0592M的晶振 你可以 估计要多少周期,再决定 循环多少次. 例如,延时较长用双重循环:void delay(void) { unsigned int j = 0; unsigned int g = 0; for(j=0;j{ for(g=0;g{ _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } } }
@隗家2925:晶振为11.0592的at89c51单片机用C语言能实现1微妙的延时吗?怎么写?要带形参的!请高手指点,万谢!!! -
吉莲18057957524…… 你可以算一下.一个机器周期包括12个时钟周期.一个单片机工作于12M晶振,它的时钟周期是1/12(微秒).它的一个机器周期是12*(1/12)也就是1微秒.你用的是11.0592的单片机,这就不能达到要求,而且你用C语言编程还要带形参,所以根本不可能实现1微妙延时,你可以用12M的晶振,然后用一个_NOP_()指令来延时1微妙.
@隗家2925:89c2051 单片机用11.0592M晶振,延时50ms怎么写? -
吉莲18057957524…… 不知道你这个延迟的作用,用11.0592M晶振的话执行一次是12/11.0592 us 如果不是要的很精确的话就可以把执行一条简单的语句大约看做是1us.你可以像楼上说的那样写delay 具体多少个循环这个自己应该能算出来的. 要精确的话最好用中断,这个中断一次就是很精确的12/11.0592 us 如果要中断程序的话 请追问
吉莲18057957524…… void delay(uint n) { uint i,j; for(i=n;i>0;i--) { for(j=110;j>0;j--); } } 当n=1是延时大约是1ms,就是说n等于都少就延时多少ms,当然n的值不超过uint的最大值. 头文件下请定义宏 #define uchar unsigned char #define uint unsigned int
@隗家2925:11.0592M晶振能的51单片机,想要定时1S,TH0和TL0分别是多少? -
吉莲18057957524…… 5ms是 th 0x0d tl 0xff 1s是在定时中断定一个变量++加到200为1s 变量清0
@隗家2925:STC89C52单片机,时钟电路用的晶振为11.0592M,关于延时程序的几个问题 -
吉莲18057957524…… 这个123是经验值,是仿真或实际测试得出的数据,STC89C52是6T工作模式,比普通的51快一些,普通51的话这个值一般是110. 第二个延时,while(--i)类似于汇编的djnz Rn ,dest,这条指令为2个执行周期,因为i是整型数,所以实际上不止这一条指令,完成一个延时循环需要四五个机器周期,每个周期时间约为0.5us,所以这里有i>12. 第三个延时,900也是经验数据,调用一个delay_nus延时约为1us,实际仿真或测试可能为1个多微妙,所以这里给出900的参数.延时约1毫秒.
@隗家2925:51单片机延迟时间计算,晶振11.0592MHz ,下面的延迟时间怎么计算呢,麻烦写下. -
吉莲18057957524…… DELAY: MOV R3,#20 ; 2s = 100 mS * 20 D1: MOV R4,#200 ; 500 * 200 = 100 mS D2: MOV R5,#230 ; 2.17 * 230 = 500 uS DJNZ R5,$ ; 2.17 uS DJNZ R4,D2 DJNZ R3,D1 RET END
@隗家2925:帮忙计算下这个单片机c语言的延时程序的时间? 这个用的是12m晶振 如果改为11.0592m晶振该如何写延时? -
吉莲18057957524…… 你这样的软件延时只是个大概值,12m和11.0592m差不了多少,所以不用改
@隗家2925:求一个严格的单片机c语言延迟函数 要求延迟0.5s 单片机晶振为11.0592Mhz -
吉莲18057957524…… void Delayms_110592(unsigned int time_)//延时时间为 1ms * x 晶振是11.0592M { unsigned int _x,_y; for(_y = 0; _y < time_; _y++) for(_x = 0;_x < 111; _x++); } 我用示波器调出来的
@隗家2925:51单片机用定时器延时1s,晶振是11.0592m的,貌似超过th和tl的范围了,则么延时.
吉莲18057957524…… 重复计数
@隗家2925:STC 12T单片机延时10US的c语言程序,11.0592M的晶振 -
吉莲18057957524…… #include void _nop_ (void); 用 _nop_(); 来延时,一个 _nop_(); 是一个 硬件 周期."US" 是 什么单位? 1/1000000 秒?按 11.0592M的晶振 你可以 估计要多少周期,再决定 循环多少次. 例如,延时较长用双重循环:void delay(void) { unsigned int j = 0; unsigned int g = 0; for(j=0;j{ for(g=0;g{ _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } } }
@隗家2925:晶振为11.0592的at89c51单片机用C语言能实现1微妙的延时吗?怎么写?要带形参的!请高手指点,万谢!!! -
吉莲18057957524…… 你可以算一下.一个机器周期包括12个时钟周期.一个单片机工作于12M晶振,它的时钟周期是1/12(微秒).它的一个机器周期是12*(1/12)也就是1微秒.你用的是11.0592的单片机,这就不能达到要求,而且你用C语言编程还要带形参,所以根本不可能实现1微妙延时,你可以用12M的晶振,然后用一个_NOP_()指令来延时1微妙.
@隗家2925:89c2051 单片机用11.0592M晶振,延时50ms怎么写? -
吉莲18057957524…… 不知道你这个延迟的作用,用11.0592M晶振的话执行一次是12/11.0592 us 如果不是要的很精确的话就可以把执行一条简单的语句大约看做是1us.你可以像楼上说的那样写delay 具体多少个循环这个自己应该能算出来的. 要精确的话最好用中断,这个中断一次就是很精确的12/11.0592 us 如果要中断程序的话 请追问