求汇编语言高手

2019-07-16 00:24发布

求大师帮我看一下这个程序怎么实现,主站要求显示从站的数据
QQ截图20130525122350.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
张金禄
2019-07-16 04:46
现有程序          ORG 0000H
      JMP MAIN
          ORG 0003H
          JMP INT_0
          ORG 000BH
          JMP T0_INT
          ORG 0013H
          JMP INT_1
          ORG 001BH
          JMP T1_INT
          ORG 0023H
          JMP _SBUF                  
MAIN: SETB EA                 //开中断 ,
      SETB ET0
          SETB ET1
          SETB EX0
          SETB IT0
          SETB EX1
          SETB IT1
          MOV TMOD,#52H
          MOV TH0,#106
          MOV TL0,#106
          MOV TH1,#0F8H
          MOV TL1,#30H
          SETB TR0
          SETB TR1
          MOV 20H,#30  //报警下限
          MOV 21H,#120  //报警上限
          MOV SCON,#60H//开串口通信


          clr p3.6
          clr p3.7
LOOP: JB P1.7,$                 //3秒内计数,模拟传感器采集数据
          INC R5
          JNB P1.7,$
          JMP LOOP

INT_0: INC R4
           MOV A,R4      // 与测试值比较
           MOV B,R5                 //保存实测滴速
           SUBB A,R5
           Jc LOOP1

       MOV A,R4
           LCALL DISPLAY
           MOV P0,A
           jmp out0
           loop1:

           out0:
           RETI
INT_1:
       DEC R4                //设定值
           MOV A,R4            //与测试值比较
           MOV B,R5                                          //保存实测滴速
           SUBB A,R5
           Jc LOOP2            
                                  
       MOV A,R4
           LCALL DISPLAY
           MOV P0,A
           jmp out2
           LOOP2:

           out2:
           RETI                         
T0_INT:
       CPL P3.4
       RETI
     
T1_INT:
      MOV TH1,#0F8H
          MOV TL1,#30H
          INC R6
          CJNE R6,#3,OUT
          MOV A,R5                           //3秒采集的次数传入累加器A
       
          MOV B,#20                           //3秒中的滴数乘以20就是一分钟的数
          MUL AB                         //采集到(计算出)1分钟点滴速度
          //MOV R1,B                        //保存数据高八位
          //MOV R2,A                   //保存低八位
          SUBB A,R4       //设置好的滴速 //AB寄存器中怎么和在一起?
          Jc LOOP3
         
       
           LCALL DISPLAY   //调用显示程序
           mov p0,a
           clr p3.6
           SETB P3.7
          MOV R6,#0           //中断次数清零
          MOV R5,#0         //         测试到点滴速度清零
          LOOP3:
              //电机
           OUT:
       RETI            
          
_SBUF:
          
      
          
          RETI

DISPLAY:
         MOV B,#10
         DIV AB
         SWAP A
         ADD A,B
         RET


WARN:SETB P2.4                 //激发报警器
     SETB P3.7                   //点亮红灯
         LCALL BUJIN          //驱动步进电机
         JB P1.7,WARN          //判断是否按取消报警键
         CLR P2.4
         CLR P3.6
          SETB P3.7
          RET
BUJIN:MOV A,B
SUBB A,R5
  
          END
          

一周热门 更多>