这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机C语言程序设计:用计数器中断实现100以内的按键计数

共1条 1/1 1 跳转至

单片机C语言程序设计:用计数器中断实现100以内的按键计数

高工
2013-10-25 15:38:18     打赏

/* 名称:用计数器中断实现100以内的按键计数

说明:本例用T0计数器中断实现按键技术,由于计数寄存器初值为1,因此

P3.4引脚的每次负跳变都会触发T0中断,实现计数值累加。

计数器的清零用外部中断0控制。

*/

#includereg51.h>

#defineucharunsignedchar

#defineuintunsignedint

//段码

uchar code

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

ucharCount=0;

//主程序

voidmain()

{

P0=0x00;

P2=0x00;

TMOD=0x06; //计数器T0方式2

TH0=TL0=256-1; //计数值为1

ET0=1; //允许T0中断

EX0=1; //允许INT0中断

EA=1; //允许CPU中断

IP=0x02; //设置优先级,T0高于INT0

IT0=1; //INT0中断触发方式为下降沿触发

TR0=1; //启动T0

while(1)

{

P0=DSY_CODE[Count/10];

P2=DSY_CODE[Count%10];

}

}

//T0计数器中断函数

voidKey_Counter()interrupt1

{

Count=(Count+1)%100;//因为只有两位数码管,计数控制在100以内(00~99

}

//INT0中断函数

voidClear_Counter()interrupt0

{

Count=0;

}

单片机C语言程序设计:用计数器中断实现100以内的按键计数
扩展阅读:10s的秒表程序




关键词: 基础知识    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]