?? 電動(dòng)卷尺貼片段碼控制程序.asm
字號(hào):
;******************************************************
LCDDATA EQU P2.1
LCDCS EQU P2.2
LCDWR EQU P2.3
;******************************************************
NUM0 EQU 40H
NUM1 EQU 41H
NUM2 EQU 42H
NUM3 EQU 43H
NUM4 EQU 44H
NUM5 EQU 45H
NUM6 EQU 46H
NUM7 EQU 47H
NUM8 EQU 48H
NUM9 EQU 49H
;******************************
JIA EQU 4AH
JIAN EQU 4BH
CHENG EQU 4CH
CHU EQU 4DH
POINT EQU 4EH
DENGYU EQU 4FH
;******************************
LING EQU 50H
SHUZI EQU 51H
YUNSUAN EQU 52H
TWO EQU 53H
FOUR EQU 54H
EIGHT EQU 55H
SIXTY EQU 56H
STOP EQU 57H
;******************************
ONOFF EQU 58H
FRONT EQU 59H
BACK EQU 5AH
CALC EQU 5BH
INCM EQU 5CH
FRONT1 EQU 5DH
BACK1 EQU 5EH
;******************************
ERRON1 EQU 60H
ERRON2 EQU 61H
;******************************
SHURU EQU 62H
FENSHU EQU 63H
;************************************************************
;************************************************************
;************************************************************
;************************************************************
SUDUZHI EQU 30H
XIUBUZHI EQU 31H
MCGAOWEI EQU 38H
MCDIWEI EQU 39H
JULIDATA1 EQU 36H
JULIDATA2 EQU 37H
FSDATA1 EQU 3AH
FSDATA2 EQU 3BH
;******************************
DATA0 EQU 40H
DATA6 EQU 41H
DATA5 EQU 42H
DATA4 EQU 43H
;******************************
DATAZ5 EQU 44H
DATAZ4 EQU 45H
DATAZ3 EQU 46H
DATAZ2 EQU 47H
DATAZ1 EQU 48H
DATAZ0 EQU 49H
;******************************
SUDU6 EQU 4AH
SUDU4 EQU 4BH
SUDU2 EQU 4CH
SUDUA EQU 4DH
SUDUB EQU 4EH
;******************************
FUHAO EQU 4FH
;******************************
CALCNUM6 EQU 50H
CALCNUM5 EQU 51H
CALCNUM4 EQU 52H
CALCNUM3 EQU 53H
CALCNUM2 EQU 54H
CALCNUM1 EQU 55H
CALCNUMC EQU 58H
CALCNUMB EQU 59H
CALCNUMA EQU 5AH
CALCNUM9 EQU 5BH
CALCNUM8 EQU 5CH
CALCNUM7 EQU 5DH
DATASHURU EQU 4EH
;*********************************************************************
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP JISHU
ORG 001BH
LJMP TIMER1 ;P3.5/T1中斷子程序
ORG 0030H
MAIN:
CLR RS0
NOP
CLR RS1 ;設(shè)定00H到07H寄存器工作組0
MOV A, #00H
MOV R0, #08H
MOV R1, #0F7H
HCQ110:
MOV @R0, A
INC R0
DJNZ R1, HCQ110 ;21H到6FH數(shù)據(jù)存儲(chǔ)器清零
CLR EA
MOV TMOD, #15H ;T1計(jì)數(shù)器, T0定時(shí)模式1
MOV TH1, #3CH
MOV TL1, #0B0H
MOV TCON,#01H
MOV TL0, #00H
MOV TH0, #00H
MOV IP,#01H
MOV SP, #70H
NOP
SETB ET1
SETB TR0
SETB TR1 ;啟動(dòng)T0定時(shí)器
SETB EX0
SETB EA
YJCSH:
SETB LCDCS
NOP
CALL ML ;OUTPUT100 命令模式
;********************************
CLR LCDDATA
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
SETB LCDDATA
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE ;清零(WDT,時(shí)基發(fā)生器內(nèi)容)
;********************************
CLR LCDDATA
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
SETB LCDDATA
CALL WRITE
CLR LCDDATA
CALL WRITE
SETB LCDDATA
CALL WRITE
CALL WRITE ;禁止WDT溢出標(biāo)志輸出
;********************************
CLR LCDDATA
CALL WRITE
CALL WRITE
SETB LCDDATA
CALL WRITE
CLR LCDDATA
CALL WRITE
SETB LCDDATA
CALL WRITE
CLR LCDDATA
CALL WRITE
CALL WRITE
SETB LCDDATA
CALL WRITE
CALL WRITE ;LCD 1/3偏置選項(xiàng): 4背級(jí)
;*********************************
CLR LCDDATA
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
SETB LCDDATA
CALL WRITE
CALL WRITE ;打開(kāi)系統(tǒng)振蕩器
;*********************************
WRDIZHI:
LCALL LCDON
CALL WR
CLR LCDDATA
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
CALL WRITE
MOV A,#20H
CALL WRA
MOV A,#20H
CALL WRA
MOV A,#20H
CALL WRA
MOV A,#20H
CALL WRA
MOV A,#00H
CALL WRA
MOV A,#20H
CALL WRA
MOV A,#20H
CALL WRA
MOV A,#20H
CALL WRA
MOV A,#16H
CALL WRA
SJMP HCQ
FORWORD00:
LJMP FORWORD
HCQ:
LCALL ANNIUJC
JNB P3.3,FORWORD00
JNB P3.1,BACKWORD00
JB FRONT,FORWORD00
JB BACK,BACKWORD00
CLR FRONT1
CLR BACK1
JB SHUZI,JULISHURU0
JB CALC,CALCTER0
LCALL DELAY100MS
SETB P1.7
NOP
NOP
SETB P1.6
LCALL DELAY100MS
JNB ERRON2,HCQ000
MOV MCGAOWEI,#00H
MOV MCDIWEI,#00H
HCQ000:
MOV 67H,MCDIWEI
MOV 66H,MCGAOWEI
LCALL DATAJISUAN
JB INCM,INCH100
MOV 60H,#7EH
MOV 61H,#0BBH
MOV 62H,#0BBH
MOV 63H,#0A5H
SJMP INCH101
INCH100:
MOV 60H,#76H
MOV 61H,#9DH
MOV 62H,#0ADH
MOV 63H,#1CH
INCH101:
MOV R0,#40H
LCALL BTOF
MOV R1,#60H
LCALL FMUL
NOP
LCALL FTOB
NOP
JB INCM,INCM100
LCALL DATACHULI
LCALL DATAXIANSHI
AJMP INCM101
INCM100:
LCALL DATACHULI100
LCALL DATAXIANSHI100
INCM101:
LJMP HCQ
CALCTER0:
LJMP CALCTER
JULISHURU0:
LJMP JULISHURU
BACKWORD00:
LJMP BACKWORD0
HCQ510:
LJMP HCQ11
;****************************************
FORWORD:
CLR ERRON2
JNB P3.3,FORWORD0
JB ERRON1,HCQ510
FORWORD0:
JB FRONT1,FORWORD1
SETB FRONT1
CLR BACK1
SETB P1.7
LCALL DELAY100MS
CLR P1.6
LCALL DELAY100MS
LCALL DELAY100MS
MOV 67H,MCDIWEI
MOV 66H,MCGAOWEI
LCALL DATAJISUAN
JB INCM,INCH102
MOV 60H,#7EH
MOV 61H,#0BBH
MOV 62H,#0BBH
MOV 63H,#0A5H
SJMP INCH103
INCH102:
MOV 60H,#76H
MOV 61H,#9DH
MOV 62H,#0ADH
MOV 63H,#1CH
INCH103:
MOV R0,#40H
LCALL BTOF
MOV R1,#60H
LCALL FMUL
LCALL FTOB
JB INCM,INCM102
LCALL DATACHULI
LCALL DATAXIANSHI
AJMP INCM103
INCM102:
LCALL DATACHULI100
LCALL DATAXIANSHI100
INCM103:
LJMP HCQ
FORWORD1:
SETB P1.7
CLR P1.6
MOV 67H,MCDIWEI
MOV 66H,MCGAOWEI
LCALL DATAJISUAN
JB INCM,INCH104
MOV 60H,#7EH
MOV 61H,#0BBH
MOV 62H,#0BBH
MOV 63H,#0A5H
SJMP INCH105
INCH104:
MOV 60H,#76H
MOV 61H,#9DH
MOV 62H,#0ADH
MOV 63H,#1CH
INCH105:
MOV R0,#40H
LCALL BTOF
MOV R1,#60H
LCALL FMUL
LCALL FTOB
JB INCM,INCM104
LCALL DATACHULI
LCALL DATAXIANSHI
AJMP INCM105
INCM104:
LCALL DATACHULI100
LCALL DATAXIANSHI100
INCM105:
MOV A,30H
CJNE A,#60H,HCQ1
HCQ1:
JNC HCQ2
HCQ11:
CLR FRONT
CLR BACK
SETB P1.7
LCALL DELAY100MS
SETB P1.6
LCALL DELAY100MS
JNB P3.3,HCQ11
HCQ2:
JNB P3.3,FORWORD1
LJMP HCQ
;****************************************
BACKWORD0:
BACKWORD:
JB BACK1,BACKWORD1
SETB BACK1
CLR FRONT1
LCALL DELAY100MS
SETB P1.6
LCALL DELAY100MS
CLR P1.7
LCALL DELAY100MS
LCALL DELAY100MS
MOV 67H,MCDIWEI
MOV 66H,MCGAOWEI
LCALL DATAJISUAN
JB INCM,INCH106
MOV 60H,#7EH
MOV 61H,#0BBH
MOV 62H,#0BBH
MOV 63H,#0A5H
SJMP INCH107
INCH106:
MOV 60H,#76H
MOV 61H,#9DH
MOV 62H,#0ADH
MOV 63H,#1CH
INCH107:
MOV R0,#40H
LCALL BTOF
MOV R1,#60H
LCALL FMUL
LCALL FTOB
JB INCM,INCM106
LCALL DATACHULI
LCALL DATAXIANSHI
AJMP INCM107
INCM106:
LCALL DATACHULI100
LCALL DATAXIANSHI100
INCM107:
LJMP HCQ
BACKWORD1:
SETB P1.6
CLR P1.7
MOV 67H,MCDIWEI
MOV 66H,MCGAOWEI
LCALL DATAJISUAN
JB INCM,INCH108
MOV 60H,#7EH
MOV 61H,#0BBH
MOV 62H,#0BBH
MOV 63H,#0A5H
SJMP INCH109
INCH108:
MOV 60H,#76H
MOV 61H,#9DH
MOV 62H,#0ADH
MOV 63H,#1CH
INCH109:
MOV R0,#40H
LCALL BTOF
MOV R1,#60H
LCALL FMUL
LCALL FTOB
JB INCM,INCM108
LCALL DATACHULI
LCALL DATAXIANSHI
AJMP INCM109
INCM108:
LCALL DATACHULI100
LCALL DATAXIANSHI100
INCM109:
MOV A,30H
CJNE A,#60H,HCQ3
HCQ3:
JNC HCQ4
HCQ31:
CLR FRONT
CLR BACK
SETB P1.7
SETB P1.6
HCQ4:
JNB P3.1,BACKWORD1
LJMP HCQ
;*************************************************************************
JULISHURU:
MOV A,#00H
MOV CALCNUM1,A
MOV CALCNUM2,A
MOV CALCNUM3,A
MOV CALCNUM4,A
MOV CALCNUM5,A
MOV CALCNUM6,A
MOV FSDATA1,A
MOV FSDATA2,A
JULISHURU1:
LCALL DATAINPUT
JNB INCM,INCH10
LCALL JULIXIANSHI100
AJMP JULISHURU2
INCH10:
LCALL JULIXIANSHI
JULISHURU2:
CLR SHUZI
CLR FRONT
CLR BACK
LCALL ANNIUJC
JB CALC,CALCTER100
JB SHUZI,JULISHURU1
JB FENSHU,JULISHURU1
JB FRONT,JULIHUANSUAN
JB BACK,JULIHUANSUAN
LJMP JULISHURU2
CALCTER100:
LJMP CALCTER
JULIHUANSUAN:
JNB INCM,JULI100
MOV A,CALCNUM6
MOV CALCNUM3,A
MOV A,CALCNUM5
SWAP A
ADD A,CALCNUM4
MOV CALCNUM2,A
MOV CALCNUM4,#04H
MOV CALCNUMC,#03H
MOV CALCNUMB,#13H
MOV CALCNUMA,#85H
MOV CALCNUM9,#45H
SJMP JULI101
JULI100:
MOV A,CALCNUM2
SWAP A
ADD A,CALCNUM1
MOV CALCNUM1,A
MOV A,CALCNUM4
SWAP A
ADD A,CALCNUM3
MOV CALCNUM2,A
MOV CALCNUM3,#00H
MOV CALCNUM4,#06H
MOV CALCNUMC,#01H
MOV CALCNUMB,#54H
MOV CALCNUMA,#54H
MOV CALCNUM9,#54H
JULI101:
MOV R0,#CALCNUMC
LCALL BTOF
MOV R0,#CALCNUM4
LCALL BTOF
MOV R1,#CALCNUMC
LCALL FMUL
LCALL FTOD
JNB F0,JULI10
MOV R4,CALCNUM4
MOV R5,CALCNUM3
LJMP JULI11
JULI10:
MOV R4,#00H
MOV R5,CALCNUM4
JULI11:
; LCALL JULIXIUBU
MOV A,R5
SUBB A,#2EH ;慣性修正
MOV R5,A
JC JULI1
LJMP JULI2
JULI1:
DEC R4
JULI2:
JB BACK,BACKWORD3
SETB SHURU
MOV MCGAOWEI,#00H
MOV MCDIWEI,#00H
MOV JULIDATA1,R4
MOV JULIDATA2,R5
LJMP FORWORD
BACKWORD3:
MOV MCGAOWEI,R4
MOV MCDIWEI,R5
LJMP BACKWORD
ERRON:
LJMP JULISHURU
;**********************************************************
JULIXIUBU:
MOV A,30H
CJNE A,#9AH,XIUBU1
XIUBU1:
JC XIUBU2
MOV 31H,#3CH
XIUBU2:
CJNE A,#97H,XIUBU3
XIUBU3:
JC XIUBU4
MOV 31H,#3AH
XIUBU4:
CJNE A,#94H,XIUBU5
XIUBU5:
JC XIUBU6
MOV 31H,#38H
XIUBU6:
CJNE A,#8EH,XIUBU7
XIUBU7:
JC XIUBU8
MOV 31H,#36H
XIUBU8:
CJNE A,#8AH,XIUBU9
XIUBU9:
JC XIUBU10
MOV 31H,#34H
XIUBU10:
CJNE A,#82H,XIUBU11
XIUBU11:
JC XIUBU12
MOV 31H,#31H
XIUBU12:
CJNE A,#7EH,XIUBU13
XIUBU13:
JC XIUBU14
MOV 31H,#3CH
XIUBU14:
CJNE A,#94H,XIUBU15
XIUBU15:
JC XIUBU16
MOV 31H,#38H
XIUBU16:
RET
;*************************************************************************
HCQ5:
MOV A, #20H
LCALL WRA
MOV A, #20H
LCALL WRA
MOV A, #20H
LCALL WRA
MOV A, #20H
LCALL WRA
MOV A, #20H
LCALL WRA
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -