考研笔试:51单片机之按键控制数码管显示

1、问题

使用AT89C52单片机进行仿真,需要一个按键(button),一个共阳极数码管(7-SEG),数码管的开头关键字一般是以数字+SEG开头,比如7SEG-XXX,后缀-CA表示common A=共阳极,-CC表示共阴极。

2、代码 

#include<reg52.h>
#define uchar unsigned char
uchar code tab[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
uchar count=0;
sbit key1=P3^2;

void Init_interrupt();

void main(){
Init_interrupt();
while(1);
}

void Init_interrupt(){
EX0=1;	         //定时/计数器T0中断控制位。ET0=1,允许T0中断;
IT0=1;			//INT0触发方式控制位,可由软件进行置位和复位。IT0=1时,INT0为负跳变触发方式。
EA=1;			//中断总控制位。EA=1,CPU开放所有中断;
}

void isr_interrupt0() interrupt 0
{
  P0=tab[count];
  count++;
  if(count==10)
  {
    count=0;
  }
}

3、仿真

按键按下数码管依次显示0—9

发布了64 篇原创文章 · 获赞 70 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/fanjufei123456/article/details/105272087