/*****************************************/
/* Copyright (c) 2005, 通信工程学院 */
/* All rights reserved. */
/* 作 者:戴 佳 */
/*****************************************/
#include "ParallelADC.h"
main()
{
EA = 1;
EX0 = 1; // 打开外部中断0
/* 无限循环,等待外部中断0启动模数转换 */
while(1);
}
/* 外部中断0服务子程序 */
void int0svr(void) interrupt 0 using 1
{
EX0 = 0; // 关闭外部中断0
/* 向MAX197的控制字寄存器写入控制字0x40;
PD1=0,PD0=1:正常工作,内部时钟模式;
ACQMOD=0:内部控制采集;
RNG=0,BIP=0:0~5V测量范围;
A2=A1=A0=0:测量通道为0号 */
adch0 = 0x40;
/* 查询MAX197的中断输出ADINT,检测是否完成了信号的一次模数转换 */
while (ADINT!=0)
{
//当转换完成时,先设置HBEN=0,即先读低位
HBEN = 0;
}
CH0DataL = adch0;
// 设置HBEN=1,再读高位
HBEN = 1;
CH0DataH = adch0;
HBEN = 0;
EX0 = 1; // 打开外部中断0
}