找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2721|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机定时方式点亮LED灯闪烁C程序语言

[复制链接]
跳转到指定楼层
楼主
本帖最后由 KeepYn 于 2021-6-20 18:54 编辑

配置定时器0的定时模式,控制点亮LED灯闪烁
实现现象为开发板上的红蓝绿LED灯交替闪烁
以下代码经过实际验证
艾克姆科技STC15W4K64的一块系统开发板
话不多说,直接上代码(模块化)

主函数代码如下
#include "timer.h"
void main()
{
        unsigned char time = 0;    //定义计数次数的数据类型
        P0M0 = 0; P0M1 =1;    //配置P0为准双向模式
        Timer0_Init();        //调用初始化函数,初始化定时器0
        while(1)
        {   
                if(TF0 == 1)      //T0溢出标志位,溢出后硬件置 1 (检测定时器是否溢出)
                {   
                        TF0  = 0;     //软件查询,软件清 0
                        time++;       //记录溢出的次数
                        if(time == 30)   //0.3s
                        {   LED1 = 1;
                                LED2 = 1;
                            LED0 = 0;
                        }
                        if(time == 60)  //0.6s
                        {   LED0  = 1;
                                LED2  = 0;
                        }
                        if(time == 90)  //0.9s
                        {   LED2  = 1;
                                LED1  = 0;
                                time  = 0;
                        }
                }
        }
}


有关定时器的点C代码如下
#include "timer.h"

void Timer0_Init(void)  //溢出定时的时间为10ms
{
        TMOD = 0X00;   //工作模式寄存器,设置为启动禁止仅由TR0控制,设置为定时模式,工作模式设置为模式0
        TH0  = 0XDC;   //给加法计数器附初值 0XDC(65536-9213)/256
        TL0  = 0X00;   //                       (65536-9213)%256
        TR0  = 1;      //TR0 T0的运行控制位,等于1开始计数
}

```
定时器点H代码如下
#ifndef __TIMER_H__
#define __TIMER_H__

#include <STC15W.h>      //15单片机头文件

        sbit LED0 = P0^5;    //LED灯的位定义(蓝)
        sbit LED1 = P0^6;    // 绿
        sbit LED2 = P0^7;    // 红

void Timer0_Init(void);  

#endif
以下是验证图展示


FF02FF7E403FFBDECA2EC57830E51104.jpg (176.61 KB, 下载次数: 53)

FF02FF7E403FFBDECA2EC57830E51104.jpg

81E64192B109512F4C7F6C0910932BC3.jpg (228.1 KB, 下载次数: 66)

81E64192B109512F4C7F6C0910932BC3.jpg

5B04F57F3461145F08D49D9B8B15293B.jpg (210.36 KB, 下载次数: 53)

5B04F57F3461145F08D49D9B8B15293B.jpg

用定时器实现小灯闪烁(寄存器).rar

21.1 KB, 下载次数: 6, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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