标题:
单片机ADC0808接口实验,利用Proteus软件,含C程序和电路图
[打印本页]
作者:
深潭溦澜
时间:
2019-3-10 15:59
标题:
单片机ADC0808接口实验,利用Proteus软件,含C程序和电路图
这是我曾经做的智能仪器设计实验,ADC0808与单片机8051的中断方式接口电路。采用线选法规定其端口地址,用单片机的P2.7引脚作为为选信号,因此端口地址为7FFFH。片选信号和 信号一起经或非门产生ADC0808的启动信号START和地址锁存信号ALE;片选信号和 信号一起经或非门产生ADC0808输出允许信号OE,OE=1时选通三态门,使输出锁存器中的转换结果送入数据总线。ADC0808的EOC信号经反相后接到8051的 引脚,用于产生转换完成的中断请求信号。ADC0808芯片的3位模拟量输入通道地址码输入端A、B、C分别接到8051的P0.0、P0.1和P0.2,故只要向端口地址7FFFH分别写入数据00H~07H,即可启动模拟量输入通道0~7进行A/D转换。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
6.jpg
(162.6 KB, 下载次数: 41)
下载附件
电路图
2019-3-10 15:56 上传
单片机源程序如下:
#include"reg52.h"
#include"absacc.h"
#define ADC 0x7fff //定义ADC0808端口地址
unsigned data ADCDat[8] _at_ 0x30 ;
unsigned i=0;
main()
{
EX1=1; IT1=1; EA=1;
XBYTE[ADC]=i; //启动ADC0808第0通道
while(1)
{
if(P3^3==0) //查询P3^3状态
P1=ADCDat[0] ; } //第0通道转换结果送至P1口显示
}
int1()interrupt 2 using 1
{
ADCDat[i]=XBYTE[ADC]; //读取ADC0808转换结果并存入内存
i++;
XBYTE[ADC]=i; //启动ADC0808下一通道
if(i==8)
{
i=0;
XBYTE[ADC]=i; //重新启动ADC0808第0通道
}
}
复制代码
所有资料51hei提供下载:
ADC接口实验.zip
(19.45 KB, 下载次数: 53)
2019-3-10 15:58 上传
点击文件名下载附件
电路图(可直接仿真)+程序
下载积分: 黑币 -5
作者:
伟伟1024
时间:
2019-7-11 19:23
运行出错是咋回事啊?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1