?? max197.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 + -