单片机时钟频率12MHZ,计算定时2ms所需定时器初值

作者&投稿:犁阮 (若有异议请与网页底部的电邮联系)
CPU的时钟频率为12MHz,要求定时2mS,定时器T0工作在模式0,定时器的初始值为多少(需转换成十六进制)~

定时器的初始值为多少 0x30,但是前提是该单片机是51的单片机且指令周期是12时钟的。这样定时器的初始值才为0x30,不然的话结果可能不同。
当该单片机是51的单片机且指令周期是12时钟时,所以T0的工作模式0是采用13位计数,当要获得2ms的定时,T0H=0x18,所以得出TL0 = 0x30。所以说定时器的初始值为0x30。

扩展资料:
CPU的时钟频率:
1、周期与频率,在电脑技术中,与频率相对应的一个常用术语是周期。周期是频率的倒数,频率越高,周期越短。譬如时钟频率为1GHz时,其时钟周期为1纳秒。
2、主频是CPU内核(整数和浮点运算器)电路的实际运行频率,由外频(或前端总线频率)与倍率共同决定,也即:主频=外频×倍率。
3、频率与速度的关系:一般说来,一个时钟周期完成的指令数是固定的,所以主频越高,CPU的速度也就越快了。不过由于各种CPU的内部结构也不尽相同,所以并不能完全用主频来概括CPU的性能。
51单片机的功能特性:
1、可以仿真63K程序空间,接近64K 的16位地址空间。
2、可以仿真64Kxdata 空间,全部64K 的16位地址空间。
3、可以真实仿真全部32 条IO脚。
4、完全兼容keilC51 UV2 调试环境,可以通过UV2 环境进行单步,断点, 全速等操作。

对于C51单片机,定时/计数器的应用从设置到赋值,相涉很多知识,不只是计算初始值那么简单,如果完整的解释需要很多的文字,最好的学习方法是仔细的阅读教科书,它可以使你在理解的程度上进行控制,这样的提问是解决不了问题的,如果用C51语言编程,并且是使用T0定时/计数器,而且设置为16位寄存器模式,用12MHz晶振,此时可以用如下方式赋值:
TH0=(65536-u_s)/256;
TL0=(65536-u_s)%256;
注:u_s是你的一次中断的定时时间,以微妙为单位。

老兄,你肯定没有好好看单片机书,回去再翻翻书哦,书上是有个公式的,t=12/f(2L-TC),其中 t —定时时间,”f —晶振频率,L—计数器的长度,那个地方是2的L次方哈,我在这弄不出来,方式0时(L=13),方式1时:L=16,方式2时(L=8);TC-计数器长度。 然后再把计算的TC值换算成16进制就可以啦 一楼二楼的公式有问题,是TH1=(65536-2000)/256
TL1=(655356-2000)%256

你是用51单片机吧?
51单片机在内部要对晶振12分频,所以12M晶振除以12就是1M,即1秒钟有1M个时钟周期,每个时钟周期就是10^-6秒,即1us,2000个时钟周期(或者说计数脉冲)就是2000us,也就是2ms。

1、“T计数=12/12=1μs”,分子是机器周期,分母是12M。所以才是1μs。
2、得看定时器是加还是减,还有是多少位的(即确定定时范围)
比如:定时器是加的,范围是000000-FFFFFE,这个只要FFFFFE-7D0=FFF82E(H)
定时器是减的,范围是000000-FFFFFE,这个只要000000+7D0=0007D0(H)
7D0(2000)*1μs=2ms

TH1=(65535-2000)/256
TL1=(65535-2000)%256
当你这么设置初值,那么经过2000就溢出了,一个是1Us,2000个就是2ms

TH1=(65535-2000)/256
TL1=(65535-2000)%256
当你这么设置初值,那么经过2000就溢出了,一个是1Us,2000个就是2ms


80C51的单片机时钟周期和机械周期是多少?
当80C51单片机晶振频率为12MHz时,时钟周期为(1\/12)微秒,机械周期为1微秒。时钟周期:一个时钟脉冲所需要的时间。在计算机组成原理中又叫T周期或节拍脉冲。是CPU和其他单片机的基本时间单位。它可以表示为时钟晶振频率(1秒钟的时钟脉冲数)的倒数(也就是1s\/时钟脉冲数,比如1\/12MHz),对CPU来说...

单片机上的晶振为什么有时是12MHZ,有时是11.0592MHZ?有什么区别么?_百 ...
标准的51单片机晶振是1.2M-12M,一般由于一个机器周期是12个时钟周期,所以先12M时,一个机器周期是1US,好计算,而且速度相对是最高的(当然现在也有更高频率的单片机)。11.0592M是因为在进行通信时,12M频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592M计算时正好可以得到,因此...

当80C51单片机晶振频率为12MHz时,时钟周期.机器周期各是多少?_百度知 ...
1.时钟周期即晶振的单位时间发出的脉冲数,12MHZ=12×10的6次方,即每秒发出12000000个脉冲信号,那么发出一个脉冲的时间就是时钟周期,即1\/12微秒.2.一个机器周期等于12个时钟周期,所以是1微秒.

为什么51单片机用的是12M晶振,但是出来的速度是相当于1M晶振的?_百度...
51单片机振荡频率范围是1.2MHz~12MHz。晶体振荡器的振荡信号输入到片内的时钟发生器上,时钟发生器是一个2分频触发器电路,它将振荡器的信号频率fOSC除以2,时钟信号的周期称为机器状态时间S(STATE),它是振荡周期的2倍。计算机执行一条指令需要多长时间则以机器周期为单位。一个机器周期是指CPU访问...

设单片机8051的时钟频率为MHZ,试编写Ms的软件延时程序。
为了延长延时时间,一般要采用多重循环,即由外循环内部又含有内循环。延时时间=(内循环时间)×外循环次数。例如:设计一个延时1ms的延时子程序ys1ms,设单片机8051的时钟频率为12MHZ。则单片机8051一个机器周期=12T=12\/f=12\/12MHZ=1微秒 程序和延时时间计算如下:ys1ms: MOV R7,#4 ; ...

单片机中的12分频是什么意思?
计算方法:PIC单片机的每四个时钟周期为一个内部指令周期,例如:8MHz的晶振,则内部指令周期为1\/(8\/4)= 0.5 uS 计数周期 1、时钟周期=振荡周期,名称不同而已,是指为单片机提供时钟信号的振荡源的周期,都是等于单片机晶振频率的倒数,如常见的外接12M晶振,那它的时钟周期=1\/12M。2、机器周期...

时钟频率时钟电路里,放6MHz、12MHz、11.0592MHz各有什么不同?_百度知 ...
选用不同的晶振,时钟周期就不同,机器周期就不同(也就是整个程序的扫描周期)。

请问 什么是单片机最小系统时钟
学校里面使用的51单片机,如89c51系列的单片机一般为11.0592mhz,12mhz。时钟周期就是晶振的频率,机器周期是12*时钟周期,指令周期执行一条指令所需要的时间,一般由若干个机器周期组成。你所说的系统时钟其实就是时钟周期,也就是晶振频率

单片机的时钟频率和指令周期
一、时钟周期 时钟周期也称为振荡周期,定义为时钟脉冲的倒数(时钟周期就是单片机外接晶振的倒数,例如12M的晶振,它的时间周期就是1\/12 us),是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。对于某种单片机,若采用了1MHZ的时钟频率,则时钟周期为1us;若采...

单片机时钟电路有哪些不同?
外部时钟方式:要求XTAL1接地,XTAL2脚接外部时钟。2、电容,频率 内部时钟方式:通常C1和C2一般取30pF,晶振的频率取值在1.2MHz~12MHz之间。外部时钟方式:对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。3、产生信号 内部时钟方式:单片机的XTAL1和XTAL2内部有一片内...

红桥区18949583576: 1.在80C51单片机中,已知时钟频率为12MHz,如果需要利用定时器T1方式1进行定时,请计算THl,TLl的初始值(用十六进制表示),TMOD的初始值应该是... -
勇垂奈康:[答案] void Timer2() interrupt 3 //3为定时器1溢出; { TH1=(65536-1000)/256; TL1=(65536-1000)%256; //减多少就是定时多出时间. TF1=0; //TF1定时器1溢出中断标志,响应中断后由处理器清零 TR1=1; //定时器1 开始运行 } TMOD=0x11; //定时器1 工...

红桥区18949583576: 如果单片机的时钟频率为12MHZ,要求定时器T0工作在方式0,分别实现50ms的定时时间,如何设置 -
勇垂奈康: 如果单片机的时钟频率为12MHZ,要求定时器T0工作在方式0,一次定时中断不能实现50ms的定时时间.可先进行如下设置: void Timer0Init(void) //5毫秒@12.000MHz{AUXR &= 0x7F; //定时器时钟12T模式TMOD &= 0xF0; //设置定时器模式TL0 = 0xC0; //设置定时初值TH0 = 0x63; //设置定时初值TF0 = 0; //清除TF0标志TR0 = 1; //定时器0开始计时 } 然后定义一个全局变量,初始值为0,在定时中断中对其加1,当其值为10时,定时时间50ms.

红桥区18949583576: 若AT89C51单片机的时钟频率为12MHz,要求T1产生40ms的定时,试对T1进行初始化编程 -
勇垂奈康: #include <reg52.h> #define uint unsigned int #define uchar unsigned char void main() { TMOD=0x11; TH0=(65536-40000)/256; TL0=(65536-40000)%256; EA=1; ET0=1; TR0=1; while(1); } void timer1() interrupt 3 { TH0=(65536-40000)/256; TL0=(65536-40000)%256; { } //40ms后执行花括号里面的程序 }

红桥区18949583576: 单片机时钟频率12Mhz,计算定时器的初始值 -
勇垂奈康: 对于C51单片机,定时/计数器的应用从设置到赋值,相涉很多知识,不只是计算初始值那么简单,如果完整的解释需要很多的文字,最好的学习方法是仔细的阅读教科书,它可以使你在理解的程度上进行控制,这样的提问是解决不了问题的,如果用C51语言编程,并且是使用T0定时/计数器,而且设置为16位寄存器模式,用12MHz晶振,此时可以用如下方式赋值: TH0=(65536-u_s)/256; TL0=(65536-u_s)%256; 注:u_s是你的一次中断的定时时间,以微妙为单位.

红桥区18949583576: 单片机时钟频率12MHZ,计算定时2ms所需定时器初值 -
勇垂奈康: 你是用51单片机吧? 51单片机在内部要对晶振12分频,所以12M晶振除以12就是1M,即1秒钟有1M个时钟周期,每个时钟周期就是10^-6秒,即1us,2000个时钟周期(或者说计数脉冲)就是2000us,也就是2ms.

红桥区18949583576: 单片机时钟频率为12MHz,分别求定时0.1ms时在工作方式0、1下的定时器的初值. -
勇垂奈康: 就以普通51单片机即12T,r定时器0为例: 工作于方式0时,是13位的,低5位赋值给TL0,高8位赋值给TH0; 工作于方式1时,是16位的,低8位赋值给TL0,高8位赋值给TH0; 而0.1ms,即100us,又在12MHz,所以,需要计时 100个数字所以...

红桥区18949583576: 单片机中从P1.1引脚输出1000hz方波 晶振频率为12MHZ 定时时间为多少 怎么计算 -
勇垂奈康: 1000Hz 的周期T=1ms,定时为 半周期 0.5ms=500us,12MHz晶振,机械周期为 1us,定时器初值=65536-(500us/1us)=65036=0xFE0C; 若是想问定时时间,就为500us,若是想问定时器初值,就为 0xFE0C; MOV R0,#03 MOV TMOD,#01H ...

红桥区18949583576: 假设单片机系统的晶振频率为12MHz,要求采用定时器时50毫秒,计算计数器的计数初值. -
勇垂奈康:[答案] 1、已知单片机系统机器周期为时钟周期的12倍,故每个机器周期为12/12M=1us 2、50ms=50*1000us 3、16位定时器的定时时间最长为65536us,定时50us的初值为65536-50*1000=0x3cB0 4、0x3cb0就是初值,其中TH=0x3c,TL=0xb0

红桥区18949583576: 在8051单片机的时钟频率为12MHz,用T0定时,试编程使P1.0和P1.1分别输出周期为2ms和500ms的方波 -
勇垂奈康: 有很多方法的,第一种是用模拟PWM,设置好占空比为1/2,根据周期设定好频率就可以了,你这个不需要变动的话,不用PWM也可以,可以这样写: #define T0_delay 1000 sbit P10=P1^0; sbit P11=P1^1; unsigned int Pwm_Count=0; void ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网