|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
设计的开发板 基于51单片机用途是红外探头测温后显示在lcd显示屏上 可以设置温度上下限 超过上下限蜂鸣器报警 可以通过按钮调整上下限除了开头的startup.A51外 一个主函数main和三个子函数key,common ,lcd
- B e* ]0 `# ~, @这里common这子函数是干嘛的没看懂
% C6 n' p' k# O1 h B; y#include "common.h"
; d5 K" e" f1 j#include"Pin_def.h"
" N4 c& o, r" {9 x5 a7 q" Z: b* |" E2 f1 j
6 E, M; r0 b+ `; [9 G6 k. L' zvoid delay_ms(uchar ms)
9 o0 v9 K" A) @3 o{
: o: o* e! k. N7 J S) N, e& u' X$ h& Z#if MAIN_Fosc == 12000000L
1 z5 z4 g5 {( f unsigned char i, j;
[6 C; ?5 e6 r! I do1 u8 v) @: X6 D/ o
{! U+ z6 x' h% E
i = 2;
3 P- D; z% M6 C) [ j = 239;
! s2 e9 C2 k8 R4 k2 U do& Q# O+ n" A5 Z$ b: V+ _ I
{
8 |9 x* k# U+ r' {5 L, K while (--j);
* ]: u3 _% M# n: U4 R }- \5 B5 a& l$ `3 J' S0 r
while (--i);
1 |5 G6 v6 }1 A8 x+ o }8 d- r r( b; T) Q$ g
while(--ms);
7 g ~5 o( Z* _- d& B% @! o* r#elif MAIN_Fosc == 11059200L
( N8 D9 ?0 z( @ unsigned char i, j;
8 ?$ K7 b k( E( J7 P do
1 z+ A c; K+ T8 f; `, u {' V Y4 z7 H' P0 D& V( _
_nop_();
: d/ |' K$ z0 s5 L i = 2;; ]. y# i8 x( Y% V5 m
j = 199;7 ^+ l8 w& p' X2 A' |
do
# S: n. D2 C7 H0 e) U {
6 P6 `: G' h- r: v: _# L2 R3 Q while (--j);
$ W# G# a# d6 Z, h0 H- j3 p1 A/ E }
! a$ N" O8 ]- C1 W7 t while (--i);
$ k" `! O7 E! ` O8 h1 n }
; q0 n5 n3 y4 |) b) {- F( x3 d4 }# @- F while(--ms);( Q9 L! g K7 s9 l. W0 N7 q
' P& w- Y* m& ]) L% q, g. s* M, n
* ] q" e* ]/ J# k ?" {* A7 w+ {& @#endif1 B9 L, `! }; Z. P
}% s5 N( @0 T L6 r' K2 ~* y
( I3 R8 D8 w* X5 f
/ x: Y* N& b- `4 E* S Q0 t. c5 h' r0 w$ {2 a2 p2 j: X% ^
; ~$ K& |. N* I9 n- @! }
void delay_us(uint n_us) //STC89Cxx ϵÁÐ @11.0592MHz2 H u0 u) w% Q$ p7 M
{' G3 G* w4 b/ ]5 L
while(n_us--);' |# n; Y/ _# w
}
( ^9 P8 _! w- l) C) ~/ Q/*
( x. v: E2 L. `1 F- K) j3 c `, g; m/ H0 ^void itoa(long value,char* str, int base)
: {5 i3 r* p/ q* J- H/ t' \{
# f6 i2 S9 Q& t4 H! s: d( i9 M char *p = NULL;* B, z z6 Z% Q7 _/ p
int minus; //
' F! y' |2 i0 ^5 j2 c char buf[20];
) j1 f7 Y& u2 z% y$ A W. i
4 L; N- H# ]- o9 @: s+ V) B) f( I
5 \) a/ o* { T+ Y' K% c p = &buf[20];. j; U4 P" c6 P
*--p = '\0';7 z! H( P& M; z# a! d1 U% e
if (value < 0)
+ Z$ A, s! R* `1 i0 d9 K v3 | {
1 V& j& L0 y1 t N6 \& t# M9 Y, k minus = 1;( F4 ~+ q0 Y: K' O a
value = -value;
: N3 ~0 y8 F+ x6 @. G) C: a }1 \$ B3 L+ d2 k6 n* K8 h
else* Q' v; m1 C; m9 O2 r; h( \
minus = 0;
" F1 u+ K& ~0 `# h if (value== 0)
' [$ L G) y2 H* W5 Y: ?. k *--p = '0';7 X. b b% V* }5 |7 U# Y
else
* D( [: G p0 y while (value > 0)8 t. b* G6 A: C* D/ R! ~& ~
{
5 s- F5 H$ F3 Z *--p = "0123456789abcdef"[value % base];
! c- I: H% d! c0 I value /= base;
% |' ^, ?1 C& J' s& Q U }& H- q% f! }* ?3 o: R: d) H
if (minus)2 Y; Q5 T' A a! W7 J
*--p = '-';1 I: Z2 ~% R$ n+ K. | v2 B0 ]# U/ D
1 U% g* b7 q! s# n, g, g0 o7 e7 e- Z' b8 g+ |
mEMCpy(str, (const void *) p, strlen((const char *) p));9 H) o; r+ N# x. y
}
5 O) V5 @5 X7 J. _2 D+ P3 }, o6 \*/- @! R3 z. z) K' J) F$ x6 H
|
|