|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STC15L2K60单片机(beep 数码管 按键源程序)# _, R# u5 o3 A# j* X1 p! a) Z) t
7 p5 s3 y/ _- d: d# b3 p u7 ]1 B; L
stc15l2k60综合驱动
" Y$ [3 v% O' [1 t* X- `; \一.秒表+按键.hex使用说明:" O+ Q# N8 {9 B+ X
1. P37接Beep,P36接扩展key( f) Y$ M8 r% J' F
2. 运行后,按键1暂停、按键2继续,扩展按键清零。; ?+ G' j" o1 ?- h8 S
二.综合驱动工程函数说明: J1 @- q7 T1 ^ y( r
1. 音调,用到定时器2) Z- l8 p; Z B1 A1 ?
/*低音1-7*/
. z) [* X! e/ c1 H6 u4 s& f' M beep_config(1,1); * L- J! k9 Q! O; K/ ^2 _
beep_config(2,1); 7 b# l- n- Z& u$ b8 U$ h! j
beep_config(3,1);
. W; M9 l/ z$ W. J8 I- a( l/ [ beep_config(4,1); . @* C" s- A$ X4 i+ a
beep_config(5,1); 9 S" g ]3 o) S
beep_config(6,1); , S0 k9 R6 G$ V! z
beep_config(7,1);
+ j5 J7 u' M. t6 t+ k, h1 ~2 k4 o1 U5 p
/*中音1-7*/9 o4 v( t7 x$ p3 q
beep_config(11,1); 0 R2 j# L% q5 B' r/ ^! N5 Y$ Y
beep_config(12,1); - C. r4 j7 f, r! q* z+ D- z- K
beep_config(13,1);
" P4 J( h) x6 y3 R+ B7 S beep_config(14,1); 6 `9 J* O0 u, u. A( o1 Q7 |( W
beep_config(15,1); : i3 G, C b6 E8 W5 p9 {* A
beep_config(16,1);
% y' D0 X w% o4 Y beep_config(17,1); , N& q9 Q6 s; o8 p
6 Z/ f$ J/ `' t+ t; G4 q/ L
/*高音1-7*/
+ U) Z+ N. s# t: _+ q, F; _ beep_config(21,1);
$ k# w: B* _1 g* V. C3 P- D beep_config(22,1); 5 O1 m$ V% ^8 h" _
beep_config(23,1);
; F9 c2 A, i0 |( t ] beep_config(24,1);
8 @& q7 H9 h" a+ | beep_config(25,1); + `1 k0 |! N$ I9 K3 o
beep_config(26,1); ' S2 ~5 J, `7 _+ R# W# j
beep_config(27,1);
; p: u& B( E5 o$ I% W8 y
6 a, }* _8 o5 @8 O9 [1 L /*关闭声音1-7*/: u& F" I2 | m: \9 i
beep_config(1,0); 5 k0 E/ J& S ]: _ U% a
2.按键
, _& y2 k: M, C3 q" _% @读取按键状态:readkey()
4 @0 U1 S/ b' i9 h清除按键状态:clrkeystate()
, _3 i) e( I H% b5 ~: Y: W3.数码管显示 ,用到定时器1
1 G) B" l" L* H( }2 k5 Y2 m填显示缓冲:digitron_put_buf(num,dat);+ g! s# Y3 M9 L4 h- [
显示数据,高位灭0,一位小数:dispnum(num)
4 \, A' | Y0 d
; l- C, v# i9 g; g3 l0 o( e! y* E+ Q* S/ E/ e2 x9 A
/** 8 A' V- M. L6 x
最基础的驱动,配置了按键、定时器、蜂鸣器、数码管
' R3 n! W. X$ ?& m*/1 a; N( o% w( ?: u1 s1 z+ I8 j" Z( ~6 w' u
8 [3 f6 u, |5 Q; d( j ~, y
! i& J7 S1 c' H K$ o/ u I#include "commoninclude.h"
, V7 j4 ~9 E* u) p( v( b#include "ds18b20.h"
. \( x1 U+ h |5 ]0 c+ i6 q#include "stdio.h"
, E% g: \) G1 ^5 ^# a! k/**$ s- m+ g6 x: T; d
* 主程序 - K9 J- j& w5 j8 T- Q" u& W
* @param None
# S, y! `7 `4 o# H5 _4 H5 p% C4 d# A * @return None
, e+ R% ]4 k' w8 v */, Z0 ^& c! h, W# F
main(void); V# T5 |& O& x, [+ C
{
7 z, Z+ {1 z4 l int i;# Z1 p. J8 W9 A0 B4 M$ v: U
TYPEDEF_KEY key;
: Q- r9 \/ J% p3 l8 ^; Z( b# ?2 ? unsigned int t,warntemp = 230;
4 B; Q7 J, M* O! [ unsigned char state = 0;7 Z4 c& n7 b& s# q
u16 ad_value, value;
U$ L4 j& `7 K9 z$ v unsigned char str[20] = {0x00};
- l6 w+ F) E3 X" B, N; k6 L2 ~5 F' @* [& t
* {( o2 A* C' e# f' K
led_config();% j0 \8 B( U8 Z, l# h
digitron_config();
" N+ a! t4 Y$ v key_config();2 B0 c# `0 R \" s* J2 K6 d' R
beep_pin_config();9 N3 _! ^. F, b/ b, r5 k7 Q) Y. M
timer_config();+ e" [8 R: i ^4 `# n/ L% O) u
ds18b20_config();) I N( M0 l8 V3 C- ?
ds18b20_start();
/ i. }, p `( x/ s' N4 y uart_config(); - ~5 |9 i3 H8 y8 J8 \
adc_config();
, a. ~9 O7 y# N: \% g' D. f H0 B0 O
& R' Z6 D' X [$ W, ]6 Q9 g for (i=0;i<8;i++)
# c6 k, p' `/ Z {# ]' D; X" ^1 Q$ N
digitron_put_buf(i,GO_OUT);//显示缓冲全部灭* H2 t' t/ c0 A! ?" P
}
( V) v( b( f5 K6 x& f int_enable();
( b& l1 z5 ~! R# E, m | U while (1)
( R% T5 H6 B) b4 d$ m m0 A {; v$ y4 {4 ]5 k1 m) R
} / q4 k8 f( K: h5 w6 Z
- p8 o: _1 H4 I+ w" G# I1 b; h8 K6 ]
} 1 R8 d- r7 ?- A) A0 f5 p, a9 `
4 `3 c! ~& v w) a3 `+ [& K; t) b- y$ Z
9 \" E: `! I4 B/ Q/ P, m, l! ]0 l
1 Q, n$ |9 C+ m4 F
|
|