|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
51单片机实时测温课程设计 含proteus仿真文件,汇编语言源码
2 J4 G% U+ N" {0 o; t. f5 p: b7 e1 S: D; L1 S {% e4 j1 B" n
; S* \* W6 l" t) \3 G3 a: ]
这是51单片机课程设计7 l1 e- H3 ^3 c- _2 H
. l" g" I# @' m, {
1 A) \ @- O0 b
; X' `# P% \; o# @
- L; M" @. g; B: W, f附件包含测温系统的源代码
. \3 m$ C- W& {- L和proteus仿真工程文件7 a2 ~ j4 B, b6 O# F
3 W. H) _; L7 v$ ?. d# W& y
% _/ U1 a! Y3 _8 Q! r) Z* w2 i下载:4 C5 d% a8 O' t
6 h" Z, W0 @! S8 c! _( y9 C# [+ H" ^9 w3 j/ a8 C
请大家多多指,下面是汇编语言源代码:
' c/ f6 ^0 i! Q+ ?- ~ DQ BIT P3.7 ; 1 wire line4 R4 ]7 p( n8 P1 d9 |
swpH equ 0d2H
6 H6 k( V/ y( v8 h/ ^ E* f swpL equ 0ffH
( u$ |7 M! e* j- ^ WDLSB DATA 30H ;1 D2 R" H# ^+ K
WDMSB DATA 31H ;" u. \7 Y- D. h% L& K
;***************************************************************
0 P: C, ^/ }/ Q, R. h ORG 0000H
T* {; }, W+ }; E LJMP MAIN
$ N' W% m% q/ j8 s ORG 000BH( P% \* `+ K* A# u; ~
LJMP TMR0 ; Timer0 isr( d p# K: ~" l2 ~ d
3 x. X' L* F7 w/ h2 L: U2 n
2 g: F9 j: e0 G' O8 H;********************************************************) c9 |6 k8 Q1 i8 W/ R
; Timer0 Interrupt Service Routine: S5 I. } t* _8 Z7 j+ O# @6 o# D
TMR0: MOV TH0,#swpH
9 U5 T3 q" S) C MOV TL0,#swpL$ A1 h; T: ?/ h
JB 21H,DSL# R( R. `- {$ S/ g4 a9 h& e2 ?
MOV P0,42H
7 y6 d* `! w& I1 q8 N" C3 U7 Y' Q" H ORL P0,#00100000B
* a3 ?! ?9 q1 z* r3 U4 j SJMP EXIT
* }1 e2 V( S: R4 S7 Y/ @- ~( RDSL:
: Q5 C! e* A4 J6 C% r MOV P0,43H( o3 l' ], }, e7 q
ORL P0,#00010000B' ~7 R" ^) i1 m% ?0 |
EXIT:
8 \( w ^8 \+ F+ n1 l CPL 21H
' u8 _# K3 R8 j RETI
! R0 O/ E1 F8 K* C
& v5 v0 @, W" O1 K2 f* ^/ G O: |$ k# F. U
; Main program
$ [7 f( N e% W( O S) J* hMAIN:
' J+ g; _* q: t: ~6 [" g* Z0 qTOINIT: % t7 ^ v9 s [: A
CLR EA* w& T0 \: l2 V6 a( {; X$ @
MOV TMOD,#01H' Y0 B" e0 }. l% s( o' `3 Z7 ?
MOV TH0,#swpH8 M. m- b- X0 g! d+ a
MOV TL0,#swpL
$ c; n; d- p- U- B2 @ SETB EA
1 u) `) J& q3 F- Y- V2 i0 |/ w SETB ET0
7 m3 D0 t7 ?$ N7 { SETB TR0
& s! @" U1 @( K" G2 D% s" E3 }7 n; l3 p. D
, u5 g# w, w- T j- m
;*********************************************************** / K( u9 U& Q$ i% H
;
/ r7 G* L+ k/ @1 u& X MOV R2,#2; F9 z; |4 U( m% p3 F- x8 C
MOV R0,#42H ;: r+ A1 v; ~# J1 [6 ~1 ^
OVER:1 z0 _7 r, M6 t$ B+ U, Q; J
MOV @R0,#00H; # `) K8 U6 W, P- f6 D, u
INC R0! G; x# Z+ T2 {* q9 a% V) j
DJNZ R2,OVER
9 R: e+ U) p) K7 V
$ _1 k6 j% y) v- r7 }+ ILOOP:
: P; W5 Y: n6 j' h M, m LCALL DSWD ; & N$ w9 ]) s, t
SJMP LOOP, d) _. f3 b, @% w: e0 t
; B2 t# F. g3 ^7 J3 x" o6 ?: [4 f* G3 x: T* }7 i, X
;**********************************************************% M8 ^. @0 k7 N7 J2 `1 ? m+ y
; Read a temperature from the DS18B20
) R8 \9 a& R8 `0 z3 W/ I3 w* fDSWD:
4 ~% Q/ F* ?! y- N: Q LCALL RSTSNR ; Init of the DS18B20
# R& ?/ S; a1 x4 N; j JNB F0,KEND
# Y. g M+ J* n1 n MOV R0,#0CCH/ p1 ^, i" V9 G; b3 F
LCALL SEND_BYTE
' G- U( l/ F7 i MOV R0,#44H * \- G1 ?. f7 o; W! A) b: g
LCALL SEND_BYTE ; Send a Convert Command D K. o- z4 V
SETB EA
3 D& h& O% Z1 \( X4 ^! N MOV 48H,#1 " V! g( k) x- \6 [% v a% e* P
SS2:
9 S1 N6 B/ W4 _) Q" y MOV 49H,#255
9 A1 N- N5 g( w! o9 c3 ^6 ]SS1:3 X3 }7 T A& _# _( R& ~) n7 T
MOV 4AH,#2553 F% @' T5 k+ C7 l
SS0: - c' ^0 A! S. X2 C" H
DJNZ 4AH,SS01 g1 ~6 m2 I" k
DJNZ 49H,SS1
+ c( Y( G: B+ V+ i% q3 Y _& \ DJNZ 48H,SS2
7 [2 P$ p* D) I CLR EA( l" A) m0 c6 |/ h( C# L# F
LCALL RSTSNR
) a: L' T; Q0 A8 k JNB F0,KEND' W4 k7 l+ L; f
MOV R0,#0CCH * W5 R5 T+ c* W1 G4 h' [3 e
LCALL SEND_BYTE: u+ ?) Q3 c. Q O3 A3 G7 q3 a
MOV R0,#0BEH 0 H( r# C+ u: O; e$ X" ?3 t
LCALL SEND_BYTE ; Send Read Scratchpad command
7 \7 K' d! f$ K6 P& x# V& g! `; X LCALL READ_BYTE ; Read the low byte from scratchpad 4 \3 O2 y( d% V$ a# a2 T
MOV WDLSB,A ; Save the temperature (low byte)8 n4 S6 t8 Q, c. l9 ?2 h
LCALL READ_BYTE ; Read the high byte from scratchpad
/ z' |' h/ B" h+ ?6 ?5 E C) s$ Q8 o/ ] MOV WDMSB,A ; Save the temperature (high byte)3 L% f( Q% u/ z3 a: W- [
LCALL TRANS12
2 w+ ~6 ?/ ^5 l; X* z& Q( KKEND:
: v. ~2 `3 q$ U* h& R( i SETB EA
, ~3 u! U. R' g$ g9 C7 W* J6 h RET
3 s( T3 x9 H4 h; x' y1 F, h4 s;**********************************************************. ~# A7 i* G1 `. g- q' c" a
;# w' L* U5 B, H+ z; X5 k0 w6 ]
TRANS12:" e K1 p7 ?: h7 w, N0 p/ w* I( ]
MOV A,30H8 W* F e* m1 t. M; s+ P5 P
ANL A,#0F0H
+ N9 B( U( J0 Z: s. c3 E MOV 3AH,A
8 Z6 y* C. b2 Y2 U6 m, r MOV A,31H
- w. s( Y, X8 |0 Y" B; _- e& F/ q ANL A,#0FH3 s/ S6 s$ g) L8 ?0 z
ORL A,3AH) i/ Y2 \' k/ C: e& \
SWAP A- X6 b! \9 ]4 H) h
MOV B,#10
. S) j/ n% d/ q5 h9 Z DIV AB" R7 n5 {- A5 h- v
;MOV 42H,A! @! [7 Z+ O5 N6 ^
MOV 43H,B ;
% D N5 T! j, a4 b1 l u# j MOV b,#106 c* K- y9 i7 I8 ~; y8 {# x
DIV ab% T% G- _+ j2 w! y& ^4 R
MOV 42H,B8 Y: X6 P4 V& p1 `& t
MOV 41H,A
- o2 u$ o: r) _7 e: [, u" ` RET
* v2 v4 u! _! L) Z/ M% h5 J;*************************************************
m9 _# j: W; L) ^) K" N; k J1 f; Send a byte to the 1 wire line; P1 r6 f' x: U$ k
SEND_BYTE: ;7 H: f( C1 A2 C9 ^: [
MOV A,R0
" Y, i1 i8 ~- ]" S! K MOV R5,#8
% ?. l' M9 |/ J* Q# f9 ?SEN3: CLR C
$ W. J+ X% ]: f9 d. h5 p RRC A
1 y" |2 e# \7 l2 c JC SEN12 m$ v# _7 X6 L- Z( ^
LCALL WRITE_09 v$ W8 Z' u+ n4 d3 r" e& Z
SJMP SEN2
' T" h2 x* c8 QSEN1: LCALL WRITE_1
; j, z0 h7 f, P# Q0 h0 w# bSEN2: DJNZ R5,SEN3 ;
% U& Y: t( y2 S4 P- e" { RET
5 h2 l6 s2 f/ f' r;*************************************************6 H& L1 b: Q1 F
; Read a byte from the 1 wire line; z M$ G. D" R4 W# a
READ_BYTE:
+ u. Y6 j4 ]3 _6 K MOV R5,#8
# L0 W: d8 g" l) CREAD1: LCALL READ
# E3 p; ` ?% `6 s+ b- u: Q( P RRC A
6 h* y5 M- [* ]' x% O DJNZ R5,READ1 ; ; N4 b- E3 d2 Q- F
MOV R0,A
' I9 y" p T6 y2 ?& E. P2 q RET; t: d) X! s! z: w# {( F
;*************************************************
8 {2 W1 ]0 w1 ?; Reset 1 wire line
2 f, r& [. C* ~. GRSTSNR: SETB DQ
6 d0 o+ p. B7 d NOP
1 p/ d; D- R8 \7 X" ?3 N NOP3 t, e! E9 @* J) X* k1 K3 R
CLR DQ
& _4 h( \2 H% j9 g; ?2 d MOV R6,#250 ;! W6 e" c% U' {& u/ Z! Y
DJNZ R6,$
0 {. B. ]! \9 h' m& f MOV R6,#50
: O$ I% @, A* { DJNZ R6,$
% N- [5 J% d0 T: e0 | SETB DQ ;- q8 t5 `5 O8 Q7 m+ h
MOV R6,#154 R% h, @0 F) ^2 m: C
DJNZ R6,$ n/ f9 o6 @* Q C
CALL CHCK ;5 h; w& W0 t& t% e1 C
MOV R6,#60( K* _, N% v) W% \, \
DJNZ R6,$
" W; }& V5 U: }; W/ v SETB DQ
0 m; Q* l f2 S+ V, C RET
5 m# M, W, f5 `* ~! P) a* O$ U- @& _+ d) A( O/ l* q4 u" S% {: C! d
- n6 }$ `- _1 F" O0 L# E1 a
( X% @9 M5 C, l$ {9 E+ s
" n4 a# @3 M, s;*************************************************
4 q6 K3 ^4 X, o1 T; o2 h* w5 C; low level subroutines0 H9 G6 \3 i/ I
CHCK: MOV C,DQ& {2 F% v* r# z$ v
JC RST0
* f9 R4 X6 i- ~% ~1 T SETB F0 ;: u0 ^. b( Q1 M" Y
SJMP CHCK0! T/ F/ g/ f7 R$ B+ M/ g! }8 t
RST0: CLR F0 ;" Q( }+ N8 Y# s, l4 X$ b c
CHCK0: RET8 Q) w/ f+ e2 w
3 I1 q& i1 d/ P+ V9 T
8 z! D; m, O9 f6 ]* p1 P
;*************************************************
+ j; c2 [7 h# m8 t7 aWRITE_0: ' |' K/ P2 L$ I' p& Z, N9 g
CLR DQ
6 A! s O }: X: S- H MOV R6,#30/ m( F- P F' B$ {4 c
DJNZ R6,$5 a1 y9 Q, W0 q- D/ N6 k
SETB DQ
8 k! [6 U; b2 D6 F- M4 I, [ RET9 W* Z1 l/ W9 f
;************************************************* p5 G/ ~0 I& I$ X! c
WRITE_1: " Z6 L! ~! @( y& |. n J# M
CLR DQ
$ W; O8 t% B4 i& }4 B$ g NOP2 U! J( g2 R4 { ?- Q s
NOP
1 ^" t6 a. I. c3 Q- Z NOP
, \2 u* e5 O6 Z ?! {* q NOP
' C8 S1 m- T2 u. Z/ C6 n+ X9 R NOP
% y! b7 n' x: L SETB DQ" p% \1 i; P$ j! h& N, L+ f" z
MOV R6,#30
/ H6 {0 w7 ^7 h4 c1 @ Z: s9 I, ^ DJNZ R6,$( B( u) d; r& [- T; ]# Z: _2 ~2 L
RET
, X, T& X1 V8 h5 k0 q) g& F7 K- G; ]+ Y
7 p$ S: [) z% _0 x F
;*************************************************
/ B( [' f$ x& o; k' e- r' MREAD: SETB DQ ;
5 g1 b0 m" _6 Z6 v4 P" [ NOP, \3 |! O( A, H) r
NOP
' O% {; V4 P$ Y2 ]8 ] CLR DQ/ d- I8 B8 `" @- L3 _/ I8 ]
NOP
/ t/ b6 B; x2 E) ` NOP' n$ `) F5 c4 F( {+ I' V' C# D
SETB DQ ;9 J1 ]/ H" z# e. O
NOP
/ f6 O- J% J1 T NOP
* g5 G5 H9 }+ l; ^2 v% D F NOP9 d! w- J2 ~( u' J) ?
NOP
/ ^/ S' i1 F. \7 u5 z NOP% D9 `% _' e+ Y* P
NOP
5 E& j% o# ~5 |1 }: l NOP+ {6 E/ A; T9 }: V. o6 M
MOV C,DQ+ b8 o( |7 k3 q7 s( ~
MOV R6,#23
7 _9 H: s! s5 I$ [4 g, N% E; p! q DJNZ R6,$: b Y0 e, u, C2 e) T2 U/ R) [3 _
RET
: w3 W7 e+ N' o4 H( F7 {
4 q! y/ u& O7 ~9 ^: r$ j7 q( I, M; u3 v& m
;**********************************************
" y% K7 O. v7 h% IDELAY10: MOV R4,#20# g' S C4 N5 w! V5 C, o
D2: MOV R5,#30. C& g8 Q' g% E* v6 E$ v$ \% h
DJNZ R5,$6 w* \- v# O: k9 A, E6 l
DJNZ R4,D2
# N+ |. I: f* q3 A RET
( M& _8 E3 |% x2 v; f5 H$ `$ w* k+ g: h' Q
& c( D0 d6 V- c& h" ^. }
end
& O( Z& s4 t2 O' _+ c8 |+ e9 E" A1 N" g; ]
8 U; P5 f7 R8 C# @3 e; H
|
|