|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我想做个点亮led灯1秒,暗10秒,循环10次程序停止,网上找了一些程序拼凑而成,我是新手还没入门呢,x的10次循环不知道怎么退出,延时循环一直用累减循环,会不会浪费cpu(mcu)资源、减少寿命,浪费电池电量。还有网上查的1s=1000000us,实测是255000us。
. P: a+ o5 I1 d! M) Z# V. |下面的程序,x的10次循环怎么退出啊,想运行10次就让单片机休息,停止工作,怕一直工作下去累坏了,后面加了return 0程序出错,while循环还不会写。
' N! u" S ^5 {) c. E: `5 H1 V; B
. R( e/ R( c# I5 Z) v$ ]#include<reg52.h>1 I1 F+ Y8 z) S1 e# w" V( _
1 I2 ]1 Z' i( l, Z2 U" _sbit LED0=P1^0;
: A; J" y# Z% t. c8 |void Delay_1s();
. ^, g0 y, ^. d! Cvoid Delay_10s();
7 @0 b) b, j8 [) M! B- Dunsigned int i,j,k;0 I( Y; E5 i6 b; x
6 G' G$ F' m# Q) t4 p* ivoid delay_1s()7 J$ l5 ~$ |# Y6 I7 q8 D9 }
{
' s, Z: w9 D3 y for(i=95;i>0;i--)4 a. G/ b7 ^( G
for(j=26;j>0;j--)
3 Z. O1 ?$ w) ~2 { for(k=46;k>0;k--);/ R3 x5 K B7 b' g
}
7 Y' b: Q8 k, j4 M7 i( `+ P4 |3 q) T7 N
void delay_10s()( T3 i$ D3 p( L) r; J
{
. H: c& q. s+ D% i unsigned int i,j,k;
6 n3 p- d/ S; `8 b* D# _ for(i=73;i>0;i--)
& q: x6 o& Q+ [0 k# v) H, W for(j=249;j>0;j--)
% F1 ?5 M# g e for(k=63;k>0;k--);
' Q+ O- x* @; k) p# X. e}6 y6 h; L U8 r3 u9 ]0 D
& Y( D) r; K& _& n8 I( @8 Hvoid main (void)7 P; X# C' C. o: l$ n) o3 G
{2 T, x" ^# u9 Y' D6 s
int x;
0 S! y- p9 {4 x2 s: t for (x=1; x<=10; x++)
6 y/ ~( Z+ M. w {$ _2 L) b- v; D6 F- l1 l
LED0=0;+ x1 a& }* B G6 b M7 Y, @
Delay_1s();
# B) F# j- @ R& l LED0=1;6 [, Y" H0 F2 O1 H* c
Delay_10s();
( l8 t( G7 i* g3 R+ |6 @ }
) J F2 F& f) {0 x: v( b& \& z+ P3 B
}
) W% b8 \& ^0 \- l; m |
|