如何自己写51单片机(12Mz晶振)延时程序?

假如我想写个500us的延时程序,有没有公式的?难道都是要自己慢慢推算???... 假如我想写个500us的延时程序,有没有公式的?难道都是要自己慢慢推算??? 展开
 我来答
he_123456
2015-04-18 · TA获得超过2892个赞
知道大有可为答主
回答量:3162
采纳率:58%
帮助的人:1349万
展开全部

找个专用的计算器,例如STC的烧写器就可以算出这样代码。

意法半导体(中国)投资有限公司
2021-01-14 广告
可以写对它写程序,让它听从你的安排,你让它实现什么功能它就能实现,比如电子钟、电子琴、打印机、手机、电梯控制,智能家具如:空调、冰箱、洗衣机等,如果这些家电没有它,什么都不能工作。单片机内部很复杂,你研究的越深你就会越爱上它,它可以帮你实现... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
11kxmx
2015-04-18 · TA获得超过1.4万个赞
知道大有可为答主
回答量:1.2万
采纳率:70%
帮助的人:2526万
展开全部
用计数器/定时器0 工作方式1 即16位定时器
采用12M晶振时 一个计数脉冲是1us
定时500us 计数脉冲就要500个
由於是定时器是加1计数的,所以定时器的初值是(65536-500)
将其初值分别写入高8 位和低8 位分别是
TH0=(65536-500)/256 //求该数是256的多少整数倍
TL0=(65536-500)%256 //求余数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
NJGQZF
2015-04-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3165
采纳率:0%
帮助的人:1259万
展开全部
如果想推导公式也不是没可能,但会很麻烦,得到的可能是近似值,而自己推算,如果没有中断干扰,可以很精确。比如你的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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
羞灼挂朵朵徘徊8
2015-04-18 · TA获得超过252个赞
知道小有建树答主
回答量:1016
采纳率:3%
帮助的人:321万
展开全部
那就用定时器
更多追问追答
追问
真的没公式?我还没学定时器
追答
有公式的,你baidu一下就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式