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 + -
显示快捷键?