导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→四段定时程序[原创][czha1]

 *第319篇: 四段定时程序[原创]

  
楼 主:czha1 2007年6月26日06:42
 四段定时程序[原创]
四段定时程序
可编程定时控制器程序可供参考       .欢迎提出意见

   功能说明: 

   1:该开发板输入12伏--24伏120瓦5伏5瓦两组电源。分别从端口1起接入24伏正,24伏负,5伏正,5伏负。可以 

      是开关电源或稳压电源,严禁极性接错。5伏为芯片工作电源。保险管为12-24伏过载保护。 

   2:该开发板已输入四时段循环程序。最长每段定时999秒。通过按键选择所需时段运行时间。 

   3:端口5--8接外部输入负信号可以是按钮行程开关,光电开关,磁性开关等,用以控制各时段信号的触发。 

     每一输入点对应一个输出口端口9接输出信号公共极负端口10-13接输出24伏正信号驱动。可直接接气动阀。  

     电磁阀或继电器。每个输出口可带动28瓦负载。 

     使用方法: 

   1:按键0为复位键,当电源不稳定导致程序出错,按0键从程序起始处运行。 

   2:按键1为加计数键,选择好所需时段后按下1键从000- -999循环计数,至最大值999改为000反复计数。并 

     存入24c02储存器储存,停电后数据保持。下次开机数据自动读出。 

   3:按键2为减计数键,选择好所需时段后按下2键从999- -000反循环计数。至最小值000改为999反复计数。 

     并存入24c02储存器储存,停电后数据保持。下次开机数据自动读出。 

   4:按键3为选择时段键,按下后显示- -1,- -2,- -3,- -4。分别为第一段,第二段, 

     第三段,第四段运行时间。选择所需时段后即可按加减键选择设定时间。 

   5:按键5为备用键,一般不用,设定数据时不能按下。 

   *设定时间不能为0,否则将导致程序运行出错。 

   *如不需设定数据,按下按键3显示- -4后,即第4段时间后,端口5输入24伏负电即运行第一 

   段设定值。并显示设定值,端口10输出24伏正,用以输出驱动负载信号,一秒钟减一秒,至 

   设定值减为0,端口10关闭。然后显示第二段时间,端口6输入24伏负,并显示第二段设定值,端口11输出 

   24伏正一秒钟减一秒,至设定值减为0,端口11关闭。 

      T1G EQU 50H
      T1S EQU 51H
      T1B EQU 52H
      T2G EQU 53H
      T2S EQU 54H
      T2B EQU 55H
      T3G EQU 56H
      T3S EQU 57H
      T3B EQU 58H
      T4G EQU 59H
      T4S EQU 5AH
      T4B EQU 5BH
      SDA BIT P3.4
      SCL BIT P3.3
      JAO BIT P3.2
      FY  BIT P3.7
      XH  BIT P3.5
      ORG 0000H
      LJMP MAIN
      ORG 0030H
MAIN: SETB JAO
      SETB FY
      MOV SCON,#00H
      MOV A,#01H
      ACALL RD24
      MOV T1G,A
      MOV A,#02H
      ACALL RD24
      MOV T1S,A
      MOV A,#03H
      LCALL RD24
      MOV T1B,A
      MOV A,#04H
      ACALL RD24
      MOV T2G,A
      MOV A,#05H
      LCALL RD24
      MOV T2S,A
      MOV A,#06H
      LCALL RD24
      MOV T2B,A
      MOV A,#07H
      LCALL RD24
      MOV T3G,A
      MOV A,#08H
      LCALL RD24
      MOV T3S,A
      MOV A,#09H
      LCALL RD24
      MOV T3B,A
      MOV A,#0AH
      LCALL RD24
      MOV T4G,A
      MOV A,#0BH
      LCALL RD24
      MOV T4S,A
      MOV A,#0CH
      LCALL RD24
      MOV T4B,A
      LCALL XS1
FY1:  JB FY,K1
      LCALL D1
      JB FY,K1
      LCALL XS2
      LJMP FY2
K1:   MOV P1,#0FEH
      JB JAO,FY1
      LCALL D1
      JB JAO,FY1
      MOV A,T1G
      INC A
      MOV T1G,A
      CJNE A,#0AH,XA
      MOV T1G,#00H
      MOV A,T1S
      INC A
      MOV T1S,A
      CJNE A,#0AH,XA
      MOV T1S,#00H
      MOV A,T1B
      INC A
      MOV T1B,A
      CJNE A,#0AH,XA
      MOV T1B,#00H
      LJMP XA
XA:  LCALL XS1
      MOV A,#01H
      MOV B,T1G
      LCALL WT24
      LCALL DEL
      MOV A,#02H
      MOV B,T1S
      LCALL WT24
      LCALL DEL
      MOV A,#03H
      MOV B,T1B
      LCALL WT24
      LJMP FY1
FY2:  JB FY,K2
      LCALL D1
      JB FY,K2
      LCALL XS3
      LJMP FY3
K2:   MOV P1,#0FDH
      JB JAO,FY2
      LCALL D1
      JB JAO,FY2 
      MOV P1,#0FDH
      MOV A,T2G
      INC A
      MOV T2G,A
      CJNE A,#0AH,XB
      MOV T2G,#00H
      MOV A,T2S
      INC A
      MOV T2S,A
      CJNE A,#0AH,XB
      MOV T2S,#00H
      MOV A,T2B
      INC A
      MOV T2B,A
      CJNE A,#0AH,XB
      MOV T2B,#00H
      LJMP XB
XB:   LCALL XS2
      MOV A,#04H
      MOV B,T2G
      LCALL WT24
      MOV A,#05H 
      MOV B,T2S
      LCALL WT24
      LCALL DEL
      MOV A,#06H
      MOV B,T2B
      LCALL WT24
      LJMP FY2
FY3:  JB FY,K3
      LCALL D1
      JB FY,K3
      LCALL XS4
      LJMP FY4
K3:   MOV P1,#0FBH
      JB JAO,FY3
      LCALL D1
      JB JAO,FY3
      MOV A,T3G
      INC A
      MOV T3G,A
      CJNE A,#0AH,XC
      MOV T3G,#00H
      MOV A,T3S
      INC A
      MOV T3S,A
      CJNE A,#0AH,XC
      MOV T3S,#00H
      MOV A,T3B
      INC A
      MOV T3B,A
      CJNE A,#0AH,XC
      MOV T3B,#00H
      LJMP XC
XC:   LCALL XS3
      MOV A,#07H
      MOV B,T3G
      LCALL WT24
      MOV A,#08H
      MOV B,T3S
      LCALL WT24
      LCALL DEL
      MOV A,#09H
      MOV B,T3B
      LCALL WT24
      LJMP FY3
FY4:  JB FY,K4
      LCALL D1
      JB FY,K4
      LCALL XS1
      LJMP FY1
K4:   MOV P1,#0F7H
      JB JAO,XH1
      LCALL D1
      JB JAO,XH1
      MOV A,T4G
      INC A
      MOV T4G,A
      CJNE A,#0AH,XD
      MOV T4G,#00H
      MOV A,T4S
      INC A
      MOV T4S,A
      CJNE A,#0AH,XD
      MOV T4S,#00H
      MOV A,T4B
      INC A
      MOV T4B,A
      CJNE A,#0AH,XD
      MOV T4B,#00H
      LJMP XD
XD:   LCALL XS4
      MOV A,#0AH
      MOV B,T4G
      LCALL WT24
      MOV A,#0BH
      MOV B,T4S
      LCALL WT24 
      LCALL DEL
      MOV A,#0CH
      MOV B,T4B
      LCALL WT24
XH1:  JB XH,FY4
      LCALL D1
      JB XH,FY4
      LCALL XS1
      MOV P1,#0F7H
      LCALL DESY1
      MOV P1,#0FFH
      LCALL XS2
XH2:  JB XH,XH2
      LCALL D1
      JB XH,XH2
      MOV P1,#0FBH
      LCALL DESY2
      MOV P1,#0FFH
      LCALL XS3
XH3:  JB XH,XH3
      LCALL D1
      JB XH,XH3
      MOV P1,#0FDH
      LCALL DESY3
      MOV P1,#0FFH
      LCALL XS4
XH4:  JB XH,XH4
      LCALL D1
      JB XH,XH4
      MOV P1,#0FEH
      LCALL DESY4
      MOV P1,#0FFH
      LCALL XS1
      LJMP XH1
DESY1: MOV R7,T1B
      MOV R6,T1S
      MOV R5,T1G
      LCALL SY1
      RET
DESY2: MOV R7,T2B
      MOV R6,T2S
      MOV R5,T2G
      LCALL SY1
      RET
DESY3: MOV R7,T3B
      MOV R6,T3S
      MOV R5,T3G
      LCALL SY1
      RET
DESY4: MOV R7,T4B
      MOV R6,T4S
      MOV R5,T4G
      LCALL SY1
      RET
SY1:  CJNE R5,#00H,SYA
      LJMP SJ1
SYA:  DEC R5
      LCALL DE1M
      LCALL XS
      CJNE R5,#00H,SYA
      CJNE R6,#00H,SJ1
      CJNE R7,#00H,BJ1
      LJMP YSRT
SJ1:  LCALL DE1M
      LCALL XS
      DEC R6
      MOV R5,#09H
      LCALL XS
      LJMP SYA
BJ1:  LCALL DE1M
      LCALL XS
      DEC R7
      MOV R6,#09H
      MOV R5,#09H
      LCALL XS
      LJMP SYA
YSRT: RET
XS1:  MOV A,T1B
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,T1S
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,T1G
      LCALL CB
      MOV SBUF,A
      LCALL TD
      RET
XS2:  MOV A,T2B
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,T2S
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,T2G
      LCALL CB
      MOV SBUF,A
      LCALL TD
      RET
XS3:  MOV A,T3B
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,T3S
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,T3G
      LCALL CB
      MOV SBUF,A
      LCALL TD
      RET
XS4:  MOV A,T4B
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,T4S
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,T4G
      LCALL CB
      MOV SBUF,A
      LCALL TD
      RET
XS:   MOV A,R7
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,R6
      LCALL CB
      MOV SBUF,A
      LCALL TD
      MOV A,R5
      LCALL CB
      MOV SBUF,A
      LCALL TD
      RET
CB:   MOV DPTR,#TAB
      MOVC A,@A+DPTR
      RET
RD24: PUSH ACC
      SETB SDA
      CLR SCL
      LCALL STAR
      MOV A,#0A0H
      LCALL SHIFT
      LCALL ACK
      POP ACC
      LCALL SHIFT
      LCALL ACK
      ACALL STAR
      MOV A,#0A1H
      LCALL SHIFT
      LCALL ACK
      SETB SDA
      MOV R7,#08H
      CLR A
      SETB SDA
RD0:  RL A
      SETB SCL
      MOV C,SDA
      MOV ACC.0,C
      CLR SCL
      DJNZ R7,RD0
      NOP
      RET
WT24: PUSH ACC
      SETB SDA
      CLR SCL
      LCALL STAR
      MOV A,#0A0H
      LCALL SHIFT
      LCALL ACK
      POP ACC
      LCALL SHIFT
      LCALL ACK
      MOV A,B
      LCALL SHIFT
      LCALL ACK
      LCALL STOP
      LCALL DEL
      RET
STAR: CLR SDA
      LCALL DEL
      SETB SDA       
      LCALL DEL
      SETB SCL
      CLR SDA
      LCALL DEL
      CLR SCL
      RET
STOP: CLR SDA
      LCALL DEL
      SETB SCL
      LCALL DEL
      SETB SDA
      RET
ACK:  SETB SCL
      LCALL DEL
      CLR SCL
      RET
SHIFT: MOV R7,#08H
SH01:  RLC A
      MOV SDA,C
      SETB SCL
      LCALL DEL
      CLR SCL
      DJNZ R7,SH01
      RET
TD:   JBC TI,TD
      CLR TI
      RET 
DEL:  MOV R1,#02H
FA:   MOV R3,#0FFH
F1:   DJNZ R3,F1
      DJNZ R1,FA
      RET
D1:   MOV R3,#0FFH
F3:   MOV R2,#32H
F2:   DJNZ R2,F2
      DJNZ R3,F3
      RET
DE1M: MOV R3,#0FFH
DEM:  MOV R2,#0F0H
DEN:  MOV R1,#03H
DEO:  DJNZ R1,DEO
      DJNZ R2,DEN
      DJNZ R3,DEM
      RET
      ORG 0450H
TAB:  DB 3FH,06H,5BH,4FH,66H
      DB 6DH,7DH,07H,7FH,6FH
      END
常州


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:EEPROM,开机读写都正常,运行几秒后,读正常,写死机.

[下一篇主题]:求助单键开关