单片机汇编程序怎么计算延时
你可以采用单片机中的定时器/计时器,一般都是8位的,也有16位的,采用中断方式。
8位定时器中断间隔的计算:1/晶振频率x256,比如单片机采用1M频率的晶振,1/1000000x256,那么这个定时器中断2次间的间隔时间为256us(微秒)。
你只要在中断程序中用个寄存器计数,每+1就是256us,1秒约为3906个中断间隔
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
单片机编程时延时程序其实就是一些循环指令组成的集合。比如:
DELAY:
MOV R2,#248 ;本条指令1T执行1次
DJNZ R2,$ ;本条指令2T执行248次
NOP ;本条指令1T执行1次
RET ;本条指令2T执行1次
所以延时时间为:1+248*2+1+2=500T,如果晶振是12M的话,延时500us
单片微型计算机原理与接口技术
本书是以51单片机为样机的单片微型计算机原理与接口技术教程,是单片机C51程序设计的基础篇。 全书由原理及接口两部分组成,共10章。介绍51单片微型计算机硬件结构、汇编语言程序设计方法、输入\/输出接口应用、可编程定时\/计数器设计、串行接H应用、单片机系统扩展、可编程接口芯片、单片机人机接口技术和模数技术,以达到...
用51单片机,输出PWM信号控制智能小车的小电机,汇编程序要怎么写?
&& 我是用PC机控制的, 不知对你有无帮助.-- 舵机控制 Local 我的小大脚, 油门, 方向 油门 = 0 方向 = 1 我的小大脚 = Newobject("环奇小大脚")-- Inkey(4)-- 我的小大脚.发送指令(方向, 0)-- 我的小大脚.发送指令(油门, 0)-- Inkey(2)-- 我的小大脚.发送指令(油门, 0.5)-...
单片机汇编程序
JBC F0,ELSE;是当F0为1时,先置零F0再转移,否则F0为0时就继续下一次T0定时,同时由P3.5经出一个脉冲令T1计一个数。 当程序运行到满足条件F0为1时(经过6000次T0定时溢出,也就是达到1分钟T1溢出产生中断时,至于F0怎么置1程序中看不出,估计T1溢出的同时,由溢出信号将其置1或溢出时硬件置...
学习单片机要有哪些基础知识?
在单片机处理问题之前必须事先将编好的程序、表格、常数汇编成机器代码后存入单片机的存储器中,该存储器称为程序存储器。程序存储器可以放在片内或片外,亦可片内片外同时设置。由于PC程序计数器为16位,使得程序存储器可用16位二进制地址,因此,内外存储器的地址最大可从0000H到FFFFH。8051内部有4k字节的ROM,就占用...
...好像是循环,具体汇编程序是怎样的”我想要具体程序~
开启定时器作为时间基准,然后再设置几个软件计数器,比如,你设定定时器每隔10毫秒中断一次,软件计数器A加1,当A数值=100时,就已经定时1秒了,软件计数器B这时+1,当B数值=60时,就已经定时1分了,软件计数器C这时+1,当C数值=60时,就已经定时1小时了。就是这样累积的定时,明白?
AT89C51单片机汇编程序
P1.0接传感器,有信号时为高电平;P1.1接LED,输出低电平时发光。ORG 0000H LOOP:SETB P1.0 ;设置为输入状态.SETB P1.1 ;关闭LED JNB P1.0, $ ;低电平时原地转移.CALL DL10ms ;高电平时就稍稍延时.JNB P1.0, LOOP ;如果是低电平,就是干扰,转移到前面...
汇编程序一般由谁提供,是不是处理器厂商?
而所谓的厂商只提供相应的指令集而已,且指令集是公开的,并非加密,指令集会兼容上一个的指令集而已,并非汇编语言支持。处理器厂商的核心技术是处理器的制造工艺,比如CPU采用提65nm还是45nm肯定是不同的,硅集片的不同堆叠会影响CPU的散热,这些才是取决于CPU的竞争力的!所以汇编并非由处理器厂商提供...
汇编语言程序设计
汇编语言:(AssemblyLanguage)是面向机器的程序设计语言。汇编:把汇编语言翻译成机器语言的过程称为汇编。汇编程序:把汇编语言书写的程序翻译成与之等价的机器语言程序的翻译程序。汇编程序输入的是用汇编语言书写的源程序,输出的是用机器语言表示的目标程序。汇编语言是为特定计算机或计算机系列设计的一种面向...
51单片机汇编程序???
这个程序中没有添加协议,可能造成的后果是接收数据过多,会溢出51的128字节的存储空间(52为256字节)。若要在实际中使用,建议添加协议,比如每次固定传送多少字节数据;或如不固定字节数,采用与上位机软件一致的协议--每次先传送起始触发数据(如55h 66h 77h)后,才认定以后数据为有效数据(否则为...
汇编是什么
3、汇编的灵活性和效率 相比高级别语言,汇编语言更加接近计算机硬件的层面,因此更加灵活且效率更高。通过直接控制硬件,程序员可以更精确地控制计算机的行为,并充分利用计算机的性能。4、汇编的可移植性和可读性 汇编语言与特定的硬件结构相关,不同的计算机体系结构有各自的指令集。这意味着编写的汇编程...
苦颜新力: 举例来说明吧:delay: mov r0,#10 ;1 delay1: mov r1,#100 ;1*10 djnz r1,$ ;2*100*10 djnz r0,delay1 ;2*10 ret ;2 total=1+1*10+2*100*10+2*10+2=2033 time=total*1/(focse/12) 总结:第一步:在延时程序没行后边标注该指令执行的机器周期 第二步:在机器周期后边乘以该指令循环的次数 第三步:计算总共用的机器周期数 第四步:计算总延时时间.
周村区13671956056: 单片机 汇编程序 延时时间计算 - ?
苦颜新力: R2 * (R2-1) * (R2 -2) * (R2-3)
周村区13671956056: 单片机延时程序的延时时间怎么算的? - ?
苦颜新力: 单片机的延时程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期. 扩展资料: 1丶指令周期,是每种运算需要的时间,如加法、逻辑等,是每一步进行这种指令运算需要的时间,是机器周期的整数倍,这种周期不定. 2丶51单片机12M晶振,晶振周期1/12微妙,一个机器周期包含12个晶振周期,所以12M晶振时机器周期=12x(1/12)微妙=1微妙. 3丶1个毫秒延时子程序如下: void delay1ms(uint ms) { uint i,j; for(i=0;i<ms;i++) { for(j=0;j<110;j++); } }
周村区13671956056: 单片机延时时间程序怎么编程 - ?
苦颜新力: 举一个例子来说明吧.比如你要编一个延时50毫秒的子程序,那么步骤如下:1、查看一下你的硬件环境,比如晶振大小,CPU型号,不用CPU指令的机器周期是不一样的.2、计算延时需要的机器周期.比如采用12M晶振,CPU采用通用8051,...
周村区13671956056: 单片机汇编语言怎么编定时器延时12小时 - ?
苦颜新力: 汇编看得懂,但不太会写,只会c. 其实单片机内有定时器,可以设置一下,比如定时10ms,设一个unsigned char型变量,计时到100,那就是一秒了,然后再设一个unsigned int 型变量,计时到12*60*60=43200,就是12小时了,最好用外部晶振,这样准确些
周村区13671956056: 单片机的延时,延时时间长度是怎么算的?最好有一个例子,来说明! - ?
苦颜新力: 延时长度根据你的振荡器的频率和后分频来计算的.最简单就是写一段延时,用示波器测试一下.简单的延时可以用nop循环,长延时尽量用定时器来做.
周村区13671956056: 请求高手帮忙回答一个汇编语言中怎样求延时时间 - ?
苦颜新力: 粗略的算法是2XR2XR3XR4 (微秒),这里R2、R3为FFH再加1 ,即为256 .程序中的R5笔误,应是R4吧.这种方法只适合短时间的延时,长时间的,这样做,单片机其它什么事都...
周村区13671956056: 单片机流水灯汇编程序 其中延时的计算方法 - ?
苦颜新力: 80c51单片机的晶体振荡周期等于振荡频率的倒数, 单片机的晶振频率为22.1184 MHZ. 则振荡周期为 1/22.11848 .80c51单片机中有一个机器周期,它有12个振荡周期组成. 它的振荡周期=12*(1/22.11848)us.一般延时指令DJNZ为双周期指令.所以执行一次=2*【12*(1/22.11848)】us.最后你看你执行延时的次数*2*【12*(1/22.11848)】us. 就是最后延时的时间. 一般实际大于你计算的时间.
周村区13671956056: 单片机汇编语言怎么测延迟时间啊?
苦颜新力: 标准的答案!....ACALLdelaytime....delaytime:movR2,#nmlp:nop[...]DJNZR2,mlpretdelaytime跟单片机时钟周期有关,如为12MHZ,即一个拍的时间为十二分之一us,即Tp=1/12us;相应一个态的时间为六分之一us,即Ts=2Tp=1/6us...
周村区13671956056: 单片机中,怎么用汇编语言编写程序实现延迟40ms - ?
苦颜新力: 1.循环延时的方法 DELAY: ;误差 0usMOV R7,#25H DL1:MOV R6,#9AH DL0:MOV R5,#02HDJNZ R5,$DJNZ R6,DL0DJNZ R7,DL1RET不过这不实用.40MS时间单片机都 在这里循环,不作能它事.1.可以用定时中断的方法: ...