单片机时12M的晶振,下面的定时器中断怎么算?多长时间会中断???

作者&投稿:扈夏 (若有异议请与网页底部的电邮联系)
单片机中断定时器时间怎么算出来的 12MH晶振~

单片机中断定时器时间怎么算出来的,12MH晶振... ...定时器时间,是课题要求的,不是算的。

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。





定时/计数器t0和t1由两个8位专用寄存器组成,即定时/计数器t0由th0和tl0组成,t1由th1和tl1组成。





此外,还有两个8位特殊功能寄存器tmod和tcon。tmod负责控制和确定t0和t1的功能和工作模式。tcon用于控制t0和t1的开始或停止计数,以及定时/计数器的状态。


扩展资料:

计时器工作流简介:





定时器的工作过程可以按此顺序进行(以51为例,使用定时器0模式生成一个50ms的定时器)





一、确定使用哪个计时器和使用哪种方式。在此步骤中,使用tmod进行设置。tmod的低位4位用于设置定时器0,高位4位用于设置定时器1。





其中,m0和m1用于设置计时器的工作方式。浇口一般不需要设置。C/T选择计数模式或计时模式,如TMOD=0x01,这意味着定时器0在模式1下工作。





二、接下来,我们需要设定时间。50毫秒的定时器,th0=65535-50000/256和tl0=65535-50000%256可以这样使用。





可以理解为:因为这是定时器的初始值,也就是说,计数脉冲在这个数字的基础上向上增加,当它达到65535时,就会溢出并中断。





三、第三步是打开中断,并使用ie寄存器打开总中断ea=1。此步骤对于所有中断都是必需的,然后打开定时器0中断和ET0=1。





四、此时,准备工作完成,定时器启动,使用tcon寄存器tr0=1实现50ms的定时器。





文献:《单片机原理及应用》,曹巧媛主编,电子工业出版社,第四章单片机定时功能的应用——第一节定时器/计数器的结构和工作原理
参考资料来源:
百度百科-定时器中断

普通单片机工作时钟多是12T模式,所谓12T,是指:单片机的一个机械周期 等于 12 个系统时钟周期(即晶振周期),那么,12MHz的晶振,其周期 t=1/Fosc=1/12MHz=1/12 us,则单片机机械周期 T=12t=1us。
单片机的运行指令都是按机械周期计算的,比如 自增(++)、自减(--)运算 占用 1个机械周期,赋值运算(=)占用 2个机械周期 等等。而单片机中的中断计时,使用的是 自增 后溢出报警的方式,每一次自增都是1us,LZ 的赋值语句后,单片机溢出要进行 50000次自增,时间共计1us×50000=50ms,也就是该中断每隔 50ms 就溢出一次,即中断时间是50ms。
题外话,除了12T时钟模式外,有些单片机使用的是 1T时钟模式,即单片机机械周期 等于 系统时钟周期。

TMOD=0x01; 设定T0工作方式1
TH0=(65536-50000)/256; 50000us,高八位送入TH0
TL0=(65536-50000)%256; 第八位送入TL0
EA=1; 开总中断
ET0=1; 开T0中断
TR0=1; 开启定时器
故:50000us后会中断!

你想设定为几秒你就用一个数去乘上面的50000,比如说设定一秒,那就是20


求基于AT89C52超声波测距简易设计的源程序,要求用3个LED管显示其测距...
单片机采用AT89C52或其兼容系列。采用12MHz高精度的晶振,以获得较稳定的时钟频率,减小测 量误差。单片机用P1.0端口输出超声波转化器所需的40KHz方波信号,利用外中断0口检测超声波接收 电路输出的返回信号。显示电路采用简单实用的4位共阳LED数码管,段码用74LS244驱动,位码用PNP 三极管驱动。单片机系...

一个按键怎么控制数码管显示不同的字符
这个要加程序的,按一下按键,程序中变量自加1,然后根据程序变量的值,显示相应的字符。例如:1 MP3 2 CD 3 DVD,如果当前变量值为3,下一次按键有效时,应直接赋值为1,这样就形成了循环

在单机片里面的晶振怎么区别是内部还是外部晶振
单片机的外部晶振稳定,受温度,湿度等环境因素影响比内部振荡器小,精度比较高。而且当设计需要降低功耗时,比如说便携式仪表等,就需要外设晶振,因为内部振荡器不能根据需要停止,而外部晶振可以适时停止,从而进入休眠状态,降低功耗。

贴片晶振与一般晶振的区别是什么,它的标称频率都很高吗?如果是是100Mhz...
本质上没有区别,都是石英晶片。贴片的内部是方片子,插脚的一般用圆片。晶振频率主要跟晶片厚度有关。晶片切角、电极面积以及形状等影响一些具体参数,比如稳定度、电阻、静电容等。100MHz的晶振,一个周期是10ns,也就是说100万个周期是一秒,延迟一毫秒,就是100个周期。

单片机定时器里(65536-45872)\/256中的45872怎么得来的?
45872是根据需要的定时时间和晶振的频率计算出来的,例如,晶振频率是12M,定时时间要50ms,则50 000us\/1us=50000。这个45872,如果频率是11.0592M,机器周期=12\/11.0592=1.085us,定时需要49771,则49771\/1.085=45872。但不知晶振频率的准确数值,也不知定时的准确时间,上面也是猜测的,只是说明...

单片机时钟频率为6MHZ,机器周期为多少
■(1)振荡周期:也称时钟周期,是指为单片机提供时钟信号的振荡源的周期,一般实验板上为11.0592MHZ,12MHZ和24MHZ用的也比较多。■(2)状态周期:每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的。■(3)机器周期:一个机器周期包含6个状态周期S1~S6,也就是12个时钟周期。在一个机器...

单片机定时器里(65536-45872)\/256中的45872怎么得来的
网页 问问 科学 知识 更多 搜索 片机定时器里(65536-45872)\/256中的45872怎..._约109个回答_搜狗知识 单片机定...来的?[最佳答案] 45872是根据需要的定时时间和晶振的频率计算出来的,例如,晶振频率是12M,定时时间要50ms,则50 000us\/1us=50000.这个45872,如果频率...

单片机中的ALE引脚是不是任何时候都是输出1\/6的晶振频率,为什么我用模 ...
以晶振为12M为例,一个机器周期是1us,一条指令要两个机器周期,就是2us输出一个脉冲,而LJMP MAIN指令没有输出。见下图,是按这个输出的,但不知,你的示波器波形是怎么测出来的。你说的,任何时候都是输出1\/6的晶振频率,那是对实物。仿真时,没有MOVX指令时,ALE还没有输出呢。

基于单片机的温度数据采集系统设计
也可用通用非易失性存储编程器编程;片内数据存储器内含128字节的RAM;有40个引脚,32个外部双向输入\/输出(I\/O)端口;具有两个16位可编程定时器;中断系统是具有6个中断源、5个中断矢量、2级中断优先级的中断结构;震荡器频率0到33MHZ,因此我们在此选用12MHZ的晶振是比较合理的;具有片内看门狗定时器;具有断电标志...

16晶振振荡频率每秒多少
1.6千万次。16晶振振荡频率是每秒钟震荡1.6千万次。晶体振荡器,简称晶振,是利用了晶体的压电效应制造的,当在晶片的两面上加交变电压时,晶片会反复的机械变形而产生振动,而这种机械振动又会反过来产生交变电压。

大厂回族自治县19422706295: 单片机时12M的晶振,下面的定时器中断怎么算?多长时间会中断??? -
郝许古汉: 普通单片机工作时钟多是12T模式,所谓12T,是指:单片机的一个机械周期 等于 12 个系统时钟周期(即晶振周期),那么,12MHz的晶振,其周期 t=1/Fosc=1/12MHz=1/12 us,则单片机机械周期 T=12t=1us.单片机的运行指令都是按机械周...

大厂回族自治县19422706295: 51单片机晶振为12M用T0作为定时器时,最长能定时多长时间? -
郝许古汉: 12M晶振,每个指令周期是1us,采用方式1定时,那么定时公式为:定时时间=(2^16-定时初值)*1us,当初值=0时,最大可以是2^16us=65536us即一次循环最多可以定时65536us,你可以设置多次循环,来实现需要的定时时长

大厂回族自治县19422706295: 已知单片机的晶振频率为12MHZ,试利用定时器T1在P1.0引脚上输出矩形波,矩形波的高 -
郝许古汉: 晶振12M,机器周期1uS

大厂回族自治县19422706295: 51单片机晶振频率为12MHz,定时器1工作方式1中断方式在P2.3输出频率为10Hz的方波 -
郝许古汉: MOD应该是/除号,因为是12M晶振,所以定时器一个计数值为1US,所以按这个赋值,定时器1将会50ms中断一次,要想产生10Hz的方波,周期得100ms,也就是说可以在中断服务程序中加条语句:cpl p2.3,就可以了,这样两次中断就是一个周期得方波信号,正好50X2=100ms.

大厂回族自治县19422706295: 设MCS - 51单片机的晶振频率为12MHZ,使用定时器1工作方式1中断方式在P1输出周期为100ms的方波 -
郝许古汉: ;ORG 0000HSJMP STARTORG 0001BHMOV TH1, #(65536 - 50000) / 256MOV TL1, #LOW(65536 - 50000)CPL P1.0RETI START:MOV TMOD, #10HMOV TH1, #(65536 - 50000) / 256MOV TL1, #LOW(65536 - 50000)SETB TR1MOV IE, #88HSJMP $END

大厂回族自治县19422706295: 怎么用单片机C8051F定时10us? -
郝许古汉: 条件:12M晶振; 打开T0中断不用我说了吧?TMOD=0x02; //把定时器模式设定为自动装载初值的8位模式即最大计数255; TH0=0x5f; TL0=0x5f; //把定时器定时器初值设为245 如果用T1,则初始设置(打开中断不说了) TMOD=0x20; //设定...

大厂回族自治县19422706295: 单片机定时器初值的设计 -
郝许古汉: 根据你使用的晶振,如果是12M,50ms就是:TH0=(65536-50000)>>8; TL0=(65536-50000); 1机器周期时间=12/12M=1uS11.0592M晶振的话:1机器周期时间=12/11.0592(uS) 而定时器每次加1需要1个机器周期的时间 ,所以定时x微妙所需加1次数= x / 1机器周期时间

大厂回族自治县19422706295: 单片机晶振频率为12MHZ利用T0定时器产生10ms定时中断采取哪一种工作方式比较适合 -
郝许古汉: 12Mhz-对应的机器周期是1us 方式0最大定时:8.192ms 方式1: 65.536ms 方式2 :256us 从范围来讲,如果一次定时10ms的 可以选择方式1 如果允许多次中断完成10ms的,每个方式都可以.

大厂回族自治县19422706295: 一个单片机 定时器 计算 问题 -
郝许古汉: 12M的晶振每秒可产生1M个机器周期,50ms就需要50000个机器周期,定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值15536,即3CB0H,所以TH0=0x3c,TL0=0xb0.11.0592M的晶振每秒可产生0.9216M个机器周期,50ms就需要46080个机器周期,定时器在方式1工作,是16位计数器,最大值为65536,所以需设置初值19456,即4C00H,所以TH0=0x4c,TL0=0x00.

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