|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 kinidrily 于 2019-1-16 14:33 编辑 0 ~' p* n- Z0 @: E' B* H; l
: l& H, D9 h, D
51单片机温度控制高温低温报警 带proteus仿真和汇编源码
+ i5 F- A2 R, [( L5 d
" k$ z3 j( R& O
$ c0 H ?$ x5 q( i, sproteus仿真图
/ g) J6 D1 Q5 v, ]: o2 O
+ P! [8 T' R+ f
. @6 ]6 t6 R! y7 y" w51单片机温度控制高温低温报警汇编语言源程序:1 s6 l9 M6 c2 u6 m
LED_0 EQU 30H- |# C. S: A( X2 \3 M" U3 w
LED_1 EQU 31H: f$ \ n' `% c y3 w& [
LED_2 EQU 32H
& f/ G# b+ o' x: m9 QADC EQU 35H
% L( [4 T, u. w# CTCNTA EQU 36H, F) F: j# w5 R: z
TCNTB EQU 37H
% h# m8 S4 z, t! rH_TEMP EQU 38H ;温度上限
: o% J! z% `0 [% r- {( p% IL_TEMP EQU 39H ;温度下限
# O. x6 d4 P8 l, R8 z2 OFLAG BIT 00H' ~- e7 f% ~4 F* \; f& i X
H_ALM BIT P3.09 p9 F& y0 g1 Q& |
L_ALM BIT P3.19 V" }8 r# G8 a9 [
SOUND BIT P3.7; |; n5 u+ D7 Z
CLOCK BIT P2.48 e1 w! g7 W' O
ST BIT P2.5+ K6 R" f0 z, V0 }8 W& ^2 \
EOC BIT P2.6
7 E8 H9 q2 S/ P! U$ FOE BIT P2.7 j7 D3 E) T H4 t( g) {' m, B
ORG 00H
) W6 {) b8 ~- n( ?& M SJMP START
# I$ W& m/ K- Y- p ORG 0BH- q" d& Q! Z4 k, g- `
LJMP INT_T0
$ B& z! }# S& I4 g5 R. R& G6 ]# x ORG 1BH9 j5 h7 `, D0 i( a+ j3 B. z
LJMP INT_T17 b- S9 ^+ r' _6 K4 y) N6 Q) A% U. p
' W" e3 N4 w% E$ e, _" S5 TSTART: MOV LED_0,#00H: Y& {* F5 F- f, X
MOV LED_1,#00H, D A8 U! R1 D$ S+ p
MOV LED_2,#00H# Y: S- k `$ j8 G5 N
MOV DPTR,#TABLE
3 z4 { O" R- W l! L MOV H_TEMP,#153
$ G, k& d6 c$ l7 Z MOV L_TEMP,#77
9 n2 b$ l# l$ M3 P MOV TMOD,#12H, h7 z( ?- K S6 O; f# O ~
MOV TH0,#2459 K* B6 w; |: r% }$ U- X
MOV TL0,#02 C7 k' U3 ^. H' F- l: J7 Z
MOV TH1,#(65536-1000)/256, ` z% r0 b8 n" u w! ?0 F" _& n* S
MOV TL1,#(65536-1000)MOD 256
0 n7 Z9 u# S1 P. W4 D: a MOV IE,#8aH+ O0 L: J0 w s6 e* v; |
CLR C4 J6 P, M3 S' Q) g
SETB TR0 ;为ADC0808提供时钟3 ]6 p( m3 o; q* Q& ~
WAIT: SETB H_ALM6 w" z$ R9 I3 L5 R. o! t1 y
SETB L_ALM
3 ^. a: y" l5 c; F$ ]: } CLR ST
& Q; g, d8 \% L! d. L6 v SETB ST
& @' U' W5 X% G CLR ST ;启动转换
" P( }3 W" d! `! ~6 ] JNB EOC,$
2 ^0 i5 j# w! s) r7 N SETB OE
. \9 x- \' ?# ]/ s5 i MOV ADC,P1 ;读取AD转换结果 r: H0 k* e$ `* M7 n8 V) w
CLR OE
" J& R1 I. x7 Z, d1 a MOV A,ADC" C4 Q. }. h4 k% @( E# j
SUBB A,#77 ;判断是否低于下限
' V3 T' {9 R$ K6 { JC LALM& Z# h7 n# W% K: r
MOV A,H_TEMP; Z4 ^; J5 i z- P& g C4 U/ w
MOV R0,ADC
! ^1 f' J% N# p8 d- s T SUBB A,R0 ;判断是否高于上限( X' i# N! b' Z2 i6 J5 Q
JC HALM) L! z6 ]( Y0 \5 I9 {$ s! g8 E
CLR TR1, h: E& A$ v/ M8 H6 G
LJMP PROC. P* G d1 x* j0 a( \5 u
LALM: ;低温报警, g2 b, x' C) Y- L
CLR L_ALM* h: ~( r4 ?1 v1 d% s
SETB TR1
( Y8 w+ z; d k CLR FLAG7 ?# s. R! Q) r: @. Y
LJMP PROC( G K- F/ T2 k: L5 z8 B
HALM: ;高温报警
}* ?& i# {1 ? CLR H_ALM B5 @! {: a& I8 R5 D) g
SETB TR1
8 `5 K9 K2 y. t& S- Z% d/ t SETB FLAG
0 ?+ |6 F* ?$ C' `1 d9 q2 y LJMP PROC' J1 m7 k+ a% u/ J# T
PROC: MOV A,ADC ;数值转换( O, B; m5 k, y" @1 l1 Y
MOV B,#100
; m2 m6 x0 G9 E( W w" W# J DIV AB
! M: b" N5 a' i MOV LED_2,A1 W$ ?3 v! F V. e8 ^' A* W) U s8 q
MOV A,B
/ j; Y% S9 w! \/ E; W MOV B,#10! R0 I3 ~& x* M) N
DIV AB
- ~* M- x* Q( P' a MOV LED_1,A
: K1 {3 V7 V. G8 W. { MOV LED_0,B4 g( U% \9 m+ z0 L9 G
LCALL DISP
8 D1 U+ j) K, ?8 m% a3 s6 T' N) z SJMP WAIT
. U" O3 j' D' p! X- oINT_T0: CPL CLOCK ;提供ADC0808时钟2 o, q* O% M/ Y8 q. |9 r9 m) Y, @6 f
RETI
3 ]' U& E6 Q) K+ h5 ?6 uINT_T1: MOV TH1,#(65536-1000)/256
0 u: ^0 X) o8 |4 o e* z- L- W MOV TL1,#(65536-1000)MOD 2569 F* y% C* E+ o* u3 a9 Z- A' P0 Y# g
CPL SOUND& s2 u0 O; Q! C( q) H% N6 Y
INC TCNTA( P0 W: Y! ]$ B) r3 E' p
MOV A,TCNTA0 K! S$ |6 K0 x6 ?5 h3 U4 N. U
JB FLAG,I1 ;判断是高温警报还是低温警报
+ e# L/ K9 U# z" V/ q7 z CJNE A,#30,RETUNE ;低温警报声
# p" h( G$ Q. S: s SJMP I2
1 ?4 O; x% T9 C I1: CJNE A,#20,RETUNE ;高温警报声, A& L% d! \9 p; P: `& D* `
I2: MOV TCNTA,#0; U- V3 P0 a7 m5 j- @6 Q" g
INC TCNTB0 A/ D) |( p# K3 j! ?
MOV A,TCNTB
6 j9 ^& G" ?7 E CJNE A,#25,RETUNE" u% Y. k9 s: @, l9 O( C
MOV TCNTA,#0* a% t6 G) z; z% `7 t) N9 s/ h/ q
MOV TCNTB,#0
! h: e- k) ]# R3 X+ y LCALL DELAY2! B" I5 R, |& e
RETUNE: RETI4 D+ t& j% W4 }
* S9 \# p' |. sDISP: MOV A,LED_0 ;数码显示子程序
`7 f5 T" G g( `7 G/ k MOVC A,@A+DPTR
6 {1 }. I1 h/ w. [ CLR P2.3
2 g! |6 y% m1 J! }8 F1 L MOV P0,A
5 `- F5 G# e( X9 l: R$ o4 V6 ?% h LCALL DELAY1 \- e! I0 t/ \- }3 e+ p+ A/ S
SETB P2.3
9 R2 c% S$ T4 d. o. w: G MOV A,LED_1: s- l8 R/ `" t; G
MOVC A,@A+DPTR/ y/ x) B! r4 @3 N
CLR P2.2# k2 s% e/ k! }. F- Q# c! G
MOV P0,A+ l* b( Q5 W% A9 u* S
LCALL DELAY; ~$ F( a8 W0 |! `
SETB P2.2 B9 [5 I2 n+ l* k5 V7 ?
MOV A,LED_2
1 K5 \/ P. ]- J$ b* ^% c; q MOVC A,@A+DPTR8 g7 ?* _% g6 v' ]) D
CLR P2.1( O. E% V; z1 t$ @% Z
MOV P0,A- ^- ]# S$ d6 p6 L
LCALL DELAY0 b, C/ j/ E/ _! P2 x7 _! h" Y
SETB P2.1
/ ~5 t, N8 n: X! `3 z( A% K3 d. z RET
' n9 n* S' e R1 B' iDELAY: MOV R6,#100 ]( F5 a. i& P' H
D1: MOV R7,#2506 K5 C' A6 K8 X3 W [2 @0 Q
DJNZ R7,$& H! a* m7 X! S
DJNZ R6,D1
$ e. D: L4 h$ W+ O RET* O, |' a: U& N, X. ~4 Q
DELAY2: MOV R5,#205 E+ h$ O. [" {# r
D2: MOV R6,#20
* K( P; w2 i2 z4 zD3: MOV R7,#250
( w; S5 G* k0 o1 m L DJNZ R7,$6 L. E2 {( D, _ t
DJNZ R6,D3# `* [: \/ v/ k& ^8 i7 v
DJNZ R5,D22 w7 q2 `, `1 U0 q
RET- h$ \) h( R1 ~$ {# ]: M9 \: d
TABLE: DB 3FH,06H,5BH,4FH,66H6 o1 ?/ w) s O7 f( d
DB 6DH,7DH,07H,7FH,6FH6 p6 A# P/ M# v" t d
END
( q& q7 I/ e9 d/ u& h8 F. \6 B3 B& J4 Q6 W6 F9 b8 W
S6 f5 u- \+ n' `" c+ l6 T- e& ~; O. q2 l
51单片机温度控制高温低温报警仿真工程文件和汇编源码下载:5 k. i- w: g3 O6 X1 {
" S& K5 [8 m" u. f
& N" J& m- Y5 f' l. ?$ S |
|