|
EDA365欢迎您!
您需要 登录 才可以下载或查看,没有帐号?注册
x
1 A$ O) h* s. K L. U! N/* 名称:K1-K4 分组控制LED
3 w- s4 s# `) L说明:每次按下 K1 时递增点亮一只LED,全亮时再次按下则再次循环开始,1 K' c# Y6 u% X
K2按下后点亮上面4 只LED,K3 按下后点亮下面4 只LED,K4 按下后关闭所有LED
2 }: o) r9 R. F4 s/ ~# y! R/ ]9 K*/
$ w& [5 K' w& E#include<reg51.h>: i* [. Y+ }/ S/ t- a% l
#define uchar unsigned char
. `* C# c. H! q, l+ V#define uint unsigned int
( G* T% |: A: j2 B$ a, h//延时9 t0 c& p+ x! `& u0 {' {
void DelayMS(uint x)
- c% Z) Z {- x: [7 e5 V{
; U# G2 p( u; @+ w( l. u0 tuchar i;
5 W) s7 [. p+ d& C1 Dwhile(x--) for(i=0;i<120;i++);
+ `' y; e% ~ |/ m! Z}% I/ \& E$ z* N2 }; F: r
//主程序
. c6 I* D }# M0 t5 W0 c! J* Avoid main()
) ]) o; G* C6 Z8 c{( T, n& F& T9 ~" N, J: O! b7 L
uchar k,t,Key_State;
2 J* ~9 m) u, ?8 C4 SP0=0xff;9 {/ r( y9 {; u1 q4 V5 @
P1=0xff;
: T. s2 ~* S- K* o* u/ G( Awhile(1)# Z: t& C% Y) i4 A7 H
{0 ]. L# G1 C) S' m
t=P1;
1 ~; g, E, a3 b3 Iif(t!=0xff)
8 R* V3 I$ f- E' I7 g. g7 O{
* }" d! \5 N0 \! |DelayMS(10);
5 O+ C" w' o: g2 }* h' }if(t!=P1) continue;
7 y! s. N: }8 d3 h# w//取得4 位按键值,由模式XXXX1111(X 中有一位为0,其他均为1)
! m8 }4 v9 q1 S3 E//变为模式0000XXXX(X 中有一位为1,其他均为0)' k& ]5 n! R) [# u: Y8 F
Key_State=~t>>4;3 z, v1 k/ c& ~2 K: p/ u: {) v7 u
k=0;
& I0 u6 p% N3 q1 W% z" Y0 Q% H, N//检查1 所在位置,累加获取按键号k. V% m: j) A5 [
while(Key_State!=0)
4 V- t) `4 @2 U" Z! t! k- A{
+ h3 x# }5 J! e6 P4 B1 hk++;% R0 l9 p r0 D4 j
Key_State>>=1;( z) q" v1 I% D( Y4 @2 m; W/ X
}: }% M- E' |, g4 I
//根据按键号k 进行4 种处理! x5 C7 B( P; Z* g- L
switch(k)
/ @, Z$ f2 M# @& c- P+ C4 ?$ u! [/ h{( d2 |& l" K! w& F2 |+ I( h: o1 E1 s
case 1: if(P0==0x00) P0=0xff;
4 X$ p( x& `0 E# L. dP0<<=1;
) X. \+ C5 G: o& qDelayMS(200);
5 f9 U7 W) d$ Pbreak;/ S* i7 t9 @4 o0 H
case 2: P0=0xf0;break;
: ~5 V7 k, K* Y) g3 i' ncase 3: P0=0x0f;break;
3 Q: L3 g) C4 acase 4: P0=0xff;$ U$ j% f# o) O2 z& R- |8 D, W( {
}
* J9 f: z6 C$ O}
) ~7 Y/ W8 u! D, x! |}
4 a7 i; b2 i$ ~/ i}: j4 I4 L' E; Z; N. X. \ t! U
) Z4 h$ i- R3 L% v5 M- z小弟初學單片機 當switch k = 1或2或3或4 會自動執行case" [! C" v, W1 Q# q
但是看不懂k++何時變成1或2或3或4
% ^5 u- { I6 d5 e請問各位先進們 可否解釋一下這程序
7 Z v8 C' m; q0 h' ]
9 y3 ]" E9 N+ F4 }0 H7 v |
|