📄 tem.asm
字号:
SCL EQU P3.5
SDA EQU P3.4
;LED1 EQU P3.2;第一个数码管
;LED2 EQU P3.3;第二个数码管
;LED3 EQU P3.4;第三个数码管
;LED4 EQU P3.5;第四个数码管;小数部分;
LERU EQU 38H;
LER1 EQU 30H;存显示第一个数码管的代码
LER2 EQU 31H;存显示第二个数码管的代码
LER3 EQU 32H;存显示第三个数码管的代码
LER4 EQU 33H;存显示第四个数码管的代码
COUN1 EQU 34H;
COUN2 EQU 35H;
COUN3 EQU 36H;
DJJ EQU 37H;
ZHENG EQU 21H;整数部分
XIAO EQU 22H;小数部分
TT EQU 20H;
ORG 00H
LJMP MAIN
ORG 03H
RETI
ORG 0BH
RETI
ORG 13H
RETI
ORG 1BH
RETI
ORG 23H
LJMP ESL
ORG 30H;////////////////////////
ESGOTO:
AJMP ESLW
ESL: MOV A,SBUF
CLR P3.7
ESL3: CJNE A,#0A5H,ESGOTO;
CALL WRITO
CALL WRITC
CALL READT
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
; MOV A,#"."
; MOV ZHENG,A
; MOV A,#80H
; MOV XIAO,A 有?
JNB ZHENG.7,ESLUN
CLR ZHENG.7
;MOV A,#00H
;CLR TI
;MOV SBUF,A
;JNB TI,$
MOV A,#45
CLR TI
MOV SBUF,A
JNB TI,$
;CALL DELAY
ESLUN:
CALL BCD
MOV A,#30H
CJNE A,LER1,END1;ZHENG
SJMP UND1
END1:
;MOV A,#00H
;CLR TI
;MOV SBUF,A
;JNB TI,$
MOV A,LER1
CLR TI
MOV SBUF,A
JNB TI,$
CALL DELAY
END2:
;MOV A,#00H
;CLR TI
;MOV SBUF,A
;JNB TI,$
MOV A,LER2;ZHENG
CLR TI
MOV SBUF,A
JNB TI,$
;CALL DELAY
UND2:
;MOV A,#00H
;CLR TI
;MOV SBUF,A
;JNB TI,$
MOV A,LER3;ZHENG
CLR TI
MOV SBUF,A
JNB TI,$
;CALL DELAY
;MOV A,#00H
;CLR TI
;MOV SBUF,A
;JNB TI,$
MOV A,#46;ZHENG
CLR TI
MOV SBUF,A
JNB TI,$
;CALL DELAY
;MOV A,#00H
;CLR TI
;MOV SBUF,A
;JNB TI,$
MOV A,LER4;XIAO
CLR TI
MOV SBUF,A
JNB TI,$
;CALL DELAY
ESLW: CLR RI
CLR TI
SETB REN
RETI
UND1:
MOV A,#30H
CJNE A,LER2,END2
SJMP UND2
START_T:
SETB SCL
SETB SDA
NOP
CLR SDA
NOP
NOP
NOP
NOP
CLR SCL
RET
STOP_T:
CLR SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
SETB SDA
RET
OUTBYTE_T:
MOV R2,#08H
MOV TT,A
OUTBY_LO:
JB TT.7,OUT_1
CLR SDA
SJMP OUTBY_N
OUT_1:
SETB SDA
OUTBY_N:
MOV A,TT
RL A
MOV TT,A
NOP
SETB SCL
NOP
NOP
NOP
NOP
CLR SCL
DJNZ R2,OUTBY_LO
SETB SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
CLR SCL
RET
ACK:
CLR SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
CLR SCL
RET
NACK:
SETB SDA
NOP
NOP
SETB SCL
NOP
NOP
NOP
NOP
CLR SCL
RET
INBYTE_T:
SETB SDA
MOV R2,#08H
MOV TT,#0FFH
INBY_LO:
NOP
NOP
NOP
NOP
SETB SCL
NOP
NOP
MOV A,TT
RL A
MOV TT,A
JB SDA,INBY_N
CLR TT.0
INBY_N:
CLR SCL
DJNZ R2,INBY_LO
RET
WRITC:
CALL START_T
MOV A,#90H
CALL OUTBYTE_T
MOV A,#0EEH
CALL OUTBYTE_T
CALL STOP_T
NOP
NOP
RET
WRITO:
CALL START_T
MOV A,#90H
CALL OUTBYTE_T
MOV A,#0A2H
CALL OUTBYTE_T
MOV A,#08H
CALL OUTBYTE_T
CALL STOP_T
NOP
NOP
RET
READT:
CALL START_T
MOV A,#90H
CALL OUTBYTE_T
MOV A,#0AAH
CALL OUTBYTE_T
CALL START_T
MOV A,#91H
CALL OUTBYTE_T
CALL INBYTE_T
MOV ZHENG,TT
CALL ACK
CALL INBYTE_T
MOV XIAO,TT
CALL NACK
CALL STOP_T
RET
BCD:
NOP
NOP
MOV A,ZHENG
MOV B,#0AH
DIV AB
MOV LER3,B
MOV B,#0AH
DIV AB
MOV LER2,B
MOV LER1,A
MOV A,#0H
JNB XIAO.7,BC_1
MOV A,#05H
BC_1:
MOV LER4,A
MOV DPTR,#NEI
MOV A,LER1
MOVC A,@A+DPTR
MOV LER1,A
MOV A,LER2
MOVC A,@A+DPTR
MOV LER2,A
MOV A,LER3
MOVC A,@A+DPTR
MOV LER3,A
MOV A,LER4
MOVC A,@A+DPTR
MOV LER4,A
RET
DELAY:
MOV DJJ,#00H
DJNZ DJJ,$
NOP
NOP
RET
SERL: ;CLR EA
MOV IE,#0
MOV TMOD,#20H
MOV TH1,#0F3H ;4800 ;12
; CLR TR1
MOV SCON,#40H
SETB TR1
; CLR ET1
; CLR ES
; SETB PT1
; CLR PS
SERLE: ;CLR REN
; MOV A,
MOV PCON,#80H
; MOV R1,#TEMP
MOV R2,#6
; SETB EA
; SETB IT1
CLR RI
MOV 20H,#0
MOV B,#0
MOV 21H,#0
SETB ES
SETB PS
SETB EA
SETB REN
RET
MAIN:
NOP
; MOV IE,#00H
MOV SP,#50H
MOV P1,#0FFH
MOV P3,#0FFH
MOV COUN1,#3H
MOV COUN2,#0H
CALL SERL
CALL WRITO
CALL WRITC
CALL READT
START:
NOP
NOP
; CALL READT
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
; CLR TI
; MOV A,21H
; MOV SBUF,A
; JNB TI,$
; CLR TI
; MOV A,22H
; MOV SBUF,A
; JNB TI,$
AJMP START
CALL READT
JB ZHENG.7,UNZERO
MOV A,ZHENG
CLR XIAO.0
CALL BCD
; SJMP DISPLAY
UNZERO:
MOV A,ZHENG
CPL A
JB XIAO.7,UNZER1
INC A
UNZER1:
MOV ZHENG,A;MCLR ZHENG.7
SETB XIAO.0
MOV A,ZHENG
CALL BCD
;DISPLAY:
; NOP
; MOV P1,#0FFH
; CLR LED1
; SETB LED2
; SETB LED3
; SETB LED4
; MOV P1,LER1
; CALL DELAY
; MOV P1,#0FFH
; CLR LED2
; SETB LED1
; SETB LED3
; SETB LED4
; MOV P1,LER2
; CALL DELAY
; MOV P1,#0FFH
; CLR LED3
; SETB LED1
; SETB LED2
; SETB LED4
; MOV P1,LER3
; CALL DELAY
; MOV P1,#0FFH
; CLR LED4
; SETB LED1
; SETB LED2
; SETB LED3
; MOV P1,LER4
; CALL DELAY
; DJNZ COUN1,DISPLAY
; MOV COUN1,#3H
; DJNZ COUN2,DISPLAY
; NOP
; NOP
; AJMP START
NEI:
DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,3FH
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -