//用单片机控制ADC0804进行模数转换,当拧动实验板上A/D旁的电位器Re2时,在数码管的前3位
//以十进制方式动态显示出A/D转换后的数字量(8位A/D转换后数值在0~255变化)。

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula = P2 ^ 6;
sbit wela = P2 ^ 7;
sbit adwr = P3 ^ 6;
sbit adrd = P3 ^ 7;
uchar code table[] = {
    0x3f,0x06,0x5b,0x4f,
    0x66,0x6d,0x7d,0x07,
    0x7f,0x6f,0x77,0x7c,
    0x39,0x5e,0x79,0x71 };
void delayms(uint xms)
{
    uint i, j;
    for (i = xms; i>0; i--)
        for (j = 110; j>0; j--);
}
void display(uchar bai, uchar shi, uchar ge)
{
    dula = 1;
    P0 = table[bai];
    dula = 0;
    P0 = 0xff;
    wela = 1;
    P0 = 0x7e;
    wela = 0;
    delayms(5);

dula = 1;
    P0 = table[shi];
    dula = 0;
    P0 = 0xff;
    wela = 1;
    P0 = 0x7d;
    wela = 0;
    delayms(5);

dula = 1;
    P0 = table[ge];
    dula = 0;
    P0 = 0xff;
    wela = 1;
    P0 = 0x7b;
    wela = 0;
    delayms(5);
}
void main()
{
    uchar a, A1, A2, A3, adval;
    wela = 1;
    P0 = 0x7f;  //置CSAD为0,选通ADCS,以后不用再管ADCS。目的是将与之相联的ADC0804的CS片选端置低选中。
    wela = 0;
    while (1)
    {
        adwr = 1;
        _nop_();    //延时一个机器周期的意思,包含在头文件intrins.h中。
        adwr = 0;  //启动A/D转换
        _nop_();
        adwr = 1;

// 此实验板A/D工作频率较低,所以启动转换后要多留点时间用来转换 ,把显示部分放这里的原因也是为了延长转换时间,这里就是一直显示
        for (a = 10; a > 0; a--)      
        {                             A123的值。
            display(A1, A2, A3);
        }
        P1 = 0xff;                     //读取P1口之前先给其写全1
        adrd = 1;                       //选通ADCS
        _nop_();           
        adrd = 0;                       //A/D读使能
        _nop_();
        adval = P1;                     //A/D数据读取赋给P1口
        adrd = 1;
        A1 = adval / 100;               //分出百十个
        A2 = adval % 100 / 10;
        A3 = adval % 10;
    
    }
}

做本实验需要将A/D左边的插针ADIN用短路帽短路,这样电位器才与A/D芯片连接上。

5.1 ~5.3 模拟量/数字量,A/D转换,ADC0804实现方法相关推荐

  1. api可以主动采集用户数据吗_模拟量数字量采集卡之EC-8001篇

    数据采集卡绝大多数集中在采集模拟量.数字量.热电阻.热电偶,其中热电阻可以认为是非电量,其实本质上还是要用电流驱动来采集,其中模拟量数据采集卡和数字量采集卡用得是最广泛的.如苏州市凌臣采集计算机有限公 ...

  2. STM32之ADC(模拟量-数字量的转化)

    当外设的引脚是模拟量时,需要用到ADC,比如引脚的电压在0-3.3V之间,如果采用普通的方式,只能判断该引脚有没有电压,而不能判断具体是多少V,所以这个时候就可以利用ADC将引脚的电压转换为数字量,通 ...

  3. S7-200SMART PLC模拟量应用及创建库文件的具体方法

    S7-200SMART PLC模拟量应用及创建库文件的具体方法 具体使用方法可参考以下内容: 模拟量计算公式: OUT = (In_chx - In_RawMin) * (In_EuMax - InE ...

  4. 计算机怎么采集模拟量信号,如何采集模拟量和数字量

    在工业自动化控制中,我们经常会遇到开关量,数字量,模拟量,脉冲量等各种概念,对于这些概念应该如何理解.我们又是如何采集他们呢?本文引用地址:http://www.eepw.com.cn/article ...

  5. 什么叫模拟量和数字量

    知道手机网友 | 浏览 5427 次 推荐于2016-08-30 02:33:10 最佳答案 数字量:在时间上和数量上都是离散的物理量称为数字量.把表示数字量的信号叫数字信号.把工作在数字信号下的电子 ...

  6. 【1.1模拟量和数字量】

    数字量和模拟量 1.模拟信号:自然界中存在的声音信号.光能量信号等等 2.数字信号:电视机信号.计算机上所得到的声音信号

  7. 无线plc可编程控制器无线远程io开关量数字量信号采集传输控制支持二次开发使用方法

    ZKP(E)-4088(SO)-WIFI(0/4-20ma): 金属外壳.无线WIFI通信.可编程.4路模拟量AI输入(0/4-20ma) + 8开关量DI输入 + 8开关量DO输出(SO晶体管) Z ...

  8. 利用NI模拟量输出板卡LabVIEW输出正弦波形的方法

    本文介绍两种利用PXIe-6738模拟量输出板卡通过LabVIEW编程输出正弦波形的方法. 本方案的前提需求为利用NI的模拟量输出板卡输出四路幅值-10~10V,频率0-10kHz可调正弦波形. 介绍 ...

  9. PLC模拟量采集在工业自动化控制中的应用

    在复杂的工业现场中,往往需要对温度.电压.电流.压力等等模拟量进行数据采集,可以借助PLC进行控制采集,但目前市场各种PLC模拟量采集模块十分多,不同的厂家不同的PLC都有自己独特的模拟量采集模块,而 ...

最新文章

  1. 中国现代化进程专题讲座——有感
  2. Activit流程部署、删除
  3. 201521123024 《Java程序设计》 第九周学习总结
  4. 使用Java中的Try-With-Resource
  5. Hadoop学习笔记—8.Combiner与自定义Combiner
  6. MariaDB强势席卷DB-Engines榜单后续,与阿里云达成全球独家战略合作
  7. mysql tomcat列表增删改查_Tomcat-Database
  8. php 返回json对象
  9. ai人工智能的数据服务_建立AI系统的规则-来自数据科学家
  10. 某选煤厂智能智能化解决方案
  11. 如何减小电压跟随器输出电阻_运算放大器和比较器还傻傻分不清楚?一篇图文教你轻松辨认...
  12. 《大数据之路-阿里巴巴大数据实践》第九章 阿里巴巴数据整合及管理体系
  13. HTML5气泡悬浮框(已经加上完整文件)
  14. 风清扬环保:分析乳化液破乳剂的实际应用
  15. 如何使用计算机上合并计算方法,excel如何使用合并计算
  16. 攻防世界_mobil_app1
  17. 7.31 XMap
  18. openswan中的in_struct和out_struct函数
  19. SAP-MM STO订单详解 10 (公司间交易价格相关的配置)
  20. 数据分析-业务理解篇指标设计篇

热门文章

  1. MSP432驱动舵机串口输出角度
  2. 大数据课程——Storm综合应用
  3. Niu Talk 数据科学系列论坛:明晚,我们聊聊大数据与开源
  4. 易助ERP账号密码集成
  5. 2020中国国际智慧能源暨能源数据中心与网络信息安全装备展览会
  6. 铁路局12306余票查询的实现
  7. 牛客网Java后端开发面经汇总
  8. 2020年“磐云杯”网络空间安全技能竞赛武汉拉练赛赛题及解析(超详细)
  9. 按键精灵脚本转换成c语言,问一个关于按键码转换的问题
  10. VMware 彻底删除虚拟机操作系统