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

📄 kongzhiduan.c

📁 8路数据采集器
💻 C
字号:
  #include <reg51.h>
  #include <intrins.h>


  short dis[8];
  short n;
  short k;

  sbit P3_3=P3^3;
  sbit alarm=P3^4;
  sbit OE=P2^5;
  sbit START=P2^4;
  

   /*初始化*/
	void init()
	{
	 TMOD=0x21;		
	 TH1=0xfd;		 
	 TL1=0xfd;		 
	 PCON=0x00;		  //波特率9600bps
	 TCON=0x41;
	 SCON=0X50;		 //工作方式为1
	 EA=1;
	 ES=1;
	 ET0=1;
	 EX0=1;
	 n=8;
	 k=0;
	 alarm=0;
	 }



	   /*发送子程序*/

	void send(short n)
	{
	   TL0=0x00;
	   TH0=0x00;
	   TR0=1;
		   	do{
			   P3_3=1;
		       SBUF=dis[n];while(!TI);TI=0;
			   P3_3=0;
			   while(!RI);RI=0;
		  	   }
			while(SBUF==dis[n]);
			P3_3=1;
			SBUF=0xaa;while(!TI);TI=0;
			P3_3=0; 
	   TR0=0;
	   
	} 


	/*T0中断*/

	void t0() interrupt 1
	  {
	   alarm=1;
	  }
       



	 
	 

	/*接收中断子程序*/

	void receive() interrupt 4 
	 {
	  short nn;
	  if(RI==1)
	    {
		  EA=0;
		  RI=0;
		  nn=SBUF;
		  P3_3=1;
		  SBUF=nn;while(!TI);TI=0;
		  P3_3=0;
		  while(!RI);RI=0;
		  if(SBUF==0xaa) n=nn;
		  else EA=1;
	    }
	   
	 }
	

	/*采集中断*/
	
	void ad()interrupt 0
	  {
	   EA=0;
	   if(n==8)
	     {
		      OE=1;dis[k]=P0;
			  k++;
			  if(k>7) k=0;
			  P1=k;_nop_();_nop_();
			  START=1;_nop_();_nop_();START=0;
			  send(k);
	   	  }
	   else 
	       {
		     OE=1;dis[n]=P0;
			 P1=n;_nop_();_nop_();
			 START=1;_nop_();_nop_();START=0;
			 send(n);
			}
	  
	   EA=1;
	 }
	 
	
	/*主程序*/
	
	void main()

	  {
	     init();
	     while(1);
	      
	   }

⌨️ 快捷键说明

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