⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dianyabiao.c

📁 数字电压表程序
💻 C
字号:
#include <AT89X52.H>

unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,

                                   0xef,0xdf,0xbf,0x7f};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

                                0x6d,0x7d,0x07,0x7f,0x6f,0x00};

unsigned char dispbuf[8]={10,10,10,10,0,0,0,0};

unsigned char dispcount;

unsigned char getdata;

unsigned int temp;

unsigned char i;


sbit ST=P3^0;

sbit OE=P3^1;

sbit EOC=P3^2;

sbit CLK=P3^3;


void main(void)

{

   ST=0;

   OE=0;

   ET0=1;

   ET1=1;

   EA=1;

   TMOD=0x12;

   TH0=216;

   TL0=216;

   TH1=(65536-4000)/256;

   TL1=(65536-4000)%256;

   TR1=1;

   TR0=1;

   ST=1;

   ST=0;

   while(1)

     {

       if(EOC==1)

         {

           OE=1;

           getdata=P0;

           OE=0;

           temp=getdata*235;

           temp=temp/128;

           i=5;

           dispbuf[0]=10;

           dispbuf[1]=10;

           dispbuf[2]=10;

           dispbuf[3]=10;

           dispbuf[4]=10;

           dispbuf[5]=0;

           dispbuf[6]=0;

           dispbuf[7]=0;

           while(temp/10)

             {

               dispbuf[i]=temp%10;

               temp=temp/10;

               i++;

             }

           dispbuf[i]=temp;        

           ST=1;

           ST=0;

         }

     }

}


void t0(void) interrupt 1 using 0

{

   CLK=~CLK;

}


void t1(void) interrupt 3 using 0

{

   TH1=(65536-4000)/256;

   TL1=(65536-4000)%256;

   P1=dispcode[dispbuf[dispcount]];

   P2=dispbitcode[dispcount];

   if(dispcount==7)

     {

       P1=P1 | 0x80;

     }

   dispcount++;

   if(dispcount==8)

     {

       dispcount=0;

     }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -