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

📄 cpupart.asm

📁 LED的显示功能
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                       ;the tast 2   star                      ;进料长度初使化
                       MOV             A,                      #00H
                       ;从EEPROM中读出长度控制数据
                       ;STAR
                       ;定义字节读出指令
                       MOV                     ISP_ADDRH,      #12H
                       MOV                     ISP_ADDRL,      #01H
                       CLR                     EA
                       MOV                     ISP_CONTR,     #WAIT_TIME;设置等待时间
                       MOV                     ISP_CONTR,     #10000000B; 允许ISP/IAP操作
                       MOV                     ISP_CMD,       #ISP_IAP_BYTE_READ

                       MOV                     ISP_TRIG,       #46H
                       MOV                     ISP_TRIG,       #0B9H;送完B8H后,ISP/IAP命令立即被触发启动
                       NOP
                       MOV                     ISP_CONTR,      #00000000B
                       MOV                     ISP_CMD,        #00000000B
                       MOV                     ISP_TRIG,       #00000000B
                       MOV                     ISP_ADDRH,      #0FFH
                       MOV                     ISP_ADDRL,      #0FFH
                       SETB                    EA
                       MOV                     A,              ISP_DATA
                       mov                     js2,            A
                       CPL                     A
                       MOV                     JS20,             A
                       MOV                     P2,               JS20
                       ;END
              cycle:   NOP
              ee:      jnb       p1.0,          speedadd1              ; 速度加判断
              ff:      jnb       p1.1,          speeddecrease1         ;速度减判断
              bb:      jnb       p1.2,          lengthadd1             ;长度加判断
             mm1:      jnb       p1.3,          lengthdecrease1        ;长度减判断
              jj:      jnb       p1.4,          sure1                  ;是否有确认键按下判断
              pp:      Ljmp      cycle
           speedadd1:  nop
                       acall     delay10ms
                       jnb       p1.0,          ff
                       LJMP      speedadd
      speeddecrease1:  nop
                       acall     delay10ms
                       jnb       p1.1,          bb
                       LJMP      speeddecrease
          lengthadd1:  nop
                       acall     delay10ms
                       jnb       p1.2,          mm1
                       LJMP      lengthadd
     lengthdecrease1:  nop
                       acall     delay10ms
                       jnb       p1.3,          jj
                       LJMP      lengthdecrease
               sure1:  nop
                       acall     delay10ms
                       jnb       p1.4,          pp
                       LJMP      sure
           speedadd:   inc       JS1                                ;速度加寄存器
                       mov       a,        js1
                       cpl       a
                       MOV       P0,       a
                       Ljmp      cycle
      speeddecrease:   NOP
                       dec       js1
                       mov       a,        js1
                       cpl       a
                       MOV       P0,       a
                       Ljmp      cycle
          lengthadd:   NOP
                       inc       js2                                  ;长度加寄存器
                       mov       a,        js2
                       cpl       a
                       MOV       P2,       a
                       Ljmp      cycle
     lengthdecrease:   NOP
                       dec       js2
                       mov       a,        js2
                       cpl       a
                       MOV       P2,       a
                       Ljmp      cycle
               sure:   ;扇区查除指令
               ;TAST ONE SPEED  INPUT   EEPROM FASH DATA STAR
                       MOV                     ISP_ADDRH,      #10H            ;SECTOR_FIRST_BYTE_ADDR_HIGH
                       MOV                     ISP_ADDRL,      #00H            ;SECTOR_FIRST_BYTE_ADDR_LOW
                       CLR                     EA
                       MOV                     ISP_CONTR,      #WAIT_TIME
                       ORL                     ISP_CONTR,      #10000000B
                       MOV                     ISP_CMD,        #ISP_IAP_SECTOR_ERASE; 送扇区查初命令
                       MOV                     ISP_TRIG,       #46H
                       MOV                     ISP_TRIG,       #0B9H
                       NOP
                       MOV                     ISP_CONTR,      #00000000B
                       MOV                     ISP_CMD,        #00000000B
                       MOV                     ISP_TRIG,       #00000000B
                       MOV                     ISP_ADDRH,      #0FFH
                       MOV                     ISP_ADDRL,      #0FFH
                       NOP
                       ;字节编程,该字节为FFH/空时,可以对其编程,否则不行,要先执行扇区查除
                       MOV                     ISP_DATA,       js1     ; 送字节编程数据到ISP_DATA
                       MOV                     ISP_ADDRH,      #10H
                       MOV                     ISP_ADDRL,      #01H
                       CLR                     EA
                       MOV                     ISP_CONTR,      #WAIT_TIME
                       MOV                     ISP_CONTR,      #10000000B
                       MOV                     ISP_CMD,        #ISP_IAP_BYTE_PROGRAM;  送字节编程命令
                       MOV                     ISP_TRIG,       #46H
                       MOV                     ISP_TRIG,       #0B9H; 送完后,ISP/IAP命令立即被触发启动
                       NOP
                       MOV                     ISP_CONTR,      #00000000B
                       MOV                     ISP_CMD,        #00000000B
                       MOV                     ISP_TRIG,       #00000000B
                       MOV                     ISP_ADDRH,      #0FFH
                       MOV                     ISP_ADDRL,      #0FFH
                       SETB                    EA
                       ;TAST ONE END
                       ;扇区查除指令
                       ;TAST TOW LENGTH  INPUT   EEPROM FASH DATA STAR
                       MOV                     ISP_ADDRH,      #12H            ;SECTOR_FIRST_BYTE_ADDR_HIGH
                       MOV                     ISP_ADDRL,      #00H            ;SECTOR_FIRST_BYTE_ADDR_LOW
                       CLR                     EA
                       MOV                     ISP_CONTR,      #WAIT_TIME
                       ORL                     ISP_CONTR,      #10000000B
                       MOV                     ISP_CMD,        #ISP_IAP_SECTOR_ERASE; 送扇区查初命令
                       MOV                     ISP_TRIG,       #46H
                       MOV                     ISP_TRIG,       #0B9H
                       NOP
                       MOV                     ISP_CONTR,      #00000000B
                       MOV                     ISP_CMD,        #00000000B
                       MOV                     ISP_TRIG,       #00000000B
                       MOV                     ISP_ADDRH,      #0FFH
                       MOV                     ISP_ADDRL,      #0FFH
                       NOP
                       ;字节编程,该字节为FFH/空时,可以对其编程,否则不行,要先执行扇区查除
                       MOV                     ISP_DATA,       js2     ; 送字节编程数据到ISP_DATA
                       MOV                     ISP_ADDRH,      #12H
                       MOV                     ISP_ADDRL,      #01H
                       CLR                     EA
                       MOV                     ISP_CONTR,      #WAIT_TIME
                       MOV                     ISP_CONTR,      #10000000B
                       MOV                     ISP_CMD,        #ISP_IAP_BYTE_PROGRAM;  送字节编程命令
                       MOV                     ISP_TRIG,       #46H
                       MOV                     ISP_TRIG,       #0B9H; 送完后,ISP/IAP命令立即被触发启动
                       NOP
                       MOV                     ISP_CONTR,      #00000000B
                       MOV                     ISP_CMD,        #00000000B
                       MOV                     ISP_TRIG,       #00000000B
                       MOV                     ISP_ADDRH,      #0FFH
                       MOV                     ISP_ADDRL,      #0FFH
                       SETB                    EA
                       ;TAST TOW END
                       RET
           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
           ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
           INSER2:     NOP
                       ret

          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
          delay10ms:   mov      r7,            #0ah
          loop1:       mov      r6,             #7ch
          loop2:       nop
                       nop
                       djnz     r6,             loop2
                       djnz     r7,             loop1
                       ret

⌨️ 快捷键说明

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