|
程序介紹:這個產(chǎn)品是通過遙控器控制定時時間來決 定 P1.0 口輸出高電平和低電平的時間 , 在 P1.0 口接一個繼 電器后,從而控制電磁閥開和關(guān),以達到對石油含水量的 定時智能排放,F(xiàn)已應(yīng)用在上海金山煉油廠,反映良好。 本實驗儀完全模擬了這個產(chǎn)品,它的詳細操作請參照附一 (以用于上海金山煉油廠的產(chǎn)品說明)。 程序?qū)嵗?honwai.asm ) : ORG 0000H AJMP MAIN ORG 000BH AJMP DIN0 ;TIME ORG 00013H AJMP INT 106 MAIN : ;DATA DEFINE//////////////////////////////////////// ON_MINUTE_LOW EQU 30H ON_MINUTE_HIGH EQU 31H ON_HOUR_LOW EQU 32H ON_HOUR_HIGH EQU 33H OFF_MINUTE_LOW EQU 34H OFF_MINUTE_HIGH EQU 35H OFF_HOUR_LOW EQU 36H OFF_HOUR_HIGH EQU 37H DIS_MINUTE_LOW EQU 38H DIS_MINUTE_HIGH EQU 39H DIS_HOUR_LOW EQU 40H DIS_HOUR_HIGH EQU 41H TIMES_ADD_NUMBER EQU 42H TIMEM_ADD_NUMBER EQU 3FH INTERRUPT_NUMBER EQU 43H INTSET_FLAG EQU 44H ETTYPE_FLAG EQU 4FH BL EQU 3EH BL1 EQU 4EH SET_ON_MLOW EQU 3AH SET_ON_MHIGH EQU 3BH SET_ON_HLOW EQU 3CH SET_ON_HHIGH EQU 3DH SET_OFF_MLOW EQU 4AH SET_OFF_MHIGH EQU 4BH SET_OFF_HLOW EQU 4CH 107 SET_OFF_HHIGH EQU 4DH ;////////////////////////////////////////////////// ;DATA GIVE FIRST NUMBER////////////////////////// MOV ON_MINUTE_LOW,#00H MOV ON_MINUTE_HIGH,#02H MOV ON_HOUR_LOW,#00H MOV ON_HOUR_HIGH,#00H MOV OFF_MINUTE_LOW,#00H MOV OFF_MINUTE_HIGH,#06H MOV OFF_HOUR_LOW,#03H MOV OFF_HOUR_HIGH,#00H MOV DIS_MINUTE_LOW,#00H MOV DIS_MINUTE_HIGH,#00H MOV DIS_HOUR_LOW,#00H MOV DIS_HOUR_HIGH,#00H MOV TIMES_ADD_NUMBER,#00H MOV TIMEM_ADD_NUMBER,#00H MOV INTERRUPT_NUMBER,#00H MOV INTSET_FLAG,#00H MOV SETTYPE_FLAG,#00H MOV BL,#00H MOV BL1,#00H MOV SET_ON_MLOW,#00H MOV SET_ON_MHIGH,#00H MOV SET_ON_HLOW,#00H MOV SET_ON_HHIGH,#00H MOV SET_OFF_MLOW,#00H MOV SET_OFF_MHIGH,#00H 108 MOV SET_OFF_HLOW,#00H MOV SET_OFF_HHIGH,#00H ;////////////////////////////////////////////////// MOV TMOD,#00010001B MOV TL0,#0AFH MOV TH0,#3CH SETB IT1 SETB EX1 SETB TR0 SETB ET0 SETB PT0 SETB EA CLR P1.0 ;////////////////////////////////////////////////// ;DISPLAY/////////////////////////////////////////// DISPLAY: MOV BL1,#00H MOV A,DIS_MINUTE_LOW MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D1: JNB TI,D1 CLR TI MOV A,DIS_MINUTE_HIGH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D2: JNB TI,D2 109 CLR TI MOV A,DIS_HOUR_LOW MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D3: JNB TI,D3 CLR TI MOV A,DIS_HOUR_HIGH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D4: JNB TI,D4 CLR TI LCALL DELAY1 ;INTSETFLAG////////////////////////////////// MOV A,INTSET_FLAG CJNE A,#00H,AONFE AJMP DISP AONFE: CJNE A,#01H,AONSH AJMP ONFE AONSH: CJNE A,#02H,AOFFE AJMP ONSH AOFFE: CJNE A,#03H,AOFSH AJMP OFFFE AOFSH: AJMP OFFSH ;///////////////////////////////////////////// DISP: JNB P1.0,DISON AJMP DISOFF 110 DISON: MOV A,#0ECH MOV SBUF,A D8: JNB TI,D8 CLR TI MOV A,#0FCH MOV SBUF,A D7: JNB TI,D7 CLR TI MOV A,#00H MOV SBUF,A D6: JNB TI,D6 CLR TI MOV A,#00H MOV SBUF,A D5: JNB TI,D5 CLR TI LCALL DELAY1 ;INTSETFLAG//////////////////////////////////////// MOV A,INTSET_FLAG CJNE A,#00H,BONFE AJMP D1ISP BONFE: CJNE A,#01H,BONSH AJMP ONFE BONSH: CJNE A,#02H,BOFFE AJMP ONSH BOFFE: CJNE A,#03H,BOFSH AJMP OFFFE BOFSH: AJMP OFFSH 111 ;///////////////////////////////////////////// D1ISP: AJMP DISPLAY DISOFF: MOV A,#8EH MOV SBUF,A D12: JNB TI,D12 CLR TI MOV A,#8EH MOV SBUF,A D11: JNB TI,D11 CLR TI MOV A,#0FCH MOV SBUF,A D10: JNB TI,D10 CLR TI MOV A,#00H MOV SBUF,A D9: JNB TI,D9 CLR TI LCALL DELAY1 LCALL DELAY1 ;INTSETFLAG/////////////////////////////////// STATUS: MOV A,INTSET_FLAG CJNE A,#00H,CONFE AJMP D2ISP |