这是我曾经做的智能仪器设计实验,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仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #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)
|