用51單片機做的多路故障報警系統的proteus仿真原理圖如下:
0.png (38.05 KB, 下載次數: 58)
下載附件
2016-10-12 15:07 上傳
0.png (43.59 KB, 下載次數: 41)
下載附件
2016-10-12 15:09 上傳
所有資料下載:
多路故障報警系統.rar
(58.51 KB, 下載次數: 33)
2016-10-12 15:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
單片機源程序:
- #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
復制代碼
|