📄 16.c
字号:
/*------------------------------------------
serial ad & da.c 外电压比较器
Copyright 2002 DFJD Software, Inc.
--------------------------------------------*/
#include <reg52.h> /* special function register declarations */
/* for the intended 8051 derivative */
#include <stdio.h> /* prototype declarations for I/O functions */
#define uint unsigned int
#define uchar unsigned char
uchar bdata flag;
sbit flag_0=flag^0;
sbit flag_1=flag^1;
sbit flag_2=flag^2;
sbit flag_3=flag^3;
sbit flag_4=flag^4;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_7=P3^7;
uchar data da; /* 收*/
uint data t_buf[4]; /* 发*/
uchar jj;
sbit AOUT=P3^6;
void delay(uint i)
{
uint j;
for(j=0;j<i;j++);
}
serial() interrupt 4 using 1
{
uchar i;
uchar *pi;
ES=0;
RI=0;
i=SBUF;
if(i!=0xaa)
{
SBUF=0xff;
while(TI==0);
TI=0;
ES=1;
return;
}
SBUF=0xbb;
while(TI==0);
TI=0;
pi=t_buf;
for(jj=0;jj<8;jj++)
{
SBUF=*pi;
while(TI==0);
TI=0;
pi++;
}
while(RI==0);
RI=0;
da=SBUF;
ES=1;
}
uint adcsand (uchar i)
{
uint ii; /* 1000us<->1000mv */
P1=0xfd; /*步骤1,p1.1=0, Cf放电 */
TR0=0;
delay(10); /* dalay20us,Cf彻底放电*/
TH0=0;
TL0=0;
P1=i; /* p1.1=1开始积分*/
TR0=1; /* 起动T0 */
while(AOUT==1); /* 检测AOUT 是否跳变,aout=0,(v- > v+)积分时间到
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -