|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机智能温度检测器 有原理图 PCB图 源程序及设计流程 * l% b( O1 }; b1 u3 F
单片机源程序如下:0 f+ z" v% N- }2 t6 Q- ?
, B/ }6 H3 \4 k! ~4 g ^
#include"hongwai.h"
o# [4 d, w7 N7 P* }#define uchar unsigned char
, j4 P" K! t0 z1 N- T5 y I#define uint unsigned int/ y. p: v3 ^5 R8 Q6 e- T( d! G
) B9 \, W7 d( L. ivoid timer0init() //256*(1/12)*12=0.256MS3 E7 @5 T- [4 m) X4 T) A" z
{- K4 t2 w- D' G; L7 p! b
TMOD=0X02;6 J! X' ?8 X9 n, v E* M
TH0=0X00;2 n2 d6 n5 n0 P* P
TL0=0X00;* Y% [* U1 \8 w
ET0=1;3 t. j: i+ B( _( m5 Y( b2 d
EA=1;! F6 c+ \7 g3 f: M' A9 N: g
TR0=1;
/ o+ i. H; u7 v7 P! {1 U0 M: R1 e2 H
}) m _; ], M3 s+ z5 ?% o
- l( v, J7 ^! k5 N( j( o3 P H
void timer0() interrupt 1 using 1
0 d$ ]4 F" N r! r/ b4 m8 k% q{" D8 H0 ?9 e i1 X8 L0 @, @ ^
irtime++;; r! @% S+ I( t3 f$ V8 c
" {& e; m1 r1 L( `# Y, R}
: I3 G3 n1 g! W4 a- E8 h, O; u# H! s b/ {* n% v! p9 m4 f
void irpros() //红外处理7 r8 y5 Q6 t5 _. O
{* B. h9 L& t5 A3 [! D
uchar num,k,i,j;' N1 b; r- u' q, q7 P4 G4 }
k=1; I5 E/ N4 l {+ n4 A
for(j=0;j<4;j++): v+ ?: d# v8 r; m. l: g
{
- r. U# _! @/ X) L8 x for(i=0;i<8;i++)
F1 D* K6 J! R6 p/ F: |. ? {
, o$ y& v# Q: i! G num=num>>1;
) I6 S0 Q+ q7 U* ^$ e if(irdata[k]>6)
) U" k# M# ~/ U6 ^, p1 A h {' R. A; d( ~, ]/ N% @! U( A
num=num|0x80;# D; q% O; c: z. R/ w. \8 ] N9 z
}
8 \2 M8 ~7 a' ^ t8 o/ X5 J k++;9 Q7 m6 \) p0 M
}) X4 M1 I! W0 d# H6 S: k" N
ircode[j]=num;
3 Q8 m& ^1 o+ X8 M2 _, q* E. y }
( b2 ]9 F" m( m D0 c irprosok=1;
9 C; s3 k e& Q" x}, U7 n: j4 M6 L$ B0 [- p
2 W8 `3 V! x! h* V: t T/ B
void irwork() //红外马志转换
9 d+ |( R8 g% C/ g; w8 |{$ {. W( U- @9 E- Y+ i
switch(ircode[2])8 ?( j2 b/ r6 d! J2 P4 h ?
{
! K, D! r; A {8 u# r case 0x0c:relay=!relay;break;
+ y/ y$ N/ a) A( T) a' t default:break;
- q. [. R. S/ n! q* K8 F }
: s, ]. E4 i+ n( ^ irprosok=0;
$ e' i* x: J( [5 ^0 {: P" f8 E# p}
" q5 P9 q! N/ ? v
1 X: }' f9 Z4 C) s+ l G4 svoid int0() interrupt 0 //中断服务
7 m# c. `0 D! k! F# A! f; V1 b* ?{6 e, W8 ~) w5 _+ S: ]
if(startflag)
+ B- A( [$ j9 K8 T. ~" X3 x% `3 a t { ?1 R/ f5 w1 K$ G' [- Z
if(irtime>32&&irtime<63) //8--16ms1 |. }" W* F! R# s+ W0 b
{
6 e+ u1 t# I, P' U+ s bitnum=0;0 j q" [9 h3 n/ y R( j
}5 Z% N, h" ?; ^2 j$ H0 X }5 E
irdata[bitnum]=irtime;2 c3 g% N0 M2 v5 W& g- v
irtime=0;
5 ~7 Q |! W4 X4 z e$ O/ E bitnum++;
) W0 ?$ F: w" F- m+ G! \8 R. m if(bitnum==33)- E4 v9 u @/ @ c! I) M" x
{, |$ [: N+ t2 _2 f' T+ ^. j U! C
bitnum=0;) `/ o. @$ l; Y. ?4 g7 m1 x
irok=1;, U G4 N; W2 V0 q4 I; ~, }; a
}" h: x; f' T, Y+ u
}
: @3 D* r0 D' e" _ else
0 M3 r) B' p$ h4 @1 Q* q {
/ d5 |. ]5 s) ?0 G \5 o2 I irtime=0;- V8 q* M9 d0 _
……………………+ I- }$ i- U! G+ n3 E1 J6 |. J8 B/ Y
6 |' f- q7 p' f. Y8 W…………限于本文篇幅 余下代码请从论坛下载附件…………2 e/ s8 p: ]5 M3 j. u& p
- Q% M: y8 \8 _3 n
# e! k9 o' L; \3 u# i' \: h9 Z2 D) x* k9 [) X% r3 v" L1 z! z n
|
|