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

📄 ad0809.c

📁 基于8051+ADC0809设计数字电压表的电路原理图
💻 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,10,10,10,10};

unsigned char dispcount; 

sbit ST=P3^0; 
sbit OE=P3^1; 
sbit EOC=P3^2; 
unsigned char channel=0xbc; //1011 1100,ABC=110选择第三通道同时使ST=0,OE=0输出数据线呈高阻状态,EOC=1。
unsigned char getdata;   
long int i;
void main(void) 
{ 
  TMOD=0x01; 
  TH0=(65536-4000)/256; 
  TL0=(65536-4000)%256; 
  TR0=1; 
  ET0=1; 
  EA=1; 
  P3=channel; 
  
  while(1) 
    { 
      ST=0; 
      ST=1; 
      ST=0; 
      while(EOC==0); 
      OE=1; 
      getdata=P0; 
      OE=0; 
i=getdata*196;
dispbuf[5]=i/10000; 
i=i%10000; 
dispbuf[6]=i/1000;
i=i%1000; 
dispbuf[7]=i/100; 
    } 
}   
void t0(void) interrupt 1 using 0 
{ 
  TH0=(65536-6000)/256; 
  TL0=(65536-6000)%256; 
  P2=0xff;
  P1=dispcode[dispbuf[dispcount]]; 
  P2=dispbitcode[dispcount]; 
  dispcount++; 
  if(dispcount==8) 
    { 
      dispcount=0; 
    } 
} 

⌨️ 快捷键说明

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