|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 kinidrily 于 2019-1-16 14:33 编辑 + c8 k1 Q- E) p; U& j6 [5 W0 Q$ \
3 i- ? }) f% S* S51单片机温度控制高温低温报警 带proteus仿真和汇编源码
! |7 l: q7 w! W5 K! ?" {1 z" G& U8 p V
) f) s- v6 P" f; h
proteus仿真图( m% d: T1 X& P6 k& W1 U X
4 S8 a; G1 K: h5 b5 D3 N
# M& Z2 U! u. l( m" i6 s
51单片机温度控制高温低温报警汇编语言源程序:+ ^8 Q1 o" K( g4 r) _
LED_0 EQU 30H( ^7 m7 F6 t; ~: i6 N
LED_1 EQU 31H
4 u/ W5 i! v, @LED_2 EQU 32H
7 L- U7 |4 c$ G- f2 ?" d9 ^! QADC EQU 35H5 j/ a! H3 I6 y! j8 q$ f- K
TCNTA EQU 36H
$ |# v* |* [% }) _- XTCNTB EQU 37H
9 o x6 P6 Z# Y; O# {, ]: M; z+ FH_TEMP EQU 38H ;温度上限6 C2 { u7 {9 S6 r$ e
L_TEMP EQU 39H ;温度下限
0 {- a% `* s! \/ k# m8 pFLAG BIT 00H; J; ~( K9 d) g) Y/ ]0 ]/ d
H_ALM BIT P3.0. P% I2 T X; Z2 [% T) Q
L_ALM BIT P3.19 O2 O+ ~ D5 n9 F) K/ S2 A
SOUND BIT P3.7
0 ` W7 }3 E1 t; z9 FCLOCK BIT P2.4! S* \+ y2 e( @
ST BIT P2.5* e4 a# J7 t+ t9 ^4 J( o
EOC BIT P2.67 u' w' v/ G0 C" K1 \3 p/ ~, e0 R
OE BIT P2.7
; c" C5 q/ V/ w6 i } ORG 00H
u7 f# o( w7 g SJMP START" v& I* g0 Z M7 ]
ORG 0BH
8 _/ f( E+ q+ U: { LJMP INT_T0
3 @* A& |0 {, I. Z ORG 1BH. m# O9 C0 |+ ]8 x- g. `: g
LJMP INT_T17 t& a2 `& a4 U* Y) `& J' j
; w/ K4 d! b9 t4 n$ L- f4 ?
START: MOV LED_0,#00H, p6 I+ n3 s7 Q6 N
MOV LED_1,#00H, S" |6 M2 r2 [" n# G# b, \
MOV LED_2,#00H. r& {7 ~7 v; B$ j$ l
MOV DPTR,#TABLE ^3 w3 n8 p4 h2 X
MOV H_TEMP,#1530 v* l) W% ~/ ~4 {8 L) |3 k; _
MOV L_TEMP,#773 F/ _/ \; X1 d3 T7 c; u$ h
MOV TMOD,#12H
2 K% |% H, g: I o1 E MOV TH0,#245
5 f {: u6 E) x0 x1 h$ g0 i1 K MOV TL0,#02 d/ d8 P9 v) H6 F6 G
MOV TH1,#(65536-1000)/256! J9 j& `& y( K8 Z9 k7 \
MOV TL1,#(65536-1000)MOD 256% K# K& l1 u: g+ A7 |3 E
MOV IE,#8aH% [1 i' t$ {: X7 ?1 S7 Z6 u
CLR C
* h" D: H2 M& }( y% W! ~( D SETB TR0 ;为ADC0808提供时钟
3 W8 Q, m8 T) R A; X5 r2 h& BWAIT: SETB H_ALM
! a: C, o) ~( R3 d SETB L_ALM
! N2 h4 _ I" [& m8 p: W7 _ CLR ST
+ w, h) r, K% ?9 Z: Z$ R2 L! q: M SETB ST& o9 ]: D( i5 \0 w" [( F/ U9 ]
CLR ST ;启动转换
: T* S9 P& ]7 V# ^9 x3 A9 |9 x1 h JNB EOC,$$ l8 ~$ k! R7 r) K
SETB OE
2 P& k {% z$ a0 g. a7 \7 b MOV ADC,P1 ;读取AD转换结果
) a; ~; ~# j; m: ?# t" _ CLR OE
/ H* S% A& @" K MOV A,ADC
( W2 X. A+ S: I. \$ ]2 H# O5 B SUBB A,#77 ;判断是否低于下限% Z$ ?4 u& j% k3 J3 Z
JC LALM
; ` w9 ~4 Z* d: ?% ~ MOV A,H_TEMP
7 i! m4 i. R; L7 a1 ? MOV R0,ADC
1 L! m" V0 M C" e7 a- \$ E SUBB A,R0 ;判断是否高于上限
4 C0 B. u5 P( r" x2 h. ] JC HALM
# k1 ?6 ~6 v- V7 A/ A4 o# _! J CLR TR1
. g# U* A9 l8 [ LJMP PROC) e- Z( l2 U& ]) q
LALM: ;低温报警
- n/ f+ r4 i3 u. j2 B H CLR L_ALM
" s8 D! ]2 x0 |( h SETB TR1* i, o0 J. X, _6 l7 u
CLR FLAG- A0 L# g6 a+ h. X. o) ^1 b7 d3 v* k
LJMP PROC2 W5 U( }* {8 i# T$ @/ M' t
HALM: ;高温报警
4 B$ i+ K# O; ]. L2 g5 F CLR H_ALM
' S$ v5 [0 U* B& @, d4 l3 h SETB TR1
9 ?6 O7 e; {3 y8 b9 q SETB FLAG
^0 d4 x" `6 O$ i. z8 ? LJMP PROC7 H, n! H6 R+ s( I0 ~; H
PROC: MOV A,ADC ;数值转换' ^5 b5 \) L) {; h
MOV B,#100: ~ y7 ]; r9 U/ P
DIV AB
6 K! ^% ]5 t; r' c; V6 b2 ?9 u MOV LED_2,A
# O b" \1 H0 w( _+ w. g MOV A,B9 K0 @' {: `2 ]) A) @
MOV B,#106 \ Q- e5 H7 F/ [' C) J# r
DIV AB+ n; T- ~$ Y& p* i; s) g7 S; l
MOV LED_1,A4 l7 y! w- w# v0 G+ R
MOV LED_0,B
" ^: G8 c3 c6 b# d. n* M6 U" @ LCALL DISP
( K2 y5 k( v6 J) S3 b# `; I SJMP WAIT# S6 ]) c1 F5 ~
INT_T0: CPL CLOCK ;提供ADC0808时钟
# o, u3 `8 C# P# W( Y" C# b H' i RETI
( _# n" y2 A* l% \5 {) xINT_T1: MOV TH1,#(65536-1000)/256
/ f5 W7 N! J6 F9 I MOV TL1,#(65536-1000)MOD 256
" O E1 _( s I) s6 @' d CPL SOUND+ s7 [3 h$ \- @3 O/ o7 r z
INC TCNTA! Q! k/ s( A: T7 j
MOV A,TCNTA
' k/ e5 V# A2 Y j JB FLAG,I1 ;判断是高温警报还是低温警报
3 g& C! I3 j' U; V& X+ m, \ CJNE A,#30,RETUNE ;低温警报声
/ p M# @4 ^5 h0 x; x SJMP I2% j# l, o: K0 a' r [! ?% A0 W
I1: CJNE A,#20,RETUNE ;高温警报声. J! Z( W3 K& a- h0 ? G
I2: MOV TCNTA,#0
$ Q$ ~: i8 p9 S3 X6 T INC TCNTB" h! F" _9 y! i2 i& ~
MOV A,TCNTB& a& ~' \1 ^ W' B! ]( d
CJNE A,#25,RETUNE8 h* Y/ _; P5 P7 F% A+ A+ v
MOV TCNTA,#0
: L c; E- Q0 V: J# ~" y% l MOV TCNTB,#0
6 ]/ z8 d0 e' ~ LCALL DELAY2
# A: d9 S: }* _RETUNE: RETI
- {9 x7 N5 P8 S4 z 3 v# V# D( B& O" V0 O6 X
DISP: MOV A,LED_0 ;数码显示子程序
- w4 Y0 y* ?# r p# v; w0 t. S. q MOVC A,@A+DPTR x! }! f+ ?. j3 R% U, m9 F
CLR P2.3
! ?8 z ^6 O- Q" J6 i MOV P0,A
4 w; y$ v$ Q' I$ `& @; B+ J/ j8 I LCALL DELAY
3 Q+ h$ s/ Q: q* K4 Y) o SETB P2.3) d- O* m9 t, ^; B
MOV A,LED_1; c( T$ I3 B/ h& k" E9 Q. W9 d8 c
MOVC A,@A+DPTR2 Y1 a/ h! X2 ?8 z; k! Z* ?
CLR P2.2
8 R; j1 y1 D$ L8 ^+ A5 w MOV P0,A
; `4 U K5 `0 o" z1 M2 N LCALL DELAY
7 |' H7 z) `; w8 I3 B- V7 u SETB P2.2
( _6 `. D3 }# x9 j# J MOV A,LED_2, H3 _' Q7 w" C, r
MOVC A,@A+DPTR; o K2 @4 A* {! h
CLR P2.1
5 G# j' k, r( t" K. O MOV P0,A! @3 V. L' ]7 O% N, T
LCALL DELAY
, _) z& r% Y, m SETB P2.1
6 G \9 @6 n* c! e' s RET5 n: \( f2 Y) }+ Y3 x9 b
DELAY: MOV R6,#10 w1 V1 z" V$ f. ]5 M" a. h& {
D1: MOV R7,#250/ D4 H' U+ m$ O" C0 Q
DJNZ R7,$
4 X# g* C# @: L' y' j& D DJNZ R6,D1
F( c: r; x' O5 X RET5 Y p U! u" U2 j# ?, z, {; T9 E
DELAY2: MOV R5,#205 J1 \5 t( r# K) \6 {/ I
D2: MOV R6,#20
5 V7 K6 q" Y+ ND3: MOV R7,#2509 M; c8 N H, {0 E$ H& v7 g
DJNZ R7,$4 w2 C( F1 q9 w
DJNZ R6,D3# [) O {% S! u, D* \" m# o
DJNZ R5,D2; d3 {3 e' t4 }% |* y7 X5 ]
RET5 A0 {! O# M/ J4 m# I R& m
TABLE: DB 3FH,06H,5BH,4FH,66H( E" e- [( \8 l6 \$ d
DB 6DH,7DH,07H,7FH,6FH2 O$ M s$ E6 [' V; Z
END
+ u+ D$ J- j/ S9 r
F7 E" N8 s6 R* \9 a
- }2 G, k' W" y) ~$ s4 v# o" Q' v( d
51单片机温度控制高温低温报警仿真工程文件和汇编源码下载:
9 E, t: r- l7 v0 I0 }
- y, e1 |6 R; d3 i, r/ E4 x! U [) `, ]1 z3 e# H* Y; {4 N
|
|