|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
设计的开发板 基于51单片机用途是红外探头测温后显示在lcd显示屏上 可以设置温度上下限 超过上下限蜂鸣器报警 可以通过按钮调整上下限除了开头的startup.A51外 一个主函数main和三个子函数key,common ,lcd
* ^: q0 c+ c; Z/ I这里common这子函数是干嘛的没看懂0 ~4 g; Y" f4 _) `. _ U
#include "common.h") ]# C, ~+ k4 W R1 k
#include"Pin_def.h"& x8 E$ R4 B; V2 k/ c( _
" H/ Y2 Q! _ v
+ i8 @9 y- g+ J! H0 I
void delay_ms(uchar ms)
$ J9 `* e9 U. k2 A{- I, b9 ?* M. R# A
#if MAIN_Fosc == 12000000L
, w+ c& J3 X% R; X9 h unsigned char i, j;% q8 B: H1 A4 i- L- W: z0 B. Z
do
( W% h0 ]) r( A k. w {3 I" `( S( v/ c; a2 p# l
i = 2;
* w7 S5 S: z0 y. k& [ j = 239;$ ~) h$ r. B0 w/ j4 V+ ~
do
1 s7 w4 ]) ?0 q& f6 ?+ F {2 G' T$ A; `) t! I% i
while (--j);2 ^& h8 q7 L" H: T
}
* J8 |0 e* g0 a while (--i);
! T% X0 W: W6 i }7 t7 n$ Y% q4 G7 u: _
while(--ms);
) N) f& C$ O$ @8 }" j#elif MAIN_Fosc == 11059200L$ C6 {1 e8 z6 x8 ^ X
unsigned char i, j;9 @# _- T c, \, w8 j* x& P+ U
do `8 A* U1 t8 b1 M
{
G! E$ u5 S" f2 p+ g4 A' W; y _nop_();
3 Y5 H. S$ }9 d& Y; d) \ i = 2;, D( \9 a# g6 B; p) D1 W
j = 199;
: Z6 `+ u4 W, u8 `2 Z; d do6 H. o8 g1 F4 i6 W. ]
{# L' \$ \ h* g$ j5 n5 B8 O' \
while (--j);6 d! e) q3 Q) a$ u6 S2 ]* L
}7 q# n k4 F4 t% I, k
while (--i);
5 i$ z7 Q4 V$ Z1 I- ` }+ j8 f+ V) J; t- G$ j! R7 `
while(--ms);# {+ Z( S& ^( P% Q, A1 P* o
) b; e3 [( ?0 x/ G7 T( h' Y1 S$ |: I) ~2 u
#endif4 L& X2 a4 E" w. h3 [& u
}
% X# b3 g; \6 a- V$ p* b
2 v! W& ~$ e& T+ U( A) M- f$ F. O2 N, ?! A. L) O8 R
8 ]' z* \/ L2 F: s
& i5 [1 I" @2 |( g+ Uvoid delay_us(uint n_us) //STC89Cxx ϵÁÐ @11.0592MHz- E: s5 u: ]- `3 h) w) ?5 m) z
{6 B3 R- E( p" t; h% K0 z
while(n_us--);
h- {- M3 O3 U}
5 b5 u7 d W p7 q+ u. J/*
5 k- V/ d- l# k9 v3 y9 F0 \' i) |void itoa(long value,char* str, int base)& Y$ n8 B/ }1 X3 |# Q) M0 m4 j
{
2 C6 K7 O6 R0 S# V3 o char *p = NULL;1 T, [, Q- U5 Z3 |
int minus; //( [; p6 p8 y/ E& }% `/ j
char buf[20];
; @6 a! n3 g4 Q/ W+ M e: o" X. B0 w) f' L- f; I
' x* l2 x7 h& L8 P% o p = &buf[20];
w( u: V# L: N5 u5 F *--p = '\0';
0 L( W$ V* |/ K if (value < 0)
7 c# g0 ^7 h8 \; y( z0 i6 h {) u9 n5 _: l' {" N7 u
minus = 1;
8 ]2 w8 z1 X7 l4 e* u1 ~ value = -value;) B$ I3 l( g" o% V* V' l, ^& D" k: x* R
}0 g3 A# z5 j' y7 }/ @9 M
else
- t3 j' Y* y. p/ c minus = 0;
# }6 \' J: g" U; D if (value== 0)- x+ E/ o n: j5 l( t2 Q Z
*--p = '0';) Y7 y/ r- b4 a; J: T1 Q! x
else
! \9 j' c2 M2 o# \0 a G1 H0 x while (value > 0)' q: u0 b% M7 d( J
{+ y+ ^; l/ w, t, g2 m$ V! F+ v" s; I( G
*--p = "0123456789abcdef"[value % base];# l) j% q/ x4 B, O- T) }
value /= base;- Y+ }$ Q4 ^2 N
}
( ]* j+ u$ i# h if (minus)
$ i; U' | i! n; h! a C1 f2 ^+ v/ N *--p = '-';/ t7 D* Q- h; O! Y" {8 v* G
" _) |# s! Z, @- x
+ u' r+ E+ t8 h" C+ P$ o
mEMCpy(str, (const void *) p, strlen((const char *) p));
! r+ u2 h5 A* C* t# L}
# V6 Z+ o( ]# _7 e' T/ y*/6 N* g4 A) u- Z. R! L; ~
|
|