登录  | 立即注册

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

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 计时器小结

[复制链接]
发表于 2018-1-28 20:41:40 | 显示全部楼层 |阅读模式
学习笔记
学习科目: C语言和发的开发板
学习安排: 每天都学点吧
C语言和开发板结合来,先学着
后面根据结果再说
开始时间: 2018-01-25
结束时间: 2018-01-28
本帖最后由 WWW12369789 于 2018-1-28 20:41 编辑

首先,感谢 惑者的文章——用单片机点亮一个小灯并使其闪烁,使我顺下那些起步知识,快速上路。也感到这个活动好处及意义。

来的晚,但到


发图怎么也发也发不出  无图模式
时钟周期 机器周期 机器周期是定时器的计数周期 定时器相关的寄存器的地址等  相关知识了解后,知道了我们这个板子要用定时器主要是定时器 控制 模式 计数(存储) 三个寄存器,那个辅助寄存器AUXR可以试下改变速度。

1、设置特殊功能寄存器TMOD,配置好工作模式。
从STC12C5A60S2数据手册242页可以看出模式寄存器不可位寻址,所以我们只能控制整个寄存器的一个字节即8位来控制此寄存器  比如TMOD=0x0F;就是它的8位是1111 1111。
模式寄存器的高4位控制定时器1 低四位控制定时器0.
GATE 的作用我们暂时先不深究
C/T 是 0是定时器
M1 M2 组合2*2=4  可以来选4种工作模式
我模式1  即  TMOD=0x01;
2、设置计数寄存器TH0和TL0的初值。(不用辅助寄存器AUXR改变速度的话)
咱们这板子晶振32.000MHZ  机器周期是 12/32000000  这搞清的话用模式1——16位定时器(TL0 有8位可以从十进制0到255,满了话溢出为0,同时TH0加1,而TH0也有8位,也可以数到十进制的从0到255这不相当与16位的二进制在计数嘛)
然后设X
X*12/32000000 =0.003s     X=8000     (这是我明白后自己凑的) 65536-8000=57536               57536转化成16进制是E0C0.
所以                        TH0=0xE0;                        TL0=0xC0;
3、设置TCON,通过TR0置1来让定时器开始计数。

        TR0=1; 这看STC12C5A60S2数据手册TCON 不难
4、判断TCON寄存器的TF0位,监测定时器溢出情况。
每溢出一次我这是0.003秒 然后通过if 来乘以倍数 扩大时间,涉及到的C语言知识不难


好懒~~不想说~~~
 楼主| 发表于 2018-1-28 20:43:20 | 显示全部楼层

RE: 计时器小结

[mw_shl_code=applescript,true]
#include<STC12C5A60S2.H>

sbit ENLED = P1^1;
sbit LED = P0^0;


void main()
{
        unsigned int cnt=0;
        ENLED = 0;
        P20 = 0;
        P21 = 1;
        P22 = 1;
        LED = 0;
       
        TMOD = 0x01;
        TH0 = 0xE0;
        TL0 = 0xC0;
        TR0 = 1;

        while(1)
        {
          if(1==TF0)
                {
                  TF0=0;
                        TH0=0xE0;
                        TL0=0xC0;
                        cnt++;
                        if(cnt>=500)
                        {
                          cnt=0;
                                LED=~LED;
                        }
                }
        }
}
[/mw_shl_code]
好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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