永发信息网

单片机中延时100毫秒的程序

答案:4  悬赏:80  手机版
解决时间 2021-03-10 14:41
单片机中延时100毫秒的程序
最佳答案
这个要看什么单片机
首先有个晶振频率,然后有个PLL,相当于倍频,然后有个分频,才到总线频率。
为什么一直提频率呢,因为频率的倒数是周期,然后你算算100ms是多少总线周期,就知道循环几次了。
还有一种方法是用中断,计时比较准确。

基础知识不好哦~~~
全部回答
51单片机 MOV R7,#13H
DL1:
MOV R6,#14H
DL0:
MOV R5,#82H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
C:
void delay(void) //误差 0us
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=130;a>0;a--);
}
汗!问这个问题说明你对时钟周期、机器周期、定时器周期都不太了解吧。
延时100毫秒的程序可以是一个函数,也可以是利用定时器的一段代码。
如果是用汇编延时那么你要把单片机指令周期表翻一下了,看看整个循环语句用了哪些指令,每个指令多少个机器周期,然后计算每个机器周期耗时多少时长,你就知道循环多少次了。
如果用C语言延时,那么就要借助仪器了,你同样要估算一下机器周期和循环次数,然后要精确到100ms就需要把这个延时时间作为频率从单片机IO口输出,用仪器来辅助测量,最后得出叫准确的100ms的循环次数的值。
如:
void delay_100ms(uint8 n)
{
uint16 i;
while(n)
{
for(i=0;i }
}
51单片机 12MHz
汇编:DELAY: ;误差 0us
MOV R7,#13H
DL1:
MOV R6,#14H
DL0:
MOV R5,#82H
DJNZ R5,$
DJNZ R6,DL0
DJNZ R7,DL1
RET
C:
void delay(void) //误差 0us
{
unsigned char a,b,c;
for(c=19;c>0;c--)
for(b=20;b>0;b--)
for(a=130;a>0;a--);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求助!!紫菜蛋花汤
上和叉怎么去啊,有知道地址的么
小说里面有个人物叫苏简安和洛小夕苏亦承
梦到祖屋倒塌怎公回事
热带雨林生态系统中,最主要、最关键的部位是
黄飞鸿麻辣花生70克单买多少钱
手机SD卡一直跳出已移除,打开阅读星的时候就
第一盏燕窝雪蛤炖品地址在什么地方,想过去办
pad上的Wi-Fidisplay在哪
结尾中说这首涛也是献给“大地上的一切的,我
伏特和毫安有什么区别
birds and the bees
中兴手机型号BA601无法在关机情况下恢复出厂
黄山市普兰特电源有限公司怎么去啊,有知道地
最近登录qq后会收到前一天别人发来的几条聊天
推荐资讯
书面表达(10分)根据所给图画,用英语写一篇
Photoshop中为什么我每次做的图片都那么大啊
单宽带和融合套餐的,哪个更划
钢筋图纸中的板筋,剪力墙,柱,梁的分布图和
这个汪寅仙的印章是真的还是仿的?
徐州鼓楼区东华后里平房什么时候拆迁 或
【优势与劣势】用于分析组织在市场中的优势与
战龙四驱昨天少儿台做到几集了,接下来哪里有
世界上真的有鬼吗?它们在哪里?是怎么生活的
手指指上指下的那个舞蹈 外国的样???
祎用五笔怎么打
功放电路经常见到相位调整电路 我想问下功放
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?