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

📄 8路模转数显示电路.c

📁 AT89C51 AND ADC0808 8路模转数显示电路 数码管显示
💻 C
字号:
#include "AT89X51.H"
#include "intrins.h"
#define ad_con  P2
#define addata P0
#define Disdata P1
#define uchar unsigned char
#define int  unsigned int
sbit ALE=P2^3;
sbit START=P2^4;
sbit OE=P2^5;
sbit EOC=P3^7;
char code dis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF};
char code scan_con[4]={0xfe,0xfd,0xfb,0xf7};
char data ad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
char data dis[5]={0x00,0x00,0x00,0x00,0x00};

delay1ms(int t)
{
 int i,j;
 for(i=0;i<t;i++)
  for(j=0;j<120;j++);
}

scan()
{
 char k,n;
 int h;
 dis[3]=0x00;
 for(n=0;n<8;n++)
 {
  dis[2]=ad_data[n]/100;
  dis[4]=ad_data[n]%100;
  dis[1]=dis[4]/10;
  dis[0]=dis[4]%10;
  for(h=0;h<500;h++)
  {
   for(k=0;k<4;k++)
   {
    Disdata=dis_7[dis[k]];P3=scan_con[k];delay1ms(1);P3=0xff;
   }
  }
 dis[3]++;
 }
}

test()
{ 
 char m;
 char s=0x00;
 ad_con=s;
 for(m=0;m<8;m++)
 {
  ALE=1;_nop_();_nop_();ALE=0;
  START=1;_nop_();_nop_();START=0;
  _nop_();_nop_();_nop_();_nop_();
  while(EOC==0);
  OE=1;ad_data[m]=addata;OE=0;s++;ad_con=s;
 }
ad_con=0x00;
}

main()
{
 P0=0xff;
 P2=0x00;
 P1=0xff;
 P3=0xff;
 while(1)
 {
  scan();
  test();
 }
}

⌨️ 快捷键说明

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