若晶振为12MHZ,试编写一个延时5MS的子程序

 我来答
47okey
2011-10-19 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5900
采纳率:75%
帮助的人:2395万
展开全部
D5MS:
MOV R7,#25
MOV R6,#100
DJNZ R6,$
DJNZ R7,$-4
RET

void delay_ms(unsigned int ms )
{
unsigned char i;
while(ms--)
for(i=0;i<123,i++); //这是1ms的子函数
}

delay_ms(5) ; // 就是5ms延时了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
生活如歌_
2011-10-19 · TA获得超过1.5万个赞
知道大有可为答主
回答量:7398
采纳率:78%
帮助的人:2182万
展开全部
要C的还是?
void DELAY_MS (unsigned int a)
{
unsigned char i;
while( a--){for(i = 0; i < 120; i++);}
}
追问
单片机的
追答
上面是C,下面再来个汇编的:
DELAY5MS:MOV R7,#10
D1: MOV R6,#250
DJNZ R6,$;这一句2个机器周期也就是2US
DJNZ R7,D1
RET
共延时:2*250*10=5000us=5ms
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式