main.c

来自「将接收到的韦根26格式的数据转换为RS232格式」· C语言 代码 · 共 74 行

C
74
字号
/* ----- Editor by xiao_gd@126.com ----- */

//======================================
//韦根26 转 RS232 程序  晶振:11.0592MHz
//======================================
#include "at89x52.h"

unsigned char Current,Data[4];

void Send_Char(unsigned char);
void Send_Data(void);

void main (void)
{
	SCON = 0x50;
	TMOD = 0x21;
	IE   = 0x87;
	TH0  = 0xEE;
	TL0  = 0x0;
	TH1  = 0xFD;
	TL1  = 0xFD;
	TCON = 0x55;

	while(1)
	{
		if(Current == 26)
		{
			Current = 0;
			EA = 0;
			Send_Data();
			EA = 1;
		}
	}
}

void Ex0(void) interrupt 0
{
	Data[(25 - Current) / 8] &= ~(0x1 << ((25 - Current) % 8));
	TH0 = 0xEE;
	TL0 = 0x0;
	Current++;
}

void Ex1(void) interrupt 2
{
	Data[(25 - Current) / 8] |= 0x1 << ((25 - Current) % 8);
	TH0 = 0xEE;
	TL0 = 0x0;
	Current++;
}

void Timer0(void) interrupt 1
{
	TH0 = 0xEE;
	TL0 = 0x0;
	Current = 0;
}

void Send_Char(unsigned char buf)
{
	SBUF = buf;
	while(TI == 0);
	TI = 0;
}

void Send_Data(void)
{
	Send_Char(0x55);
	Send_Char(Data[3]);
	Send_Char(Data[2]);
	Send_Char(Data[1]);
	Send_Char(Data[0]);
	Send_Char(0xAA);
}

⌨️ 快捷键说明

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