一个单片机晶振为12MHZ,要让单片机延时100ms怎么计算采用汇编语言要具体步骤

如题所述

12M,那每个机器周期是1US。
程序我写在这里了
这是软延时最精确的程序了,理论上差1US(非常符合要求了)
DELAY: MOV R7,#100
DD0: MOV R6,#48
NOP
DJNZ R6,$
DJNZ R7,DD0
RET
温馨提示:内容为网友见解,仅供参考
无其他回答

一个单片机晶振为12MHZ,要让单片机延时100ms怎么计算
10次后就是100ms 100ms,delay延时程序为:DELAY: MOV R3,#64H ;延时子程序 DEL2: MOV R4,#07BH DEL1: NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET

一个单片机晶振为12MHZ,要让单片机延时100ms怎么计算
int z,a;for(z=ms;z>0;z--)for(a=110;a>0;a--);} 要延时多长时间 ms 赋值多少就OK了 当然 软件延时只是大概算出来的 不可能非常准确 要是需要很准确用定时器 也很简单 不过一般应用 软件延时就够了

单片机晶振为12MHZ,要让单片机延时100ms怎么计算
晶振为12M,说明一个机器周期为1微秒,100毫秒就是100 000个机器周期。mov r7,#X;3周期 loop:mov r6,#Y;3X周期 djnz r6,$;2XY周期 djnz r7,loop;2X周期 也就是3+5x+2xy=100 000。可取x=194,y=255。此时共延时99 913,即99.913毫秒。

51单片机12MHZ晶振用定时器怎样实现100ms的定时,我想要做秒表,用数码...
Delay_ms(15); \/\/显示5ms十位 P20=0;P0 =a[k%100\/10];P21=1;Delay_ms(15); \/\/显示5ms个位 P21=0;P0 = a[k%10];P22=1;Delay_ms(15); \/\/显示5ms个位 P22=0;} void main(){t=0;EA=1;TMOD=0x01;TH0=(65536-50000)\/256;TL0=(65536-50000)%256;ET0=1;TR0=1;...

让单片机延时100ms怎么计算
普通延时做无用功就好了,具体写法百度就找到了,但这样做非常占单片机工作时间还有空间,所以不推介这样做。精确的用中断计数做就好了,比如中断设125us中断一次,每中断一次让某个变量+1,当这个变量=800的时候就是100ms了,当然如果这样计数比不是一个很好的做法,应为如果这样做就必须吧这个变量需用...

单片机晶振为12mhz,要求定时器t1工作方式1,分别实现5ms10ms100ms1s的...
可能你要汇编语言,但你看C语言更简洁明了 TMOD=0X10;TL1=(65535-5000)%256;\/\/5ms的定时,低8位对256求余 TH1=(65535-5000)\/256;\/\/高8位对256求模 10ms时减10000 100ms 1s的定时,没法一次完成,因最大定时值是65.535mS 可通过定时50MS 累计2次和20次实现 ...

设单片机晶振频率12mhz,使用定时器1以工作方式1产生周期为100ms的等宽...
假设用P1.1输出,程序如下:include<reg52.h> \/\/主程序 void main(){ TMOD=0x10;\/\/ 定时器1工作方式一 ET1=1;EA=1;TH1=(65536-50000)\/256;TL1=(65536-50000)%256;TR1=1;while(1);} \/\/中断子程序 void Timer1() interrupt 3 { TH1=(65536-50000)\/256;TL1=(65536-50000)%256;P1...

用单片机汇编一个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毫秒 ...

单片机晶振为12mhz,要求定时器t1工作方式1,分别实现5ms10ms100ms1s的...
TMOD = 0x10;\/\/定时器1方式1 TH1 = (65536 - 50000)\/256;\/\/定时5ms 高八位 TL1 = (65536 - 50000)%256;\/\/定时5ms 低八位 5ms溢出进入中断一次,如果需要10ms或更长的定时时间,可以定义一个变量,溢出一次变量自增一次。

单片机中晶振频率为12MHZ的机器周期怎么算?
1、系统晶振频率是12M,则机器周期=12/12=1us;2、定时1ms=1*1000=1000us;3、工作在方式0下:最大计数值是2^13=8192;4、定时初值=8192-(1*1000)=7192;5、换算成十六进制数为:定时初值=1C18H。定时器中断是由单片机中的定时器溢出引起的中断,51单片机中有两个定时器t0和t1。

相似回答