C51单片机中断实验

实验要求:

  • 要求通过中断方式检测有无按键
  • 判断哪个按键(编号0-9),并且在数码管上显示对应的0-9

代码部分

#include<reg51.h>
char led_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
char key_buf[]={0xee,0xde,0xbe,0xed,0xdd,0xbd,0xeb,0xdb,0xbb,0xe7};
void getKey() interrupt 0{
    char key_scan[]={0xef,0xdf,0xbf,0x7f};
    char i=0,j=0;
    for(i=0;i<4;i++){
        P2=key_scan[i];
        for(j=0;j<10;j++){
            if(key_buf[j]==P2){
                P0=led_mod[j];
                break;
            }}}
    P2=0x0f;
        }
void main(void){
    P0=0x00;
    IT0=1;
    EX0=1;
    EA=1;
    P2=0x0f;
    while(1);
}

原理图

image.png

原文地址:https://www.cnblogs.com/xgcl/p/14716043.html