今天的程序,经过PROTEUS仿真,基本正常。只是在:
numtab 后面少了个DB。
即:
numtab: DB 040H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,00H,10H
END
-----------
昨天的程序,确实是不能正常工作,只是显示00。
在这两个函数参数的类型没多大关系的(延时us用Int可能是因为us到ms是1000就足够了,延时ms用uint可以在调用一次该函数时的最大延时时间能更久点)
用while(time!=0)的意思是在循环中time--后time等于0 时退出循环(用什么请根据时钟来决定,你也可以用time>1啊,但延时的时间可能没while(time!=0)更接近需要延时ms的时间,实际和单片机的时钟有关)
这个程序应该是板子上延时的程序。
a就是需要延迟的毫秒数(也可能是其他单位)。
就是说,执行 for(i=0;i<600;i++);的时间应该是一个单位长度(可能为1ms);
这样,你在调用的时候,赋值给a多少值,实际就是延时多少毫秒。
例如,延时10ms,就用
delay(10);
延时1ms,就用
delay(1);
以上就是关于12M晶振下的ATmega16如何设计准确的毫秒级延时函数我写的是18B20的程序需要很准确的延时。全部的内容,包括:12M晶振下的ATmega16如何设计准确的毫秒级延时函数我写的是18B20的程序需要很准确的延时。、AVR单片机毫秒和微秒延时程序为什么不同、c语言延时1ms程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)