第五章 串口通迅与IIC通迅

串口通信:异步通信,一帧一帧地发送,有点像TCP/IP那样^_^

每帧参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。挺好理解的,注意全双工。

//串口
#include<reg52.h>
#define uchar unsigned char
uchar a,flag;
void main(){
	TMOD=0x20;//方式2,8位自动重装定时器
	TH1=0xfd;//赋值高四位
	TL1=0xfd;//赋值低四位
	TR1=1;//定时器1开始工作
	SM0=0;//工作方式选位
	SM1=1;//工作方式选位
	//以上两个值决定了串行口控制寄存器工作方式为1
	REN=1;//串行口接收允许位
	EA=1;//总中断
	ES=1;//串行口中断允许位
	PCON=0x80;//只有PCON。7这一种写位,波特率提高
	while(1){
		if(flag==1){
			ES=0;//不允许串行口中断
			flag=0;//赋值
			SBUF=a;//发送a
			while(!TI);//串行口发送中断标志位非零
			TI=0;//串行口发送中断标志位,要手动清,否则下次不可以发送
			ES=1;//允许串行口中断
		}
	}
}
void serial() interrupt 4{
	P1=SBUF;//接收
	a=SBUF;//接收
	flag=1;//赋值,执行if语句
	RI=0;//串行口接收中断标志位关闭,不可接收
}
//IIC
//总线初始化,将总线都拉高以释放总线
void init(){
	SCL=1;
	delay();
	SDA=1;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值