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

📄 zxx.c

📁 C51简易数字电压表的设计
💻 C
字号:
#include "reg51.h"
#define data_point P0
sbit EOC=P2^0;
sbit ADDA=P2^1;
sbit ADDB=P2^2;
sbit ADDC=P2^3;
sbit OE=P2^5;
sbit START=P2^6;
sbit CLK=P2^7;
sbit ALE=P2^6;
unsigned char disp[3]={0,0,0};
char code dispcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char t0count=0;
void display()
{
    unsigned char i,j,k=0x01;
    for(i=0;i<3;i++)
    {
    P1=1;
    P3=disp[i];
    P1=k;
    k<<=1;
    for(j=200;j>0;j--);
    }
    P1=0;
}
unsigned char ADC0808()
{
    unsigned char d;
    ADDC=0;
    ADDB=0;
    ADDA=0;
    TR1=1;
    ALE=1;ALE=0;
    START=1;START=0;
    
    while(EOC==0);
    OE=1;
    d=data_point;
    OE=0;
    TR1=1;
    return d;
}
void covert(unsigned char x)
{disp[0]=dispcode[x/50];
disp[0]=disp[0]+0x80;
x=(x%50)*2;
disp[1]=dispcode[x/10];
disp[2]=dispcode[x%10];

    /*disp[0]=dispcode[0];
    disp[0]=disp[0]|0x80;
    x=(x%50)*2;
    disp[1]=dispcode[x/10];
    disp[2]=dispcode[x%10];*/

/*  disp[0]=dispcode[x/100];
//  disp[0]=disp[0];
    
    disp[1]=dispcode[x%100/10];
    disp[2]=dispcode[x%100%10];
    //dispcode[x/100];*/
}
void main()
{
    TMOD=0x21;
    TH0=(65536-10000)/256;
    TL0=(65536-10000)%256;
    TH1=256-2;
    ET0=1;
    ET1=1;
    EA=1;
    TR0=1;
    OE=0;
    START=0;
    EOC=1;
    while(1)
    {
        display();
    }
}
void time0() interrupt 1
{
    TH0=(65536-10000)/256;
    TL0=(65536-10000)%256;
    t0count++;
    if(t0count==100)
    {
        t0count=0;
        covert(ADC0808());
    }
}
void time1() interrupt 3
{
    CLK=~CLK;
}

⌨️ 快捷键说明

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