zoukankan      html  css  js  c++  java
  • 51单片机实现外部中断00H-FFH、000-255、0000-1023

    外部中断00H-FFH

    #include< reg51.h>
    #define uint unsigned int
    #define uchar unsigned char
    sfr P0M0 = 0x94;
    sfr P0M1 = 0x93;
    sfr P2M0 = 0x96;
    sfr P2M1 = 0x95;
    uchar count;
    uchar i;
    uchar code leddata[]={
        0xC0,  //"0"
        0xF9,  //"1"
        0xA4,  //"2"
        0xB0,  //"3"
        0x99,  //"4"
        0x92,  //"5"
        0x82,  //"6"
        0xF8,  //"7"
        0x80,  //"8"
        0x90,  //"9"
        0x88,  //"A"
        0x83,  //"B"
        0xC6,  //"C"
        0xA1,  //"D"
        0x86,  //"E"
        0x8E,  //"F"
        0x89,  //"H"
        0xC7,  //"L"
        0xC8,  //"n"
        0xC1,  //"u"
        0x8C,  //"P"
        0xA3,  //"o"
        0xBF,  //"-"
    };
    uchar code ledwei[]={
        0x01,0x02,0x04,0x08,
        0x10,0x20,0x40,0x80   
    };
    void delay(uint ms){
        uint i,j;
        for(i = 0;i < ms; i++)
        for(j = 0;j < 121; j++);
    }
    void init(){
        EX0 = 1;       
        IT0 = 1;      
        EA = 1;           
    }
    void display(){       
             while(1){
                    P2 = ~ledwei[0];
                    P0 = leddata[i];
                delay(50);
                P2 = ~ledwei[1];
                P0 = leddata[count];
                delay(50);
                P2 = ~ledwei[2];
                P0 = leddata[16];
                delay(50);
            }        
    }
    void main(){
        P0M0 = 0x00;
        P0M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
    
        init();       
        while(1){
            display();       
        }
    }
    void int0() interrupt 2{
        count++;
        if(count == 16){
            count = 0;
            i++;
            if(i == 16){
                i = 0;
            }
        }
    }

    外部终端实现数码管000-255

    #include< reg51.h>
    #define uint unsigned int
    #define uchar unsigned char
    sfr P0M0 = 0x94;
    sfr P0M1 = 0x93;
    sfr P2M0 = 0x96;
    sfr P2M1 = 0x95;
    uchar count;
    uchar i,j,m;
    uchar code leddata[]={
        0xC0,  //"0"
        0xF9,  //"1"
        0xA4,  //"2"
        0xB0,  //"3"
        0x99,  //"4"
        0x92,  //"5"
        0x82,  //"6"
        0xF8,  //"7"
        0x80,  //"8"
        0x90,  //"9"
        0x88,  //"A"
        0x83,  //"B"
        0xC6,  //"C"
        0xA1,  //"D"
        0x86,  //"E"
        0x8E,  //"F"
        0x89,  //"H"
        0xC7,  //"L"
        0xC8,  //"n"
        0xC1,  //"u"
        0x8C,  //"P"
        0xA3,  //"o"
        0xBF,  //"-"
        0xFF,  //??
        0xFF  //???
    };
    uchar code ledwei[]={
        0x01,0x02,0x04,0x08,
        0x10,0x20,0x40,0x80   
    };
    void delay(uint ms){
        uint i,j;
        for(i = 0;i < ms; i++)
        for(j = 0;j < 121; j++);
    }
    void init(){
        EX0 = 1;      
        IT0 = 1;      
        EA = 1;         
    }
    void display(){        
    
            while(1){
                P2 = ~ledwei[0];
                P0 = leddata[j];
                delay(50);
                P2 = ~ledwei[1];
                P0 = leddata[i];
                delay(50);
                P2 = ~ledwei[2];
                P0 = leddata[count];
                delay(50);
            }        
    }
    void main(){
        P0M0 = 0x00;
        P0M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
    
        init();       
        while(1)
        {
            display();       
        }
    }
    void int0() interrupt 2{
        count++;
        m++;
        if(m == 256){
            m = 0;
            count = 0;
            i = 0;
            j = 0;
        }
        if(count == 10){
            count = 0;
            i++;
            if(i == 10){
                i = 0;
                j++;
                if(j == 3){
                    j = 0;
                }
            }
        }
    
    }

    0000-1023

    #include< reg51.h>
    #define uint unsigned int
    #define uchar unsigned char
    sfr P0M0 = 0x94;
    sfr P0M1 = 0x93;
    sfr P2M0 = 0x96;
    sfr P2M1 = 0x95;
    uchar count;
    uchar i,j,m,n;
    uchar code leddata[]={
        0xC0,  //"0"
        0xF9,  //"1"
        0xA4,  //"2"
        0xB0,  //"3"
        0x99,  //"4"
        0x92,  //"5"
        0x82,  //"6"
        0xF8,  //"7"
        0x80,  //"8"
        0x90,  //"9"
        0x88,  //"A"
        0x83,  //"B"
        0xC6,  //"C"
        0xA1,  //"D"
        0x86,  //"E"
        0x8E,  //"F"
        0x89,  //"H"
        0xC7,  //"L"
        0xC8,  //"n"
        0xC1,  //"u"
        0x8C,  //"P"
        0xA3,  //"o"
        0xBF,  //"-"
        0xFF,  //??
    };
    uchar code ledwei[]={
        0x01,0x02,0x04,0x08,
        0x10,0x20,0x40,0x80   
    };
    void delay(uint ms){
        uint i,j;
        for(i = 0;i < ms; i++)
        for(j = 0;j < 121; j++);
    }
    void init(){
        EX1 = 1;       
        IT1 = 1;       
        EA = 1;            
    }
    void display(){        
    
            while(1){
                P2 = ~ledwei[0];
                P0 = leddata[n];
                delay(20);
                P2 = ~ledwei[1];
                P0 = leddata[j];
                delay(20);
                P2 = ~ledwei[2];
                P0 = leddata[i];
                delay(20);
                P2 = ~ledwei[3];
                P0 = leddata[count];
                delay(20);
            }        
    }
    void main(){
        P0M0 = 0x00;
        P0M1 = 0x00;
        P2M0 = 0x00;
        P2M1 = 0x00;
    
        init();        
        while(1) {
            display();        
        }
    }
    void int0() interrupt 2{
        count++;
        m++;
        if(m == 1024){
            m = 0;
            count = 0;
            i = 0;
            j = 0;
        }
        if(count == 10){
            count = 0;
            i++;
            if(i == 10){
                i = 0;
                j++;
                if(j == 10){
                    j = 0;
                    n++;
                    if(n == 2){
                        n = 0;
                    }
                }
            }
        }
  • 相关阅读:
    【Rust】多种错误类型
    【Rust】Result别名
    【Rust】Option然后
    【Rust】可选和错误
    【Rust】Result问号
    【Rust】Option转换
    【Rust】Option展开
    【Rust】Result结果
    【Rust】Result提前返回
    jQuery过滤 安静点
  • 原文地址:https://www.cnblogs.com/weimin1314/p/8260564.html
Copyright © 2011-2022 走看看