找回密码
 立即注册

QQ登录

只需一步,快速开始

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

STC15F2K60S2的AD转换

[复制链接]
跳转到指定楼层
楼主
ID:320518 发表于 2018-6-4 20:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<STC15F2K60S2.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uint z);
unsigned uint a;
   
uchar code wela[8]={0xef,0xdf,0xcf,0xbf};
uchar code dula[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char adval()  //ad转换函数
{   
     ADC_CONTR|=0x80;  //10000000 开启转换电源
     P1ASF|=0x08;    //p1.3为ad转换kou
     ADC_CONTR|=0xe3;   //11100011 开启P1.3通道开始转换
     delay(1);     //延时一端时间,使输入电压达到稳定
     ADC_RES=0;    //清A/D转换结果寄存器
     ADC_RESL=0;
     ADC_CONTR|=0x08; //ADC_START=1,开始转换
     _nop_();
     while(!(ADC_CONTR&0x10)); //0001,0000 等待A/D转换结束
     ADC_CONTR&=0xe7;
     a=ADC_RES*4+ADC_RESL;
     return(i);
}

void delay(uint z)
{
             uint x,y;
for(x=z;x>0;x--)
       for(y=40;y>0;y--);
}

void display()
{
       P0=wela[3];
       P2=dula[a%10];
       delay(1);
       P0=wela[2];
       P2=dula[a%100/10];
       delay(1);
       P0=wela[1];
       P2=dula[a%1000/100];
       delay(1);
       P0=wela[0];
       P2=dula[a/1000];
       delay(1);
}

void main()
{
    while(1)
    {
        adval();
        display();
     }
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:272876 发表于 2018-6-24 16:03 | 只看该作者
不能用
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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