本人也是新手,第一次写,如果讲解的有什么不对,望包涵指正,有什么不懂的也可以问我,我尽力回答
主要讲解定时器0的配置,因为其他的还没学
定时器配置步骤:a.配置TMOD寄存器(设置定时器模式)
- TMOD可以配置两个定时器其中:
a. GATE是门控位,当它等于0时,只需要TR1=1(下面讲解)就可以启动计数器/定时器;当GATE等于1时,需要同时允许INT1(下面讲解)和TR1(下面讲解)都等于1时,才会启动计时器/定时器.
b. C/T(T上面是有一横的,不知道怎么打出来)等于1时是计数器,等于0时是定时器
c. M1和M0是设置定时器/计数器的工作模式,如图下
需要注意的是,TMOD有两个定时器,用哪个配置哪个,也可以同时使用,下面会给出例子。还有一点TMOD是不可位寻址,简单的说就是不可以一位一位的配置,需要8位一起配置。
- 配置TCON
这些是5种中断的所以配置信息的意思,需要配置哪种就挑选相应的内容,下面有图
TF1是定时器/计时器1的中断请求标志位(当它等于1时,代表溢出)
TR1是定时器/计数器1是否开启
TF0是定时器/计时器0的中断请求标志位(当它等于1时,代表溢出)
TR0是定时器/计数器1是否开启
IE1是INT1的中断请求标志位(不懂的看下图)
IT1是INT1的中断触发选择(说白了就是IT1是下降沿触发)
IE0是INT0的中断请求标志位
IT0是INT0的中断触发选择(IT0就是低电平触发)
(这些允许位呀,我个人认为就像开关一样,1就是打开,0就是关闭)
(中断请求标志位可以默认是1,个人感觉)
本文章讲解的是定时器0的配置
说了这么多,弄个实例:
这是配置定时器0的配置
看不懂图中TMOD的配置直接用TMOD=0x01;代替
EA相当于是中断允许标志位的总开关,它不置1,全部白费
TL0和TH0是附初值(我这个初值是因为晶振是11.0592HZ的,有很多形式,可以参考其他人的配置)
其实也可以用软件计算,不过想成为一个高手,还是要懂原理