|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
设计的开发板 基于51单片机用途是红外探头测温后显示在lcd显示屏上 可以设置温度上下限 超过上下限蜂鸣器报警 可以通过按钮调整上下限除了开头的startup.A51外 一个主函数main和三个子函数key,common ,lcd
" P# l4 i8 X U, Z& v! E2 S' e这里common这子函数是干嘛的没看懂
% g4 t+ @/ k) D#include "common.h"
* S) @7 j# a+ l0 u#include"Pin_def.h"
# H* e$ N9 h+ a9 ^& A* k
- S3 D. M8 `6 j/ l. J) q' p0 [7 s3 a# M& B# {
void delay_ms(uchar ms)! Z# u X9 W! [0 ]6 K! f
{1 x/ A" _, N5 ^" p
#if MAIN_Fosc == 12000000L2 x$ u: j4 z7 y" k2 K* X: Z3 H' ? Y
unsigned char i, j;
9 A7 u0 ]5 E4 O% I, @ do! U1 d# E4 ~7 o1 f, c. C
{$ B; L5 C1 x! A9 s5 a6 B3 @; Y! P
i = 2;
1 F8 t7 J/ c" i. B# r6 ]' Q j = 239;5 V) m' f% P# Y
do
1 z& z& P2 W& d: r- u0 H {: Q2 u' s. p& R2 G1 b
while (--j);' P0 o) ]- R/ c: a
}' d' Z# |. z6 G5 J: w
while (--i);
% k) I1 G# \& _; u( n2 P( E1 ]" N$ }+ z }
, @- B7 p r& C: r while(--ms);. n: p, n5 T7 h0 F C. W
#elif MAIN_Fosc == 11059200L* i4 U# s. x. r9 v1 e: W. @+ B
unsigned char i, j;
2 x! {4 t. n: K' z$ |$ Z+ o do' `3 T' k! }/ G
{
4 _9 M/ e* p9 U2 I3 Z' O _nop_();: ?. t: c: Y) y; j
i = 2;6 e- b. y" M) F! f$ d. b! M X5 U
j = 199;+ [: I& X R5 c9 ?3 a) p7 R8 e
do
7 v. {8 w' H2 N) g; t {! _6 }% l9 \: ~: t
while (--j);! {4 p+ u- x+ B: v, o/ S" }2 f
}
8 l7 F- w$ P1 b& ? while (--i);
" i: c5 h: M# {' r }
: m! c3 H; s- ^3 [ while(--ms);" v4 R( h1 `: ?) X+ ?$ d
' C1 A, Q; ^" Q* |$ { W
# {" [7 y6 c4 z
#endif
! b7 U9 u* j* S/ p+ ~( U}
, }- R P& s* A1 l
1 [, D% e% B' d+ t" ~9 e; ^+ b
/ I$ f3 y$ F: _1 I$ W, n; } F+ u; E& e- n2 z- A
# F K6 O5 T% B$ _void delay_us(uint n_us) //STC89Cxx ϵÁÐ @11.0592MHz
4 n- ]. Y6 [5 |( o7 ]- w8 j7 R{
# I7 [# P+ l' [% { R7 R* s while(n_us--);
0 J2 c" b/ K, b# Z0 a}
# P% E& s5 C4 V( x) z. T# Q7 q/*
! k O) t* @2 C0 Bvoid itoa(long value,char* str, int base)4 _. R: P* J! I. Q0 r( d9 Z% f
{+ v- t6 ^& m6 s* @/ ], H
char *p = NULL;# N& M9 {$ y5 J- h" _8 f
int minus; //, s. B) F( Q, c. X: E, p4 T
char buf[20];
4 W5 e5 m& t$ w' U, E8 p
8 d& p X4 x/ }& ^3 c _8 p
# d; w2 K- ?+ L2 k: @; S p = &buf[20];
" o# M- c o0 E* U3 K *--p = '\0';- y+ O) ]6 i+ m% v5 ]
if (value < 0)
' F! o) u2 E. ]9 F2 [ {
9 s4 M5 a) U; p) z' w minus = 1;4 a1 t8 L x9 X
value = -value;
% Y, D* `& M2 D$ R5 B }: R- ^5 Z. c- {1 \. _# F
else
# F" f4 B$ C% n/ r9 y0 t. I minus = 0;
8 n- {4 v$ \# H( j( D# P. W0 {; t if (value== 0)7 y: q3 T2 X, x/ d
*--p = '0';
( d( w5 I, i6 X, [ else) n9 _4 L$ V1 Y: `, A% I
while (value > 0)
" D7 q/ M8 X# l+ I5 P {
( M: c9 \! \( [. k *--p = "0123456789abcdef"[value % base];9 ?! m3 t0 M+ l+ I' c/ a. k6 n) w
value /= base;
( I" d' ^1 | x N6 d }
& g3 ~! [" J3 k; H if (minus)
5 \' N2 P( q8 q. k! O6 n *--p = '-';
5 V% }* }. s {1 |0 B5 o/ n4 J/ j' ~3 |! h
q" v6 ]1 i. J7 e1 _
mEMCpy(str, (const void *) p, strlen((const char *) p));
5 E* y$ ?) l2 P7 R7 I; U4 X}4 [$ {1 X/ D( t$ D6 L
*/
' ? \" u6 J, F |
|