|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
5 y4 R: K7 [+ R% t- _/* 名称:K1-K4 分组控制LED
5 z! N1 B* G0 G; N0 x+ L说明:每次按下 K1 时递增点亮一只LED,全亮时再次按下则再次循环开始,2 D& v8 f/ O( S& m9 W& m8 a h0 t" ?
K2按下后点亮上面4 只LED,K3 按下后点亮下面4 只LED,K4 按下后关闭所有LED1 H% B0 G% X, W6 M; o" x" p
*/9 y3 v0 @6 z: K0 U$ f) b/ T
#include<reg51.h>
" a9 t' @0 R" P4 x#define uchar unsigned char
7 p% X( P1 N2 s+ ]) n; r- l) E( L#define uint unsigned int. s/ O# [0 ?' F/ D3 S; T+ ~" c
//延时
: ~6 M" O) t x+ Pvoid DelayMS(uint x)
8 c5 _- K" a1 s) ^5 B1 z; |1 q{
, k0 e; l6 `3 {1 E0 i! L1 I) Euchar i;
0 T9 Z2 u3 c2 |$ X& H; M3 ~while(x--) for(i=0;i<120;i++);4 Y- d' o, | L$ }0 x0 z" @
}1 c: i+ V$ o) Z. b: M0 f
//主程序4 H- U# y3 {) _! n1 e
void main()
x% Z5 C* V& ~4 Q{7 p2 \% m9 }) a1 M& N
uchar k,t,Key_State;
, H0 M; q9 }. r. p( v$ W, PP0=0xff;7 Z3 d" X8 P' z9 H
P1=0xff; K Y. b( n4 N) b
while(1)6 }) [7 n0 y2 f) L1 ~
{' }$ z+ k: L6 z$ [
t=P1;
+ u3 A0 ^+ } I7 `3 \if(t!=0xff)& Z( z5 o2 W. L! u, u6 b; P: z9 j
{3 D2 t! z/ N0 h% f: H
DelayMS(10);
: A6 E6 l8 ~5 V, S1 T. ^% y5 x; tif(t!=P1) continue;
7 @; p7 T4 s8 A# ^: J//取得4 位按键值,由模式XXXX1111(X 中有一位为0,其他均为1)* H% R1 S3 e. \2 c* I( N
//变为模式0000XXXX(X 中有一位为1,其他均为0)4 o: `& o7 v5 F5 ]2 E" ^
Key_State=~t>>4;
# W, O6 T- _+ A5 F0 g/ H8 }; Jk=0;
+ B! C& [: s- d' ]2 ^//检查1 所在位置,累加获取按键号k
) W) L" z! f3 R/ p% S8 Z8 L6 Iwhile(Key_State!=0)
* o9 a/ F; }: H7 H( Q{* p& [' |( Y2 S/ b+ G2 ] x
k++;
~" z4 p0 U3 v2 [6 VKey_State>>=1;
* g( V! M- U# ~6 P4 m4 |}1 `. Q8 |, M( V8 |
//根据按键号k 进行4 种处理; h; n5 V0 p/ Q7 K1 s% w" u
switch(k)/ q$ W4 I7 m6 D, K/ Q% S. z
{
. `' \' {2 _6 D% V" k& kcase 1: if(P0==0x00) P0=0xff;* u! B `# H4 b
P0<<=1;
8 T% \; k4 R4 B- hDelayMS(200);
& _+ B& B% W9 H- jbreak;6 ?0 E. j( r/ E1 Z( N
case 2: P0=0xf0;break;7 ]/ o/ Z; Q% d( c& @' E+ i+ W
case 3: P0=0x0f;break;" u/ E6 G8 \7 L0 A1 G
case 4: P0=0xff;/ K; Z8 Q; r) E- c3 Y3 j
}
% L" u# q3 D+ ?' N$ d}
& T' i! d2 T( l5 M}
8 S/ i b5 O: e Q) U}3 S/ e0 E/ a; y6 M! C& f& U! {+ i9 u
8 P" ?5 | Z5 K9 t小弟初學單片機 當switch k = 1或2或3或4 會自動執行case+ A, p6 P3 Q; \* C$ u6 r, n
但是看不懂k++何時變成1或2或3或4
6 }, X3 f- Z' V: W3 Q$ ]- `請問各位先進們 可否解釋一下這程序1 O. o* b" M- M" C) N
- R) ]( a3 j D6 D* s9 r) X9 K |
|