SUB AL,10H
OUT 81H,AL
LOP: IN AL,82H ; 检查EOC
TEST AL,80H
JZ LOP ; EOC=0,继续查询
IN AL,84H ; EOC=1,读入数据
MOV [SI],AL ; 存入内存
INC SI ; 修改指针
INC AH ; 修改开关编码
LOOP AGA ;
5.1 程序设计
5.1.1.程序功能
该程序的功能是查询当前的A/D转换是否完成,并且完成对A/D转换后的数据的读取。
5.1.2.主要器件和变量的说明
程序中的变量及功能如表1-2所示。
表1-2                                  变量及功能
    变量     说明 
P1.0  模拟量输入 
P1.1  DA输入比较基准电压 
P36  比较器内部判断脚 
adcdata  ad转换变量 
Delay()  延时程序 
adcread(void)  adc转换程序 
5.1.3.程序代码    
  由于没有片外的器件,在程序编制时,也较为简单。在主程序中定义函数和变摹,并通过延时程序完成对外部信号A/D采样的时间控制。单片机进行A/D转换的源程序流程图如图1-4所示,代码如下。
图1-4  单片机A/D转换程序流程图
#include<reg52.h>
#include<absacc.h>
#include<stdio.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
sbit  P36 = P3^6;                    //比较器内部判断角
// 内部标志位定义
bit  less;                           //大小比较,1。代表小于,0。代表大于
// 全局变量定义
uchar  timer1; &nb


