学蓝桥Chapter9:串口通信

实现功能:串口发送二进制数值,接收窗口显示数值加一

#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);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值