paralleladc.c

来自「《51单片机C语言应用程序设计实例精讲 》书后光盘代码」· C语言 代码 · 共 47 行

C
47
字号
/*****************************************/
/* 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

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?