//利用定时器 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闪烁的更多相关文章

  1. [ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)

    引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别 ...

  2. [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 ...

  3. tcp 保活定时器分析 & Fin_WAIT_2 定时器

    tcp keepalive定时器 http server 和client端需要防止"僵死"链接过多!也就是建立了tcp链接,但是没有报文交互, 或者client 由于主机突然掉电! ...

  4. 关于普通定时器与高级定时器的 PWM输出的初始化的区别

    不管是普通定时器还是高级定时器,你用哪个通道,就在程序里用OC多少.比如CH3对应OC3 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;  TIM_ ...

  5. java定时器,Spring定时器和Quartz定时器

    一.java定时器的应用 其实java很早就有解决定时器任务的方法了,java提供了了类java.util.TimerTask类基于线程的方式来实现定时任务的操作,然后再提供java.util.Tim ...

  6. 14.TCP的坚持定时器和保活定时器

    一.坚持定时器   1.坚持定时器的由来         TCP通过让接收方指明希望从发送方接受的窗口大小来进行流量控制.设置窗口大小为0可以组织发送方传送数据,直至窗口变为非0为止.         ...

  7. Object-C定时器,封装GCD定时器的必要性!!! (二)

    上一篇:Object-C定时器,封装GCD定时器的必要性!!! (一) 上一篇认识了Object-C中的几种定时器,这一篇将Dispatch定时器(GCD定时器)封装起来. p.p1 { margin ...

  8. Object-C定时器,封装GCD定时器的必要性!!! (一)

    实际项目开发中经常会遇到延迟某件任务的执行,或者让某件任务周期性的执行.然后也会在某些时候需要取消掉之前延迟执行的任务. iOS中延迟操作有三种解决方案: 1.NSObject的方法:(对象方法) p ...

  9. TCP的定时器系列 — 保活定时器

    主要内容:保活定时器的实现,TCP_USER_TIMEOUT选项的实现. 内核版本:3.15.2 我的博客:http://blog.csdn.net/zhangskd 原理 HTTP有Keepaliv ...

随机推荐

  1. The Open Graph protocol

    https://www.quora.com/What-does-this-tag-mean-html-lang-en-US-prefix-og-http-ogp-me-ns https://stack ...

  2. Linux 下Python调用C++编写的动态库

    在工程中用到使用Python调用C++编写的动态库,结果报如下错误: OSError: ./extract_str.so: undefined symbol: _ZNSt8ios_base4InitD ...

  3. YTU 2705:用重载求距离

    2705: 用重载求距离. 时间限制: 1 Sec  内存限制: 128 MB 提交: 208  解决: 114 题目描述 使用函数重载的方法定义两个重名函数,分别求出整型数的两点间距离和浮点型数的两 ...

  4. CodeForces - 557D Vitaly and Cycle(二分图)

    Vitaly and Cycle time limit per test 1 second memory limit per test 256 megabytes input standard inp ...

  5. input的type等于mage标签引发的页面提交!

    主要原因是使用了<input type="image",而且放在了<form中. <input type="image"标签类似<inp ...

  6. 湖南集训day6

    难度:☆☆☆☆☆☆☆☆ /* 对于第一问:f[i][j]表示前i个数,当前黑板上的数为j的概率 当前有三种情况 1.当前数不是j的倍数—>黑板上的数字改变. 2.当前数是j的倍数且当前数在前i个 ...

  7. [Swift通天遁地]二、表格表单-(18)快速应用多种预定义格式的表单验证

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  8. Java中多个线程交替循环执行

    有些时候面试官经常会问,两个线程怎么交替执行呀,如果是三个线程,又怎么交替执行呀,这种问题一般人还真不一定能回答上来.多线程这块如果理解的不好,学起来是很吃力的,更别说面试了.下面我们就来剖析一下怎么 ...

  9. 修路方案 Kruskal 之 次小生成树

    次小生成树 : Kruskal 是先求出来  最小生成树 , 并且记录下来所用到的的边 , 然后再求每次都 去掉最小生成树中的一个边 , 这样求最小生成树 , 然后看能不能得到 和原来最小生成树一样的 ...

  10. $CF1141A Game 23$

    这题很简单啊 可以用\(DFS\)来打 毕竟是 \(2^x*3^y=m 输出x+y啊\) 这是最简单的做法 #include <bits/stdc++.h> using namespace ...