單片機(jī)C語(yǔ)言程序設(shè)計(jì):TIMER0與TIMER1控制條形LED
掃描二維碼
隨時(shí)隨地手機(jī)看文章
/* 名稱:TIMER0 與 TIMER1 控制條形 LED
說(shuō)明:定時(shí)器 T0 定時(shí)控制上一組條形 LED,滾動(dòng)速度較快
定時(shí)器 T1 定時(shí)控制下一組條形 LED,滾動(dòng)速度較慢
*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar tc0=0,tc1=0;
//主程序
void main()
{
P0=0xfe;
P2=0xfe;
TMOD=0x11; //定時(shí)器 0、定時(shí)器1 均工作于方式 1
TH0=(65536-15000)/256; //定時(shí)器 0:15ms
TL0=(65536-15000)%256;
TH1=(65536-50000)/256; //定時(shí)器 1:50ms
TL1=(65536-50000)%256;
IE=0x8a;
TR0=1; //啟動(dòng)定時(shí)器
TR1=1;
while(1);
//T0 中斷函數(shù)
void Time0() interrupt 1
{
TH0=(65536-15000)/256; //恢復(fù)定時(shí)器0初值
TL0=(65536-15000)%256;
if(++tc0==10) //150ms 轉(zhuǎn)換狀態(tài)
{ tc0=0; P0=_crol_(P0,1); } } //T1 中斷函數(shù) void Time1() interrupt 3 { TH0=(65536-50000)/256; //恢復(fù)定時(shí)器 1 初值 TL0=(65536-50000)%256; if(++tc1==10) //500ms 轉(zhuǎn)換狀態(tài) { tc1=0; P2=_crol_(P2,1); } }
擴(kuò)展閱讀:TIMER0控制流水燈程序