当前位置: 首页 > news >正文

基于定时器查询模式的LED闪烁(STC89C52单片机)

#include <reg52.h>

sbit LED = P0^0;
sbit ADDR0 = P1^0;
sbit ADDR1 = P1^1;
sbit ADDR2 = P1^2;
sbit ADDR3 = P1^3;
sbit ENLED = P1^4;

void main()
{
    unsigned char cnt = 0;  //定义一个计数变量,记录T0溢出次数

    ENLED = 0;    //使能U3,选择独立LED
    ADDR3 = 1;
    ADDR2 = 1;
    ADDR1 = 1;
    ADDR0 = 0;
    TMOD = 0x01;  //设置T0为模式1
    TH0  = 0xB8;  //为T0赋初值0xB800
    TL0  = 0x00;
    TR0  = 1;     //启动T0
    
    while (1)
    {
        if (TF0 == 1)        //判断T0是否溢出
        {
            TF0 = 0;         //T0溢出后,清零中断标志
            TH0 = 0xB8;      //并重新赋初值
            TL0 = 0x00;
            cnt++;           //计数值自加1
            if (cnt >= 50)   //判断T0溢出是否达到50次
            {
                cnt = 0;     //达到50次后计数值清零
                LED = ~LED;  //LED取反:0-->1、1-->0
            }
        }
    }
}

相关文章:

  • Android 最简单的native二进制程序
  • 安卓垂直进度条
  • 青少年编程与数学 02-018 C++数据结构与算法 01课题、算法
  • Android RK356X TVSettings USB调试开关
  • 深入了解 WebGIS 系统:构建地理空间信息的网络桥梁
  • “具身智能”爆火 它会带来什么改变?
  • Cursor 配置中文界面并设置浅色背景的方法
  • 语音合成(TTS)从零搭建一个完整的TTS系统-第二节-文本归一化
  • 《Android 应用开发基础教程》——第五章:RecyclerView 列表视图与适配器机制
  • esp32c3 c2如何进入下载模式
  • MCU开发学习记录10 - 高级定时器学习与实践(HAL库)—PWM互补输出、死区控制、刹车控制 - STM32CubeMX
  • Linux Wlan-四次握手(eapol)框架流程
  • CSS预处理工具有哪些?分享主流产品
  • 第二章 Logback的架构(一)
  • eBay自动化定价陷阱调查:价格战背后的利润黑洞与破局之道
  • Oracle expdp的 EXCLUDE 参数详解
  • 如何在LangChain中构建并使用自定义向量数据库
  • 操作指南:在vue-fastapi-admin上增加新的功能模块
  • Qwen-Chat与谷歌Veo2在免费AI视频方面对比
  • Unity3D ILRuntime与Scripting Backend整合指南
  • 2025年度“沪惠保”今日开售:保费维持129元/人,进一步扩增国内外特药种类
  • 一季度减持阿里、美团,加仓顺丰,张坤:与其纠结经济,不如着眼企业
  • 上交所召开私募机构座谈会,与会机构:中国资产具备显著估值修复和提升潜力,将坚定持有
  • 文甦任四川乐山市委副书记,曾赴外交部挂职副司长
  • 沙龙 | 新书分享:中国电商崛起的制度密码
  • 广西气象干旱面积97.5%,影响人畜饮水、农业生产