一、用汇编怎么写51单片机的延时程序?
DEL1S:MOV R7,#10D1: MOV R6,#200D2: 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
二、用单片机汇编一个100ms的延时程序?
DELAY:
MOV R3,#100 ;2
DLY0:
MOV R2,#249 ;2*100
DLY1:
DJNZ R2,DLY1 ;249*2*100
MOV R2,#248 ;2*100
DLY2:
DJNZ R2,DLY2 ;248*2*100
DJNZ R3,DLY0 ;2*100
RET ;2
以上假设12M晶振,延时共2+(249*2+2+248*2)*100+2=100004微妙=100.004毫秒
三、单片机中的延时程序的延时时间怎样计算的?
比如说:void delay (){ int x; char y; for(x=1000;x>0;x--) { for(y=100;y>0;y--)};}x每减一次,y减100次,x一共减少1000次这个子程序的延时时间是:1000*100=100ms(默认时间是us)如果想更精确的话,可以用软件进行调试 for语句下面的{}还可以省略有不清的可以多交流
四、单片机延时程序的作用?
这个原因还是蛮多的,分同的情况,单片机的处理速度是很快的,有的时候为了让我们便于观察需要加入延时,例如一个指示灯的亮灭,如果不加入延时是看不出来的,再有就是键盘去抖动,一般按键都有20ms左右的抖动,为了更好的检测防止干扰,也需要延时一段时间在进行判断,总之延时的作用在不同的情况下也不同
五、计算延时子程序的延时时间?
计算延时子程序延时时间是1000000微秒
延时时间是一个机器周期,与晶振的关系是:osc/12/1000000微秒
比如12M晶振,=12*1000000/12/1000000=1us
六、单片机延时函数延时时间计算delay(uinti)?
void delay(unsigned int x) //延时 x ms
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
延时1ms 即为使x=1;
这程序延时约1ms(x=1时用keil测出来约 0.96831272ms,近似1ms),用C语言很难做到准确的1ms。注意晶振为11.0592MHZ的时候用~ 晶振为12MHZ时 把 i=120 近似值1ms
七、单片机,一个延时15μs的延时程序。可调倍数?
代码示例:
void dleay (unigned int i)
{
do
{
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();
_nop_(); //延时了13微秒
i--; //一个计算 花了 2微秒
}
whlei(i);
}
八、汇编程序如何烧写到单片机里?
汇编语言烧到单片机 的过程 ( 不同系列的单片机有所不同) 汇编程序 ---> 汇编语言编译器 ---> 单片机烧写器 ---> 单片机 编写 软件 软件+硬件 单片机
九、汇编语言5秒的延时程序怎么写(微机原理)?
首先明确机器执行一条指令耗时大概是1us那么延时10ms的程序如下:MOVAX,50L1:MOVBX,100L2:DECBX JNZL2DECAXJNZL1执行完之后时间大约为10ms多一点
十、汇编语言5秒的延时程序怎么写(微机原理)?
首先明确机器执行一条指令耗时大概是1us那么延时10ms的程序如下:MOV AX,50L1:MOV BX,100L2:DEC BX JNZ L2DEC AXJNZ L1执行完之后时间大约为10ms多一点 根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等。 具体步骤如下:/导致这种情况的原因主要是……
- 相关评论
- 我要评论
-