⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 max197.c

📁 基于单片机AT89S52系统的一些测试程序
💻 C
字号:
#include <reg52.h>
#include <stdio.h>
#include <absacc.h>
#include <intrins.h>

typedef unsigned char uchar;
typedef unsigned int  uint;

#define CS_A    XBYTE [0x5000]		/* MAX197A的片选地址 */
#define CS_B    XBYTE [0x4000]		/* MAX197B的片选地址 */
#define CS_ALL  XBYTE [0x3000]		/* 两片MAX197的片选地址 */

sbit  HBEN=P1^3;

/*************************************************
延时子程序
*************************************************/
void delay(uint time)
{
	while(time--);
}
/*************************************************
AD采样子程序
id=1时,选择MAX197A,id=2时,选择MAX197B
ch为采样通道号
*************************************************/
uint ADconvert(uint id,uint ch)
{
	uint value;
	uint datH,datL;
	if((ch>8) || (id > 2) || (id < 1))
		return 0xffff;
	if(id == 1)
	{
		CS_A = 0x40 | ch;
		delay(1000);
		HBEN = 1;
		datH = CS_A;
		HBEN = 0;
		datL = CS_A;
	}
	else if(id == 2)
	{
		CS_B=0x40 | ch;
		delay(1000);
		HBEN = 1;
		datH = CS_B;
		HBEN = 0;
		datL = CS_B;
	}
	datH  &= 0x0f;
	value  = datH*256+datL;
	return (value);
}
main()
{     	
	uint ad;
	SCON=0X52;      
	TMOD=0X20;
	TH1=0XFD;     // 波特率为9600,晶振=11.0592M
	TR1=1;
	//采集开始
	while(1)
	{
		ad=ADconvert(1,0); //选择MAX197A,通道0
		printf("AD result A =%d\n",ad);
		ad=ADconvert(2,0); //选择MAX197B,通道0
		printf("AD result B =%d\n",ad);
	}
}
       

⌨️ 快捷键说明

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