?? cpupart.asm
字號:
;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 + -