找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1679|回复: 1
收起左侧

关于交流电压表设计,现在有主程序,但是不理解,有没有哪位仁兄帮忙分析

[复制链接]
ID:576586 发表于 2019-7-2 20:43 | 显示全部楼层 |阅读模式
#include<reg51.h>//头文件
#include<intrins.h>//库文件
#define uchar unsigned char
#define uint  unsigned int
sbit W1=P2^0;
sbit W2=P2^1;
sbit W3=P2^2;
sbit W4=P2^3;
/*ADC0809初始定义*/
sbit ST=P3^0;//ADC0809转换开始控制
sbit OE=P3^2;//ADC0809输出允许控制
sbit EOC=P3^1;//ADC0809转换结束信号
sbit CLK=P3^3;//ADC0809转换时钟
uchar date; //数字电压量
uchar code table1[]={
                                                63,6,91,79,102,
                                                109,125,7,127,
                                                111,119,124,57,
                                                94,121,113,118,
                                                56,115,49,62,
                                                110,64,128,0
                                        };
//延时子函数
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
//显示电压值子函数
void display(uchar date)
{
        uchar tab[3];
        uint temp;
        temp=(date*1.0/255)*500/1.41;
        tab[0]=temp%10;
        tab[1]=temp/10%10;
        tab[2]=temp/100%10;
        if(tab[2]==0)
                P0=(0);
        else
                P0=(table1[tab[2]]);  //再传段码
        W1=0;
        delay(1);             //延迟时间2ms以内
        W1=1;
        if(tab[2]==0&&tab[1]==0)
                P0=(0);
        else
                P0=(table1[tab[1]]);  //再传段码
        W2=0;
        delay(1);             //延迟时间2ms以内
        W2=1;
        P0=(table1[tab[0]]);  //再传段码
        W3=0;
        delay(1);             //延迟时间2ms以内
        W3=1;
        P0=(0);  //再传段码
        W4=0;;
        delay(1);             //延迟时间2ms以内
        W4=1;
}
void main()//主函数
{       
    while(1)//大循环
        {
            ST=0;
            ST=1;  //获得上升沿复位
            ST=0;  //获得下降沿启动转换,同时ALE开锁存
            do
                {
                     CLK=~CLK;  //时钟信号
            }
                while(EOC==0);//等待转换结束,eoc=1结束
            OE=1;//三态锁存缓冲器打开
            date=P1;//数字电压信号输出
            OE=0;//三态锁存缓冲器关闭
                display(date);//调用液晶显示电压值子函数
        }
}

回复

使用道具 举报

ID:507641 发表于 2022-2-23 08:46 | 显示全部楼层
原理图?程序也不全
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表