51单片机:中断实现按键按一下数码管从00加到99循环(C语言)

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];//数码管显示个位数字
}
 

(写的不是很规范,仅供参考)

仿真结果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42156796/article/details/88749787