|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STC15L2K60单片机(beep 数码管 按键源程序)
0 k& `# {6 V3 R* q: q1 a" j* x, N4 v& ]& g. W
7 |' C( t+ W& L ]. Z2 |9 Q
stc15l2k60综合驱动. }8 H& M! P4 J
一.秒表+按键.hex使用说明:8 v1 H: k6 x" O7 u1 K
1. P37接Beep,P36接扩展key& _. [: z+ F6 G
2. 运行后,按键1暂停、按键2继续,扩展按键清零。
3 w& V$ J4 ^! w( g4 o. d二.综合驱动工程函数说明:
! R, y' }/ A7 B8 O" k) Y- _! k1. 音调,用到定时器29 G1 y: W: C. k: T2 M* D
/*低音1-7*/8 J" ?3 e& ^: F/ i, W0 s
beep_config(1,1);
. X3 q. @1 r2 n! k$ f$ s/ p" j beep_config(2,1);
$ N" |3 i. s* l beep_config(3,1);
3 M" h; D7 v# h) s3 ?3 T beep_config(4,1); : L3 w W$ U6 w
beep_config(5,1);
( @, w" _0 U0 p" e beep_config(6,1); / k4 H; Z0 [4 f5 n% D0 m
beep_config(7,1); 1 e' q# n* i$ h6 v3 { t
w8 y8 J5 a2 ~4 }$ n /*中音1-7*/, Z6 E) R- y( V! v* t& g
beep_config(11,1);
6 ]! P0 ]" F) e: |+ r# |0 B# B2 I beep_config(12,1); 3 t3 p9 ~0 l5 ]3 }! u% q" w
beep_config(13,1); , a, h3 Z2 B3 j+ e" j( @
beep_config(14,1);
! c9 q6 {+ S6 o3 Q B* {" S beep_config(15,1); , U* f5 O ^, k2 L2 j6 t
beep_config(16,1);
6 J2 a' p& [7 @' f f- I( p d5 W beep_config(17,1); . m/ ~/ [! ~" L# B4 f6 b
- s- o( }% ^8 I' v, ] /*高音1-7*/: @' S: `6 Q5 e8 n4 g D, M
beep_config(21,1); + D5 l' B5 R% d& S" @
beep_config(22,1); 6 r: u- h0 T0 z) c% Y
beep_config(23,1); 7 S" V2 p* ~/ E3 @5 O: a
beep_config(24,1); : p+ p# y. r5 {; ?
beep_config(25,1);
. C% I& `1 g4 q: n beep_config(26,1);
5 D# ?$ d1 a5 h8 T1 {+ D4 u5 w beep_config(27,1); * R* p" Q; a6 @% t4 O3 U
; B$ o- A: N3 h* d. {8 a5 | /*关闭声音1-7*/& ]2 Z4 T/ p: M/ L* C
beep_config(1,0); # D6 j3 Z: Z" o9 h+ @" ]
2.按键
; H4 o3 [# j# G! \6 ]! f读取按键状态:readkey()6 N. |5 v5 I% K" G
清除按键状态:clrkeystate()
' [# I+ P D. h o, Y. G3.数码管显示 ,用到定时器14 t6 i: [. Q9 B3 t5 U! K
填显示缓冲:digitron_put_buf(num,dat);
5 v, E; m# ]) q& l显示数据,高位灭0,一位小数:dispnum(num)
! Q6 R( ]. l; b- {1 P4 S8 a# I; U1 K3 q. R+ z5 d
. Z$ h$ o/ X, O& C) D
/**
4 F& V* V& g" e- V* J8 g# z/ U# L3 j最基础的驱动,配置了按键、定时器、蜂鸣器、数码管' I4 C Y9 I9 L8 ^( F5 ]
*/
6 v0 r, T* u* `" F4 t4 P
$ ` M' B. z2 N: }" l8 g
! h8 \% \* w p2 B2 p" i#include "commoninclude.h"
p! v+ J2 O: {0 c8 U0 V s/ W8 V' s* O#include "ds18b20.h"9 b/ k7 @' u: i) N
#include "stdio.h"
( e* R, ?, E8 a0 {, q- t/**
, J0 h0 q9 d/ N' ]: ?& ?7 \ * 主程序
' c, ?- S. q# s! S7 t/ L, n8 d * @param None
& s( H6 f: J# k Z+ F * @return None9 M, a- L% e! [) X) Z7 y% b
*/
; [* X+ L6 l! p) g% T, @main(void)& A7 i6 q! n/ ~
{
* F( D' k. H+ U& Y int i;- B1 z0 A; R$ U5 m% K4 ^. Y
TYPEDEF_KEY key;$ x K; q( Z( A8 o/ f
unsigned int t,warntemp = 230;" a6 ~9 O6 I8 h$ f; z( `
unsigned char state = 0;3 [ o9 x6 U2 P# C1 M" v- F7 v
u16 ad_value, value;! ]: Q; ~, i- y% {' _
unsigned char str[20] = {0x00};- g/ f' U" |3 ]2 j0 H
7 P8 [% p/ ]! p6 y9 b8 M% y( Q1 X2 K
9 s7 P3 B8 Z! W- p led_config();$ f$ U; n# ~6 X5 B- N1 E) S
digitron_config();; e5 S* s. t6 Q. W
key_config();
; A5 u, `8 n7 x beep_pin_config();; ^: B- ]4 T: t" g5 q
timer_config();
, t1 u, O5 a% e6 I" f& A5 H$ n/ y ds18b20_config();
- K! ] N3 W1 t/ M" Q' q ds18b20_start(); ]! e2 h; X, \* ?; z
uart_config(); ) X* r* U- H @% E5 T( v* H* r: m
adc_config();
$ W$ o# b" H4 t7 U1 Q, v- \$ \1 J/ Z0 w
6 z( G: S: r U3 ?' C4 c
for (i=0;i<8;i++)
5 g* i! K5 H* @6 t {
/ J, |) e' o1 z9 I5 w, G, Y digitron_put_buf(i,GO_OUT);//显示缓冲全部灭# W+ B& Z: n& n5 ]9 \- p* a* A( x
}, n" q0 H- m- H7 m
int_enable();
% l, n3 L$ E7 z5 ^8 v) }. U while (1)2 I1 N2 ~; ]6 J
{
: ?( {0 E# l6 t$ A" B+ M; q }
% @" O4 ^- z {! h! r
- L9 U' i0 p1 {8 f8 F# k1 D; |* Z2 O" h- L
} 2 N6 r5 K- m! i( B7 U
# s" N ^+ M' D$ Q3 j7 X" D% \% k5 a/ K- \8 v
' i7 I6 |+ t- y4 M# D( Y- a |
|