📄 max232.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 + -