|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
设计的开发板 基于51单片机用途是红外探头测温后显示在lcd显示屏上 可以设置温度上下限 超过上下限蜂鸣器报警 可以通过按钮调整上下限除了开头的startup.A51外 一个主函数main和三个子函数key,common ,lcd
$ B. L! m0 t. B3 U这里common这子函数是干嘛的没看懂2 T, k& `7 w( w5 |
#include "common.h"7 w* Q1 @$ G4 x u* |: U
#include"Pin_def.h". a# Q# k+ F$ b, o. p- \
, v) r: q7 ^5 z% r2 H" z/ G
6 ~$ Q& b& }. J1 i' [ T8 y
void delay_ms(uchar ms)
7 J5 c' H5 t' d! n/ u{
: h" q8 y! X+ X9 Y: A/ f#if MAIN_Fosc == 12000000L/ \5 w! m8 A7 n; D: m* f: u
unsigned char i, j;
" x) N# }7 m8 H! U3 t+ [3 ^ do& O+ E: G2 r! q+ g5 Q) `
{
1 g8 T1 T' m# }1 l# X; G9 H. g2 l i = 2;; l+ ?6 u# L% t, `, o1 v
j = 239;2 _& {3 O7 H8 ]2 _( X
do
2 u' S% \9 Y' P3 g$ M {
; b$ i: k) @ |: n6 Z+ ? l. P while (--j);# m6 O9 l; D; ?& U4 r, D% N
}
% Q3 {6 d( O' [4 ^ while (--i);" d' ~) N: e8 f' b4 C
}4 N' r& H. f+ ^
while(--ms);+ v" p9 g& B) H6 m3 X$ v- P, G
#elif MAIN_Fosc == 11059200L
( g" i% H3 C) d$ `" G unsigned char i, j;* l$ v7 G; o& S2 g$ r+ n' D
do
- b; u5 ?$ y5 z+ D4 t k {
( q# Y- R) ~. Z- j- j' d _nop_();
+ r2 X1 e# i: M4 b+ b# o/ \ i = 2;
' q) z. O- ^6 s/ R8 m# J j = 199;
. o3 |8 K ]* ]. ?. V+ B do: ^3 G! x3 Q: f, M
{
* ^6 C$ o4 s8 I' I while (--j);2 P2 E$ {; k4 O6 w, _; O2 z( I* Q1 t
}
. i2 \; q5 C" l* \ while (--i);
4 K$ b" v6 a( S$ @# t$ R2 E- b }" c+ E; N' F3 k) {6 Z! X: U+ e
while(--ms);) l0 } S+ Y& C8 ^# n' c) r
, k, K- n1 L: @# L: w2 T$ K; k2 ~* x1 [5 N ^5 Z# Y
#endif, v% c, ?4 F" X: _0 U
}
+ U+ j( a5 b# R8 W& }& q# A) S2 I- r% y) ?! p# f$ a; L
1 M4 E4 _) l3 W5 e5 }
9 l4 W/ X2 u' D; y6 E8 R: M+ G- L# ]0 {( |: U) C
void delay_us(uint n_us) //STC89Cxx ϵÁÐ @11.0592MHz
+ Z5 [9 N! E9 v! s{
: k5 D" Y! N3 ^7 A/ B- E while(n_us--);
/ }6 f8 m- u5 F' u; b}
5 c6 v) [% P( m6 B2 _0 @/*
; n8 r. X4 U% I9 V2 e$ ]" u# Ovoid itoa(long value,char* str, int base)
i. f2 r% W, ]: v8 X{
+ S; A. `1 n$ W char *p = NULL;& d {% C' m) |& q. g6 ]
int minus; //- Q' s! A' {+ e1 x# }; q' z
char buf[20];; T8 i2 g; m1 g9 e) k* A3 |
5 e1 i8 n6 p3 E8 K6 X
# R- h# u& ~% @
p = &buf[20];8 h9 Z1 v# y# H. z! n' x, Y% L% S' N
*--p = '\0';
4 s. X, w8 W4 T8 J9 H2 a% x, e if (value < 0)
; q1 f, O! n/ w* t {) V) l* a/ d5 W% v( f# b8 v+ }
minus = 1;
' [! f* ~: G s/ K2 _- U k& j! Z value = -value;7 Z( ~7 c, s' M- `5 @5 d4 \
}( p1 j& `3 H- \: r( K
else# t- z% J4 F- d9 Y* T+ f! O6 S
minus = 0;# u) a6 G' P+ y& L5 `# P# R. w/ @, `: [
if (value== 0)3 P9 ]% Z+ v6 `6 C
*--p = '0';
0 o8 W# q( `$ H9 G6 ?% |4 R H: l else) L1 X! o5 o6 Q+ U4 S) }
while (value > 0)4 B: {- z6 H1 [$ u% a
{9 m6 Z0 Z; R$ J2 d2 F
*--p = "0123456789abcdef"[value % base];, O7 d, C J$ u- H& }6 @, O
value /= base;
( q0 c) \2 M+ T4 ` }7 t: O! m, Q/ Q, a$ L
if (minus)% h$ L! S, `- V* @. |
*--p = '-';" J/ n# ` r0 A: x4 ~! B' O5 B
4 e8 f1 B. y" c) d U
/ v8 ~$ n0 L% z G+ [* C& I+ M mEMCpy(str, (const void *) p, strlen((const char *) p));+ q- ?; h9 q* n, y8 p
}
" R0 E$ Z3 b n7 G% W*/
0 R' Q5 K, F) @0 Y8 J |
|