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

定时器0学习

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

主函数代码如下

#include "timer.h"
void main()
{
	unsigned char time = 0;    //定义计数次数的数据类型
	P0M0 = 0; P0M1 = 0;    //配置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

以下是验证图展示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值