?? cpupart.asm
字號:
JS1 EQU 21H ;;速度寄存器
JS2 EQU 22H ;;長度加寄存器
JS3 EQU 23H ; 速度暫存器
JS4 EQU 24H ; 長度暫存器
JS5 EQU 25H
JS6 EQU 26H
JS7 EQU 27H
JS8 EQU 28H
JS20 EQU 29H
JS10 EQU 30H
ISP_DATA equ 0e2h
ISP_ADDRH EQU 0E3H
endcode equ 0aaH
;初使化程序
ISP_ADDRL EQU 0E4H
ISP_CMD EQU 0E5H
ISP_TRIG EQU 0E6H
ISP_CONTR EQU 0E7H
;定義ISP/ASP命令及等待時間
ISP_IAP_BYTE_READ EQU 1
ISP_IAP_BYTE_PROGRAM EQU 2
ISP_IAP_SECTOR_ERASE EQU 3
WAIT_TIME EQU 0
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP INSER1
ORG 0013H
LJMP INSER2 ;中斷跳轉地址
MAIN: NOP;初始化
MOV P0, #0FFH
MOV P2, #0FFH
MOV P1, #0FFH
NOP ;讀內存
;open the interrupt and initialize ; 開中斷
SETB EA
SETB EX0
SETB EX1
CLR IT0 ;中斷0為外存數據設置中斷
CLR IT1 ;the programe initialize end
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;the interrupt end
;the tast 1 star the step motor programe
;jnb p1.7, $
;從EEPROM中讀出速度控制數據
;STAR
;定義字節讀出指令
MOV ISP_ADDRH, #10H
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
;END
MOV JS1, A
CPL A
MOV JS10, A
MOV P0, JS10
;the tast 1 END
;the tast 2 star ;進料長度初使化
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;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
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
jb p1.7, $ ;接近開關控制輸入
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOV A, #00H
;電機最小前進子程序
MOV A, JS2
mov js3, js1
JZ MM
MOV A, #00H
DIANJIQJ: MOV JS5, #06H
QQ: CLR P1.6
ACALL DelayXS
setb p1.6
ACALL DelayXS
DJNZ JS5, QQ
DJNZ JS2, DIANJIQJ
MM: LJMP MAIN
DelayXS: mov js3, js1
MOV A, JS3
JZ MM
YY: MOV R2, #0ffH
DJNZ R2, $
DJNZ JS3, YY
RET
delay05S : MOV R0, #32H ;延時子程序
LL: MOV R1, #64H
TT: MOV R2, #64H
DJNZ R2, $
DJNZ R1, TT
DJNZ R0, LL
RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INSER1: nop
;從EEPROM中讀出速度控制數據
;STAR
;定義字節讀出指令
MOV ISP_ADDRH, #10H
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
;END
MOV JS1, A ;進料速度數據
CPL A
MOV JS10, A
MOV P0, JS10
;the tast 1 END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -