用51单片机做的多路故障报警系统的proteus仿真原理图如下:
所有资料下载:
多路故障报警系统.rar
(58.51 KB, 下载次数: 33)
单片机源程序:
- #define SA1 InMap0
- #define SA2 InMap1
- #define SB1 InMap2
- #define SB2 InMap3
- #define Q0 OutMap0
- #define Q1 OutMap1
- #define Q2 OutMap2
- #define T0 timer[0].DT
- #define T1 timer[1].DT
- void initi_timer()
- {
- timer[0].K=2/0.05;
- timer[1].K=1/0.05;
- }
- void process()
- {
- bit M0,M1;
- time(0,(SA1|SA2)&(~T1));
- time(1,T0);
- Q0=((T0|M0)&SA1)|SB2;
- Q1=((T0|M1)&SA2)|SB2;
- M0=(SB1|M0)&SA1;
- M1=(SB1|M1)&SA2;
- Q2=(SA1&(~M0))|(SA2&(~M1))|SB2;
-
- }
- M0 BIT 26H.0
- M1 BIT 26H.1
- SA1 BIT InMap0
- SA2 BIT InMap1
- SB1 BIT InMap2
- SB2 BIT InMap3
- Q0 BIT OutMap0
- Q1 BIT OutMap1
- Q2 BIT OutMap2
-
- Initi_Timer: MOV K0_L, #40
- MOV K0_H, #0
- MOV K1_L, #20
- MOV K1_H, #0
- RET
-
- Process: MOV C,SA1
- ORL C,SA2
- ANL C,/DT1
- LCALL Tim0
- MOV C,DT0
- LCALL Tim1
-
- MOV C,DT0
- ORL C,M0
- ANL C,SA1
- ORL C,SB2
- MOV Q0,C
-
- MOV C,DT0
- ORL C,M1
- ANL C,SA2
- ORL C,SB2
- MOV Q1,C
-
- MOV C,SB1
- ORL C,M0
- ANL C,SA1
- MOV M0,C
-
- MOV C,SB1
- ORL C,M1
- ANL C,SA2
- MOV M1,C
-
- MOV C,SA1
- ANL C,/M0
- MOV 26H.2,C
- MOV C,SA2
- ANL C,/M1
- ORL C,26H.2
- ORL C,SB2
- MOV Q2,C
-
- RET
复制代码
|