以下是serialADC.c的内容
=============================================
#include "SerialADC.h"
/* 外部中断0服务子程序 */
void int0svr(void) interrupt 0 using 1
{
uchar count,tmp,i;
EX0 = 0; // 关闭外部中断0
void int0svr(void) interrupt 0 using 1
{
uchar count,tmp,i;
EX0 = 0; // 关闭外部中断0
tmp = 0;
CS = 1; // /CS置高,片选无效
IOCLK = 0; // I/O CLK置低
CS = 1; // /CS置高,片选无效
IOCLK = 0; // I/O CLK置低
CS = 0; // 片选有效
_nop_(); // 执行一步空指令起到延时至少1.4us的作用
for (count=0;count<8;count++)
{
IOCLK = 1; // I/O CLOCK置高
if (DATAOUT)
tmp++;
tmp = tmp<<1; // 左移一位
IOCLK = 0; // I/O CLOCK置低
}
_nop_(); // 执行一步空指令起到延时至少1.4us的作用
for (count=0;count<8;count++)
{
IOCLK = 1; // I/O CLOCK置高
if (DATAOUT)
tmp++;
tmp = tmp<<1; // 左移一位
IOCLK = 0; // I/O CLOCK置低
}
CS = 1; // /CS置高,片选无效
DataResult = tmp;
for(i=0;i<3;i++) // 适当延时超过17us
_nop_();
_nop_();
EX0 = 1; // 打开外部中断0
}
void main()
{
}
void main()
{
EA = 1;
EX0 = 1; // 打开外部中断0
/* 无限循环,等待外部中断0启动模数转换 */
while(1);
}
EX0 = 1; // 打开外部中断0
/* 无限循环,等待外部中断0启动模数转换 */
while(1);
}
======================================
以下是SerialADC.h 的内容
======================================
#ifndef _SERIALADC_H // 防止SerialADC.h被重复引用
#define _SERIALADC_H
#include <reg52.h> // 引用标准库的头文件
#include <intrins.h>
#include <intrins.h>
#define uchar unsigned char
uchar DataResult; // 存放转换后数据
sbit IOCLK = P1^0; // 输入输出时钟I/O CLK
sbit DATAOUT = P1^1; // 数据输出DATA OUT
sbit CS = P1^2; // 片选信号
sbit DATAOUT = P1^1; // 数据输出DATA OUT
sbit CS = P1^2; // 片选信号
#endif