仿真原理图如下(51单片机显示按键按下次数的proteus仿真工程文件可到本帖附件中下载)
记录按键按下的次数是用中断写的,注意的是一开始按键显示0,只有一个数码管,所以只能显示到0~9,然后从重新从0开始计数
程序如下:
#include<reg51.h>
#include<intrins.h>
#define INT8U unsigned char
#define INT16U unsigned int
const INT8U SEG_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
INT16U Count=0;
sbit Clear_Key=P3^6;
void delay_ms(INT16U x)
{
INT8U t;while(x--) for(t=0;t<120;t++);
}
void main()
{
P0=0xff;
IE=0X81;
IT0=1;
while(1)
{
if(Clear_Key==0) Count=0;
if(Count>9) Count=0;
P0=SEG_CODE[Count];
}
}
void EX_INT0() interrupt 0 //利用中断来进行变化
{
EA=0;
delay_ms(10);
Count++;
EA=1;
}
完整内容请看压缩包全部资料51hei下载地址:
计数器实验(中断).rar
(69.95 KB, 下载次数: 132)
|