标题: 中断法读取A/D数据 [打印本页]

作者: liaorenhai    时间: 2017-12-25 16:49
标题: 中断法读取A/D数据

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

部分程序如下:

#include<reg52.h>              //52系列单片机头文件

#include<intrins.h>

#define ucharunsigned char      //宏定义

#define uintunsigned int

sbitdula=P2^6;                //声明U1锁存器的锁存端

sbitwela=P2^7;                //声明U2锁存器的锁存端

sbitadwr=P3^6;                //定义A/D的写信号

sbitadrd=P3^7;                //定义A/D的读信号

uchar adval;

uchar codetable[]={            //定义数码管显示编码

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};


void delayms(uintxms)          //延时函数

{

      uint i,j;

      for(i=xms;i>0;i--)           //i=xms即延时约xms秒

       for(j=110;j>0;j--);

}


voiddisplay(uchar bai,uchar shi,uchar ge)  //显示子函数

{

  wela=1;

      P0=0x7e;        //送位选信号

      wela=0;

      P0=0xff;        //消影

      dula=1;

      P0=table[bai];   //送段选信号

      dula=0;

      P0=0xff;

      delayms(5);     //延时5秒

      

      wela=1;

      P0=0x7d;

      wela=0;

      P0=0xff;

      dula=1;

      P0=table[shi];

      dula=0;

      P0=0xff;

      delayms(5);

      

      wela=1;

      P0=0x7b;

      wela=0;
中断法读取AD程序.docx (276.88 KB, 下载次数: 9)


作者: liaorenhai    时间: 2017-12-25 17:06
补充详细源代码及原理图

中断读取AD数据.rar

346.66 KB, 下载次数: 8, 下载积分: 黑币 -5

源代码和原理图






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1