51单片机-定时器

发布时间:2011-3-22 11:40    发布者:techshare
关键词: 51单片机 , 定时器
定时/计数器的结构和工作原理

定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。80C51单片机定时/计数器的工作是由两个特殊功能寄存器控制的。TMOD是定时/计数器的工作方式寄存器,确定工作方式和功能,低四位用于T0,高四位用于T1。TCON是控制寄存器,控制T0和T1的启动和停止及溢出标志,高四位与定时器有关,低四位与外部中断有关。如果定时/计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示计数值已满。加1计数器输入的计数脉冲有两个来源,一个是由系统的时钟振荡脉冲经12分频后送来;一个是T0或T1引脚输入的外部脉冲源。













中断允许控制。CPU对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器

IE控制的。




#include <reg52.h>

unsigned int t;
sbit p3_4 = P3^4;

void init_timer(){
        TH0        = (65535 - 50000) / 256;  //求取高8位
        TL0 = (65535 - 50000) % 256;    //求取低8位
        EA = 1;                        //CPU总中断允许位
        ET0 = 1;                       //定时/计数器中断允许位
        IT0 = 1;                       //下降沿有效
        TR0 = 1;                       //定时器启动
        TMOD = 0x01;                   //使用定时器T0,16位计数器
        p3_4 = 1;
}
void main(){
        init_timer();
        t = 0;
        while(1){
                if(t == 20){
                        p3_4 = "p3_4;      //响一秒,停一秒
                        t = 0;
                }
        }
}

void bell() interrupt 1{
        TH0 = (65535 - 50000) / 256;  //从15535开始计时,共50000us,50ms
        TL0 = (65535 - 50000) % 256;    //20*50 = 1000ms = 1s 即1s响停一次
        t++;        
}


李万鹏
本文地址:https://www.eechina.com/thread-59323-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
williamkmcn 发表于 2011-7-7 16:55:06
好东西值得收藏
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • 更佳设计的解决方案——Microchip模拟开发生态系统
  • 我们是Microchip
  • Cortex-M4外设 —— TC&TCC结合事件系统&DMA优化任务培训教程
  • 你仿真过吗?使用免费的MPLAB Mindi模拟仿真器降低设计风险
  • 贸泽电子(Mouser)专区

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表