adc.c

来自「ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的C」· C语言 代码 · 共 104 行

C
104
字号
#include <reg52.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,0,0,0}; 

unsigned char dispcount; 

  

sbit ST=P3^0; 

sbit OE=P3^1; 

sbit EOC=P3^2; 

unsigned char channel=0xbc;//IN3 

unsigned char getdata; 

  

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; 

      dispbuf[2]=getdata/100; 

      getdata=getdata%10; 

      dispbuf[1]=getdata/10; 

      dispbuf[0]=getdata%10; 

    } 

} 

  

void t0(void) interrupt 1 using 0 

{ 

  TH0=(65536-4000)/256; 

  TL0=(65536-4000)%256; 

  P1=dispcode[dispbuf[dispcount]]; 

  P2=dispbitcode[dispcount]; 

  dispcount++; 

  if(dispcount==8) 

    { 

      dispcount=0; 

    } 

} 

⌨️ 快捷键说明

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