新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 用查詢定時器0溢出標志位的方式實現(xiàn)LED燈閃

用查詢定時器0溢出標志位的方式實現(xiàn)LED燈閃

作者: 時間:2012-11-24 來源:網絡 收藏
我來給大家一些單片機控制led燈的程序,都有詳細的注釋,有錯誤的話請大家指點。
0的方式實現(xiàn)爍。
用定時器0實現(xiàn)P2_0所接LED燈每60ms亮或滅一次,設系統(tǒng)晶振為12MHz。該例子中采用0的方法,若是為1,則執(zhí)行P2_0引腳取反的語句,使爍。源程序如下:
//程序出自51hei單片機
#include "reg51.h" //頭文件
sbit P2_0=P2^0; //定義P2_0為P2口的0引腳
void main() //主函數(shù)
{P2=0xff; //熄滅所有LED燈
TMOD=0x01; //定時器模式1,16位計數(shù)
TH0=0x15; //設置計數(shù)初值5536,則計數(shù)值為60000,對于12M時鐘,相當于60ms
TL0=0xa0; //設置定時器低8位
TR0=1; //啟動定時器0
for(;;) //無限循環(huán)
{if(TF0) //0溢出標志位,如果溢出標志位為1,則執(zhí)行如下語句
{TF0=0; //清零標志位
TH0=0x15; //重置定時器高8位
TL0=0xa0; //重置定時器低8位
P2_0=!P2_0; //將P2_0引腳取反,
}}}

--
P3.4~7引腳相連的按鍵控制P2.0~3連接的LED燈。
#include AT89X51.H>
unsigned char temp; //定義變量temp
void main(void) //主函數(shù)
{
while(1) //無限循環(huán)
{temp=P3>>4; //將P3口右移4位
temp=temp | 0xf0; //將P3口的低4位送temp
P2=temp; //將P3口的低4位送P2口
} }

led燈相關文章:led燈原理




評論


技術專區(qū)

關閉