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

📄 adtrans.c

📁 AD转换实验
💻 C
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -