久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機 定時器T0方式1 控制流水燈

51單片機 定時器T0方式1 控制流水燈

作者: 時間:2016-11-25 來源:網絡 收藏
定時器這家伙在哪里都會用到,實際工程開發中沒有能離開定時器的。所以掌握定時器就尤為重要了,這里主要提到的是最基本的使用了--用于定時。

LED原理圖見《51單片機--流水燈演示》,定時器沒有原理圖,屬于單片機內部資源。

本文引用地址:http://cqxgywz.com/article/201611/321308.htm

代碼如下:

#include //頭文件
#include
#define uint unsigned int //宏定義
uint jishuNumber,aa; //定義jishuNumber為計數器計滿次數(本程序20次為1S) aa代表流水號

void main() //主函數入口
{
aa=0xfe; //初始化為點亮第一個LED燈
P1=aa;
//定時器T0方式1初始化(其它通用)
TMOD=0x01; //①TMOD賦值,以確定T0/T1的工作方式
TH0=(65536-46080)/256; //②計算初值,并將初始化值寫入TH0/TL0
TL0=(65536-46080)%6;
EA=1; //③開放相應中斷
ET0=1; //④TR0/TR1置位,啟動相應定時器/計數器
TR0=1;
while(1)
{
if(jishuNumber==20) //如果1S
{
jishuNumber=0;
aa=_crol_(aa,1); //把aa左旋之后賦值給aa
P1=aa; //流水燈點亮
}
}
}
void T0_time_no1() interrupt 1 //中斷服務程序
{
TH0=(65536-46080)/256;
TL0=(65536-46080)%6;
jishuNumber++; //計滿一次加1
}


以上,結束。



評論


技術專區

關閉