⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chuankou.c

📁 串口通信
💻 C
字号:
#include<reg52.h>
#include<stdio.h>
#include<string.h>
#define uchar unsigned char
#define uint unsigned int
sfr P1M0=0x91;
sfr P1M1=0x92;
uchar rh;
uchar ch;
void delay1ms(unsigned int f);
void init_serial()
{
     SCON=0x50;            
     //方式1,10位异步收发,波特率由定时器控制,单机对单机,
     //允许接收
     PCON=0x00;          //SMOD=0,方式1、2、3的波特率不加倍
     TMOD=0x21;               //定时器1工作于方式2,自动装载方式
                              //定时器0工作方式1
    // TH0=(65536-1000)%256;    
     //TL0=(65536-1000)/256;
     TL1=0xfd;                //设置定时器装载值,来设置波特率
     TH1=0xfd;
//     ET0=1;                  //开T0中断
//     TR0=1;               //启动定时器T0
     TR1=1;               //启动定时器T1
//   TI=1;                 //有发送中断,发送中断标志
//   RI=1;                 //有接收中断,接收中断标志
     ES=1;		 			 //	开串口中断
     EA=1;                 //开总中断
}

//发送操作在TI=0时,执行SBUF=A指令后开始,然后发送电路自动在8位
//发送字符前后分别添加一位起始位和停止位,发送完后,TI由硬件在
//发送停止后置位

//在一定条件下,向SBUF写入数据就启动了发送过程,读SBUF就启动了
//接收过程

//向串口发送一个字符 

/*void timer0() interrupt 1 using 3{
     // char i; 
       flag++;
       TH0=0x00;
       TL0=0x00;
          if(flag==10)
         {// cp=!cp;
              // for(i=0;i<6;i++)
                  P2=0x25;
                     TI=1;
                  temp=*RAMDATA;
                    printf("%c",temp);
                       TI=0;
                      //   RAMDATA--;
                  flag=0;
                }
       }*/

//主程序

void main()
{uchar  rh=0xf6; 
 //P1M0=0x01;
 //P1M1=0x00;   
 init_serial();  //初始化串口 
 while(1)
  {//if(ch==rh)
   //SBUF=0x89;	 			
   delay1ms(100);
   //if (TI==1)
      //break;
   }
//SBUF=0x11;
}

void delay1ms(unsigned int f)
{
unsigned int i,j;
for(i=0;i<f;i++)
for(j=0;j<120;j++);
}

void serial () interrupt 4 using 3     //串口接收发送中断程序

{ES=0;    
 if(RI)       //接收完一帧数据后,硬件自动置1,如果再接收必须
  {RI=0;        //软件清零RI
  ch=SBUF;
  }
 if(TI)      //发送完一帧数据后,硬件自动置1,如果再发送必须
   {TI=0;
   }          //软件清零TI
 SBUF=ch;
 ES=1;
}
 


⌨️ 快捷键说明

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