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

📄 ad.c

📁 STC89C58 +AD548数据采集单片机程序
💻 C
字号:
#include<math.h>           //AD转换程序__________完
#include <intrins.h>
#include<stdio.h>
#include<reg52.h>
#define NOP5    _nop_();_nop_();_nop_();_nop_();_nop_()
#define NOP2    _nop_();_nop_();
#define NOP1    _nop_();
#define uchar unsigned char
#define uint unsigned int
#define slong signed long
 /////////////////////////?????????///////////////////////////////////
sfr AUXR = 0x8e;
sfr AUXR1 = 0xa2;
sfr P4 = 0xe8;
sfr XICON = 0xc0;
sfr IPH = 0xb7;
sfr WDT_CONTR = 0xe1;
sfr ISP_DATA = 0xe2;
sfr ISP_ADDRH = 0xe3;
sfr ISP_ADDRL = 0xe4;
sfr ISP_CMD = 0xe5;
sfr ISP_TRIG = 0xe6;
sfr ISP_CONTR = 0xe7;
///////////////////////???????????///////////////////////////////////
sbit C_SCLK=P0^0;
sbit C_DOUT=P0^1;
sbit C_549_CS=P2^6;
sbit C_RS232_CONTROL1=P0^3;
sbit C_RS232_CONTROL2=P0^4;
sbit C_READY=P0^5;
sbit C_TO2_P25=P0^6;
sbit C_ERROR=P0^7;

uint i,j,k,tempx=0;

void Befor_Once_AD()
{     C_SCLK=0;
      C_DOUT=0;
      C_549_CS=0;
      for(i=0;i<8;i++)
      { C_SCLK=1;
        NOP2
        C_SCLK=0;
        }
        C_549_CS=1;
 for(i=0;i<28;i++)     //延时24us  不能太短了
     {NOP2;
     }

}
 uint AD()
	{
	   uint ad_data;
	   tempx++;
	   Befor_Once_AD() ;
  	   C_SCLK=0;
           C_DOUT=0;
  	   ad_data=0;
	   C_549_CS=0;
	    NOP5;
		 for(i=0;i<8;i++)
  			{     C_SCLK=1;
                    // C_SCLK=0;
    			      C_DOUT=P0^1;
					  NOP2;
                   ad_data<<=1;
                    if(C_DOUT)
	 			{ad_data=ad_data|0x01; }
  			      C_SCLK=0;
  			}
	   C_549_CS=1;
	   P1=ad_data;
	   return(ad_data);

     }
 main()
{      		 TR1=1;
//	int TDATA;

		TMOD=0X20;
		 TL1=0xf4;TH1=0xf4;
		 SCON=0x50,PCON=0x00;	 //方式1传输,开串口
		 TR1=1;

 	     while(1)
		{       C_549_CS=1;
                tempx=AD();
		        SBUF=tempx;
			    while(TI==0);
			    TI=0;
			    for(i=0;i<2000;i++)
			    {NOP5;}
	             }

 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -