找回密码
 立即注册

QQ登录

只需一步,快速开始

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

中断法读取A/D数据

[复制链接]
跳转到指定楼层
楼主
ID:266621 发表于 2017-12-25 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

利用单片机中断法控制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)

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

使用道具 举报

沙发
ID:266621 发表于 2017-12-25 17:06 | 只看该作者
补充详细源代码及原理图

中断读取AD数据.rar

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

源代码和原理图

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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