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

📄 adc0804.c

📁 C51源程序
💻 C
字号:
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int

//sbit    CS = P3^3;
//sbit    WR1 = P3^5;
sbit CS=P3^3;//chip select,low level enable
sbit RD1=P3^4;//impedence when set high,outputing data when set low,when transfer completly set low
sbit WR1=P3^5;//cs=0,wr set low clear ,cs=0,wr set high impulse start convert
sbit    dispbit1 = P2^7;//tube selecting
sbit    dispbit2 = P2^6;
sbit    dispbit3 = P2^5;

uint RData;
uchar code table[] ={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void delay(uchar t)
{
    uchar i,j;
    for(i=t;i>0;i--)
        for(j=200;j>0;j--);
}

uint AD_Initial(void )
{
    //RD1 = 1;//high impedence
    //WR1 = 1;//start convert
    CS = 0;//chip selecting
    _nop_();
    WR1 = 0;//start from low level to high level
    _nop_();
    WR1 = 1;
    _nop_();
    CS = 1;
    P1 = 0xff;//clear display when power on
    CS = 0;
    RD1 = 0;//enable data data transfer when convert stop and wait P1 transfer data
    _nop_();
    _nop_();
    RData = P1;
    RD1 = 1;//hold data
    CS = 1;//chip disable
    return(RData);
}
void display(uint temp )//dynamic display
{
    dispbit3 = 1;
    dispbit2 = 1;
    delay(2);
    P0 = table[temp/100];
    dispbit1 = 0;
    delay(2);
    dispbit1 = 1;
    dispbit3 = 1;
    P0 = table[temp%100/10];
    dispbit2 = 0;
    delay(2);
    dispbit2 = 1;
    dispbit1 = 1;
    P0 = table[temp%10];
    dispbit3 = 0;
    delay(2);
    dispbit3 = 1;
}

void main(void )
{
    while(1)
    {
        display(AD_Initial());
    }
}

⌨️ 快捷键说明

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