微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机C语言程序设计:TIMER0与TIMER1控制条形LED

单片机C语言程序设计:TIMER0与TIMER1控制条形LED

时间:08-02 来源:互联网 点击:

/* 名称:TIMER0 与 TIMER1 控制条形 LED

说明:定时器 T0 定时控制上一组条形 LED,滚动速度较快

定时器 T1 定时控制下一组条形 LED,滚动速度较慢

*/

#includereg51.h>

#includeintrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar tc0=0,tc1=0;

//主程序

void main()

{

P0=0xfe;

P2=0xfe;

TMOD=0x11; //定时器 0、定时器1 均工作于方式 1

TH0=(65536-15000)/256; //定时器 0:15ms

TL0=(65536-15000)%256;

TH1=(65536-50000)/256; //定时器 1:50ms

TL1=(65536-50000)%256;

IE=0x8a;

TR0=1; //启动定时器

TR1=1;

while(1);

//T0 中断函数

void Time0() interrupt 1

{

TH0=(65536-15000)/256; //恢复定时器0初值

TL0=(65536-15000)%256;

if(++tc0==10) //150ms 转换状态

{


tc0=0;

P0=_crol_(P0,1);

}

}

//T1 中断函数

void Time1() interrupt 3

{

TH0=(65536-50000)/256; //恢复定时器 1 初值

TL0=(65536-50000)%256;

if(++tc1==10) //500ms 转换状态

{

tc1=0;

P2=_crol_(P2,1);

}

}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top