| | 网站首页 | 技术文章 | 专业论文 | PLC可编程 | 单片机 | 变频器 | 传感器 | 嵌入式系统 | 电源技术 | 运动与伺服 | | 校园招聘 | 留言板 | |
|
![]() |
|
| 您现在的位置: 自动化学习网 >> 技术文章 >> 单片机 >> 文章正文 |
|
|||||
| 智能红外工业控制器 | |||||
作者:佚名 文章来源:本站原创 点击数: 更新时间:2007-3-23 ![]() |
|||||
|
2.2 智能红外工业控制器 程序介绍:这个产品是通过遥控器控制定时时间来决 电器后,从而控制电磁阀开和关,以达到对石油含水量的 本实验仪完全模拟了这个产品,它的详细操作请参照附一 程序实例(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 CONFE: CJNE A,#01H,CONSH AJMP ONFE CONSH: CJNE A,#02H,COFFE 112 AJMP ONSH COFFE: CJNE A,#03H,COFSH AJMP OFFFE COFSH: AJMP OFFSH ;///////////////////////////////////////////// D2ISP: AJMP DISPLAY ;////////////////////////////////////////////////// ;STATUS ONFEN/////////////////////////////////////// ONFE: MOV A,#9EH MOV SBUF,A DD1: JNB TI,DD1 CLR TI ;E MOV A,#8EH MOV SBUF,A DD2: JNB TI,DD2 CLR TI ;F MOV A,#0ECH MOV SBUF,A DD3: JNB TI,DD3 CLR TI ;N MOV A,#0FCH MOV SBUF,A DD4: JNB TI,DD4 CLR TI ;O LCALL DELAY2 MOV A,BL1 CJNE A,#01H,ONFE 113 MOV A,SETTYPE_FLAG CJNE A,#01H,STA AJMP SETONFEN STA: AJMP STATUS ;////////////////////////////////////////////////// ;STATUS ON SH///////////////////////////////////// ONSH: ;display onus////////////////////////////////////// MOV A,#6EH MOV SBUF,A DD8: JNB TI,DD8 CLR TI ;H MOV A,#0B6H MOV SBUF,A DD7: JNB TI,DD7 CLR TI ;S MOV A,#0ECH MOV SBUF,A DD6: JNB TI,DD6 CLR TI ;N MOV A,#0FCH MOV SBUF,A DD5: JNB TI,DD5 CLR TI ;O LCALL DELAY2 MOV A,BL1 CJNE A,#01H,ONSH MOV A,SETTYPE_FLAG 114 CJNE A,#01H,STA1 AJMP SETONSH STA1: AJMP STATUS ;////////////////////////////////////////////////// ;STATUS OFF FE/////////////////////////////////// OFFFE: ;display ofad/////////////////////////////////////// MOV A,#09EH MOV SBUF,A DD10 : JNB TI,DD10 CLR TI ;E MOV A,#8EH MOV SBUF,A DD9: JNB TI,DD9 CLR TI ;F MOV A,#8EH MOV SBUF,A DD12: JNB TI,DD12 CLR TI ;F MOV A,#0FCH MOV SBUF,A DD11: JNB TI,DD11 CLR TI ;O LCALL DELAY MOV A,BL1 CJNE A,#01H,OFFFE MOV A,SETTYPE_FLAG 115 CJNE A,#01H,STA2 AJMP SETOFFEN STA2: AJMP STATUS ;////////////////////////////////////////////////// ;STATUS OFF SH/////////////////////////////////// OFFSH: MOV A,#6EH MOV SBUF,A DD14: JNB TI,DD14 CLR TI ;H MOV A,#0B6H MOV SBUF,A DD13: JNB TI,DD13 CLR TI ;S MOV A,#8EH MOV SBUF,A DD16: JNB TI,DD16 CLR TI ;F MOV A,#0FCH MOV SBUF,A DD15: JNB TI,DD15 CLR TI ;O LCALL DELAY2 MOV A,BL1 CJNE A,#01H,OFFSH MOV A,SETTYPE_FLAG CJNE A,#01H,STA3 116 AJMP SETOFFSH STA3: AJMP STATUS ;///////////////////////////////////////////// SETONFEN: CLR TR0 MOV C,P1.0 JNC FI AJMP FI1 FI: MOV DIS_MINUTE_LOW,#00H MOV DIS_MINUTE_HIGH,#00H MOV DIS_HOUR_LOW,#00H MOV DIS_HOUR_HIGH,#00H FI1: MOV SET_ON_MLOW,#00H MOV SET_ON_MHIGH,#00H SETONFEN2: INC SET_ON_MLO MOV A,SET_ON_MLOW CJNE A,#0AH,CJ MOV SET_ON_MLOW,#00H INC SET_ON_MHIGH MOV A,SET_ON_MHIGH CJNE A,#0AH,CJ MOV SET_ON_MHIGH,#00H CJ: MOV A,SET_ON_MLOW MOV DPTR,#SETTAB MOVC A,@A+DPTR 117 MOV SBUF,A D13: JNB TI,D13 CLR TI MOV A,SET_ON_MHIGH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D14: JNB TI,D14 CLR TI MOV A,SET_ON_HLOW MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D15: JNB TI,D15 CLR TI MOV A,SET_ON_HHIGH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D16: JNB TI,D16 CLR TI LCALL DELAY1 LCALL DELAY1 MOV ON_MINUTE_LOW,SET_ON_MLOW MOV ON_MINUTE_HIGH,SET_ON_MHIGH MOV ON_HOUR_LOW,SET_ON_HLOW MOV ON_HOUR_HIGH,SET_ON_HHIGH MOV A,SETTYPE_FLAG 118 CJNE A,#00H,SETONFEN1 SETB TR0 AJMP DISPLAY SETONFEN1: AJMP SETONFEN2 SETONSH: CLR TR0 MOV C,P1.0 JNC F2 AJMP FI2 F2: MOV DIS_MINUTE_LOW,#00H MOV DIS_MINUTE_HIGH,#00H MOV DIS_HOUR_LOW,#00H MOV DIS_HOUR_HIGH,#00 FI2: MOV SET_ON_HLOW,#00H MOV SET_ON_HHIGH,#00H SETONSH2: INC SET_ON_HLOW MOV A,SET_ON_HLOW CJNE A,#0AH,CJ1 MOV SET_ON_HLOW,#00H INC SET_ON_HHIGH MOV A,SET_ON_HHIGH CJNE A,#0AH,CJ1 MOV SET_ON_HHIGH,#00H CJ1: MOV A,SET_ON_MLOW MOV DPTR,#SETTAB 119 MOVC A,@A+DPTR MOV SBUF,A D17: JNB TI,D17 CLR TI MOV A,SET_ON_MHIGH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D18: JNB TI,D18 CLR TI MOV A,SET_ON_HLOW MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D19: JNB TI,D19 CLR TI MOV A,SET_ON_HHIGH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D20: JNB TI,D2 CLR TI LCALL DELAY1 LCALL DELAY1 MOV ON_MINUTE_LOW,SET_ON_MLOW MOV ON_MINUTE_HIGH,SET_ON_MHIGH MOV ON_HOUR_LOW,SET_ON_HLOW MOV ON_HOUR_HIGH,SET_ON_HHIGH 120 MOV A,SETTYPE_FLAG CJNE A,#00H,SETONSH1 SETB TR0 AJMP DISPLAY SETONSH1: AJMP SETONSH2 SETOFFEN: CLR TR0 MOV C,P1.0 JC F3 AJMP FI3 F3: MOV DIS_MINUTE_LOW,#00H MOV DIS_MINUTE_HIGH,#00H MOV DIS_HOUR_LOW,#00H MOV DIS_HOUR_HIGH,#00 FI3: MOV SET_OFF_MLOW,#00H MOV SET_OFF_MHIGH,#00H SETOFFEN2: INC SET_OFF_MLOW MOV A,SET_OFF_MLOW CJNE A,#0AH,CJJ1 MOV SET_OFF_MLOW,#00H INC SET_OFF_MHIGH MOV A,SET_OFF_MHIGH CJNE A,#0AH,CJJ1 MOV SET_OFF_MHIGH,#00H 121 CJJ1: MOV A,SET_OFF_MLOW MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D21: JNB TI,D2 CLR TI MOV A,SET_OFF_MHIGH MOV DPTR,#SETTA MOVC A,@A+DPTR MOV SBUF,A D22: JNB TI,D22 CLR TI MOV A,SET_OFF_HLOW MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D23: JNB TI,D23 CLR TI MOV A,SET_OFF_HHIGH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D24: JNB TI,D24 CLR TI LCALL DELAY1 LCALL DELAY1 MOV OFF_MINUTE_LOW,SET_OFF_MLOW 122 MOV OFF_MINUTE_HIGH,SET_OFF_MHIGH MOV OFF_HOUR_LOW,SET_OFF_HLOW MOV OFF_HOUR_HIGH,SET_OFF_HHIGH MOV A,SETTYPE_FLAG CJNE A,#00H,SETOFFEN1 SETB TR0 AJMP DISPLAY SETOFFEN1: AJMP SETOFFEN2 SETOFFSH: CLR TR0 MOV C,P1.0 JC F4 AJMP FI4 F4: MOV DIS_MINUTE_LOW,#00H MOV DIS_MINUTE_HIGH,#00H MOV DIS_HOUR_LOW,#00H MOV DIS_HOUR_HIGH,#00 FI4: MOV SET_OFF_HLOW,#00H MOV SET_OFF_HHIGH,#00H SETOFFSH2: INC SET_OFF_HLOW MOV A,SET_OFF_HLOW CJNE A,#0AH,CJJJ1 MOV 4CH,#00H INC SET_OFF_HHIGH MOV A,SET_OFF_HHIGH CJNE A,#0AH,CJJJ1 123 MOV SET_OFF_HHIGH,#00H CJJJ1: MOV A,SET_OFF_MLOW MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D25: JNB TI,D25 CLR TI MOV A,SET_OFF_MHIGH MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D26: JNB TI,D26 CLR TI MOV A,SET_OFF_HLOW MOV DPTR,#SETTAB MOVC A,@A+DPTR MOV SBUF,A D27: JNB TI,D27 CLR TI MOV A,SET_OFF_HHIGH MOV DPTR,#SETTAB | |||||