这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » DIY与开源设计 » 开源硬件 » TYX-ADC0804芯片资料-一款可代替ADC0804的国产芯片

共5条 1/1 1 跳转至

TYX-ADC0804芯片资料-一款可代替ADC0804的国产芯片

菜鸟
2023-09-08 09:03:09     打赏

   TYX-ADC0804是中山市添翼兴电子科技有限公司推出的一款ADC芯片,与美国国家半导体公司(national semiconductor)的ADC0804芯片功能相似,多数情况下可以平替,无需更改程序,一次AD转换时间不超过1mS。TYX-ADC0804提供SOP16封装,可通过PCB转换成与ADC0804引脚对应的DIP20封装。TYX-ADC0804的功能引脚图如下:


 

序号

引脚名称

引脚功能

1

VCC

电源正极,3.3V-5.5V

2

D6

数字信号输出第6位

3

D7

数字信号输出第7位(最高位)

4

D5

数字信号输出第5位

5

INTR

AD转换结束信号,低电平表示本次转换已完成

6

Vin

模拟信号输入端,电压不能超过VCC

7

Vref/2

参考电平输入,电压不能超过VCC

8

CS

片选信号,低电平有效

9

RD

读信号,低电平有效

10

WR

写信号,低电平启动AD转换

11

D0

数字信号输出第0位(最低位)

12

D1

数字信号输出第1位

13

D2

数字信号输出第2位

14

D3

数字信号输出第3位

15

D4

数字信号输出第4位

16

GND

电源负极

 


 

参考应用电路如下图

转为ADC0804引脚对应的DIP20封装的原理图如下:

参考程序如下(主控STC89C52RC,晶振11.0592M。如用高速单片机,可在操作时序加延时)

#include <reg51.h>

#include <intrins.h>

#define LED_DATA  P1

#define AD_DATA  P0

sbit DIG1= P3^4;//数码管第1位

sbit DIG2= P3^5;//数码管第2位

sbit DIG3= P3^6;//数码管第3位

sbit DIG4= P3^7;//数码管第4位

sbit ADC_CS= P2^0;

sbit ADC_RD= P2^1;

sbit ADC_WR= P2^2;

sbit INTR= P2^3;

 

unsigned char LED_data[4]={0xff,0xff,0xff,0xff};

 

unsigned char const table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

                             //0    1    2    3   4    5    6    7    8    9  

 

void tm0_isr()interrupt 1

{

    static unsigned char i=0;

    TH0 = (65536 - 2000) / 256;

    TL0 = (65536 - 2000) % 256;

    switch(i)

    {

        case 0x01 :

        {

            DIG4 = 1;

            LED_DATA = LED_data[0];

            DIG1 = 0;

            break;         

        }

        case 0x02 :

        {

            DIG1 = 1;

            LED_DATA = LED_data[1];

            DIG2 = 0;

            break;         

        }

        case 0x03 :

        {

            DIG2 = 1;

            LED_DATA = LED_data[2];

            DIG3 = 0;

            break;         

        }

        case 0x04 :

        {

            DIG3 = 1;

            LED_DATA = LED_data[3];

            DIG4 = 0;

            break;         

        }  

    }

    i++;

    if(i>4)i=1;

}

 

void main()

{

    unsigned char temp;

    //定时器0初始化

    TMOD = TMOD & 0xf0;

    TMOD = TMOD | 0x01;

    TH0 = (65536 - 2000) / 256;

    TL0 = (65536 - 2000) % 256;

    TR0 = 1;

    ET0 = 1;

    EA=1;

   

while(1)

  {

    ADC_CS = 0;

    _nop_();

    ADC_WR = 0;         //启动AD转换

    _nop_();

    ADC_WR = 1;

    AD_DATA=0xff;                    //读取P1口之前先给其写全1

    while(INTR);//等待转换完成

    ADC_RD = 0;                     //AD读使能

    temp = AD_DATA;     //AD数据读取赋给P1口

    ADC_RD = 1;

    ADC_CS = 1;                    //关闭ADCS

    ADC_WR = 0;

 

    LED_data[0] = table[temp/100];

    LED_data[1] = table[temp%100/10];

    LED_data[2] = table[temp%10];

    LED_data[3] = 0xff;

   }   

}



管理员
2023-09-09 01:30:43     打赏
2楼
此帖仅楼主可见

高工
2023-09-23 07:40:23     打赏
3楼

谢谢源码


专家
2023-09-23 09:13:58     打赏
4楼

谢谢分享


高工
2023-10-10 16:54:59     打赏
5楼

很详细,感谢分享


共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]