定时器0控制LED的闪烁时间;计数器1来控制数码管的显示

发布者:as8849402最新更新时间:2020-06-20 来源: eefocus关键字:定时器0  控制LED  闪烁时间  计数器1 手机看文章 扫描二维码
随时随地手机看文章

/*


定时器0控制LED的闪烁时间;计数器1来控制数码管的显示


*/


#include


#define uint unsigned int


#define uchar unsigned char


sbit DULA = P2^6;


sbit WELA = P2^7;


sbit LED1 = P1^0;


void display(uint i);


void delay(uint z);


uchar code arry[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};


void delay(uint z)


{


    uint a,b;


    for(a = z;a  > 0;a--){


        for(b = 114;b > 0;b--);


    }


}


void display(uint i)


{


    uint one,two;//这里是两位,如果用三位数码管就设置一个百位,那么百位就是i/100;十位就是i%100/10;个位就是i%10


    one = i / 10;


    two = i % 10;


    P0 = 0xff;


    WELA = 1; //打开位选


    P0 = 0xfe;


    WELA = 0;


    DULA = 1;//打开段选


    P0 = arry[one];


    DULA = 0;


    delay(5);


    P0 = 0xff;


    WELA = 1;  //打开位选


    P0 = 0xfd;


    WELA = 0;


    DULA = 1;//打开段选


    P0 = arry[two];


    DULA = 0;


    delay(5);


}


void main(void)


{


    uchar a;


    TR0 = 1;//打开定时器0


    TR1 = 1;//打开定时器1


    TMOD = 0x61;//设置T1为计数器,工作方式为2;T0为定时器,工作方式为1  


    TH0 = 0x4b;


    TL0 = 0xfc;


    TH1 = 0;  //这是一个8位自动重装的寄存器


    TL1 = 0; //当TL1记满,重新装入TH1的值


    while(1){


            if(TF0 == 1){


                TH0 = 0x4b;//重新装入初值


                TL0 = 0xfc;


                TF0 = 0;


                a++;


            }


            if(a == 20){


                LED1 = ~LED1; //初始点亮LED,每次取反就是变换状态


                a = 0;


            }


            display(TL1);//用杜邦线将P10口和外部引脚P35(T1)口连接;


                       //计数器是根据外部每来一个脉冲,计数器就会+1


                       //所以当LED1的状态变化一次,便会产生不同的电平信号,


                       //由杜邦线可以让T1口感知到,计数器就会+1了

    }


}

关键字:定时器0  控制LED  闪烁时间  计数器1 引用地址:定时器0控制LED的闪烁时间;计数器1来控制数码管的显示

上一篇:用定时器T0的中断控制8位LED闪烁
下一篇:编程控制8位LED循环点亮

推荐阅读最新更新时间:2024-11-03 20:05

EVGA为690显卡发布LED控制软件
  EVGA为690显卡发布LED控制软件   2012-05-13 17:59:51 4118 人阅读 作者:P2MM 编辑:P2MM   我们获悉,NVIDIA AIC厂商之一EVGA,已经为旗下GeForce GTX 690显卡推出一款专属LED控制软件。   这款软件可以让EVGA GeForce GTX 690显卡用户,自定义EVGA GeForce GTX 690显卡显卡顶部“GeForce GTX” LED灯的亮度,即增大或者降低“GeForce GTX”字样的亮度。同时,这款软件也可以配合EVGA Precision X软件,根据GPU使用率、GPU工作频率甚至是游戏帧数,降低或者增加“GeForce G
[电源管理]
EVGA为690显卡发布<font color='red'>LED</font><font color='red'>控制</font>软件
MSP430 串口接收指令控制LED亮灭
准备器材:MSP430开发板一块,串口线,PC,串口调试助手(可从网上下载) 八位数据,1个停止位,9600波特率无校验 /******************************************************************** //DM430-L型最小系统板串口测试程序,使用单片机的串口0 //使用板载BSL模块或者用户外接串口线到DB9,要求是直连公对母串口线 //使用串口调试助手发送数据到系统板,比如02,03等 //系统板会将收到的数据再发送到串口调试助手,接收采用中断模块,发送用查询 //板载的BSL模块可以通过跳线帽设置为USB转串口模式,笔记本电脑没有串口可以直接代替 //开发板
[单片机]
SAM4E单片机之旅——6、LED闪烁之按钮控制
现在试试用按钮控制LED灯……让LED在一个按钮按下时亮起;弹起时灭掉。 主要目的是学习GPIO的输入及中断。 一、 电路 图中的J39-n是几个跳线插座,位置在开发板LCD附近,往下进行前要先确保跳线是接通的。 可以看到,当按钮按下时,引脚接地。即若引脚接个上拉电阻,则在按钮弹起状态下,引脚处于高电平状态;而在按钮按下时,则处于低电平状态。 这次使用的按钮是BP3,即PA20引脚;LED为蓝色LED,即PA0。 二、 最简单的办法 在开发版重置时,所有的引脚就默认接了上拉电阻。 所以,直接使用一根杜邦线将PA20和PA0短接,就可以用BP3控制蓝色LED了。 三、 稍微有技术含量的思路 假设,身边不存在杜邦线
[单片机]
SAM4E单片机之旅——6、<font color='red'>LED</font><font color='red'>闪烁</font>之按钮<font color='red'>控制</font>
51单片机 定时器0中断实现LED流水灯
使用51单片机定时器0 方式1实现LED流水灯 代码: #include reg52.h typedef unsigned int u16; void timer0init() { TMOD=0x01; ET0=1; EA=1; TR0=1; TH0=64736/256; TL0=64736%256; } void main() { timer0init(); while(1); } void timer0() interrupt 1 { u16 i; TH0=64736/256; TL0=64736%256; i++; switc
[单片机]
基于LED光源的植物生长动态补光控制系统设计
在番茄的各个生长期,弱光环境都会对番茄的生长造成很大影响,所以需要对番茄的各个生长期进行补光,至于怎么补更科学和补多少最适宜是学者们一直在研究的问题。 基于荧光检测的动态补光系统是利用MINI-PAM监测番茄实际光合效率和LED组合光源补光相结合指导温室番茄种植,定量的分析荧光参数并解决了科学适量补光问题。该系统由上位机总控制中心,自主开发设计的STM32单片机的温室信息监控系统,提供稳定电流的可编程恒流源,大功率红、蓝光LED组合光源和MINI-PAM便携调制式荧光检测仪组成。STM32单片机温室环境因子监控系统和便携式调制荧光检测仪分别测量记录环境信息和荧光参数信息,从这些信息分析计算出LED组合光源的亮度和最佳红蓝光比例,最
[电源管理]
基于<font color='red'>LED</font>光源的植物生长动态补光<font color='red'>控制</font>系统设计
arm7 力天电子lpc2148 GPIO之二单路LED控制实验
说明:力天电子的此款开发板,跟周立功的LPC2131不同,周立功的开发板上可以用跳线棒来选择是否用595驱动,周立功课本上进行GPIO输出实验——单路LED控制实验时,直接把LED接到了arm2131处理器上,如下图所示: 而力天电子的流水灯跟驱动是直接连在一起的必须使用595驱动,如下图所示: #include NXP/iolpc2148.h #define SCLK 0x01 24 #define MISO 0x01 5 #define MOSI 0x01 6 #define RCK 0x01 7 void Delayn(unsigned long n); void HC59
[单片机]
arm7 力天电子lpc2148 GPIO之二单路<font color='red'>LED</font><font color='red'>控制</font>实验
LED驱动精准控制方式
  提到LED驱动精准度通常会想到恒流误差,其实驱动精度并不仅仅限于电流精度一项。LED是一款典型的电流驱动型器件,精准控制LED驱动电流,可决定包括光效率、电源效率、散热和产品亮度等在内的许多参数。驱动LED主要在于控制它的电流。无论是直接增、缩驱动电流,还是占空比(PWM)减小开关时间比,均是控制电流方式,但达到的目的却不相同。本文将阐述不同的驱动在不同应用中的区别。   分布式恒流驱动原理介绍   在以往的白炽灯和节能灯市场,大公司所形成的规格有限的主流灯具型号, LED很难再继续遵守。LED有它的应用灵活性,在日后的设计中会带来较多的电源规格。我们要避免过多的电源规格,不给日后量产带来诸多障碍。本着在不限制设计灵活
[电源管理]
<font color='red'>LED</font>驱动精准<font color='red'>控制</font>方式
基于LM3402的新型LED无影灯控制系统设计
   摘要: 介绍了一种基于恒流驱动 电路 LM3402 的新型 LED 无影灯控制系统, 分析了恒流驱动电路的构成以及 微处理器 的控制方法。该系统基于高亮度白光LED 阵列,由一个LM3402 控制一组发光 二极管 ,根据设定的照度,微处理器 P89LPC932 通过脉宽调制进行恒流控制。实践证明,该系统能够满足手术无影灯的各项要求,工作稳定可靠,而且提高了无影灯的使用性能,降低了功耗。   无影灯是用来照明外科手术部位不可缺少的重要设备, 要求能以最佳地观察处于切口和体腔中不同深度、大小、对比度低的物体。因此, 除需要“ 无影” 以外,还需要光照度均匀、光质好, 能够很好地区分血液与人体其他组
[医疗电子]
基于LM3402的新型<font color='red'>LED</font>无影灯<font color='red'>控制</font>系统设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved