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

📄 max232.c

📁 c51MAX232通信子程序
💻 C
字号:
#include <reg51.h>
#include <stdio.h>
#include <absacc.h>
#include <math.h>

#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long


//8155 parameter define
#define COM8155 XBYTE[0xbf00]
#define PA8155 XBYTE[0xbf01]
#define PB8155 XBYTE[0xbf02]
#define PC8155 XBYTE[0xbf03]

//max197 parameter define
#define MAX197 XBYTE[0xfb00]

sbit  HBEN=P1^3;
sbit  C4051=P1^2;


uchar idata rec_data;
uchar idata addata[2];

delay(ulong t )				//delay x us
{
  ulong i;
  for (i=0;i<t;i++);
}

void max197()
{
 C4051=0;
 MAX197=0x47;
 HBEN=1;
 delay(50);
 addata[0]=MAX197;
 HBEN=0;
 delay(50);
 addata[1]=MAX197;
 
}

void rs232_init()         //initial rs232
{
  TMOD=0x20;
  TCON=0X55;
  TL1=0xfa;
  TH1=0xfa;
  PCON=0x00;
  RI=0;
  TI=0;
  TR1=1;
  SCON=0x50;
  EX0=0;
  EX1=0;
}

void oki8155_init()       //initial 8155
{
  COM8155=0x0e;    //A input,C&B output
  PA8155=0xff;
  PB8155=0xff;
  PC8155=0x3f;
}

void rec_send()         //receive and send data
{
    REN=1;
    while(RI!=1);
    RI=0;
    rec_data=SBUF;     
    delay(50);
    SBUF=rec_data;
    while(TI!=1);
    TI=0; 
	
}

void send_ad()
{ 
  uchar i;
  for(i=0;i<2;i++) 
        {  
         SBUF=addata[i];
         while(TI!=1);
         TI=0; 
        }
   
}


/*void serial_int(void) interrupt 4 using 1
{
  ES=0;
  if (RI)
    { RI=0;
	  rec_data=SBUF;     
      delay(100);  
      SBUF=rec_data;
        
      if (rec_data==0xc0)
      {
         max197();
         send_ad(); 
		 rec_data=0x00;
	  }
	}
   ES=1;
} */

void main(void)
{ uchar i;  
  uchar idata rdata[2];
 

  rs232_init();
  oki8155_init();
  

  while(1)
    {
       
      PC8155=0x00;
	  delay(19500);
      PC8155=0xff;
	  delay(19500);
	

      
        for(i=0;i<2;i++) 
          {  
            rec_send(); 
	        rdata[i]=rec_data;
          }
   
        if(rdata[0]==0xc0)
	      {
		    //PB8155=rdata[1];
            //max197();
            //send_ad();
	      }
           
	}
}


⌨️ 快捷键说明

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