永发信息网

用汇编怎么写51单片机的延时程序

答案:6  悬赏:40  手机版
解决时间 2021-11-21 21:39
用汇编怎么写51单片机的延时程序
最佳答案
DEL1S:MOV R7,#10
D1: MOV R6,#200
D2: MOV R5,#250
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
RET

说明:1、如果不使用R5、R6、R7可以用别的单元替换,比如换成30H、31H、32H等等
2、这个程序是12M时钟,如果时钟不同,要修改数值。如6M时钟,要把MOV R7,#10 修改成:MOV R7,#5
全部回答
和前两位的差不多,最简单的就是运用MOV赋值的,再用DJNZ递减的方式,计算出每条指令执行时间,再加上循环字数,延时时间按照你自己的时间编写循环次数和赋值大小;另外,你也可以用定时器编写,计算好你的延时时间,当时间达到时输出高电平,作为中断信号,返回主程序,执行设定延时后的目标程序。
汇编和C各有好处,就我个人而言,浮点数的计算最好用C编,汇编不好解决,而且需要的很多代码,C很容易就可以实现!
假定晶振是12M的 CPU AT89X51
MOV R0,#10 这条是1us (一个机器周期)执行1次 1us
DJNZ R0,$ 这条是两us(两个机器周期)执行10次*2=20us
一共 1us+20us=21us
也就是 总的时间=1us+2*r0(us)
你去饭客网络看下汇编教程吧。。希望对你有帮助
单片机汇编实现延迟的程序代码:
DELAY: MOV R7,#250 ;
D1: MOV R6,#250 ;
D2: DJNZ R6,D2 ;
DJNZ R7,D1 ;
RET

冒号前面的“DELAY”、“D1”、“D2”为语句行的名字,是为了程序的条件语句跳转用的,分号后面为注释,计算机执行时将过滤掉这些信息,最大限度减少代码长度,提高效率。
呵呵,我大概给你说说吧,例如MOV指令,执行这条指令需要一个机器周期。DJNZ指令,执行这条指令需要2个机器周期。(一机器周期=1微秒)。
你要是用定时器工作的话需要先定义一下TMOD TH TL的数值 这个就用到晶振了了。要先看多少晶振,假如6MHZ,就用12除6,得出来的是2毫秒。在利用计算公式算出你需要的延时时间。(计算公式我没记住。呵呵,你可以在书上看看,应该有的)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
物理编辑是什么工作?工作职责是什么?它和一般
去日本爱媛县船厂三年能拿三十万吗?
三叶咖啡屋地址在哪,我要去那里办事,
★★怎么办?提眉和切眉有什么区别,割双眼皮
天使的城里面姑嫂之争大家怎么看
如何使毛巾褪色(我家的毛巾原来是红色的感觉
埋心焚情是什么意思
正规的情感专家有吗?
按摩院里被技师给捏的。。。是这样的,
骑牛觅牛成佳话
求RMXP RTP下载地址及安装方法
郑州新北站到航海路与桐柏路交叉口一号海公馆
按下列DNA单链:5’TCGTCGACGATGATCATC3’
150×24.8的竖式,谢谢了。 要竖式。
古筝《春到湘江》里,下面三个点的音怎么弹?
推荐资讯
ZD是什么意思啊?
百佳便利店地址在什么地方,我要处理点事!
想要虎刺梅开花,这几点做到了吗
请P图专家来帮忙一下,很简单的,送高分哦
一首风云音乐上看的欧美歌曲,MV只有一双鞋子
拉姆如何拥有变身技能?
上海870公交车末班车到大连路大概几点?
千媚美容院地址有知道的么?有点事想过去!
太平圆到新都芙蓉名城公交车
()造()星填词,求三个
澄城县离刘家洼有多远
监狱学园漫画的结局是什么,动漫会有第二季吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?