serial.c
来自「含有大量的单片机代码」· C语言 代码 · 共 61 行
C
61 行
/*单片机与MAX232之间的通信程序*/
#include "reg51.h"
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
#define COM81551 XBYTE[0xfd00]
#define PA81551 XBYTE[0xfd01]
#define PB81551 XBYTE[0xfd02]
#define PC81551 XBYTE[0xfd03]
#define COM81552 XBYTE[0xfe00]
#define PA81552 XBYTE[0xfe01]
#define PB81552 XBYTE[0xfe02]
#define PC81552 XBYTE[0xfe03]
volatile uchar asting;//全局变量声明,以后就用这个全局变量进行命令字的接受和传送
void interupt(void) interrupt 4 using 0
{
if(RI)
{
RI=0;
asting=SBUF;
}
if(TI)
{
TI=0;
//这里也可以添加发送后的简单操作,不可以存在死循环
}
}
void McuTx(void)
{
SBUF=asting;
while(TI==0);//发生中断
//下面的内容就是发送后的处理程序
}
void McuRx(void)
{
while(RI==0);//发生中断
//下面的内容就是接收后的处理程序
}
void _44B0_MCU(void)
{
TMOD =0x20;
//TL1=0xf3;TH1=0xf3;
//TL1=0xCC;TH1=0xCC;
TL1=0xd0;TH1=0xd0;
SCON =0xd8;
PCON=0x00; //串口接受字符RI复位,允许串口接收
IE=0x90;
TR1=1;
COM81551=0x0f;//写8155的命令字
PB81551=0;
McuRx();//跟44B0的发送程序联系起来
McuTx();//跟44B0的接受程序联系起来
PB81551=asting;//送8155的指示灯显示
}
void main()
{
_44B0_MCU();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?