51单片机的自外地址数据读写

2020-02-03 10:11发布

有一个片外的C程序看不懂,希望大侠指教!!
#include<reg51.h>
#include<absacc.h>
#define    ADC     XBYTE[0x2000]
#define    DP1     XBYTE[0x0000]
#define    DP2     XBYTE[0x0001]
#define    DP3     XBYTE[0x0002]
#define    DP4     XBYTE[0x0003]
#define    TIMER    0x3000

unsigned char table[ ]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
void delay(void);
void display(unsigned char m,n);
void main(void)
{                   
    int  temp=0 ,y=0;

        unsigned char j=0;
        unsigned char z=0,num=0,y2=0,i;
        int    x=0;

    DP1=DP2=DP3=DP4=0xff;
        delay();

  while(1)
                {
  
                        ADC=x;
                        delay();
                        delay();
                        x=(int)((ADC*250)/64);    /*        x=(ADC*4); */
                //        DP1=0xff;
                /*        for(;j<=0;j++)
                    {        temp=x;           }                  */
                        if(temp=x)
                        {
                                y=(int )(x/100);        num=1;  display(num,y);
                                z=(x-y*100)/10;        num=2;  display(num,z);
                                y2=x-(y*100)-(z*10);num=3;  
                               
                                display(num,y2);
                        }
            
                  for(i=0;i<10;i++)
                  { delay();        }
                //         temp=x;
         }
}
void display(unsigned char m,n)
{   
        switch(m)
        {
                case 1: DP2=table[n];        break;
                case 2: DP3=table[n]+0x80;         break;
                case 3: DP4=table[n];                 break;
                default: ;                                          break;
        }
}     

void delay(void)
{
        unsigned int i;
        for(i=0;i<TIMER;++i);
}

这是一个测温用数码管显示的程序....具体怎么用的373,245不清楚。
0条回答

一周热门 更多>