找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2013|回复: 2
收起左侧

51单片机 双机通信 流水灯控制 汇编,小学生想各位大佬求助

[复制链接]
ID:801295 发表于 2020-7-11 22:09 | 显示全部楼层 |阅读模式


                  KEYIN   DATA    66H     ;将接收到的键值存放在RAM66H
                     ORG   0000H   
                     AJMP   START   
                     ORG   0023H     ;使用串口中断  
                     AJMP  ZD

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;程序初始化部分——J;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
      START:  ;初始化
                     MOV   SCON, #50H  ;方式1,串行口在方式1.允许接收
                     MOV   TMOD, #20H   ;定时器1  方式2
                     MOV   TH1, #0FDH  ;波特率设置   
                     MOV   TL1, #0FDH  ;9600@11.0592MHz   
                     SETB  TR1              ;开定时器1,产生波特率
                     MOV   IE, #90H    ;开放中断开关 ,允许串口中断

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序——JXB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
       LOOP1:  MOV   A, P1       ;读拨码开关    ,P1往外发送的
                     DJNZ  R7, $       ;延时   
                     DJNZ  R6, $ - 2   
                     MOV   B, P1       ;再读   
                     CJNE  A, B, LOOP1  ;消抖   
                     MOV   SBUF, A     ;向串口发送   
                     ;上一句后,TI=1,先进入中断,而后返回到此处。

                     MOV A,KEYIN          ;从此处开始往下根据接收值KEYIN,进行不同模式的显示。
              M0: CJNE  A, #01H,M1  ;对方机 拨码0000_0001  (01H)
                     MOV  P0,#0FH        ;我方P0口显示  0FH     
                     AJMP  LOOP1         ;返回主程序起始处

             M1:
                   CJNE  A, #02H,M8 ;对方机 拨码0000_0010  (02H)
                   MOV  P0,#0F0H
                   AJMP  LOOP1
                  
             M8:   ;除了前2种情况,其余全都是全灭。
                      MOV P0,#0FFH  ;当接收到对方前八种KEYIN之外,均显示全灭。
                      AJMP  LOOP1
           
               ZD:  ;中断
                     JNB    RI, S_END    ;判断是收还是发,若RI=1则顺序执行,接收对方机发来的数据
                     CLR   RI   
                     MOV   A, SBUF    ;读串口,
                     MOV  KEYIN,A     ;将接收到的数据保存到KEYIN
                      AJMP EXIT  
      S_END: CLR TI                 ;若是发送中断标志TI=1,接清零退出中断。
          EXIT: RETI

                    END
1594476538(1).jpg
回复

使用道具 举报

ID:328014 发表于 2020-7-12 13:35 | 显示全部楼层
这个有什么问题呢?
回复

使用道具 举报

ID:235954 发表于 2020-7-12 13:44 | 显示全部楼层
问题?列一下,不然怎么解决
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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