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

单元训练09:定时器实现秒闪功能

蓝桥杯 小蜜蜂  单元训练09:定时器实现秒闪功能

#include "stc15f2k60s2.h"#define LED(x)                 \{                          \P0 = x;                \P2 = P2 & 0x1f | 0x80; \P2 &= 0x1f;            \}#define L1 0xFE; // 定义L1
#define L8 0x7F; // 定义L8typedef unsigned char uint8_t;uint8_t timerCounterHalfSec = 0; // 0.5s,500ms计时
uint8_t EnableHalfSec = 0;       // 0.5s状态达到uint8_t timerCounterFiveSec = 0; // 5s,5000ms计时
uint8_t EnableFiveSec = 0;       // 5s状态达到uint8_t StatusHalfSec; // 用于L1切换状态
uint8_t StatusFiveSec; // 用于L8切换状态void Timer0_Init(void) // 5毫秒@12MHz
{AUXR |= 0x80; // 定时器时钟1T模式TMOD &= 0xF0; // 设置定时器模式TL0 = 0xA0;   // 设置定时初始值TH0 = 0x15;   // 设置定时初始值TF0 = 0;      // 清除TF0标志TR0 = 1;      // 定时器0开始计时ET0 = 1;      // 使能定时器0中断EA = 1;
}void blinkL1()
{switch (StatusHalfSec){case 0:LED(P0 & L1);      // 点亮L1if (EnableHalfSec) // 0.5s延时{StatusHalfSec = 1;EnableHalfSec = 0;}break;case 1:LED(P0 | 0x01);    // 熄灭L1if (EnableHalfSec) // 0.5秒延时{StatusHalfSec = 0;EnableHalfSec = 0;}break;default:StatusHalfSec = 0;break;}
}
void blinkL8()
{switch (StatusFiveSec) // L8状态切换处理{case 0:LED(P0 & L8);      // 点亮L8if (EnableFiveSec) // 5秒延时{StatusFiveSec = 1;EnableFiveSec = 0;}break;case 1:LED(P0 | 0x80);    // 熄灭L8if (EnableFiveSec) // 5秒延时{StatusFiveSec = 0;EnableFiveSec = 0;}break;default:StatusFiveSec = 0;break;}
}
void main()
{LED(0xFF);     // 初始化,全灭Timer0_Init(); // 初始化定时器while (1){blinkL1();blinkL8();}
}void Timer0_Isr(void) interrupt 1
{if (++timerCounterHalfSec == 100) // 500ms,500ms/5ms = 100{EnableHalfSec = 1;timerCounterHalfSec = 0;if (++timerCounterFiveSec == 10) // 5s,5000ms,5000ms/500ms = 10{EnableFiveSec = 1;timerCounterFiveSec = 0;}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 必看!亚马逊卖家如何利用自养号测评策略提升买家评价与销量
  • 第四范式发布AI+5G视频营销产品 助力精准获客与高效转化
  • 面对复杂订单统计,如何用这款工具化整为零?
  • 光影漫游者:开创沉浸式体验新纪元—轻空间
  • Sublime Text常用快捷键大全
  • Java Hashtable【线程安全】的介绍和使用
  • Hadoop环境安装及HDFS初步使用
  • ros-noetic安装lio-sam
  • 把VTK窗口嵌入到Qt的窗口中显示(二)
  • 基于SpringBoot的网络海鲜市场系统的设计与实现
  • 产品文档全攻略:分类、价值及创建技巧
  • 【C++小白到大牛】红黑树那些事儿
  • 瑞友科技项目经理认证负责人杨文娟受邀为第四届中国项目经理大会演讲嘉宾︱PMO评论
  • Java的Cursor的使用
  • 基于hadoop的智慧校园数据共享与交换平台的设计与实现【Django框架、scrapy爬虫框架】
  • [译]Python中的类属性与实例属性的区别
  • 【跃迁之路】【444天】程序员高效学习方法论探索系列(实验阶段201-2018.04.25)...
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • EOS是什么
  • HTML-表单
  • Java 多线程编程之:notify 和 wait 用法
  • JavaScript DOM 10 - 滚动
  • JS实现简单的MVC模式开发小游戏
  • SpiderData 2019年2月16日 DApp数据排行榜
  • Unix命令
  • 阿里云前端周刊 - 第 26 期
  • 运行时添加log4j2的appender
  • 再次简单明了总结flex布局,一看就懂...
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • ​软考-高级-信息系统项目管理师教程 第四版【第14章-项目沟通管理-思维导图】​
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # Redis 入门到精通(七)-- redis 删除策略
  • # Spring Cloud Alibaba Nacos_配置中心与服务发现(四)
  • $ git push -u origin master 推送到远程库出错
  • $.proxy和$.extend
  • (3)llvm ir转换过程
  • (AngularJS)Angular 控制器之间通信初探
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (Mac上)使用Python进行matplotlib 画图时,中文显示不出来
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (八)Flask之app.route装饰器函数的参数
  • (八十八)VFL语言初步 - 实现布局
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (附源码)ssm跨平台教学系统 毕业设计 280843
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (转)scrum常见工具列表
  • (轉)JSON.stringify 语法实例讲解
  • ..thread“main“ com.fasterxml.jackson.databind.JsonMappingException: Jackson version is too old 2.3.1
  • .java 9 找不到符号_java找不到符号
  • .jks文件(JAVA KeyStore)
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET WPF 抖动动画