|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机智能温度检测器 有原理图 PCB图 源程序及设计流程 6 o$ c6 B- C- @" j- a2 |1 e
单片机源程序如下:3 E( N1 B. H/ E- H6 k- O: Z
7 q. G) O2 T9 l, _) \- w
#include"hongwai.h") f. Z4 [( H9 X, k8 z
#define uchar unsigned char0 m, f _, Q. x, G7 @! \
#define uint unsigned int/ D# ^; w8 q! G2 i9 |& w4 y4 C
2 m; s: W0 o6 O8 q7 ?void timer0init() //256*(1/12)*12=0.256MS* J! @0 l: g# w4 r0 M! s, j
{
5 _4 R- }' j3 |8 C6 Z& D TMOD=0X02;
0 D5 S! `1 i& K+ m5 l) V/ P TH0=0X00;
$ F: d6 X0 e; F6 W3 m% y TL0=0X00;4 k* \) P% F8 o w
ET0=1;: l' k; _- W8 q F% a6 z2 x
EA=1;
( z/ g; C, A& ?3 k TR0=1;! D+ J) D6 e8 l" m/ ?" ~
1 z) w' y" W5 _
}% H1 `% t o, S3 Z1 {
. |; G3 v% q9 J2 }# z
void timer0() interrupt 1 using 16 B" s1 ~) J3 K6 w8 d: I/ }4 u
{' M+ g, K7 a4 X% n' {
irtime++;
- K/ F( w' s, f
5 S7 |' b9 _' |' [' l}
, n) S# d! | i, V8 O# J) U6 Q- r1 }
void irpros() //红外处理; F0 t c+ A [" _0 s
{
9 b6 j) H1 a- U, R: r) X uchar num,k,i,j;
( \/ [9 [+ a0 F0 n% N k=1;
7 N/ f. m/ R6 h8 K) M7 F for(j=0;j<4;j++); I0 d2 v6 i5 e+ Q" m
{
/ l. b, C5 L" w9 M2 \* V for(i=0;i<8;i++)
/ X. B3 ` h% ~3 M$ o {$ u, L. ~" z" m
num=num>>1;' }7 j( }% X& e+ j) E
if(irdata[k]>6) W9 B# q1 x/ `8 [
{
' n2 O( A2 Z" j; T! u num=num|0x80;
2 W: I: v2 Q$ @4 j( L }
# n! D+ z( G* L! n k++;
/ o; u% g( h+ r4 I8 Y6 ] }% }5 ]/ ^- u& g, \$ i5 J, @
ircode[j]=num;
0 W% |* _/ O3 m( f( C" d% m" Z }
1 O, T7 v& U8 } t irprosok=1;+ x+ Z- P0 \: u- e0 e* N4 x/ |. }. d
}7 r" I+ i; f2 q, l/ F o
7 i, s2 R: q; Hvoid irwork() //红外马志转换
' V+ E7 w1 C. B r* V: N R8 T5 F' t{
- V+ X$ x' _/ X6 a# p7 T; P) { switch(ircode[2])
$ n+ f8 L- |$ i, U( t! k1 W/ C9 p {
/ U' c: g5 L8 E2 X3 b3 r8 z case 0x0c:relay=!relay;break;
- b3 K+ S; W+ [ W' N& O6 ?- f! r9 ] default:break;
! E" W* i, ?: C0 [7 ] }
5 E( `6 n* Z- {- H/ u% n irprosok=0;. N1 q! d3 U) a) [1 r% o
}8 }$ g3 u& L0 s9 ]0 }
( B# G! y) B: V5 \1 V) @! {4 evoid int0() interrupt 0 //中断服务. b+ {7 a e$ ~. \6 ^
{
3 t- I% d& A% w- A if(startflag)" v! ~5 ?5 O1 y. f: V! c; S7 Z
{) D7 l0 ]: J4 C( v# ~
if(irtime>32&&irtime<63) //8--16ms0 Q& q% v+ }# ]0 m
{2 ~* v) n1 |* u, V$ L. z" O
bitnum=0;
9 F8 y% g- k$ N) p' ~; K }. n/ J1 j% {5 M8 n! R% j
irdata[bitnum]=irtime;7 d) m+ r5 ^9 U
irtime=0;
% M" ?4 O( b4 _& o bitnum++;
2 c8 v$ B$ @# B9 d2 Y if(bitnum==33)
. [; M6 A$ }/ e" n# D9 Q4 l {5 l! U1 q& S7 b5 m4 d
bitnum=0;
$ m* d3 D# P1 v0 x# @% `% d irok=1;
% E& E: \7 G% G8 |2 ^ }
- Q& I& ]* k; E1 ^! t1 O; b }/ M, ?3 l2 F$ p! f7 r k3 Z8 Y! q
else. h+ c3 Y( v1 w X, E7 f2 p$ u( d; v
{$ Z# I4 o! X, l+ V) {
irtime=0;
9 T9 E, \' X9 g! U……………………
7 C4 b; X1 Y% m: ~- ~7 k
# ?% W/ R! ?3 y- W3 F' {…………限于本文篇幅 余下代码请从论坛下载附件…………6 _. |# \% T) {- g7 j/ x
2 D ^+ i& m+ n8 U
5 u0 w/ b; d* W; P3 E! x+ Z5 A6 N$ o5 b! v& A$ y6 J
|
|