|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 kinidrily 于 2019-1-16 14:33 编辑
( Q% r* c3 D3 K* e7 [8 Q
7 E# F2 t: p k- e" [1 c51单片机温度控制高温低温报警 带proteus仿真和汇编源码+ K p, w; }1 Q6 b5 U7 J
# G; I* X. {5 O1 o4 @2 U) ]! W
" x l+ V) i9 N4 B# N4 E; Yproteus仿真图( l% N. D! \1 `
' I- q) q2 k2 p5 I7 C' b K( l
" D- K" G& ^2 ?* ~/ W
51单片机温度控制高温低温报警汇编语言源程序:$ Z' O. Z; X3 Z r
LED_0 EQU 30H
8 y* e. E2 W& L0 ?. F/ }0 NLED_1 EQU 31H# J7 l b! N5 f# A( E, a% C
LED_2 EQU 32H
/ D k4 c: r4 r& x `ADC EQU 35H. g% O, s) \, V3 k& [ J* L* Q
TCNTA EQU 36H
' X7 z5 S4 f4 A6 R3 ?- G8 ^2 j1 g) |TCNTB EQU 37H
" }6 R$ b& p) a" ]2 \H_TEMP EQU 38H ;温度上限
( y, s. _5 \( K3 W$ O2 k A% B" [ K" G! IL_TEMP EQU 39H ;温度下限
! z% C1 @" K- [6 m. R3 sFLAG BIT 00H
; ?% z q: n" v. H j7 `' m E- XH_ALM BIT P3.0
. q# p1 \! [" X+ g* J4 M( `3 aL_ALM BIT P3.1- R$ N! \1 T+ }4 ^# x* @0 U5 g
SOUND BIT P3.7
) i2 A' E1 h6 W9 S+ TCLOCK BIT P2.42 X, d+ Z+ `. O7 K! \+ e
ST BIT P2.5
/ N6 X, c% v9 A+ N" nEOC BIT P2.6% d$ k- Z/ B8 P# N, y W( g
OE BIT P2.7% Y# {* f% P) B" x& n' L- f7 D! |
ORG 00H' u$ O1 ~+ v% R) T+ q( u
SJMP START1 H' V6 v- C$ o/ s. O
ORG 0BH { H5 J2 r& _! I ]
LJMP INT_T07 V; [" V4 e% `7 `$ e$ h
ORG 1BH! ~8 |! f; y; b3 z3 z
LJMP INT_T1
) H4 U6 l# W3 j" L* k& G% d% Y& B! Q
" P# p! {! d; {5 FSTART: MOV LED_0,#00H
! V4 V k! R$ r0 ?3 d MOV LED_1,#00H
/ u0 V; X+ _. I( K6 p! I1 Y MOV LED_2,#00H
1 Q) z1 v B% \6 Y% I MOV DPTR,#TABLE& `$ O: M: `, _0 ?
MOV H_TEMP,#153
: q! e& C2 k% |) Q/ `) O MOV L_TEMP,#77
+ Q2 Y% d% T# \ ] MOV TMOD,#12H |! e4 G3 A8 y
MOV TH0,#245/ [% Q6 T* t" ^
MOV TL0,#0
9 L5 K/ _. H7 P, S/ | MOV TH1,#(65536-1000)/256
) r6 A9 p+ O) }2 k. D- ]1 d MOV TL1,#(65536-1000)MOD 256
+ Z& m) _& k' A- M- W7 T MOV IE,#8aH6 O! c% g+ \/ w6 e$ t$ k5 Y) k
CLR C
. Y, J1 S) n" K: Z% Z- s5 Z SETB TR0 ;为ADC0808提供时钟* t0 B- O0 a% g5 b" P! |
WAIT: SETB H_ALM
& T: v4 ]) j9 K/ S SETB L_ALM0 S: t* ^0 t7 b
CLR ST% N9 n7 d' L4 W: x. h
SETB ST G4 i8 \' z4 a4 F k9 m2 i
CLR ST ;启动转换3 |1 r, k7 p1 I6 Q; r2 j
JNB EOC,$
0 ]" }; A( V, `' ~; t SETB OE : e: r* \* \% Y, E ?2 f/ H/ d
MOV ADC,P1 ;读取AD转换结果
+ m* Z- r7 y: X# R ?! } CLR OE% v A9 G) M8 s- k6 q
MOV A,ADC3 A( ~# c3 ~* ~1 p, L
SUBB A,#77 ;判断是否低于下限( T, P; [' \6 ?& n" V
JC LALM) |" T* T" g" k
MOV A,H_TEMP
7 `9 a0 l3 m, S/ [ MOV R0,ADC7 b8 Y, ~5 ]* t' g) f% n
SUBB A,R0 ;判断是否高于上限
( X- j, q) V8 u0 W# d, | JC HALM, e1 i: `$ `3 n5 M+ J$ O
CLR TR1+ x( F1 ^; Z& ?7 {2 p1 u; w
LJMP PROC9 Z4 r/ l# a: c- Z$ j# I S# ]7 l+ s
LALM: ;低温报警
+ B0 h, e: Z1 M+ ?- g! h0 B CLR L_ALM. T: W9 X8 T; X3 _; Z6 w9 R
SETB TR11 \2 N& M6 k ]9 ^
CLR FLAG( s+ N* r1 d* [
LJMP PROC
) [% Q; p+ D4 S# K4 \, I' ^* U; XHALM: ;高温报警, j6 q4 F: @1 y" r5 T) {
CLR H_ALM
9 {& k9 W3 w, L2 S' O5 e2 V) @ SETB TR1; I1 T. j9 F1 U" H
SETB FLAG- M" U: k1 j' V' F3 F2 X. E' X
LJMP PROC- f8 y) n! U: G! n
PROC: MOV A,ADC ;数值转换0 V7 o2 @/ S) b3 L( s
MOV B,#100$ W) r& h1 \# j
DIV AB! M' w$ d O3 S, T, [3 E. Q" W
MOV LED_2,A
3 W( ?2 g4 O! C% Z MOV A,B
1 ~% D" W4 t$ e+ i9 H9 J$ ~' G MOV B,#10
& w. l) }3 L. q7 m+ G+ [ DIV AB
2 m3 l6 B1 s8 B8 ]$ q( R MOV LED_1,A! O2 Y+ _8 F7 z) @' t" a# M; E8 R" `# J
MOV LED_0,B
" t% p- P0 s4 E. l+ @7 o1 X LCALL DISP9 a1 N! q7 [4 _; f ^5 F! u
SJMP WAIT
. {, e$ `0 }0 {" X8 k- m$ l& fINT_T0: CPL CLOCK ;提供ADC0808时钟% {: o( n# U2 b+ U! W* t
RETI/ W a. t3 e" g# I, k4 z
INT_T1: MOV TH1,#(65536-1000)/256
- H1 |" @9 k4 E7 B* z! P( X4 E; r MOV TL1,#(65536-1000)MOD 256) Q0 c U7 z% O+ j+ ?4 ]5 w+ m
CPL SOUND
4 @0 f9 O( ], C, e* x$ y8 r( y; ~ INC TCNTA6 a- O8 N" e c: A) n
MOV A,TCNTA
4 |: ?, k' x( V2 W JB FLAG,I1 ;判断是高温警报还是低温警报/ p7 o7 h; s/ A4 o( e& T$ S2 _2 `: {
CJNE A,#30,RETUNE ;低温警报声3 N* j- { q/ _" J! K( q
SJMP I24 _7 }* a# J* m1 v) Q1 N( i2 X
I1: CJNE A,#20,RETUNE ;高温警报声) T3 \& M8 T* L2 ^
I2: MOV TCNTA,#0' P. }; X S3 z8 Y0 |
INC TCNTB
- I; k0 X6 N3 P* H# o1 Y MOV A,TCNTB
( F4 A& u+ _8 g CJNE A,#25,RETUNE3 I0 ~4 g. n/ P( @
MOV TCNTA,#0
/ p* N1 k& C: M3 I; f" Q& r7 a MOV TCNTB,#0( _6 O/ Z( \5 H& A; ?+ d
LCALL DELAY2
1 d& j* |! F) ]% HRETUNE: RETI& E6 @) Y9 n- C# G0 \& d
# S7 C1 e- Q0 a1 I
DISP: MOV A,LED_0 ;数码显示子程序+ e: [: x y' `; V% k" Z) [
MOVC A,@A+DPTR
; f; N' J1 t& {3 k CLR P2.3
" w. I3 H: X) M3 V* N MOV P0,A3 n& G+ [: s, l$ v* p
LCALL DELAY
% ^5 \9 j! L) V5 G" T SETB P2.3
% ~6 J2 |3 _. T* ~+ P MOV A,LED_1, C) i1 Q% M7 N' \
MOVC A,@A+DPTR9 J" ~8 L& x, B# U7 W A5 O7 ^. _5 ?
CLR P2.2
! x& I% F8 N S5 R* k MOV P0,A
% x, n0 g9 N) c9 ?0 S LCALL DELAY: k5 ~- }( w2 o2 p
SETB P2.2
. Q' f5 M. ~1 y- y6 p8 R MOV A,LED_2
M$ N z% G9 P0 h% H# G: V& ^ MOVC A,@A+DPTR( A% l' |7 I+ B0 s0 \+ T7 w
CLR P2.11 `( `9 ^" [0 S: Z5 b
MOV P0,A8 A: f+ X6 S* ?- Y2 d0 O6 F
LCALL DELAY( f2 ]; m1 S9 [
SETB P2.1
* ^# z, E0 B% {9 W7 M RET
: e9 b4 `$ m/ J. f3 B7 N) @! A5 hDELAY: MOV R6,#10
# }, o* A' ^2 i) v. }/ ?5 cD1: MOV R7,#2507 t9 x3 J2 n" r. x$ P' K2 L
DJNZ R7,$% ~) w$ S5 f5 F1 I
DJNZ R6,D1 _% i) I" S; \ I+ w3 L2 k
RET
. N+ K* g5 }" c8 RDELAY2: MOV R5,#20
`8 |( _7 t8 M, U6 qD2: MOV R6,#20
9 i3 G- e& v% B0 Y6 BD3: MOV R7,#250 U6 G4 B4 }* S( P
DJNZ R7,$: }5 w$ q/ Z8 w/ p- W
DJNZ R6,D3+ `: G3 I5 H9 F8 i" v
DJNZ R5,D2
' }: p& O) P ~8 i( C7 x$ n RET* B9 v5 r' T" V3 ~
TABLE: DB 3FH,06H,5BH,4FH,66H8 u$ c5 b' A6 Z, R4 b6 z! s5 f! p
DB 6DH,7DH,07H,7FH,6FH
+ l/ e, s: t" N, ^; \4 P$ K END
+ ~7 W' }9 V6 n: y* u e/ r
, M, q$ ]2 U% |6 `
5 o5 P# j6 \) | W. ], v% W9 _+ l; p* j
51单片机温度控制高温低温报警仿真工程文件和汇编源码下载:
. j3 c k1 d- S: A5 C1 k# k4 a1 g# K8 i( G/ R+ r( k2 M) P
& `; z% O3 y/ L* E4 w6 @
|
|