数码管 段选位选

/*
用来实现 数码管 段选与位选
*/

#include <reg52.h>
typedef unsigned char uchar;
typedef unsigned int uint;


sbit dula=P2^6;
sbit wela=P2^7;

uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

uchar code tablewe[]={
0xfe,0xfd,0xfb,0xf7,0xef,0xdf};

void delay(uint z)
{
    uint x,y;
    for(x=z;x>0;x--)
        for(y=110;y>0;y--);
}

void display(uchar bai,uchar shi,uchar ge)
{
        dula=1;
        P0=table[bai];
        dula=0;
        P0=0xff;
        wela=1;
        P0=tablewe[3];
        wela=0;
        delay(1);

        dula=1;
        P0=table[shi];
        dula=0;
        P0=0xff;
        wela=1;
        P0=tablewe[4];;
        wela=0;
        delay(1);

        dula=1;
        P0=table[ge];
        dula=0;
        P0=0xff;
        wela=1;
        P0=tablewe[5];;
        wela=0;
        delay(1);
}

void main (){
    while(1){

     display(2,3,5);
     
      }          
}
原文地址:https://www.cnblogs.com/sdgtxuyong/p/14880191.html