51单片机:中断实现按键按一下数码管从00加到99循环(C语言)
题目要求:
在51单片机上通过C语言编写代码,使用中断,按键按一下数码管上面的数字从00开始加1,实现00——99的循环
准备工作:
- keil建立工程
- proteus仿真验证
代码如下:
/*
*功能:用中断实现开关每按一次,数码管数字加一,
*实现00-99的循环
*/
#include<reg52.h>
sbit SEG1 = P1^0; //定义显示十位数码管
sbit SEG2 = P2^0; //定义显示个位数码管
sbit key = P3^2; //定义按键
int sum = 0;
int i,j;
unsigned char code DSY_CODE[] = {0xC0,0xF9,0xA4,
0xB0,0x99,0x92,
0x82,0xF8,0x80,0x90}; //共阳极数码管
void main()
{
IE = 0x81; //使用外部中断0
IT0 = 1;
while(1);
}
void EX0_INT(void) interrupt 0
{
sum++;
i = sum/10; //十位数字
j = sum%10; //个位数字
if(sum == 100)
{
sum = 0;
}
P1 = DSY_CODE[i];//数码管显示十位数字
P2 = DSY_CODE[j];//数码管显示个位数字
}
(写的不是很规范,仅供参考)
仿真结果: