我是靠谱客的博主 害羞皮卡丘,最近开发中收集的这篇文章主要介绍定时/计数器的应用实验(T1 工作方式 1 , T0 工作方式 2 ),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#include <REGX51.H>//HHY 2022/10/30
#define chuar unsigned char;
#define uint unsigned int ;
int cnt0 = 0;
int cnt1 = 0;
sbit LED0 = P1^7;
sbit LED1 = P1^0;

void Timer1_init() //定时器T1
{
 TMOD|=0x10; //定时器T1方式1   方式1 16位  需要软件重新装初始值
    
 EA=1;
 TR1=1;  //启动 T1    定时器
 ET1=1;  //打开 T1 中断
 
 TH1=(65536-50000)/256;  //为 T1 赋初值 ,定时 定时 50000us=50ms
 TL1=(65536-50000)%256;
}

void Timer0_init() //定时器T0
{
    TMOD|=0x02; //定时器T0方式2   方式2 8位  不需要软件重新装初始值

    EA=1;
    TR0=1;  //启动 T0    定时器
    ET0=1;  //打开 T0 中断

    TH0=256-250;  //为 T0 赋初值,定时 25us 6到256需要 250us
    TL0=256-250;    
}

void t1_int(void) interrupt 3   //定时器T1 工作方式1 1s
{
     TH1=(65536-50000)/256;  //为 T1 重装赋初值 ,定时 50000us=50ms
    TL1=(65536-50000)%256;
    cnt1++;
    if(cnt1==20)
    {
        cnt1=0;
        LED1=~LED1;
    }
}

void t0_int(void) interrupt 1  //定时器T0 工作方式2  0.5s
{
 cnt0++;
    if(cnt0==2000)
    {
        cnt0=0;
        LED0=~LED0;
    }
}

void main(void)
{
 Timer0_init();
 Timer1_init();
 while(1);
}

最后用仿真图验证,用示波器观察周期。

最后

以上就是害羞皮卡丘为你收集整理的定时/计数器的应用实验(T1 工作方式 1 , T0 工作方式 2 )的全部内容,希望文章能够帮你解决定时/计数器的应用实验(T1 工作方式 1 , T0 工作方式 2 )所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部