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

📄 16.c

📁 这是一个产品的开发项目。用于锅炉火
💻 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 + -