单片机C语言程序设计:用计数器中断实现100以内的按键计数
时间:08-03
来源:互联网
点击:
/* 名称:用计数器中断实现 100 以内的按键计数
说明:本例用 T0 计数器中断实现按键技术,由于计数寄存器初值为 1,因此
P3.4 引脚的每次负跳变都会触发 T0 中断,实现计数值累加。
计数器的清零用外部中断 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; //计数器 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 计数器中断函数
void Key_Counter() interrupt 1
{
Count=(Count+1)%100; //因为只有两位数码管,计数控制在 100 以内(00~99)
}
//INT0 中断函数
void Clear_Counter() interrupt 0
{
Count=0;
}
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)