|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 kinidrily 于 2019-1-16 14:33 编辑 ; b y, [3 A. C% M/ n7 z8 z: @
6 K" w% I) a& G! V: [51单片机温度控制高温低温报警 带proteus仿真和汇编源码
1 Z3 u! B( F8 h7 G: G- A) v& L3 g4 L0 e0 ]! E* v4 N; M# z; D
% O, s3 ?) ]2 Q
proteus仿真图, V Q8 T P# V$ G
9 i8 P2 `! c y5 t" H4 d5 X
( g6 ? i1 A ?' d) b5 T51单片机温度控制高温低温报警汇编语言源程序:
! ]8 n; p: {6 L }LED_0 EQU 30H' s. W% _3 Y/ K" t P, J
LED_1 EQU 31H
# N3 \* Y8 H6 ?) r& r" |$ NLED_2 EQU 32H7 m, ^! ^0 q: M- k4 K4 K
ADC EQU 35H1 P: g6 `8 k& _9 U, E& P/ ?
TCNTA EQU 36H! v0 L! c' D0 O: C
TCNTB EQU 37H
$ l& e' k% o* X4 AH_TEMP EQU 38H ;温度上限
% i8 [, T6 x k- \L_TEMP EQU 39H ;温度下限
8 Y8 O. M% `5 gFLAG BIT 00H& H$ }. @) c4 b1 r
H_ALM BIT P3.0
( X1 ?1 g" G+ V2 u6 tL_ALM BIT P3.1" E$ M) o D5 q/ \4 j4 q
SOUND BIT P3.72 z- ~0 G2 r/ X6 ]2 k; `. R
CLOCK BIT P2.4
. B8 @6 m% K4 b- t% i# X# B: \ST BIT P2.5: ^! s: I% \. l2 ^' E( }
EOC BIT P2.6
* Y' R: L' ^9 [. l3 F/ ?2 V0 L# HOE BIT P2.7- U& q$ @9 X! B' Y# k" T$ d! Q# z
ORG 00H
# V& \: V1 t# I' @ SJMP START
( w' `7 o; F; R, c. H2 j2 y" Q ORG 0BH
% r/ y: ~/ z0 z! u LJMP INT_T0
* @6 q4 c ?) V% j1 m U$ X ORG 1BH
! E* b* ~- b% J0 ~5 h LJMP INT_T10 S$ m3 v6 ~0 L; O+ A& |' G" Y
6 \% L, q# L+ h' X1 Y% USTART: MOV LED_0,#00H; B# c. v$ R9 E, }
MOV LED_1,#00H! O1 n, [, ? G8 B& }
MOV LED_2,#00H
) V& L0 I$ W: T3 x MOV DPTR,#TABLE O Y& [2 M6 t! q: v. u6 E' H+ @7 [
MOV H_TEMP,#153) e2 x1 m) X% g+ A% I7 d; F
MOV L_TEMP,#77
2 X/ ?7 V3 q5 Q; ]# \. k MOV TMOD,#12H
' `% v3 J/ E; o! U; X MOV TH0,#245+ b' i s, e9 u% r* @& N. I( D9 }. _
MOV TL0,#0
1 q }% A$ c- ]. N, ^" R MOV TH1,#(65536-1000)/2560 M2 t( U1 U) r- v
MOV TL1,#(65536-1000)MOD 256) T+ _$ E6 L" _( X' w* e4 C! C) l y1 h* z
MOV IE,#8aH
. K% B y4 p. \ CLR C4 f5 L& i7 _5 R+ Q, q* W' @* l
SETB TR0 ;为ADC0808提供时钟* H2 V! P- g6 x( G
WAIT: SETB H_ALM! w7 H: C( H9 b; h
SETB L_ALM
$ M/ w _- j: H+ b0 O' |7 L CLR ST( t1 d; m% j4 ]5 q0 s* B0 X
SETB ST+ n1 M8 T, { ^" W5 d+ j4 Y
CLR ST ;启动转换 U! N3 o k9 \7 F4 ^$ E
JNB EOC,$
' e* z! k( e" ^% p SETB OE
+ V$ H" K6 @" P4 g* q& c MOV ADC,P1 ;读取AD转换结果( R; Q* K7 o4 P- n- _
CLR OE
' O+ w, ?. ?3 O! ~" K1 ] MOV A,ADC
% R. ]" y2 D: P3 m# k- f SUBB A,#77 ;判断是否低于下限& K. Z3 K# F9 x/ r
JC LALM" A, m O5 N& c6 O7 I" p
MOV A,H_TEMP2 l6 ~5 l( k9 _2 K) \
MOV R0,ADC8 b7 Z k2 x7 a( w
SUBB A,R0 ;判断是否高于上限4 O$ S0 G2 `9 s- E
JC HALM6 t* ?" L4 y: g- C% g, l' O9 x
CLR TR1
8 Z- U. Q$ p3 S4 p! n& n LJMP PROC b6 d3 S5 }& S7 p6 W" E8 Q
LALM: ;低温报警% }) k! r9 x2 i6 _, y
CLR L_ALM" J2 A2 B: Q/ ^# [3 C
SETB TR1
* m; V* D B# W7 V CLR FLAG% E0 ~) U- Q; j- Q6 D9 C
LJMP PROC% w! x Q7 k" n; A
HALM: ;高温报警
7 x+ P! {3 ]8 W) n CLR H_ALM7 X/ I6 I. k$ J
SETB TR1& V8 B C4 H5 v3 J2 ~1 i
SETB FLAG
1 U! S6 m0 v0 f |( f LJMP PROC4 V' n% S: X' |
PROC: MOV A,ADC ;数值转换 [ J5 V s) E* ~, r+ Q* k
MOV B,#100: n( @, z3 s: q. h8 I6 {
DIV AB
+ M" l+ n$ v: B MOV LED_2,A, H: s8 n9 P1 O: @
MOV A,B
" Q7 J: ?( v+ W" i& ` MOV B,#100 I- e0 q. ^/ D/ c! X. \' P" B0 J9 r p
DIV AB+ J# ]2 Q# f' x2 ?* U/ k# D5 p
MOV LED_1,A+ g* \- ^5 ?' d" N% R7 D
MOV LED_0,B; F9 V2 I1 ~2 f" _; B
LCALL DISP2 t/ }6 h# Z$ e$ X5 T
SJMP WAIT4 k, q _ e1 F( ?/ r- w" d' C
INT_T0: CPL CLOCK ;提供ADC0808时钟# V. @ _4 s* F p! T! f. }6 b
RETI
3 R$ C5 F; T9 t8 tINT_T1: MOV TH1,#(65536-1000)/256
; r: S; Z, W% o8 c1 p- @% j- Z MOV TL1,#(65536-1000)MOD 256
+ Y4 H$ a! ]3 T- i0 k* k CPL SOUND
" {/ [# M4 U3 Y# M$ d* j INC TCNTA1 h$ S5 Q. _5 ], V: u, g6 V; T6 O
MOV A,TCNTA
' G8 s& d5 ]$ q6 ^8 J) S3 g( f JB FLAG,I1 ;判断是高温警报还是低温警报
- L9 d) b1 Z$ q6 T+ p( T' x* b& w; { CJNE A,#30,RETUNE ;低温警报声
4 [4 f: J% z4 J, r. \9 O SJMP I25 J$ U. q: w- h u
I1: CJNE A,#20,RETUNE ;高温警报声, T; m# d7 U2 t9 g9 S- u& Z5 P
I2: MOV TCNTA,#0: K6 h* N) d' D
INC TCNTB
/ ^4 f% u( Y7 p( [; X/ _' k1 P+ w MOV A,TCNTB& R! M" j, F# h! S, o z
CJNE A,#25,RETUNE
7 J* h/ p" n% t4 n% }! [ MOV TCNTA,#0
& s& Q/ z6 y/ k1 K MOV TCNTB,#0
/ I2 S q1 J; L" h( `4 M a LCALL DELAY2
! ?, r) p$ V7 P3 L1 ARETUNE: RETI, K% s" Z9 J6 B7 d0 V
! Z( h' e/ J8 b# A8 r3 j
DISP: MOV A,LED_0 ;数码显示子程序5 h: \# a& N$ y$ }1 r* ?% {; U9 J
MOVC A,@A+DPTR
% K% B3 N- h. v- m CLR P2.3
" C; O; [0 X4 {' g$ \. r MOV P0,A
) Q% c5 K/ B) \% B LCALL DELAY. T& q6 K1 i4 L( w8 c# g7 X
SETB P2.3
& F4 Z5 Z5 t% l! [: m MOV A,LED_1
* {; T: v9 e: R7 P$ I0 m7 N, ?9 p9 A) h MOVC A,@A+DPTR3 I& b. H, J$ `! E
CLR P2.2
. l2 B M+ _& O- X* q% C MOV P0,A6 }1 {, B) ~# l. D
LCALL DELAY7 Z8 J$ U a3 J8 O, O/ W
SETB P2.2: T9 d/ `4 A7 `& \# k. V$ R
MOV A,LED_2
/ l, y2 p9 ~4 e0 |; g3 Z8 N: K, N MOVC A,@A+DPTR) d% H# h7 p+ d3 f- x5 l) @
CLR P2.1# L6 R" ~- o. f0 t* z3 ?
MOV P0,A
* e7 u" Q6 P; y8 I [ LCALL DELAY0 v; }8 n2 i+ {% Q9 k
SETB P2.1( K* F3 Q% s9 f) b" D( q
RET2 T% x" }1 O: Q1 h
DELAY: MOV R6,#10+ h* s) ~# ], I/ ?4 V/ a! r( N( i
D1: MOV R7,#250! L' K% Z& A: x( n5 x# L* [
DJNZ R7,$
! M4 ?$ f4 X9 {) T* ] d- m DJNZ R6,D1
# O6 ]0 y$ m- v/ a4 g+ n( l$ v5 J RET
7 p {2 L0 w* v$ b+ S% U3 G$ nDELAY2: MOV R5,#20$ W8 q$ e& x4 m, R# [
D2: MOV R6,#208 `* c2 p" B* G4 S
D3: MOV R7,#250+ e) f/ H) C; T' J6 e
DJNZ R7,$
; Y" n/ f* P7 v8 c+ \! Y+ m e DJNZ R6,D3
# k: E) K/ @& ?; b l DJNZ R5,D2/ {4 Y `1 p) {; V# I9 L% T" T3 n
RET( O% U/ e- ~" E, w q9 i1 F
TABLE: DB 3FH,06H,5BH,4FH,66H* M+ Q* Z5 U: w k: p, s
DB 6DH,7DH,07H,7FH,6FH- w2 n, @1 a) R8 k3 Z0 T- O; C0 }
END
* |4 c3 d% p5 L# v
1 t3 o. g& H2 ^# A5 [
8 E5 ]7 d' l7 {! B4 t* f: Y
& }- t T3 K O* r51单片机温度控制高温低温报警仿真工程文件和汇编源码下载:
3 D! q: k/ g! F& v1 M5 j" L! G" n: M( ~2 h
- e! T2 Q# e7 N+ y, `
|
|