|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
STC15L2K60单片机(beep 数码管 按键源程序)% F7 k1 W- r& i6 x1 D- r
+ `/ p- a) c2 F; s% h& F/ I, [2 e" R
stc15l2k60综合驱动( n* s" m' R" @9 I7 n, o7 t
一.秒表+按键.hex使用说明:
! [$ z+ _6 X N2 I& \& ^1. P37接Beep,P36接扩展key
8 C6 A& K2 [7 Y, r/ C, J2. 运行后,按键1暂停、按键2继续,扩展按键清零。" N. X) p8 ]3 A* _7 f1 N8 v
二.综合驱动工程函数说明:; G% d2 N% S: q8 }; I- K: e2 d
1. 音调,用到定时器2
# W9 R0 u2 F. o# U& s$ x5 q; [ /*低音1-7*/
5 |5 n) j; y( L' X beep_config(1,1); 1 x# H, U0 f( X* A
beep_config(2,1);
# P+ v8 N: p6 m% n6 I beep_config(3,1);
1 A' y- p z1 \3 K) n beep_config(4,1); : K: M+ d ~0 T/ O: j
beep_config(5,1); ! X* L( X6 q" ]0 v" m0 [7 i; I2 @
beep_config(6,1);
3 h, K6 u+ X7 d6 q7 z beep_config(7,1);
% i+ L7 ~( D* i
# }; x9 W0 X. E9 e: R /*中音1-7*/
+ G! O- ]$ G. W6 O: n- `5 H% { beep_config(11,1);
0 }% {* Y' o5 ]0 C7 @7 ]% X5 b! ^$ U beep_config(12,1); ( g: R; Z% A& U1 Z8 T) m
beep_config(13,1);
8 L$ R* N" @: W" q: [, j4 D beep_config(14,1);
$ c7 a# D2 ^1 @+ K* O beep_config(15,1); * X; N3 d; n. N8 e) e% i
beep_config(16,1);
9 N) o2 a6 ?6 ?7 O beep_config(17,1); 8 G8 @; z. s, u- @/ S
4 z0 x, l( _# x8 Y0 V5 _
/*高音1-7*/
/ x- r! M& n0 c( K- Q! h) k4 C beep_config(21,1);
. P+ U5 D" h( u: T/ y1 C5 _! X beep_config(22,1); 4 B3 H5 O0 M6 L$ ^7 z& N8 F
beep_config(23,1);
7 Z- a* [7 H, q/ k0 t s2 } beep_config(24,1);
4 j) {8 U V% B6 S7 o( {; e, T9 e beep_config(25,1);
+ Q+ \& H, f6 Z+ E9 P beep_config(26,1);
! J3 x! Z4 C: b5 A beep_config(27,1); ! r: @2 b* d: n! K% U% @/ f ^: W0 ?) m
2 R: u* N8 }0 o9 j5 |/ q
/*关闭声音1-7*/& P, o5 Z* n3 V y( K9 w' ?5 A
beep_config(1,0); 9 j, K8 ~1 T9 V" w, {7 P+ L, s
2.按键
8 g4 B& o- n. l7 m6 d读取按键状态:readkey()6 W7 ]4 V" I& A; ?1 D2 P
清除按键状态:clrkeystate(); n, B: x) _% L( b
3.数码管显示 ,用到定时器1
, r+ n" G2 {0 D1 i; ]" I/ r填显示缓冲:digitron_put_buf(num,dat);
& N- B7 |4 @/ k显示数据,高位灭0,一位小数:dispnum(num)
- \' X. y7 V* s0 C. h( Z, u* ?# H' w
$ N0 s+ ?9 V2 \( x* _
/**
" H9 P7 K: h S' i2 b. R* C最基础的驱动,配置了按键、定时器、蜂鸣器、数码管
( K( [1 |3 P0 z( J9 e: p& a1 k*/' M' ?+ V4 F4 \$ O
0 ~* V$ j% N% f8 f0 M
# h$ U( r F) z
#include "commoninclude.h"/ m2 s5 |. I) M, f
#include "ds18b20.h"( \% @( ^: i, A
#include "stdio.h"1 }+ O7 ^" S1 x5 k) y
/**
" m5 c* p0 u2 w& f' F- { * 主程序
O. B# X, U& J1 u2 P& X( E * @param None
2 [5 N; f6 C9 [! w * @return None @) L) U. ?' {9 U4 g" L
*/) J0 I; d! B) F$ u
main(void). H3 V G, `; ^2 {$ j2 \
{ 1 ~5 k, u# f4 H$ a
int i;& B- i% d1 S7 p. i+ P) q, ~
TYPEDEF_KEY key;* j! |( G: r% h/ ?, C
unsigned int t,warntemp = 230;/ I7 W& [5 @: Z$ p6 K
unsigned char state = 0;: f$ Z; p% n7 g r
u16 ad_value, value;
/ y1 u$ r/ E% p0 v6 o5 q$ l$ x6 e unsigned char str[20] = {0x00};
$ z: p5 e! o7 D$ V
" _, e7 W5 o. Q# W- J0 u+ `3 ~! g+ ^9 {; ^% K) B; b& v
led_config();
4 v* I$ d* x* P y5 u digitron_config();
1 a2 v7 s/ [! D! v7 v key_config(); G" V* u6 N9 a! p/ L0 A
beep_pin_config();
% u( H: ^+ \0 r- e: r; _ timer_config();
7 B% Z' F( z$ r( T ds18b20_config();
6 `! |2 B# [8 f ds18b20_start();
; l2 ?; Z. ]1 m3 g+ | ` uart_config(); 9 r, B) w8 [, F S. H O! P, _: e
adc_config();
" b- {6 b+ j L+ j' U- x4 y& B, t
+ q0 Q- x# F N5 J3 d5 u t. d* S/ F i% _+ _) J
for (i=0;i<8;i++)
! B) m1 l( O& F8 \" e {: p% T/ |1 Z) `. y# L
digitron_put_buf(i,GO_OUT);//显示缓冲全部灭
" X" y! F$ K+ Q& k, U" i9 H }
5 T ], W0 ^! [$ ~9 y: U& K+ C int_enable(); ( d0 J- h- c- {; X2 h. ?" }# k5 A
while (1)
. {1 Y/ j8 f8 T# f& d {( ?# v# ~( |# q; ?) M% P8 }/ k
}
4 ?8 L$ S# `/ a' s! X. ?1 c) ?( g$ ^! h0 X9 F9 H
- z U, } e4 I3 u4 N Q
}
* t# D7 g. r' n7 v& P3 t
6 I0 C1 `2 C5 h# I) C$ l9 u$ k
5 h5 N( @0 J8 i3 o2 u: a( N* F+ c* j2 w8 C: Q7 u3 ^
|
|