|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 kinidrily 于 2019-1-16 14:33 编辑 , d; U! E& W9 X
6 V( e+ o, K# p+ i51单片机温度控制高温低温报警 带proteus仿真和汇编源码
6 P' g2 C: y+ O( W; H
7 w/ x" L1 F4 x- [: D
6 t6 T# I' {; [$ E6 Eproteus仿真图5 y! z! J/ c K0 y/ a
- ?2 S& i2 W8 L' e5 X" g) O, A8 m" H+ ]" U
51单片机温度控制高温低温报警汇编语言源程序:4 J0 N" @9 o1 k. _, Y4 \. N( h* |
LED_0 EQU 30H
( U/ n6 N5 N; N GLED_1 EQU 31H2 g* b& X1 C: @- {
LED_2 EQU 32H+ P3 `4 t7 L# U; o3 }
ADC EQU 35H
5 v" i s. `) _) f: _9 FTCNTA EQU 36H6 X4 W' q5 [( m2 y+ r; V
TCNTB EQU 37H
) b0 c; j% y2 D3 CH_TEMP EQU 38H ;温度上限5 S, ~- p7 W( G
L_TEMP EQU 39H ;温度下限" c/ F% W0 G1 K% `
FLAG BIT 00H
2 n6 ~0 E3 {* ?) ]6 sH_ALM BIT P3.0
$ R' j3 v7 G! ? o( C) X+ [9 x gL_ALM BIT P3.1
6 n4 |* Q6 m: y/ K/ uSOUND BIT P3.7- o8 Z' z- Z6 p* O5 Y
CLOCK BIT P2.4/ p- s4 m$ H! ?
ST BIT P2.5, L) N& K. w% V, v
EOC BIT P2.6, y, A) p7 \) W3 a
OE BIT P2.7 Z; z- {9 ?: ]' m. P) c: D
ORG 00H# v7 g7 a, c+ M5 I1 N% D
SJMP START* a$ X3 j- Q4 h |; a: r
ORG 0BH
2 I2 K4 H: T7 S D/ c LJMP INT_T08 h% c3 ~1 A* Z* V# G t; v/ }
ORG 1BH8 o0 c2 s2 N$ Q! w
LJMP INT_T1
! \& [4 n7 B; F/ p
3 @, A- c" n( W' OSTART: MOV LED_0,#00H
2 F5 R9 T ]# M" @ MOV LED_1,#00H
% G/ [5 d& W; L* X MOV LED_2,#00H
: D2 C( _) F, a+ f MOV DPTR,#TABLE
) r6 u6 U# P4 ]" o1 H& | MOV H_TEMP,#153
: W1 T6 Y! U/ H) c2 D5 Q MOV L_TEMP,#77
* g! @3 v) G Y2 L4 L MOV TMOD,#12H, g# R" O& f3 x+ g, [% k* H6 J5 ^# N
MOV TH0,#245
+ H7 H$ X3 h+ r$ z! x' [. w MOV TL0,#0
7 R8 ~) M- F; U MOV TH1,#(65536-1000)/256
" p( q4 [3 |/ V( B7 s* Z) B MOV TL1,#(65536-1000)MOD 2568 j: [* u6 ~+ q o, ^$ v! E
MOV IE,#8aH
) t1 T" t6 D7 J T: X CLR C( t; ]: T8 I" Y3 ?4 o" j
SETB TR0 ;为ADC0808提供时钟2 \8 c% i6 A; w; V( t& Z( N
WAIT: SETB H_ALM1 [. l: i! I, j+ K, h& j0 V
SETB L_ALM7 _/ B% a: ?2 @' l2 w
CLR ST
" P) d& y0 h% A! h SETB ST. O T* I" h4 Y% p& y8 l7 x
CLR ST ;启动转换3 E+ P. S: e3 K {9 ^% ?# |; X* z
JNB EOC,$4 Y9 @: r8 M- J; S
SETB OE
1 R$ Y; \; u( R0 w' h MOV ADC,P1 ;读取AD转换结果/ e' i5 C5 q: D8 ~. s
CLR OE
; m7 J& p) k; L MOV A,ADC* c2 y: W4 O9 ]: o
SUBB A,#77 ;判断是否低于下限1 q6 G& `+ H, _0 U1 N+ C }: h2 U0 N
JC LALM
$ ^% `% q2 ^% U# @6 U, O7 _, G MOV A,H_TEMP( Z; H8 Q5 U7 S) o* W# {
MOV R0,ADC
( ^% j" C1 L8 Q+ X SUBB A,R0 ;判断是否高于上限
# X0 r3 s9 a: ^+ n! Z6 H JC HALM1 U5 V- k2 ]- u
CLR TR1) {5 J1 ~" I* } I+ R, E$ v* G$ Q1 y
LJMP PROC
0 q: z" ^0 k5 S2 ULALM: ;低温报警
2 p# ?2 G+ G2 t2 Y4 p0 b CLR L_ALM7 W) N& r; v, Y5 W0 z
SETB TR1
) }, W, {: g; X& F CLR FLAG4 [7 I) y5 ^' N% B) P( c
LJMP PROC
% j4 J8 ?3 z/ I. l1 c+ l; hHALM: ;高温报警 }9 e4 T0 H3 O3 C, ]5 P
CLR H_ALM- k, G- `. e4 `( R K8 O/ s
SETB TR1+ S# E1 M2 L' Z& c
SETB FLAG2 ?1 j3 k, M" ?6 ]# V
LJMP PROC
( P8 A0 ]0 U5 d: [6 [& a3 v6 K- hPROC: MOV A,ADC ;数值转换. p' \& ^9 ]# r
MOV B,#100
) k3 U6 O) B7 b6 G# X DIV AB
8 `. j6 q' F5 }/ L! Y, o MOV LED_2,A) @! Q7 o7 N0 ?& `. v! e
MOV A,B
9 }% u+ u' E9 m# a% V1 A4 i% g" c' U; } MOV B,#10
2 G0 }+ d) Y: n$ n" e( {6 O DIV AB; ?0 j% u5 F4 \4 B
MOV LED_1,A
% `7 D: O% A' J3 E# A6 o4 `" O MOV LED_0,B
! t1 O4 |$ P8 S2 o6 s LCALL DISP- M, \, G$ p' m8 [3 S# E
SJMP WAIT3 @: e9 I7 X) X h- u
INT_T0: CPL CLOCK ;提供ADC0808时钟
0 n5 u2 W" B/ `( G RETI$ E/ M8 c3 Z6 h6 o3 V9 U% N) f& [' P
INT_T1: MOV TH1,#(65536-1000)/2560 e6 C/ y! \! b% S& J
MOV TL1,#(65536-1000)MOD 256" R" f, ]8 E; Q) j. ?+ d0 U
CPL SOUND
* J! k8 u M$ u/ @0 R7 } INC TCNTA% W- j+ [) J4 A' Z, |; s. g
MOV A,TCNTA% [( W! _& ?+ A. d; B* z2 `
JB FLAG,I1 ;判断是高温警报还是低温警报
+ y, c9 ]3 n7 g: D CJNE A,#30,RETUNE ;低温警报声3 u3 ~ P" E4 t* ?4 P2 U) }9 j
SJMP I2
9 @; R; I6 y: p3 a0 d I1: CJNE A,#20,RETUNE ;高温警报声
: q. J% w+ D' S. a) h I2: MOV TCNTA,#0% X1 [' C3 i. d& E* O) d' C1 z
INC TCNTB
]3 O- ~' X5 M e6 n MOV A,TCNTB
$ v) |) n4 b% N CJNE A,#25,RETUNE/ c/ I! b' ]. G" q
MOV TCNTA,#0
5 d4 B; P* b- g& { MOV TCNTB,#0
$ Z( ]. |! J8 ~! [4 T; v LCALL DELAY2) [- w$ H3 r+ v- Y5 q6 ^, @
RETUNE: RETI6 C. G7 @4 f' P* I4 A8 {
9 I# v! a. P0 @- K- c; nDISP: MOV A,LED_0 ;数码显示子程序9 |$ D$ s9 R/ K
MOVC A,@A+DPTR
+ B" Y9 U8 H% ]/ G& C$ [ CLR P2.3
% i- [4 V I" J MOV P0,A ]9 z( n7 _6 X: q# v; i$ F6 J
LCALL DELAY
7 b$ G" [! N, E) S! Z SETB P2.3. t4 M; r/ p, I9 E' d
MOV A,LED_1
; d" ?$ ^' x$ w# l MOVC A,@A+DPTR
8 C: w+ P/ d$ l4 u: ^7 l CLR P2.24 p2 k3 r- V9 j7 u; s1 l
MOV P0,A$ T! T. P0 o. C& J$ h" H
LCALL DELAY
3 \6 u0 i. q/ Y5 K D SETB P2.29 z! A+ H; F$ G' d2 n7 Z# |
MOV A,LED_2! k7 y' F: `. g' e1 }2 l* A
MOVC A,@A+DPTR
/ j" m) D# _9 d3 Y2 q CLR P2.1
6 a( D5 M, K$ y) M: i: E7 |6 T MOV P0,A- _6 j, G9 P% o+ C; Q- l4 ?& B. F
LCALL DELAY
. S" W% W) |/ j1 `9 k SETB P2.1$ o8 Y$ a" K$ d* @' X
RET. r: A# O- Y4 Q/ u5 J
DELAY: MOV R6,#10
' G5 w" H+ v4 O" H5 r* W6 Q% m$ M+ UD1: MOV R7,#250! m2 J4 g6 {" j6 b
DJNZ R7,$
v! L* ^7 B' O$ g1 z! R DJNZ R6,D1* ~: ^, j7 Q# }4 |- [* W( C
RET
* f) @! v O: q/ I9 B1 x: A) }, uDELAY2: MOV R5,#208 `9 b8 n3 L( I, x0 m
D2: MOV R6,#20( G1 C2 c4 G4 \
D3: MOV R7,#250* {9 @: H+ x3 b1 W' z
DJNZ R7,$
- b4 v+ v9 e4 b8 [# D2 [- F DJNZ R6,D3) D) R4 g0 ~* m' w% m" C' V
DJNZ R5,D25 ]2 _ _ ~$ {9 Z$ [8 u; K e
RET
( Q- r. K; S) m: a# h8 @! h% WTABLE: DB 3FH,06H,5BH,4FH,66H; U1 R# F0 @, R' I9 p
DB 6DH,7DH,07H,7FH,6FH, x0 q* d. F' o, }. E+ D# C
END8 W' T/ C3 x- |4 Y# \
, r: V; }& ~7 ^: L K' I. f
% `3 ` S# P' H3 `7 c( h' q
$ Z. G$ I+ N7 a9 |51单片机温度控制高温低温报警仿真工程文件和汇编源码下载:' D; x& Y* X4 E
8 `0 Z' w+ ^& h. J5 } f+ m8 G8 K
) b4 ~2 S& P% | |
|