您的位置 首页 测评

单片机中时延函数易常范的过错

有时候需要长时间的延时时,可以用循环也可以传一个大点的参数。但是在传大点的参数时一定要看清楚参数的类型及此类型所能表示的值的范围

有时候需求长期的延不时,能够用循环也能够传一个大点的参数。但是在传大点的参数时必定要看清楚参数的类型及此类型所能表明的值的规模。
如我所编AD转化程序中,在转化时刻要长达30ms时才干有有用的数据输出。假如时刻过短,则不会起到即时的作用。unsigned char 最大值为255再大就要用循环了。
下面是原码:
#include
#include
sbit wr = P3^6;
sbit rd = P3^7;
sbit dula = P2^6;
sbit wela = P2^7;
unsigned char j,k,aa;
void delay(unsigned char i) //最大值255
{
for(j=i;j>0;j–)
for(k=125;k>0;k–);
}
void main()
{
unsigned char a;
while(1)
{
wela = 1; //选通P0的74hc573
P0 = 0; //选通ADCS
wr = 0; //起动adc0804,写入模拟信号
_nop_();
wr = 1;
delay(10);
// for(a = 20;a>0;a–)
delay(255); //转化等候
rd = 0; //AD读使能
}
}
【注释】此代码在TX-1C中经过

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/260197.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部