|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STC15L2K60单片机(beep 数码管 按键源程序)
& I1 W8 B) q5 X# @. M# t$ s% C) f* o! t1 s* T& I
1 N. L: r5 e" X. t
stc15l2k60综合驱动0 j- C- v2 N" Y$ Y* T3 d5 o
一.秒表+按键.hex使用说明:* M) J S( ^2 g. B' ^
1. P37接Beep,P36接扩展key
7 D; j. t6 {& F; z2. 运行后,按键1暂停、按键2继续,扩展按键清零。 u- z2 Z E4 m" p2 y! p
二.综合驱动工程函数说明:
& y" I* n) r) w6 }/ H1. 音调,用到定时器2. I1 O& W( t* A' [
/*低音1-7*/1 t/ K v: b6 v2 m
beep_config(1,1);
* f9 c# ]. Q! M beep_config(2,1); % R# _+ ~1 l! a& t
beep_config(3,1);
! }4 R/ @* E$ [% z beep_config(4,1);
' Y; K- q8 h9 e/ V+ ^ beep_config(5,1);
! y. q/ _" t$ v% ` C0 E beep_config(6,1); # C6 l( Q# }# G, L
beep_config(7,1); + k/ N S6 g+ L( m y
+ G0 W. C/ c6 i! U" _( o4 Q ?) Y /*中音1-7*/
0 y( J2 }( q" K beep_config(11,1); 9 ^" F) a% o" f4 G0 ~) n. H. _
beep_config(12,1); C8 O( A, \ r' {% F
beep_config(13,1); b- @% x$ x3 A+ P, [. Z0 _
beep_config(14,1);
# @9 K+ e2 e1 J7 [, p! G beep_config(15,1);
7 D3 W0 p! R: Z- q3 n beep_config(16,1);
. z/ W/ A+ b9 y beep_config(17,1);
2 \$ X% b: b# m6 @
( D- y/ l* R& J /*高音1-7*/; I* h& z( _6 M4 ~
beep_config(21,1); , @6 b( F& W. T" y3 O0 K4 b
beep_config(22,1); ( u$ h2 f: I4 Q3 t; }
beep_config(23,1); 2 S' c" @: U8 M( p" o! P2 {, p
beep_config(24,1); 9 D9 A1 z+ _7 R* W# ?
beep_config(25,1); 9 q6 e/ T) z' D' P( P/ R
beep_config(26,1);
% P3 F3 b8 H) \6 L# { beep_config(27,1); * H$ r4 D/ p1 Y u
2 }7 Q- l% k9 g S
/*关闭声音1-7*/
2 ^) a( J, [$ z5 {1 m2 a beep_config(1,0); + N1 y5 `5 W$ a Y
2.按键4 q: w- Z3 |6 v2 J9 A9 a% v
读取按键状态:readkey()
$ c$ P% @9 Y8 n7 @7 y清除按键状态:clrkeystate()- P% K6 t [+ X+ {, q" u: Z' u, m9 i
3.数码管显示 ,用到定时器1( y- I, n1 U$ D+ n
填显示缓冲:digitron_put_buf(num,dat);
! ^5 ?# T5 ^4 _7 O; T1 [; {/ Q显示数据,高位灭0,一位小数:dispnum(num)* O& h& U$ i7 n/ t4 r
" H) K ?0 P6 k6 T1 E6 K! A- T0 t) D
" i4 t$ g; h1 }; h- Y
/** $ k5 }- C) ?( R* ]$ z
最基础的驱动,配置了按键、定时器、蜂鸣器、数码管
# ^3 f/ x1 q* E3 L% X2 L*// H2 e! Z) f+ k2 _0 d
) N' _+ B1 D; I5 |# s! o
5 M( z7 l: T/ i, v- v( m& r- ~& b#include "commoninclude.h"6 }; S9 ~1 U7 {, z5 Y) X) a
#include "ds18b20.h"
* z O/ x w" D: x- ^5 U3 K#include "stdio.h"
5 d( D/ q0 O6 Q5 w' g/**8 f2 A7 ~5 b8 J' B/ y7 y
* 主程序
; C. z+ E3 [5 Y- f* k# j * @param None! R! b/ n+ v& p" R' R+ Q" N, o
* @return None
5 r: G" J0 u2 u8 D */
/ U: O" |7 ?0 m: ~2 l# i' b" `# \main(void)$ Q, e2 f& z; [5 C% b! n4 `) J
{ & y q4 r. P4 i2 Q3 {- }% \
int i;
- b$ [0 b6 M2 o& l- J% k TYPEDEF_KEY key;
4 ]( w2 ^$ M' w- V" }* i: Q* u unsigned int t,warntemp = 230;
% S. o% s7 T/ }3 J' G9 i# H' _; V unsigned char state = 0;
: C$ N- C8 c/ Z+ V1 Q u16 ad_value, value;
: J& `% O3 R" s9 T: i% Q unsigned char str[20] = {0x00};
; O: ^3 h! B `9 L. U x) t5 D0 F. s, E4 P/ J% n9 n4 K
/ m4 [: B: k$ r
led_config();/ ?5 k/ E0 S* E' ]$ I$ p
digitron_config();
0 ?& V2 O: J2 G/ @" _6 x- x key_config();
* z# R9 t* J+ A! g beep_pin_config();
0 C9 @$ D% p* k4 P8 p; l. {7 z3 j: t timer_config();
; f* p& K! U# J ds18b20_config();1 z6 d4 Q- Q' a9 C; k# o3 O
ds18b20_start(); % Z% e) z! ~; W# E; X4 S2 p# G
uart_config(); ( Y8 J; P- V5 e9 J
adc_config();0 r; O2 h% s1 V$ |4 ]
+ t4 }- Y$ u6 g! _& v t
6 t, s4 p" G5 ~8 {$ c for (i=0;i<8;i++)- N9 U! e2 ?. S+ o5 H2 F$ K' P, i
{% B% e$ b, k% L9 R8 M
digitron_put_buf(i,GO_OUT);//显示缓冲全部灭
, r/ x( I6 c0 j- ? }* H5 V2 w3 [ X$ M$ r* M2 R/ z
int_enable();
7 N6 k! r0 `/ M& R* V1 O/ L7 c% \ while (1)
& u7 h5 I) |- ~7 P# S$ T) p) n {- ^; t: h% ~, G# u( Q
}
2 y0 B/ \- E' a; l+ V7 l, A L% K7 j! @$ G& _) h& @% C0 N
1 L* N7 D% H; Z6 {# T}
6 }& G9 T( }$ v: t9 |6 d! M( H
: h t; F' ^' o. F. g3 p! T1 _- G+ g. r; O% m# @
- o3 z3 D1 G0 H. t+ H |
|