找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1197|回复: 0
打印 上一主题 下一主题
收起左侧

单片机ADC0804采样代码

[复制链接]
跳转到指定楼层
楼主
ID:1030245 发表于 2022-5-29 13:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  #include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit wr=P3^6;
sbit rd=P3^7;
sbit cs=P3^5;
uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴数码管码表
uchar s,g,f,l,x;//数码管显示变量
float A;






uint  K;
void delay(uint);
void adc();
void adc()
{
    //启动ADC0804采样//   
   cs=0;wr=0;rd=1;
    delay(50);
    cs=1;wr=1;rd=1; //WR由低到高时,AD开始转换
    delay(100);
    //读AD数值//
    cs=0;wr=1;rd=0;//读取转换数据结果
    delay(50);
    A=P1;//P1的新数据赋值给adval,用于数码管显示的s g f的分离
        A=A*144/256;
    K=P1*144/256;
    cs=1;wr=1;rd=1;//停止AD读取
}
void main()
{
uint s,g,f,l,x;
   while(1)
    {
        adc();

        s=K/10;
        l=s/10;
        x=s%10;
     g=K%10;
     f=(A-K)*10;
     P2=0XFE; //11111110 选中十位数码管
     P0=tab[l]; //显示
     delay(50);
         P2=0XFD; //11111110 选中十位数码管
     P0=tab[x]; //显示
     delay(50);
     P2=0XFB; //11111101 选中个位数码管
     P0=tab[g]+0x80; //显示
     delay(50);      




P2=0XF7;//11111011 选中小数点后数码管
     P0=tab[f]; //显示
     delay(50);
    }
}
void delay(uint m)//延时子程序,约500个机器周期
{
        while(m--);}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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