登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[学习笔记] 单片机,定时器

[复制链接]
发表于 2018-2-5 22:12:44 | 显示全部楼层 |阅读模式
学习笔记
学习科目: ,单片机定时器
学习安排: 逐步提升
开始时间: 2018-02-05
结束时间:
逻辑运算
&&逻辑与
||逻辑或
!逻辑非

&按位于
|按位或
~按位取反
^按位异或(相异为1)

时钟周期
    单片机时序中的最小单位,
    具体计算方法就是时钟源分之一
机器周期
    单片机完成一个操作的最短时间
定时器
    打开定时器后,定时器“存储寄存器”的值结果一个机器周期自动加一,
    就是说机器周期的计数周期

定时器存储寄存器
    TH0  TL0
    高八位和低八位,这个是定时器0,还有定时器1(功能与定时器0相近)
定时器控制寄存器--TCON
    控制器有8个特殊功能寄存器,与I/O口相同
    7.TF1
    6.TR1
    5.TF0   定时器0溢出标志,发生溢出时硬件置1,清零有两种方式,一种软件清零,一种定时器中断时硬件清零
    4.TR0   定时器0的控制位,软件置位/清零来启动或关闭定时器
    3.IE1
    2.IT1
    1.IE0
    0.IT0
定时器模式寄存器--TMOD
    也有8个特殊功能寄存器(T0和T1区分定时器1和定时器2)
    7.GATE(T1)
    6.C/T(T1)
    5.M1(T1)
    4.M0(T1)
    3.GATE(T0)
    2.C/T(T0)
    1.M1(T0)
    0.M0(T0)
    M1  M0  工作状态                描述
    0   0      0        兼容8048单片机的13位定时器,THn的8位和TLn的5位
    0   1      1        THn的8位和TLn的8位组成16位的定时器
    1   0      2        8位自动重装模式,定时器溢出后THn重装到低8位
    1   1      3        禁用定时器1,定时器0变成两个8位定时器

定时器使用方法
1:设置特殊功能寄存器TMOD,配置好工作模式
2:设置TH0和TL0的初值
3:设置TCON,通过TRO设置1来让定时器开始计数
4:判断TCON寄存器的TF0位,监测定时器溢出情况

#include<STC12C5A60S2.h>

sbit led=P0^0;
sbit a0=P2^0;
sbit a1=P2^1;
sbit a2=P2^2;
sbit enled=P1^1;

void main()
{
        char cnt=0 ;
        a0=0;
        enled=0;
        a1=1;
        a2=1;
        led=0;

        TMOD=0x01;
        TH0=0xB1;
        TL0=0xE0;
        TR0=1;
        while(1){
                if(TF0==1){
                        TF0=0;
                        TH0=0x2f;
                        TL0=0xAB;
                        cnt++;
                        if(cnt>=50){
                                cnt=0;
                                led=~led;
                        }
                }       
        }
}

好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表