如何自己写51单片机(12Mz晶振)延时程序?
意法半导体(中国)投资有限公司
2021-01-14 广告
2021-01-14 广告
可以写对它写程序,让它听从你的安排,你让它实现什么功能它就能实现,比如电子钟、电子琴、打印机、手机、电梯控制,智能家具如:空调、冰箱、洗衣机等,如果这些家电没有它,什么都不能工作。单片机内部很复杂,你研究的越深你就会越爱上它,它可以帮你实现...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
用计数器/定时器0 工作方式1 即16位定时器
采用12M晶振时 一个计数脉冲是1us
定时500us 计数脉冲就要500个
由於是定时器是加1计数的,所以定时器的初值是(65536-500)
将其初值分别写入高8 位和低8 位分别是
TH0=(65536-500)/256 //求该数是256的多少整数倍
TL0=(65536-500)%256 //求余数
采用12M晶振时 一个计数脉冲是1us
定时500us 计数脉冲就要500个
由於是定时器是加1计数的,所以定时器的初值是(65536-500)
将其初值分别写入高8 位和低8 位分别是
TH0=(65536-500)/256 //求该数是256的多少整数倍
TL0=(65536-500)%256 //求余数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果想推导公式也不是没可能,但会很麻烦,得到的可能是近似值,而自己推算,如果没有中断干扰,可以很精确。比如你的500us的延时程序:
MOV R7,#1;1us
LOOP1:
MOV R6,#248;1us
LOOP2:
DJNZ R6,LOOP2;2us*122=244
DJNZ R7,LOOP1;2us*2+244*2+2+1=495
NOP;496
RET;498
调用这个子程序耗时2us,刚好500us
MOV R7,#1;1us
LOOP1:
MOV R6,#248;1us
LOOP2:
DJNZ R6,LOOP2;2us*122=244
DJNZ R7,LOOP1;2us*2+244*2+2+1=495
NOP;496
RET;498
调用这个子程序耗时2us,刚好500us
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就用定时器
更多追问追答
追问
真的没公式?我还没学定时器
追答
有公式的,你baidu一下就知道了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询