新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機C語言程序設(shè)計:用計數(shù)器中斷實現(xiàn)100以內(nèi)的按鍵計數(shù)

單片機C語言程序設(shè)計:用計數(shù)器中斷實現(xiàn)100以內(nèi)的按鍵計數(shù)

作者: 時間:2013-08-03 來源:網(wǎng)絡(luò) 收藏

/* 名稱:用 100 以內(nèi)的按鍵計數(shù)

說明:本例用 T0 按鍵技術(shù),由于計數(shù)寄存器初值為 1,因此

P3.4 引腳的每次負(fù)跳變都會觸發(fā) T0 中斷,實現(xiàn)計數(shù)值累加。

的清零用外部中斷 0 控制。
*/

#includereg51.h>

#define uchar unsigned char

#define uint unsigned int

//段碼

uchar code

DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

uchar Count=0;

//主程序

void main()

{

P0=0x00;

P2=0x00;

TMOD=0x06; //計數(shù)器 T0 方式 2

TH0=TL0=256-1; //計數(shù)值為 1

ET0=1; //允許 T0 中斷

EX0=1; //允許 INT0 中斷

EA=1; //允許 CPU 中斷

IP=0x02; //設(shè)置優(yōu)先級,T0 高于 INT0

IT0=1; //INT0 中斷觸發(fā)方式為下降沿觸發(fā)

TR0=1; //啟動 T0

while(1)

{

P0=DSY_CODE[Count/10];

P2=DSY_CODE[Count%10];

}

}

//T0 計數(shù)器中斷函數(shù)

void Key_Counter() interrupt 1

{

Count=(Count+1)%100; //因為只有兩位數(shù)碼管,計數(shù)控制在 100 以內(nèi)(00~99)

}

//INT0 中斷函數(shù)

void Clear_Counter() interrupt 0

{

Count=0;

}

單片機C語言程序設(shè)計:用計數(shù)器中斷實現(xiàn)100以內(nèi)的按鍵計數(shù)

c語言相關(guān)文章:c語言教程


塵埃粒子計數(shù)器相關(guān)文章:塵埃粒子計數(shù)器原理


評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉