利用定时器 1和定时器0控制led1和led2分别 2hz和0.5hz闪烁
//利用定时器 1和定时器0控制led1和led2分别 2hz和0.5hz闪烁 #include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^;
sbit led2=P1^;
uchar count0,count1; void delay(uint x)
{
uchar i;
while(x--)
{
for(i=;i<;i++);
}
} void init()
{
TMOD = 0x10; //定时器1 0
EA=;
ET0=;
TR0=;
TH0=0x4b;
TL0=0xfd; //50ms
ET1=;
TR1=;
TH1=0x4b;
TL1=0xfd;
} void main()
{
init();
while()
{
led1=led2=; } }
void Timer0() interrupt //定时器0
{
TH0=0x4b;
TL0=0xfd;
count0++;
if(count0==)//如果是500ms(2hz)
{
count0=;
led1=;
delay();
} } void Timer1() interrupt //定时器1
{
TH1=0x4b;
TL1=0xfd;
count1++;
if(count1==)//如果是2000ms
{
count1=;
led2=;
delay();
} }
//利用定时器 1和定时器0控制led1和led2分别 2hz和0.5hz闪烁
//利用定时器0 1s,led1取反,利用计数器1,(65535-10)%256,取反
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^;
sbit led2=P1^;
uchar count0,count1; void delay(uint x)
{
uchar i;
while(x--)
{
for(i=;i<;i++);
}
} void init()
{
TMOD = 0x10; //定时器1 0
EA=;
ET0=;
TR0=;
TH0=0x4b;
TL0=0xfd; //50ms
ET1=;
TR1=;
TH1=0x4b;
TL1=0xfd;
} void main()
{
init();
while()
{
led1=led2=; } }
void Timer0() interrupt //定时器0
{
TH0=0x4b;
TL0=0xfd;
count0++;
if(count0==)//如果是500ms(2hz)
{
count0=;
led1=;
delay();
} } void Timer1() interrupt //定时器1
{
TH1=0x4b;
TL1=0xfd;
count1++;
if(count1==)//如果是2000ms
{
count1=;
led2=;
delay();
} }
利用定时器 1和定时器0控制led1和led2分别 2hz和0.5hz闪烁的更多相关文章
- [ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)
引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别 ...
- [ZigBee] 6、ZigBee基础实验——定时器3和定时器4(8 位定时器)
上一节讲了16位定时器1,本节讲8位定时器3和定时器4! 1.综述 Timer 3 and Timer 4 are two 8-bit timers(8位定时器). Each timer has tw ...
- tcp 保活定时器分析 & Fin_WAIT_2 定时器
tcp keepalive定时器 http server 和client端需要防止"僵死"链接过多!也就是建立了tcp链接,但是没有报文交互, 或者client 由于主机突然掉电! ...
- 关于普通定时器与高级定时器的 PWM输出的初始化的区别
不管是普通定时器还是高级定时器,你用哪个通道,就在程序里用OC多少.比如CH3对应OC3 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_ ...
- java定时器,Spring定时器和Quartz定时器
一.java定时器的应用 其实java很早就有解决定时器任务的方法了,java提供了了类java.util.TimerTask类基于线程的方式来实现定时任务的操作,然后再提供java.util.Tim ...
- 14.TCP的坚持定时器和保活定时器
一.坚持定时器 1.坚持定时器的由来 TCP通过让接收方指明希望从发送方接受的窗口大小来进行流量控制.设置窗口大小为0可以组织发送方传送数据,直至窗口变为非0为止. ...
- Object-C定时器,封装GCD定时器的必要性!!! (二)
上一篇:Object-C定时器,封装GCD定时器的必要性!!! (一) 上一篇认识了Object-C中的几种定时器,这一篇将Dispatch定时器(GCD定时器)封装起来. p.p1 { margin ...
- Object-C定时器,封装GCD定时器的必要性!!! (一)
实际项目开发中经常会遇到延迟某件任务的执行,或者让某件任务周期性的执行.然后也会在某些时候需要取消掉之前延迟执行的任务. iOS中延迟操作有三种解决方案: 1.NSObject的方法:(对象方法) p ...
- TCP的定时器系列 — 保活定时器
主要内容:保活定时器的实现,TCP_USER_TIMEOUT选项的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 原理 HTTP有Keepaliv ...
随机推荐
- Mac 终端执行JavaScript
创建: 2017/09/16 第一步 打开命令 输入alias jsc="/System/Library/Frameworks/JavaScriptCore.framework/ ...
- cmd执行Java程序
先创建一个文本,里面内容为 public class hello{ public static void main(String[] arg) { System.out.println("H ...
- ACM_3n+1问题(克拉兹问题+线段树区间查询最大值)
3n+1问题 Time Limit: 2000/1000ms (Java/Others) Problem Description: 考虑如下的序列生成算法:从整数n开始,如果n是偶数,把它除以2:如果 ...
- [LeetCode]152. Maximum Product Subarray
This a task that asks u to compute the maximum product from a continue subarray. However, you need t ...
- [ USACO 2018 OPEN ] Out of Sorts (Platinum)
\(\\\) \(Description\) 对一长为\(N\)的数列\(A\)排序,不保证数列元素互异: 数列\(A\)中\(A[1...i]\)的最大值不大于\(A[i+1-N]\)的最小值,我们 ...
- Html基础学习(基于W3school网络教程)
//防止乱码 head中加入 <meta http-equiv="Content-Type" content="text/html; charset=utf-8&q ...
- Android 自己搭建一个直播系统吧
服务端用 SRS(Simple Rtmp Server),在这里下载simple-rtmp-server需要Linux系统最好是Ubuntu,装个Ubuntu虚拟机就行了在Linux里,解压缩SRS ...
- Ajax——异步基础知识(二)
XML数据格式 首行必须是版本号和格式等信息 <?xml version="1.0" encoding="utf-8" ?> 最外层需要一个根节点进 ...
- css 众妙之门 学习笔记
伪类: 结构伪类: :empty :only-child :before :after :active :hover :focus :link :visited :first-child :last- ...
- 【译】x86程序员手册09-第3章程序指令集
注:觉得本章内容与理解操作系统不直接相关,所以本章并未看完,也就没有翻译完,放在这里中是为了保证手册的完整.有兴趣的人可以去原址查看. https://pdos.csail.mit.edu/6.828 ...