⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lzf.txt

📁 用51单片机进行电机转速的测定
💻 TXT
字号:
        IOY0  EQU       0C400H      ;片选IOY0对应的端口始地址
        IOY1  EQU       0C440H
        IOY2  EQU       0C480H
        IOY3  EQU       0C4C0H
;*****************************************************************
    MY8255_A  EQU       IOY0+00H*4  ;8255的A口地址
    MY8255_B  EQU       IOY0+01H*4  ;8255的B口地址
    MY8255_C  EQU       IOY0+02H*4  ;8255的C口地址
 MY8255_MODE  EQU       IOY0+03H*4  ;8255的控制寄存器地址
      DA0832  EQU       IOY1+00H*4  ;DA0832的端口地址
    MY8254_0  EQU       IOY2+00H*4
    MY8254_1  EQU       IOY2+01H*4
    MY8254_2  EQU       IOY2+02H*4
 MY8254_MODE  EQU       IOY2+03H*4
      AD0809  EQU       IOY3+00H*4    ;AD0809的端口地址

        DATA  SEGMENT
        STR1  DB        'FUN SPEED IS:',0AH,0DH,'$'         ;定义显示的字符串
       COUNT  DW        0
          YK  DW        ?
         KEY  DB        ?
        DATA  ENDS

      STACK1  SEGMENT   STACK
              DW        256 DUP(?)
      STACK1  ENDS

        CODE  SEGMENT
              ASSUME    CS:CODE,DS:DATA

      START:  MOV       AX,DATA
              MOV       DS,AX

              MOV       DX,OFFSET STR1          ;显示字符串
              MOV       AH,09H
              INT       21H

              MOV       DX,MY8255_MODE          ;初始化8255工作方式
              MOV       AL,89H      ;工作方式0,B口输出,A口输入
              OUT       DX,AL
       
              MOV       YK,0000H
       
      LOOP1:  MOV       DX,MY8255_C ;读A口
              IN        AL,DX
              ;MOV        DX,AD0809
              ;IN         AL,DX

              MOV       DX,DA0832
              OUT       DX,AL
              

              MOV       DX,MY8254_MODE          ;初始化8254工作方式
              MOV       AL,10H      ;计数器0,方式0
              OUT       DX,AL
              MOV       DX,MY8254_0
              MOV       AL,0FFH
              OUT       DX,AL
              MOV       CX,06AH
       NEXT:
        DIS:  INC       COUNT
              CMP       COUNT,0FFFFH
              JNZ       DIS
              LOOP      NEXT

              MOV       COUNT,0
              MOV       DX,MY8254_MODE          ;初始化8254工作方式
              MOV       AL,00H      ;锁存计数器0
              OUT       DX,AL
              MOV       DX,MY8254_0
              IN        AL,DX
                            
              MOV       BL,0FFH
              SUB       BL,AL
              MOV       AL,BL
              MOV       KEY,AL

              CMP       AL,63H
              JAE       KKK
              JMP       LLL
        KKK:  MOV       AL,63H
        LLL:  MOV       AH,00H
      
              MOV       DX,MY8255_B ;写B口
              OUT       DX,AL
            
              MOV       YK,AX
              MOV       AX,YK       ;将测速值YK送到屏幕显示
              CALL      DECSHOW

           

              MOV       DL,0DH
              MOV       AH,02H
              INT       21H

              MOV       AH,1        ;判断是否有按键按下
              INT       16H
              JZ        LOOP1       ;无按键则跳回继续循环,有则退出

       QUIT:  MOV       AX,4C00H
              INT       21H


     DECSHOW  PROC      NEAR
              MOV       DX,0
              MOV       BX,10
              DIV       BX

              ADD       AL,30H
              MOV       AH,0EH
              INT       10H

              ADD       DL,30H
              MOV       AH,2
              INT       21H
              RET
     DECSHOW  ENDP

        CODE  ENDS
              END       START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -