实现功能:串口发送二进制数值,接收窗口显示数值加一
#include <reg52.h>
sfr AUXR=0x8e; //reg52头文件缺少stc15的东西需要自己加上,AUXR辅助寄存器
unsigned char mydata; //用来存储接收的数据
void fs(unsigned char dat); //事先声明变量,后续编辑该变量
void delay(unsigned int k){
while(k--);
}
void inittx(){
EA=1;
ES=1; //串行口中断打开
TMOD=0x20;
TR1=1; //定时/计数器1
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
AUXR=0x00;//reg52头文件需要令AUXR辅助寄存器初始化一次
}
void js() interrupt 1{
if(RI==1){
RI=0; //当接收区数据为0时,说明接收完毕,将RI寄存器置零。
mydata=SBUF; //将接收完毕的数据(在接收缓冲寄存器SBUF)全部存入mydata变量中
fs(mydata+1);//调用发送函数执行发送指令
}
}
void fs(unsigned char dat){ //发送函数
SBUF=dat;//将dat变量中的数据传给发送缓冲寄存器SBUF
if(TI==0){
TI=0; //当发送区数据为0时,说明发送完毕,将TI寄存器置零。
}
}
//接收缓冲寄存器SBUF和发送缓冲寄存器SBUF,同寄存器地址但是名字,功能不同。
void main(){
inittx();
while(1);
}