找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1949|回复: 1
打印 上一主题 下一主题
收起左侧

51单片机简单双机通讯

[复制链接]
跳转到指定楼层
楼主
ID:257636 发表于 2017-12-5 12:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
很基础的两个单片机通信,p0口控制键盘,p2位选p1字选,注意两个单片机要用同样的晶振,并且用相同的电源供电
程序如下
    ORG 00H
         LJMP MAIN
         ORG 0023H
         LJMP SBR
MAIN:MOV SP,#60H
MOV R7,#08H
     MOV TMOD,#20H//定时器1设为模式2
         MOV TH1,#0F3H//设初值
         MOV TL1,#0F3H
         CLR ET1          //禁止定时器1中断
         SETB TR1
         MOV SCON,#50H//串行口设置为方式1,REN=1
         SETB ES          //允许串口中断
         SETB EA          //开放总中断
     MOV DPTR,#LED
LOOP:CALL Key
MOV A,R7
LCALL OLED
MOV A,R7
MOV SBUF,A
JB TI,$
         AJMP LOOP

SBR:PUSH ACC
    JB TI,SEND        //TI=1,为发送中断
    ACALL SIN        //RI=1,为接受中断
        SJMP BACK_1
SEND:ACALL SOUT           //调用发送子程序
BACK_1:POP ACC
     RETI     

SOUT:CLR TI
         RET

SIN:CLR RI                          //接收子程序
    MOV A,SBUF
        MOV R7,A                  //读出接收缓冲区的内容
        LCALL OLED
    RET

Key:MOV A,P0       
   K1:CJNE A,#07FH,K2       
          MOV R7,#00H       
   K2:CJNE A,#0BFH,K3
          MOV R7,#01H
   K3:CJNE A,#0DFH,K4
          MOV R7,#02H
   K4:CJNE A,#0EFH,K5
          MOV R7,#03H
   K5:CJNE A,#0F7H,K6
          MOV R7,#04H
   K6:CJNE A,#0FBH,K7
          MOV R7,#05H
   K7:CJNE A,#0FDH,K8
          MOV R7,#06H
   K8:CJNE A,#0FEH,BACK
      MOV R7,#07H
BACK:RET

OLED:MOV P2,#0FEH
     MOVC A,@A+DPTR        //显示
     MOV P1,A
         RET
LED:DB 0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;
END

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:257999 发表于 2017-12-6 15:45 | 只看该作者
谢谢,很给力!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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