首页 > 其他分享 >单元训练01:LED指示灯的基本控制

单元训练01:LED指示灯的基本控制

时间:2024-08-12 18:55:37浏览次数:11  
标签:指示灯 01 LED u8 void LedInfo 定时器 Timer0

#include "stc15f2k60s2.h"
#include <intrins.h>

#define LED(x)                 \
	{                          \
		P2 = P2 & 0x1f | 0x80; \
		P0 = x;                \
		P2 &= 0x1f;            \
	}

typedef unsigned char u8; // 定义类型

u8 LedInfo;			 // LED灯数值,高低电平
u8 LedCounter = 0;	 // 闪烁计数
u8 TimerCounter = 0; // 定时器计数
u8 LedNum = 0;		 // 移位计数

void Timer0_Init(void) // 5毫秒@12.000MHz
{
	AUXR |= 0x80; // 定时器时钟1T模式
	TMOD &= 0xF0; // 设置定时器模式
	TL0 = 0xA0;	  // 设置定时初始值
	TH0 = 0x15;	  // 设置定时初始值
	TF0 = 0;	  // 清除TF0标志
	TR0 = 1;	  // 定时器0开始计时
	ET0 = 1;	  // 使能定时器0中断
	EA = 1;
}

void main()
{
	Timer0_Init();
	LedInfo = 0xff;
	while (1)
	{
		LED(LedInfo);
	}
}

void Timer0_Isr(void) interrupt 1
{
	if (++TimerCounter == 100)
	{
		TimerCounter = 0;
		if (LedCounter++ <= 5)
		{
			LedInfo = ~LedInfo; // 闪烁3次
		}
		else if (LedCounter <= 13)
		{
			LedInfo = LedInfo << 1; // 依次点亮
		}
		else
		{
			LedInfo = ~(0xff << ++LedNum); // 依次熄灭
			if (LedNum == 8)
			{
				LedNum = 0;
				LedCounter = 0;
			}
		}
	}
}

标签:指示灯,01,LED,u8,void,LedInfo,定时器,Timer0
From: https://blog.csdn.net/mouze2000/article/details/141129909

相关文章

  • 《分析模式》2024中译本前言01
    前言不久前,还没有关于面向对象分析和设计的书籍。现在,这类书籍多到任何从业者都无法全部跟上。大多数这些书籍专注于教授一种表示法,提出一种简单的建模过程,并用几个简单的例子来说明。《分析模式:可复用的对象模型》是一本不同类型的书。它不聚焦于过程——如何做建模,而是专注......
  • 实习记录day01
    实习第一天上午:没想到提示的走路1.6公里这么远,差点迟到,公司离地铁站好远,下次要骑车过来,想不到这次居然把我腿走断了,一上午还没有恢复过来。(现在下午了,也没恢复过来)这个地方的电梯真离谱,居然是两面开的,我嗯了半天还以为这个电梯坏了,真绝了。配置了公司内网的相关软件,为了链接内......
  • vue——设置proxy代理,status为403/返回code为401
    参考:https://juejin.cn/post/7032114280967176199  vueproxy设置接口代理后,get请求正常,post请求报403,解决方案      https://www.cnblogs.com/sweeeper/p/11132455.html  说下vue工程中代理配置proxy 我的情况vue3项目,使用proxy代理请求,但status一直为403......
  • 001DFS深搜
    洛谷练习1)路径之谜代码(未调#include<bits/stdc++.h>usingnamespacestd;intn;constintmaxn=25;intmaxa[maxn];intmaxb[maxn];intnowa[maxn];intnowb[maxn];intdx[]={0,0,1,-1};intdy[]={1,-1,0,0};intmp[maxn][maxn];vector<int>x......
  • 云原生 - [01] 概述
      云原生的优势包括:提高开发效率、降低成本、确保高可用性、加快开发速度、平台独立性等。它适用于需要快速迭代、高度可扩展和具有弹性的现代应用程序。 一、什么是云原生云原生是一种构建和运行应用程序的方法,它是一套技术体系的方法论,旨在充分利用云计算模型的优势。0......
  • 【算家云】基础操作教程01 注册与登录
    为方便广大用户快速上手算家云,我们将提供算家云的基础操作教程,即便是零基础的小白也能轻松使用。现在就跟着一起来吧!一、进入官网在浏览器地址栏输入以下网址,进入算家云官网【https://www.suanjiayun.com/】点击【立即体验】或右上角【进入平台】,打开注册页面二、注册......
  • CSCI-GA.2250-001 IO Scheduling
    ProgrammingAssignment#4(Lab4):IOSchedulingProfessorHubertusFrankeClassCSCI-GA.2250-001Summer2024InthislabyouwillimplementandsimulatetheschedulingandoptimizationofI/Ooperationsforaharddisk.Applicationssubmittheirblock......
  • PAT1001 害死人不偿命的(3n+1)猜想
    卡拉兹(Callatz)猜想:对任何一个正整数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结......
  • springboot电影院购票管理系统-计算机毕业设计源码71301
    目 录摘要1绪论1.1选题背景与意义1.2开发现状1.3论文结构与章节安排2 电影院购票管理系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3操作可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3 ......
  • docker之pull失败。error pulling image configuration: download failed after attem
    一、问题描述docker部署完成后,想pull项目,但是就是报错:errorpullingimageconfiguration:downloadfailedafterattempts=6:dialtcp108.160.170.26:443:connect:connectionrefused, 更奇葩的是执行dockersearchhello-world是可以的。二、解决问题1)问题分析:看报......