|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
设计的开发板 基于51单片机用途是红外探头测温后显示在lcd显示屏上 可以设置温度上下限 超过上下限蜂鸣器报警 可以通过按钮调整上下限除了开头的startup.A51外 一个主函数main和三个子函数key,common ,lcd
8 }3 m) C% D# ^# u* t这里common这子函数是干嘛的没看懂
; [& G7 }/ F9 V4 d#include "common.h"4 r" r$ T4 b3 A$ r U) |
#include"Pin_def.h"
$ C3 X5 ], [( n) L8 s4 K
) o* b3 \# L k6 l1 T2 M* D: H3 }0 `" m. _3 u
void delay_ms(uchar ms)
/ Y) Q) Z+ M4 E9 ]) q6 e5 e* ?+ _{- h0 m3 \. K H5 ]
#if MAIN_Fosc == 12000000L
7 z3 D1 t; h' \. X- t unsigned char i, j;* A& r, [( z% ^5 }0 u
do6 r" ~4 E" @' C: V
{! S5 |% n3 q; w; U \# d9 l
i = 2;
; Z- B9 |( n( X5 p+ A j = 239;% d* W! T8 f/ x+ q* ^. s
do
2 z: q, m8 p4 p6 z6 \* f( m {) Q1 I4 U6 W* j" {7 l
while (--j);2 z& n X( V. q8 J/ U
}- u/ J) u- P' W0 e$ U, ?0 R- ]$ ~& S
while (--i);1 f) J8 m: g" o M
}
$ B, D- O4 N; v* i) \ while(--ms);. Y! E# `6 F, w" f) v+ _. U
#elif MAIN_Fosc == 11059200L
. K! [8 r& y5 p unsigned char i, j;
! N q2 q' W8 a$ A do
& b" h! m. Z6 V4 S- b5 J3 P {
0 i5 `. j( q9 h _nop_();1 w8 s7 O+ X1 N3 P$ E) X
i = 2;
% I# s' \3 U3 F' l2 ~ j = 199;
9 i! {2 S/ P g9 E0 S do
: h. c& O4 \& F% o0 [ {
5 m) c. E) j% y9 S1 c6 ~% R7 r while (--j);4 G! x L; B: n
}
/ ~% V+ @" Z6 c2 f* v# F/ { while (--i);
0 ]1 t# {: c) r1 y1 J9 @! h0 \& y }( T; r) c" g) E5 ^+ T: C1 q
while(--ms);+ w |& x( W( F# c, B0 U
v( ]" N# F$ X( T' N( J" Q0 P
* t# ]5 B/ D* S1 P$ c" D
#endif
% B" M7 P' E$ C* u- P}- A. `) U$ H2 O8 c% k
0 v0 `" r4 ]4 o; z) C I
* ]9 g$ ?" a. M9 |4 b
+ E7 x! y, G5 A1 |+ s* g z) L
* y/ g7 V1 X; X% |* jvoid delay_us(uint n_us) //STC89Cxx ϵÁÐ @11.0592MHz3 B5 `; Z. \) T5 s
{- ?8 v$ n9 V" \/ X; R
while(n_us--);4 W% z. N# @- u5 T, X3 D
}# h5 V4 D, u" z! f
/*
9 b+ V: F# {4 x+ b, x3 Bvoid itoa(long value,char* str, int base)0 [7 [" c3 E9 P* n# u
{
5 n$ D7 j1 V: O char *p = NULL;
4 j7 z- w5 t$ f; z4 N% O! ?# l int minus; //. X5 H% x M$ a
char buf[20];$ H/ ?5 |* H* c) A
3 h3 z6 N6 l2 g9 q7 O4 R1 ~* }" U5 O
p = &buf[20];4 d B5 P8 s' l
*--p = '\0';$ T8 I! L& g% h Z( i5 I; }
if (value < 0)+ {+ A2 A8 ]4 D" ?8 J7 m9 }
{5 n1 s' x8 x' k4 F' F) T
minus = 1;$ N9 Y# V @* M! Y: }3 t; ^2 B
value = -value;
+ T& }/ a1 }, G3 w) Y X }# A& d7 c+ l Q) ?* L: J2 F j
else
1 p2 o1 G; ] u- O0 I8 y minus = 0;
& _1 N& g7 E6 I4 r1 S3 r if (value== 0)
0 ] C, w- B/ E. D6 E' n" m *--p = '0';
( {" t& v7 V q; @ else4 d! r) D, X/ A- U& \+ V7 }
while (value > 0)
0 W$ U3 p- q# }/ D, H {5 o6 x. {- G4 f) F9 S6 X
*--p = "0123456789abcdef"[value % base];# Y6 g2 R( B) s7 I& u
value /= base;
- r% y5 D$ r1 T4 W& J. [* H }
# l# L% d! z& ~- ]" z& H0 K if (minus)
! l# Y8 r6 }, e% p) b *--p = '-';$ g7 R! p" }6 Y! R/ B, o" q
# n, x% a/ A/ I3 q2 m$ X% D8 k( s+ N2 E4 A
mEMCpy(str, (const void *) p, strlen((const char *) p));
& s$ S; D$ B# Q}
) k3 z5 f; z) X. |*/
0 o: M. W; {8 @ |
|