单片机实验

在这里插入图片描述
甲机

#include <reg51.h>

unsigned char temp,num;

void main(){
EX0=1;//外部中断位int0的中断允许位
IT0=1;//边沿触发方式
IT1=1;//边沿触发方式
EX1=1;//外部中断位int1的中断允许位
EA=1;//总中断
TMOD=0x20;//定时器工作方式1
TH1=0xfd;//同步时钟
TL1=0xfd;
SCON=0x50;//串口 方式1  允许接受
TR1=1;//开启定时器1
/*while(1){
//当按下按钮之后,开始发送数据
  SBUF=P1;//发送的数据
while(TI==0);//TI可以发送数据  当TI可以发送数据 发送数据 发送完数据 归0
TI=0;
}*/
}

void reset() interrupt 2{ 
EX0=1;
SBUF=0x0a;
while(TI==0);TI=0; 
}


void send() interrupt 0{
EX0=0;
temp=P1;
switch(temp){
case 0x7f: num=0x08;break;//0111 1111
case 0xbf: num=0x07;break;//1011 1111
case 0xdf: num=0x06;break;//1101 1111
case 0xef: num=0x05;break;//1110 1111
case 0xf7: num=0x04;break;//1111 0111
case 0xfb: num=0x03;break;
case 0xfd: num=0x02;break;
case 0xfe: num=0x01;break;
}
SBUF=num;
while(TI==0);TI=0;
}

乙机

#include <reg51.h>

unsigned char temp=0;
//unsigned char zt;
void main(){
EA=1;
TMOD=0x20;
TH1=0xfd;
TL1=0xfd;
SCON=0x50;
TR1=1;
P2=0x0a;
while(1){
while(RI==0);
RI=0;
P2=SBUF;
}

/*while(1){
//当接收完毕后  恢复可以接收
while(RI==0);RI=0;
//按键按下是0  原本是1  所以取反、
//蓝色为0 红色为1
zt=~SBUF;
P0=zt;
}*/
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值