?? jxr.asm
字號(hào):
MOV COUNTL,TL0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV A,#N400HL
CLR C
SUBB A,COUNTL
MOV A,#N400HH
SUBB A,COUNTH
JC ADDERRE3 ;低電平寬度大于400US,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N400LL
MOV A,COUNTH
SUBB A,#N400LH
JC ADDRESS31
SETB ADDIBIT3 ;電平寬度為400us,addibit3=1
SJMP ADDRESS2
ADDRESS31: MOV A,#N200HL
CLR C
SUBB A,COUNTL
MOV A,#N200HH
SUBB A,COUNTH
JC ADDERRE3 ;低電平寬度大于200us,小于400us,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N200LL
MOV A,COUNTH
SUBB A,#N200LH
JC ADDERRE3 ;高電平寬度小于200us,錯(cuò)誤,返回.
CLR ADDIBIT3 ;電平寬度為200us,addibit3=0
SJMP ADDRESS2
ADDERRE3: AJMP START
ADDRESS2: JB PDATA,ADDRESS2
CLR TR0 ;出現(xiàn)低電平,重新計(jì)數(shù).
MOV COUNTH,TH0
MOV COUNTL,TL0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV A,#N400HL
CLR C
SUBB A,COUNTL
MOV A,#N400HH
SUBB A,COUNTH
JC ADDERRE2 ;高電平寬度大于400US,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N400LL
MOV A,COUNTH
SUBB A,#N400LH
JC ADDRESS21
SETB ADDIBIT2 ;電平寬度為400us,addibit2=1
SJMP ADDRESS1
ADDRESS21: MOV A,#N200HL
CLR C
SUBB A,COUNTL
MOV A,#N200HH
SUBB A,COUNTH
JC ADDERRE2 ;高電平寬度大于200us,小于400us,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N200LL
MOV A,COUNTH
SUBB A,#N200LH
JC ADDERRE2 ;高電平寬度小于200us,錯(cuò)誤,返回.
CLR ADDIBIT2 ;電平寬度為200us,addibit2=0
SJMP ADDRESS1
ADDERRE2: AJMP START
ADDRESS1: JNB PDATA,ADDRESS1
CLR TR0 ;出現(xiàn)高電平,重新計(jì)數(shù).
MOV COUNTH,TH0
MOV COUNTL,TL0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV A,#N400HL
CLR C
SUBB A,COUNTL
MOV A,#N400HH
SUBB A,COUNTH
JC ADDERRE1 ;低電平寬度大于400US,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N400LL
MOV A,COUNTH
SUBB A,#N400LH
JC ADDRESS11
SETB ADDIBIT1 ;電平寬度為400us,addibit1=1
SJMP ADDOK
ADDRESS11: MOV A,#N200HL
CLR C
SUBB A,COUNTL
MOV A,#N200HH
SUBB A,COUNTH
JC ADDERRE1 ;低電平寬度大于200us,小于400us,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N200LL
MOV A,COUNTH
SUBB A,#N200LH
JC ADDERRE1 ;高電平寬度小于200us,錯(cuò)誤,返回.
CLR ADDIBIT1 ;電平寬度為200us,addibit1=0
SJMP ADDOK
ADDERRE1: AJMP START
ADDOK: ACALL ADDPRG
MOV A,ADDLI
CJNE A,ADDR,ADDERRE
SJMP NUM
ADDERRE: AJMP START
;----------------------------------------------------------------------------
;判斷(8位)編號(hào)
NUM: MOV NUMI,#00H
NUM8: JB PDATA,NUM8
CLR TR0 ;出現(xiàn)低電平,重新計(jì)數(shù).
MOV COUNTH,TH0
MOV COUNTL,TL0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV A,#N400HL
CLR C
SUBB A,COUNTL
MOV A,#N400HH
SUBB A,COUNTH
JC NUMERRE8 ;高電平寬度大于400US,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N400LL
MOV A,COUNTH
SUBB A,#N400LH
JC NUM81
SETB NUMIBIT8 ;電平寬度為400us,numibit6=1
SJMP NUM7
NUM81: MOV A,#N200HL
CLR C
SUBB A,COUNTL
MOV A,#N200HH
SUBB A,COUNTH
JC NUMERRE8 ;高電平寬度大于200us,小于400us,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N200LL
MOV A,COUNTH
SUBB A,#N200LH
JC NUMERRE8 ;高電平寬度小于200us,錯(cuò)誤,返回.
CLR NUMIBIT8 ;電平寬度為200us,NUMIBIT6=0
SJMP NUM7
NUMERRE8: AJMP START
NUM7: JNB PDATA,NUM7
CLR TR0 ;出現(xiàn)高電平,重新計(jì)數(shù).
MOV COUNTH,TH0
MOV COUNTL,TL0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV A,#N400HL
CLR C
SUBB A,COUNTL
MOV A,#N400HH
SUBB A,COUNTH
JC NUMERRE7 ;低電平寬度大于400US,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N400LL
MOV A,COUNTH
SUBB A,#N400LH
JC NUM71
SETB NUMIBIT7 ;電平寬度為400us,numibit5=1
SJMP NUM6
NUM71: MOV A,#N200HL
CLR C
SUBB A,COUNTL
MOV A,#N200HH
SUBB A,COUNTH
JC NUMERRE7 ;低電平寬度大于200us,小于400us,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N200LL
MOV A,COUNTH
SUBB A,#N200LH
JC NUMERRE7 ;高電平寬度小于200us,錯(cuò)誤,返回.
CLR NUMIBIT7 ;電平寬度為200us,numibit5=0
SJMP NUM6
NUMERRE7: AJMP START
NUM6: JB PDATA,NUM6
CLR TR0 ;出現(xiàn)低電平,重新計(jì)數(shù).
MOV COUNTH,TH0
MOV COUNTL,TL0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV A,#N400HL
CLR C
SUBB A,COUNTL
MOV A,#N400HH
SUBB A,COUNTH
JC NUMERRE6 ;高電平寬度大于400US,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N400LL
MOV A,COUNTH
SUBB A,#N400LH
JC NUM61
SETB NUMIBIT6 ;電平寬度為400us,numibit6=1
SJMP NUM5
NUM61: MOV A,#N200HL
CLR C
SUBB A,COUNTL
MOV A,#N200HH
SUBB A,COUNTH
JC NUMERRE6 ;高電平寬度大于200us,小于400us,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N200LL
MOV A,COUNTH
SUBB A,#N200LH
JC NUMERRE6 ;高電平寬度小于200us,錯(cuò)誤,返回.
CLR NUMIBIT6 ;電平寬度為200us,NUMIBIT6=0
SJMP NUM5
NUMERRE6: AJMP START
NUM5: JNB PDATA,NUM5
CLR TR0 ;出現(xiàn)高電平,重新計(jì)數(shù).
MOV COUNTH,TH0
MOV COUNTL,TL0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV A,#N400HL
CLR C
SUBB A,COUNTL
MOV A,#N400HH
SUBB A,COUNTH
JC NUMERRE5 ;低電平寬度大于400US,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N400LL
MOV A,COUNTH
SUBB A,#N400LH
JC NUM51
SETB NUMIBIT5 ;電平寬度為400us,numibit5=1
SJMP NUM4
NUM51: MOV A,#N200HL
CLR C
SUBB A,COUNTL
MOV A,#N200HH
SUBB A,COUNTH
JC NUMERRE5 ;低電平寬度大于200us,小于400us,錯(cuò)誤,返回
MOV A,COUNTL
CLR C
SUBB A,#N200LL
MOV A,COUNTH
SUBB A,#N200LH
JC NUMERRE5 ;高電平寬度小于200us,錯(cuò)誤,返回.
CLR NUMIBIT5 ;電平寬度為200us,numibit5=0
SJMP NUM4
NUMERRE5: AJMP START
NUM4: JB PDATA,NUM4
CLR TR0 ;出現(xiàn)低電平,重新計(jì)數(shù).
MOV COUNTH,TH0
MOV COUNTL,TL0
MOV TH0,#00H
MOV TL0,#00H
SETB TR0
MOV A,#N400HL
CLR C
SUBB A,COUNTL
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -