;;;ADC0809默认int5;;进行电压采集;;
;;;通过串口可以让0809工作在自动巡,或停显一个通上,或让巡通道的时间加长1-60min;;;
;;;fe fe 06(l)+04(ch)+01(1为停巡,0为巡)+02(巡的时间,越大值时间越长)+00(比较值)+(01)未定+08(CS校验)
;;命令正确单片机回43;;ASCII为“C”
;;;;fe fe 06 04 01 02 00 01 08为工作在4通道上不巡;;
;;;fe fe fe fe 06 04 00 02 00 01 07为巡示各通道电压,时间5秒上下;;
;;;;fe fe fe 06 04 00 22 01 01 28为巡示各通道电压,并且时间为20秒上下;;
;;;这些命令可存在24c02中这样一键完成操作2006/7/21;;;
ORG 0000H
AJMP MAIN
ORG 000BH
AJMP TIME_0
ORG 0023H
AJMP ES_0
ORG 0030H
MAIN:
MOV SP,#5FH
MOV P1,#00H
MOV P2,#0FFH
CLR P3.3;;;ALE STAR;;
CLR P3.7;;;DISP OUTDATA
MOV 3AH,#05H;;30H为通道数;;
MOV 3EH,#00H;;;LED FOR NUMBER
MOV 4FH,#01H
MOV 70H,#7FH;;;INPUT DATA FIRST ADDRE
MOV 71H,#00H
MOV 72H,#00H
MOV 73H,#00H
;;;SETB 20H;;;FOR H NO REP
;;CLR 20H
MOV 4EH,#01H
MOV 40H,#00H
MOV 41H,#00H
MOV 30H,#00H
MOV 31H,#00H
MOV 32H,#00H
MOV 33H,#00H
MOV 34H,#00H
MOV 35H,#00H
MOV 36H,#00H
MOV 37H,#00H
MOV TMOD,#22H
MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000) MOD 256
MOV TH1,#0F3H;;;0E6H;;1200
MOV SCON,#50H
MOV TCON,#55H
MOV PCON,#80H
MOV IE,#92H;;;82H
LOOP:
ANL 4EH,#03H
MOV 24H,4EH
CHDATA:
MOV A,3AH
CJNE A,#08H,CHREP
MOV 3AH,#00H
CHREP:
CLR C
ANL A,#07H
RRC A
MOV P3.4,C;;A
RRC A
MOV P3.5,C;;B
RRC A
MOV P3.6,C;;;C
MOV R7,#10
PLU2:
CLR ET0;;;CLOSE TIME0
SETB P3.3;;ALE STAR
CLR P3.3
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
JNB P3.2,$ ;;EOC
SETB P3.7;;;;ENABLE
MOV A,#30H
ADD A,3AH
MOV 38H,A;;;;FOR CH ADDRIVER DATA
MOV R0,A
MOV A,P0
MOV @R0,A
CLR P3.7;;DISPABLE
SETB ET0;;;OPEN TIME0
MOV R0,38H
MOV A,@R0
MOV B,#100;;
DIV AB
MOV 3BH,A;;BAI
MOV A,B
MOV B,#10
DIV AB
MOV 3CH,A;;SHI
; MOV 3DH,B;;GE
MOV 3FH,B;;GE
DJNZ R7,PLU2
AJMP LOOP
; AJMP PLU2;;CHDATA;;;LOOP
ES_0:
CLR ES
JBC RI,RDDATA
JBC TI,TXDATA
SETB ES
LJMP ND1
RDDATA:
MOV R0,70H;;;INPU ADDRE
CCDATA:
JNB RI,$
MOV A,SBUF
CJNE A,#0FEH,RD1
CLR RI
AJMP CCDATA
RD1:
MOV @R0,A
MOV R6,A
MOV 71H,R0
MOV 72H,R6
DEC R0
CLR RI
CCDATA2:
JNB RI,$
MOV A,SBUF
MOV @R0,A
CLR RI
DEC R0
DJNZ R6,CCDATA2
DEC 72H
MOV R6,72H
DEC 71H
MOV R0,71H
CLR A
DCS:
ADD A,@R0
DEC R0
DJNZ R6,DCS
MOV 73H,@R0
CJNE A,73H,NDD2
MOV A,71H
MOV R1,A
MOV 3AH,@R1
DEC R1
MOV 4EH,@R1
DEC R1
MOV 4FH,@R1
DEC R1
MOV 41H,@R1
SETB 21H;;;;;;WAIT BIT
SETB ES
MOV A,#43H
MOV SBUF,A
NDD2:
MOV 70H,#7FH
ND1:
SETB ES
RETI
TXDATA:
SETB ES
RETI
DISPLED:
MOV DPTR,#LEDB
MOV A,3EH
CJNE A,#04H,DISP4
MOV A,3AH
MOVC A,@A+DPTR ;;CHLED
MOV P2,#0FFH
MOV P1,A
MOV P2,#0EFH
INC 40H
MOV A,40H
CJNE A,#250,NN1
INC 41H
MOV A,41H
CJNE A,4FH,NN1;;;;40;;for 10sec;;;;;;;;;;;;;;;;;
JB 20H,NN1
INC 3AH ;;;4FH PLAY WATI TIME
MOV 41H,#00
NN1:
MOV 3EH,#0FFH
DISP4:
CJNE A,#03H,DISP3;;;"-"DP
MOV P2,#0FFH
MOV P1,#40H
MOV P2,#0F7H
;; MOV 3EH,#0FFH
DISP3:
CJNE A,#02H,DISP1 ;;BAI
MOV A,3BH
MOVC A,@A+DPTR
MOV P2,#0FFH
MOV P1,A
MOV P2,#0FEH
;;;;MOV 3EH,#0FFH;;;;KKKKKKK
DISP1:
CJNE A,#01H,DISP2 ;;;SHI
MOV A,3CH
MOVC A,@A+DPTR
MOV P2,#0FFH
MOV P1,A
MOV P2,#0FDH
DISP2:
CJNE A,#00H,DISPOVER;;; GEI
MOV A,3FH
;; MOV A,3DH
MOVC A,@A+DPTR
MOV P2,#0FFH
MOV P1,A
MOV P2,#0FBH
DISPOVER:
INC 3EH
RET
TIME_0:
CLR TR0
CLR EA
ACALL DISPLED
MOV TH0,#(65536-4000)/256
MOV TL0,#(65536-4000)MOD 256
SETB TR0
SETB EA
RETI
LEDB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H
END
