adtrans.c

来自「AD转换实验」· C语言 代码 · 共 86 行

C
86
字号
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit wr=P3^6;
sbit rd=P3^7;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code tabwe[]={
0x7e,0x7d,0x7b,0x77};
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar code table1[]={
0xbf,0x86,0xdb,0xcf,
0xe6,0xed,0xfd,0x87,
0xff,0xef};
uchar a,we,num,num0,num1,num2,num3;
uint temp;
void start();
void display();
void delay(uchar z);
void main()
{
     dula=0;
     P0=0xff;
     wela=1;
     P0=0x7f;
     wela=0;
     while(1)
     {
          start();
          delay(10);
          rd=0;
          delay(4);
          a=P1;
          rd=1;
          display();
          delay(4);          
     }
}

void delay(uchar z)
{
     uchar i,j;
     for(i=z;i>0;i--)
         for(j=110;j>0;j--);
}

void start()
{
     wr=1;
     wr=0;
     wr=1;
}

void display()
{  
   a=~a;
   temp=a*20;
   num0=temp/1000;
   num1=temp%1000/100;
   num2=temp%100/10;
   num3=temp%10;
   if(we==4)
   {we=0;}
   else
   {we++;}
   switch (we)
   {
       case 0:num=num0;break;
       case 1:num=num1;break;
       case 2:num=num2;break;
       case 3:num=num3;break;
   }
   dula=1;
   if(we==0)
   {P0=table1[num];}
   else
   {P0=table[num];}
   dula=0;
   P0=0xff;
   wela=1;
   P0=tabwe[we];
   wela=0;
}

⌨️ 快捷键说明

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