|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
单片机程序只能顺序点亮LED,不能关闭?怎样能够完成?# B! k( w+ T a5 l' Z
#include<reg51.h> //包含单片机寄存器的头文件
0 V3 N3 {4 W4 y' m+ L' v" T/ `sbit S1=P1^0; //将S1位定义为P1.0
$ y A2 Q/ Z4 |4 W6 [; K5 h- A
) M* H- W! Z. K% d$ C" c1 s8 W2 J/************延时us函数************************/
/ R. x& Y8 Z" j, v# h) F) t+ xvoid delayus(unsigned int j )* [7 W' A- \' `. O9 _: N" x
{& S) k! W+ w: d. C
4 z0 z/ f7 Z8 Y, `8 p: r3 U! C
while(j--);
9 x l+ ]( c1 |3 e0 _9 s) S: {}
4 `; F( {- N, J2 `' ?. G' V; C
X- x+ i' s5 Z }' ~# y$ [/*********************************************/7 ]# }% I- h6 Q. m) r
/*****************************7 F2 n( d& ?- Z" G, l4 S+ C
函数功能:主函数5 D( C# S' ]& ~" q& i; R& n
*****************************/& c y. r; M; F$ l+ h
void main(void), S t3 B& ^" e# v v
{
$ W+ P6 S7 P2 C* \$ S6 s unsigned char i ;
, n) R' B9 P# e) V2 D R9 t i=0; //将i初始化为0
* c# t/ ~3 r" w* P% ~0 c6 M
0 p+ z2 N& ~' G5 W# u while(1)
2 g! L+ [$ K) c2 x3 Q- Y: y1 t3 w {# N+ h- i1 S9 Q2 d4 N* }2 |+ G9 ^) [
if(S1==0) //如果S1键按下
) z }7 R- I7 Z' `2 J: X {+ Z& y8 \$ W8 C, `3 g& c, }
delayus(5); //延时一段时间
, t( e' L# `0 O- @ if(S1==0) //如果再次检测到S1键按下
. e" ~7 ?' s7 S" y8 _1 b i++; //i自增1
4 J3 r7 q3 {! k6 D3 \2 ]( T6 D- d. B! U2 h5 ]/ F8 U2 v [
if(i==5) //如果i=5,重新将其置为4
1 b8 y( H$ k0 h" s) G. H% a i=4;
: \3 ?8 Q/ B8 F0 y0 V
* v0 s/ H* o" o7 L5 _ }* A7 N) B3 B% {
switch(i) //使用多分支选择语句
3 G0 ~1 y7 a. g% N( v9 S7 Z# } {
" g3 i$ p" U) j+ O/ b5 t/ @/ _ case 1: P0=0xfe; //第一个LED亮: x6 \8 {* S: J( d# I4 a
delayus(600);9 u* H( C* t% y& h
break;
7 h' f$ u( f5 g, _+ G& t/ m case 2: P0=0xfc; //第二个LED亮+ O* s) u3 ^% h9 C& L5 j
delayus(800);
( z% s0 U7 h4 b! C T break;7 x w) A- l6 k+ D! q. L7 n9 ?9 Q: N
case 3 0=0xf8; //第三个LED亮
7 D: x; p( f$ Z" P5 }+ |4 F delayus(1000);
' Q' {" w9 G; n- m" z4 ~ break;6 ^7 c& v2 X. R% r2 S+ Q% ]
case 4 0=0xf0; //第四个LED亮- o. Q) f1 P+ x% }; A1 M
delayus(1200);# v. J9 ]* T ^' d: D8 K: M: h
break;
( C$ s# m7 i6 {! e, } 3 y- P7 }% k! V; W2 }) k O7 M& x" ~1 F
default:break;
+ {* X) g! f& ?' c; S, n4 Z2 v! B }
8 b b* e% A+ {! e/ z
3 _3 N9 B1 Y8 Q& E& @( `- T3 J
/ b/ [, s+ d% g! t R0 M$ A x }
: i) }* F" X2 n) K# @: f }
' w2 ^7 h' A+ z2 G* a" L9 b u
) B3 |! C0 n+ d5 ^) U, x
) @. Z" J1 X% e' `. [7 F1 H- w$ X, V2 V
" X t) i3 c! k, h按住S1=0键点亮:第一个LED亮,第二个LED亮,第三个LED亮,第四个LED亮 ,可以。
6 Z4 l. J- ], @8 k, o( C( E9 t$ x' k7 i2 k4 [" x9 h
0 T$ N- Q1 n+ ~$ D% v# z
* h2 [ B# s- L放开S1=1键关闭:第四个LED灭,第三个LED灭,第二个LED灭,第一个LED灭,加上什么程序,弄了好久不能完成。. M: ?8 ^' O3 \( H; x, [
) R4 ^& }! N3 [, x! s
' q/ s# q3 H5 t) q/ ]" T |
|