找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

要求单片机U1的外接开关DIPSW_8可控制单片机U2的外接LED灯LED-BARGRAPH-GRN的亮暗。

查看数: 6027 | 评论数: 3 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-12-4 17:35

正文摘要:

回复

ID:326534 发表于 2018-5-10 09:38
读取P1口的值a,通过串口传给第二个52,令P2等于a。
ID:320518 发表于 2018-5-10 09:31
单片机U1发送数据参考程序如下:
ORG 0
LJMP MAIN
ORG 23H
CLR TI
MOV A,P1
MOV SBUF,A
RETI

ORG 30H
MAIN: MOV SCON,#40H;串行口方式1,禁止接收
MOV TMOD,#20H
MOV TL1,#0E0H
MOV TH1,#0E0H
SETB TR1
MOV IE, #90H
MOV A,P1
MOV SBUF,A
SJMP $
END
单片机U2接收参考程序如下:
ORG 0
LJMP MAIN
ORG 23H
CLR RI
MOV A,SBUF
MOV P2,A
RETI
ORG 30H
MAIN: MOV SCON,#50H;串行口方式1,允许接收
MOV TMOD,#20H
MOV TL1,#0E0H
MOV TH1,#0E0H
SETB TR1
MOV IE, #90H
SJMP $
END
ID:320518 发表于 2018-5-10 09:26
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint num,i=0;//定义变量初始值为0
uchar code tab[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09};//段码
void main()
{
   TMOD=0x01;//采用T0方式,将M1置0,M0置1,是方式一的定时器
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   EA=1;// 总中断允许
   ET0=1;//开启定时器0中断
   TR0=1;//定时器/计数器启动
   SCON=0x00;//设置串行口工作方式为方式0
   SBUF=0x03;//设置数码管初始值
   while(1);//等待中断
}
voidt0_() interrupt 1           //中断函数
{
   TH0=(65536-50000)/256;
   TL0=(65536-50000)%256;
   num++;
if(num==10)
{
   num=0;
   i++;
if(i==10)
{       
   i=0;
}
SBUF=tab[i];
}
}

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表