|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机实时测温课程设计 含proteus仿真文件,汇编语言源码+ Y% @9 \7 {' m$ T0 ^- y1 K
. c0 _( v# a6 z6 }% m1 d' I- B9 ~
8 ^: Y" I3 X1 p这是51单片机课程设计
% Z9 h5 V/ W" }) t! r, U5 }
( H1 E9 A# u+ c* o0 @- d
& o" g1 C5 ~! B8 o9 Z ]; Z0 T% c
0 X3 q& M4 O2 h+ w
" R5 r% H/ f- [& l) |附件包含测温系统的源代码- N" q$ V+ V3 l; z
和proteus仿真工程文件
" e$ t" U1 f. r6 @. t9 r! I9 q1 @8 a) D- T2 W) @- N( f
6 e' X2 v. N& f& r# s- O
下载:" s4 v3 \# B2 n( W- Y
# D1 x% Q( A' E5 `$ d2 Q- I' H2 ~3 W; o
请大家多多指,下面是汇编语言源代码:* k s! F; b8 u% ]/ }
DQ BIT P3.7 ; 1 wire line
: n1 a5 o( ]% ]0 W. r" G swpH equ 0d2H& D# p4 W3 {# b' ]# X! u
swpL equ 0ffH
- s/ Y% B6 V+ @7 ], J WDLSB DATA 30H ;
# i4 ^# p7 ?& o0 m3 R* b" L WDMSB DATA 31H ;3 L, D$ c! p4 O' n! r. q9 M/ @& |
;***************************************************************' s, f: x* R4 w6 @$ T
ORG 0000H
! a; k$ G, y! l; o LJMP MAIN
' G7 O9 d& T4 G1 D, D# ?$ ? ORG 000BH
- s1 T0 O7 E$ q8 c LJMP TMR0 ; Timer0 isr
' i: T' x, O! k$ u a' }7 M1 l# ]2 L! b0 c' E
$ ?- f/ i5 ?8 h4 {
;********************************************************
! I: l' a! \& p6 Y2 c) [; Timer0 Interrupt Service Routine
" C5 f# g; {4 d4 y# JTMR0: MOV TH0,#swpH
, R. [" C5 P8 x2 m MOV TL0,#swpL
+ T6 l! f( |+ {# P; f JB 21H,DSL
; }9 R- Z7 K- P+ H# H0 I MOV P0,42H
% l& D+ T m( ?* ] ORL P0,#00100000B
5 d+ u! O+ H, |+ H" \, E: f SJMP EXIT) w9 _: o" a0 q! `+ P r* ^
DSL: + X$ {6 @! D6 z P a
MOV P0,43H
4 Q3 N% ?1 L% ]) Q% q& R! f+ P( H ORL P0,#00010000B
$ h* V% s2 `# M" pEXIT: 8 t; q& B, w8 A1 ~
CPL 21H' A0 I3 D# w9 @! T0 Q8 r6 l
RETI# }" t6 \/ ~/ t1 S# A' ?, {
) r$ v! A& c( F) s& u- U9 _- U6 A# m% W
, C: K. H7 {1 c7 e/ H9 E, W; Main program
& F8 ?0 h+ g4 v9 ^' I9 P" x2 y% MMAIN: 3 |- G% v, D h3 ~! p" p# U' ]
TOINIT: 2 q8 Q* Y+ ^* H* e7 n& I1 }
CLR EA( ^; g1 P! j( A% {5 c
MOV TMOD,#01H& j/ X, K% O0 Y& h8 v& v
MOV TH0,#swpH
! n: L( c2 q4 _- S MOV TL0,#swpL
) j! V" ?, j! O. B. N SETB EA
4 R2 R- Q5 q \! D SETB ET06 v a( q* o3 n Y4 q8 j$ n
SETB TR0; M9 Y, D0 ]- g6 c1 a( Z+ ]& ?
2 I* ~. ^ Z& P+ z- D( `
! Y6 Y' t* d; Z, g9 w [4 a% a- C
;***********************************************************
$ F9 M% D6 d2 X. l. E;
5 Z1 E: \) D1 o( f) S5 y/ r MOV R2,#2
$ b; D3 W) n h$ J" r$ | g+ B MOV R0,#42H ;. ]0 Y( d) j5 |2 E6 R: t
OVER:+ Z# h9 V; Q2 h; |3 |
MOV @R0,#00H; ! c" N8 K8 s' Z+ x$ h: O
INC R0) {6 |& w, K1 s4 P5 Q# B- S
DJNZ R2,OVER" C+ T9 n$ |6 H: ^& L6 R) \
1 H1 m4 p4 A6 S+ S0 Q4 j' H
LOOP:
7 B& |3 q$ K6 K& U4 s2 }' \* e. V9 _ LCALL DSWD ; 7 n& w% t4 G5 R9 j# }7 o8 D' a
SJMP LOOP/ ^2 Y8 x) X) k% [1 v, B, g
7 |3 Z8 D8 t/ ~; l1 u& z6 [8 N, Y* Q w( w2 ?
;**********************************************************
6 _* L Y) h/ ?' i; Read a temperature from the DS18B20
/ P% c% Z" v" z: ]4 WDSWD:
4 {9 _4 q/ j! y( ~+ ^# s LCALL RSTSNR ; Init of the DS18B20 : i# v* G( O6 P$ N
JNB F0,KEND
( S9 N, E. x* K: \7 \ MOV R0,#0CCH- W" U7 e# A7 }! A$ m o
LCALL SEND_BYTE 2 }5 a, K* ]; B
MOV R0,#44H 9 T8 |% M, {* I }
LCALL SEND_BYTE ; Send a Convert Command
" H3 x& i/ i7 J: \+ d1 w SETB EA
* _" u' n& X& N4 K6 h; N8 ]) v MOV 48H,#1
7 c' }3 x! \4 S- r; zSS2:
, `! |0 e8 z ^0 z2 T MOV 49H,#2555 [0 \5 q0 G. a3 ^
SS1:$ ?5 D2 r% f) j. v
MOV 4AH,#255
; b% J4 a6 c* `SS0:
, P& W/ T( X* \4 E; X3 A/ t- o. L DJNZ 4AH,SS0$ f. s( i3 f0 o2 {
DJNZ 49H,SS1
/ W7 x4 M4 N; V DJNZ 48H,SS20 j' e" x( \% d" D' s
CLR EA6 w [( Z) k, W& d1 ~# t8 m( d
LCALL RSTSNR
9 S; M9 h2 n( C5 p JNB F0,KEND
n4 R. ] t3 ?3 |" k3 R8 | MOV R0,#0CCH
, G" H; R* }( e9 L, ^2 w LCALL SEND_BYTE& p1 J# F. U1 n( V# J0 I/ \# E2 u$ F
MOV R0,#0BEH - w- s6 T8 u: F1 `/ [; M
LCALL SEND_BYTE ; Send Read Scratchpad command
5 G2 Q* o3 z. w; a LCALL READ_BYTE ; Read the low byte from scratchpad / ]3 q. h3 I9 J% t
MOV WDLSB,A ; Save the temperature (low byte)9 M% x g; f' c, F
LCALL READ_BYTE ; Read the high byte from scratchpad- y2 P( c) }) x5 d/ T
MOV WDMSB,A ; Save the temperature (high byte)
: A" K. ]0 J2 v# ^6 E/ ~0 Z0 t( u$ U LCALL TRANS12" L- {" \2 L0 J* T6 n
KEND:
; _% z/ Q h& h; c4 s; d SETB EA+ F9 `9 j7 S; X6 f& `+ R4 g# b
RET4 _ w7 _) d0 l$ ]
;**********************************************************- d7 P1 W7 v+ z' ]. p, x& ]
;
e; T& x, }, J( p5 `% Z$ ETRANS12:/ {( E& g" H1 R, V6 e( \* _' O. {
MOV A,30H8 _! z, z5 I- v8 i/ h1 I4 k0 _: L
ANL A,#0F0H+ m) b9 W$ f1 T/ G3 O3 L
MOV 3AH,A% }; @5 D- y: H* n* Y+ r# F
MOV A,31H
6 V9 }% C4 y Z6 h3 z' B$ E$ u* f i ANL A,#0FH
1 [# ~* r2 m4 `4 |' O ORL A,3AH! o% J8 F) m: s6 p" H3 j J
SWAP A
# C* `; H8 N7 b8 R6 S MOV B,#102 w6 n `4 ^7 L5 o$ |' Q. O# \( f
DIV AB
1 r$ \. D0 _8 b) M$ W: a$ a7 g7 \ ;MOV 42H,A
) J h- ?% k( Z, A+ k0 M1 s" o7 D% j MOV 43H,B ;
( m- D; {# j5 W" { MOV b,#10
5 Q4 J) v; [: l6 O4 j) p DIV ab# G! K6 h. ~. o+ Q. Z
MOV 42H,B
& _. \: Z( \! d9 q8 Z: F* Q9 x MOV 41H,A" I; b0 I" z, \0 b3 j( @; D
RET( B1 E- p3 C6 |, R$ X9 d5 n
;*************************************************
2 ]3 p% I8 `* R" i+ @; Send a byte to the 1 wire line
$ T. @, m" b7 u9 q2 F& M/ l9 pSEND_BYTE: ;3 x! a! l7 e5 _9 ]5 g
MOV A,R0
1 F% R& t: q5 P, f MOV R5,#84 j, l; h, K" `$ ` l$ H$ q
SEN3: CLR C
; T" r3 O6 }% T RRC A! K/ L: \* I/ X! `
JC SEN1
" K& k6 b# i; p7 O# d; s/ { LCALL WRITE_0# J) E) Y {; {1 G! i/ V4 C- J
SJMP SEN2
3 Y$ x8 A4 ?7 b# }! R& USEN1: LCALL WRITE_1
/ L* [% j- K$ W% D8 mSEN2: DJNZ R5,SEN3 ; ( V7 _4 L1 p" ], `% X; I
RET
& D# B+ u' ^; x; O;*************************************************
. r( m4 t* a- k; Read a byte from the 1 wire line
3 v: }& _2 b1 A& Y/ aREAD_BYTE:
6 g: `5 S9 {$ `+ s MOV R5,#8- ~; G8 q% P! e" @/ @; a. X
READ1: LCALL READ
( u, e; s/ }6 x! F RRC A, i. k6 z, {4 h9 K! ^- j
DJNZ R5,READ1 ; 1 `- n1 H, R" y: _9 t: A9 H8 [/ \
MOV R0,A
" `& a4 w% Z9 G2 Z0 ~/ X RET: b3 V% P3 x. z* q5 p
;*************************************************% n9 c4 T) s* K
; Reset 1 wire line; z1 u1 f; f% z$ Z# @' |
RSTSNR: SETB DQ5 |) s1 X$ y# K. y) z) i9 S
NOP+ K. U9 c8 s- m( ]. y8 W2 l
NOP- Q0 D3 y- o/ w: x5 ~5 z
CLR DQ7 |7 I( v2 d4 ~4 p
MOV R6,#250 ; @$ C! r% k/ O) ]
DJNZ R6,$
' U! h( a p6 M! x- A: R MOV R6,#50
3 I( W8 O5 Y1 T DJNZ R6,$
8 D( S( F9 y v& `9 S$ r SETB DQ ;
" M! T! ~+ e r. ?$ s0 Z8 E6 K MOV R6,#152 J- J1 F9 {6 N+ L/ G8 x! J. S
DJNZ R6,$" w# n* f) a8 p" `7 U" ~
CALL CHCK ;3 _" ^: w* n! b* `8 A$ u
MOV R6,#60# e. X/ n) S4 j" U- r- W
DJNZ R6,$9 M3 a1 A1 ~6 S
SETB DQ; G% g4 b$ W+ J0 \; N) X: I" I5 z
RET# M% }5 m: A/ p3 S# ]5 |7 b
) m2 H% ^$ L1 E
; {* W* g' p& r5 W7 f6 y- z3 F& [7 m1 F' b/ ]9 \/ @
6 t& f& i( l+ p! P. _% o
;*************************************************$ D0 k$ E% ]( p0 b6 N
; low level subroutines
7 g; G$ W/ Y" J% W3 g- BCHCK: MOV C,DQ
: E) q' S+ Z& e4 |* P! X' l JC RST04 u8 J; }2 q) |3 h% ~. i7 I
SETB F0 ;
! S* N6 m2 S: d1 p! j; ^ SJMP CHCK0$ u$ y8 G% J4 P$ w! O1 l
RST0: CLR F0 ;- |: I+ T! |7 C7 h- S
CHCK0: RET
% k- n: p' @! z4 K' I
( m% ^7 j W) Q9 L, X
+ @4 |1 H9 \. ?4 v;*************************************************% Q2 x9 R4 j' s( k, }; X
WRITE_0: 7 p8 V. Z7 P3 k5 H: R
CLR DQ3 O$ N/ v7 L. T- b% i/ q
MOV R6,#30+ w* d+ O6 z5 a) j* k
DJNZ R6,$
7 y) E0 r8 v# @* ~ SETB DQ
0 R) M7 {, a0 w; D7 Y RET( M8 `2 b9 g# ^2 n1 N
;*************************************************" m; A0 V# G& d; j8 i, f" j/ @
WRITE_1: 4 V9 }* i6 c6 \% U/ ]- o2 B, g
CLR DQ ) I! |* n8 `: p# o* U
NOP& _3 n7 {' M: C6 H1 Q! `. w
NOP0 |5 k, p, o& K
NOP8 u4 V$ j5 X( H6 q
NOP6 t% Z: Q- K% B( N+ J
NOP4 j1 G9 i! Z& i' B; Z! J! }
SETB DQ+ x3 X. ^/ S9 ]+ @' D2 I* y( {
MOV R6,#30
9 I8 l$ t: U9 g9 z3 s) N" i DJNZ R6,$
0 G! h6 E4 k9 n; U2 s RET
1 l4 s) t9 k% V+ f3 Z: K2 ]
+ Z- P9 q% @9 Y: ~7 t* ]; Z
5 L+ |6 j F3 ~4 Y8 Z9 a% i;************************************************* _* G% p$ N! i5 g, X- z6 R
READ: SETB DQ ;& T( F. v+ ]2 F
NOP' }! s* `. t) T. u# f( _& m
NOP
6 {: k$ G \0 n& ?$ O( O CLR DQ
8 M7 q( u: ~- {$ y" ]* } NOP. M: G2 f* ?+ d! J1 r0 L( r9 D& i
NOP
* r. |8 C S; c: Z" ~, J. } SETB DQ ;
, b" L2 i9 x+ f k5 r8 {6 T, s NOP: d6 |0 i/ |+ z' f& J2 R0 p
NOP( u/ _& R( V$ {5 Z j
NOP
+ ?- E. M* Q- X7 ?# m' {$ A# E9 \ NOP1 L- D/ f, E% w& f$ ]7 I7 `0 O
NOP$ I/ q( o9 J7 @3 z2 W
NOP+ ]2 ^ O( N7 {7 {
NOP
, u) j' c9 }% C5 l5 {7 g% r MOV C,DQ
x- Y# D6 o9 l+ d) ]# j- X MOV R6,#23
2 V* E- Q& R# j! s% [3 I3 L DJNZ R6,$* I @! j3 X) D% C' P
RET
; L, }5 Q: Q0 E. Q' o, t2 k) A. C/ n2 [
* p! j9 x" V0 q& t1 @" ^;**********************************************
" J0 J/ B3 n1 b, j" n- ~% tDELAY10: MOV R4,#20
2 b! I# b4 P! l* Y6 u1 m* C+ uD2: MOV R5,#30* d" g6 b0 }, \- k% g* w
DJNZ R5,$2 Y; G9 M* a" W+ q
DJNZ R4,D2
. _' [" ?8 i5 `1 {& { RET; i" w' Q) |9 ]: Q
6 @! }: ^2 u% q+ Q
# n7 |% S' o" k A$ } end
# I N! R' {" Y; p5 Y
2 z9 I& v* C5 m! c4 W/ B* Z/ P+ N( H7 Z
|
|