51提高单片机的晶振频率晶振频率12MHZ,用汇编语言编写程序

设单片机晶振频率为12MHZ,编写出其延时100毫秒的程序??_百度知道
设单片机晶振频率为12MHZ,编写出其延时100毫秒的程序??
我有更好的答案
最好直接利用定时器延时,定时1毫秒,程序中调用延时函数就行了,Delay(100):
//定义外部变量Delay( uint k)
// 延时函数{
while(count!=0) ;}TIME0()
interrupt 1
// 定时器0中断函数{
TH0 = 0XFC;
TL0 = 0X18;
采纳率:29%
main(){ TMOD=0x01;//设置定时器0为工作方式1 TH0=()/256; TL0=()%256;
}void time0() interrupt 1{ TH1=()/256; TL1=()%256; tt++;
单片机型号不一样,每条指令周期不一样的
为您推荐:
其他类似问题
晶振的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。单片机原理及应用课后习题答案第六章作业(李传锋)_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&10W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
单片机原理及应用课后习题答案第六章作业(李传锋)
阅读已结束,下载本文需要
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩2页未读,
定制HR最喜欢的简历
你可能喜欢以下试题来自:
判断题当89C51单片机的晶振频率为12MHZ时,ALE地址锁存信号端输出频率为2MHZ的方脉冲。() 对
为您推荐的考试题库
您可能感兴趣的试卷
你可能感兴趣的试题
1.判断题 对2.判断题 对3
A.只有程序计数器PC
B.只有PC和累加器A
C.只有PC、A和数据指针DPTR
D.PC、A.DPTR和堆栈指针SP
A.移位指令
B.位操作指令
C.十进制调整指令
D.条件转移指令
A.调用指令的首地址
B.调用指令的末地址
C.调用指令下一条指令的首地址
D.返回指令的末地址> 问题详情
使用循环转移指令编写延时20ms的延时子程序。设单片机的晶振频率为12MHz。
悬赏:0&答案豆
提问人:匿名网友
发布时间:
使用循环转移指令编写延时20ms的延时子程序。设单片机的晶振频率为12MHz。
您可能感兴趣的试题
1试编写延时1分钟子程序(设fosc=6MHz)。2试编写程序,将0~9十个数字按先后顺序送入SAVE单元内,并在SAVE单元内保留300mS,不断循环。3内部RAM中有一数据块,存放在20H~2FH单元中。要求对这些数据进行奇偶校验,凡是满足偶校验的数据(1的个数为偶数)都要转存到外部RAM 8000H开始的数据区中。试编写有关程序。4从内RAM 30H单元开始存放着一组无符号数,其个数存在21H单元中。试编写程序,找出其中最小的数,并将其存入20H单元中。
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
每天只需0.4元
选择支付方式
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
恭喜你被选中为
扫一扫-免费查看答案!
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
提示:请截图保存您的账号信息,以方便日后登录使用。
常用邮箱:
用于找回密码
确认密码:设MCS-51单片机的晶振频率为12MHZ,试编写10ms的延时程序(要求误差不超过0.003ms)。_百度知道
设MCS-51单片机的晶振频率为12MHZ,试编写10ms的延时程序(要求误差不超过0.003ms)。
我有更好的答案
我们用汇编语言写单片机延时10ms的程序(用的是12MHz晶振的
MCS-51),可以编写下面的程序来实现:MOV R5,#5
MOV R7,#248
DJNZ R6,D2
DJNZ R5,D1
⑦这个延时程序共有七条指令,现在就每一条指令执行的次数和所耗时间进行分析:第一条,
MOV R5,#5 在整个程序中只执行一次,且为单周期指令,所以耗时1μs,第二条,
MOV R6,#4 看⑥的指令可知,只要R5-1不为0,就会返回执行这条指令,共执行了R5次,共耗时5μs,第三条,
MOV R7,#248 同第二条类似,只要R6-1不为0,就会返回执行这条指令,同时受到外部循环R5的控制,共耗时R5*R6*1=20μs,第四条,
R7,$ 只要R7-1不为0,就执行这条指令,同时受到外部循环的控制,由于该指令是双周期指令,共耗时为R7*R6*R5*2=9920μs,第五条,
R6,D2 只要R6-1不为0,就反复执行此条指令(内循环R6次),又受外循环R7的控制,共耗时R6*R5*2=40μs,第六条,
R5,D1 只要R5-1不为0,就反复执行此条指令,耗时为R5*2=10μs,第七条,
RET 此指令为双周期指令,耗时为2μs,我们也要考虑在调用子程序时用到LCALL指令,耗时2μs,最后可以得到总的延时为:1+5+20++2=9998μs=10ms我们可以总结延时总时间的公式:延时总时间=[(2*一层循环次数+3)*二层循环次数+3]*三层循环次数+3注意此公式只适用于三层以内的循环
采纳率:40%
R7,#10DELY1:MOV
R6,#199DELY2:NOP
RET延时时间:1+10*(199*5+4) +5+2=9998 uS,再加上调用指令2uS,正好10mS。
我知道用定时器,但是不知道怎么下手啊~~
汇编指令验证的
所以延时准确void delay(void)
//误差 0us{
unsigned char a,b,c;
for(c=1;c&0;c--)
for(b=38;b&0;b--)
for(a=130;a&0;a--);}
能不能告诉怎么算啊?要不写个汇编也行啊
其他1条回答
为您推荐:
其他类似问题
51单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 单片机汇编语言教程 的文章

 

随机推荐