z.c

来自「基于单片机的循环及串行中断的C程序源代码。」· C语言 代码 · 共 49 行

C
49
字号
#include  
#define uchar  unsigned char 
uchar time,b_break,b_break_3; 
uchar buf; 
void waitsend() 
{ 
     while(!TI) 
     { 
     }; 
     TI=0; 
} 
//串行中断程序 
void int_s(void) interrupt 4 { 
 ES = 0;    //关闭串行中断 
 RI = 0;    //清除串行接受标志位 
 buf = SBUF;  //从串口缓冲区取得数据 
 P1 = buf;    //数据送往p1口显示出来 
 if(buf == 255) SBUF = 255; //发送联络信号 
 else{ 
     switch(buf) 
     { 
         case 1: SBUF = 'M',waitsend();break;   //如果接受到1,发送字符'M'给计算机 
         case 2: SBUF = 'C',waitsend();break;   //如果接受到2,发送字符'C'给计算机 
         case 3: SBUF = 'S',waitsend();break;   //如果接受到3,发送字符'S'给计算机 
         case 4: SBUF = '5',waitsend();break;   //如果接受到4,发送字符'5'给计算机 
         case 5: SBUF = '1',waitsend();break;   //如果接受到5,发送字符'1'给计算机     
                           
         default: SBUF = 'n',waitsend();break;  //如果接受到其它数据,发送n给计算机 
          
     } 
 } 
 ES=1;    //允许串口中断 
  
} 

void main(void) { 

    P0=0; 
    P2=255;    //关闭数码管显示 
     
 EA=1; 
 SCON=0x50;PCON=0X80; 
 TMOD=0x20;ES = 1; 
 TL1=TH1=0xf3;TR1=1;   //串口工作在模1,波特率4800@12Mhz) 
  
    while(1); 
                    //无限循环等待串行中断 
} 

⌨️ 快捷键说明

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