1、周期时间T=1/38K=26.3 us,半周期13us(电平翻转,占空比50%)
2、使用定时公式计算或者定时器软件工具计算初值(TLx=0xF3,THx=0xF3,晶振12Mhz)
定时器1的方式2是8位定时器,最大只能实现256US的定时(晶振12mhz)
定时250us的话,需4000次才够1S
定时250us初值为 256-250=6
TMOD=0X20;
TH1=6;
TL1=6;
TR1=1;//也可以到用时才启动
ET1=1;
EA=1;
设一全局变量a,中断程序里只需a++即可,主程序里判断
a是否为4000即可知定时时间是否到
定时器模式2是自动重装模式, TH0和TL0都要用到,TL0是真正的定时/计数器,肯定要有一个初值,在此基础上向上计数,溢出时就将TH0的值装入TL0,不用再次人工写程序干预
串口通信方式1和方式3,要用T1来控制波特率。
T1,使用定时方式2,其初始值,和晶振频率、波特率、SMOD的关系式如下:
T1初值 = 256 - fosc * (SMOD + 1) / (384 * 波特率)
--我不明白波特率跟这个定时器的关系。麻烦你详细一点!
这个关系,是由硬件决定的,只有搞微电子的,才能弄明白。
软件人员,编程的时候,会用这个公式即可,也没有必要弄明白这个。
基本上,也没有几个人,能够弄明白集成电路内部,究竟是怎么处理的。
其它的很多人,好像是很明白,其实都是在瞎编理由,包括写书的那些人。
定时器0,工作方式2初值设定:
TMOD=0x02; //工作方式确定
TH0=(256-值); //设定初值
TR0=1; //开启定时器
EA=1; //如果要用中断则要开启总中断
ET0=1; //如果用到中断则开启定时器中断
51单片机定时计数器四种工作方式中,方式2可以实现计数初值的自动加载。
解释分析:
16位的计数器只用了8位来计数,用TLx来进行计数,而THx用于保存初值,当TLx计满时则溢出,该方式的溢出状态一方面使TF变化,另一方面使TH的值再次置入TL,正所谓自动重置定时/计数器
自动装载初值,无需程序运行赋值,此方式更精确。
此时MAX值为28=256,设计数值为100。
初值为156=10011100B(0x9C)。
TH0=TL0=0x9C。
定时/计数器有如下一些用途:
(1)产生所需频率的脉冲,如产生频率1000,占空比1:1的脉冲波。
(2)在累加计数中的应用,计数器可在一段时间内记录信号A经整形后的脉冲个数。
(3)在频率测量中的应用,通过测量脉冲宽度或在一定时间内测量脉冲的个数,从而推算出脉冲的频率。
(4)定时/计数器在计时中的应用,定时/计数器可对时钟信号,如秒信号进行计数,也可用来倒计时,秒表计,时间循环等。
单片机方式2初值的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机方式2初值