|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我想做个点亮led灯1秒,暗10秒,循环10次程序停止,网上找了一些程序拼凑而成,我是新手还没入门呢,x的10次循环不知道怎么退出,延时循环一直用累减循环,会不会浪费cpu(mcu)资源、减少寿命,浪费电池电量。还有网上查的1s=1000000us,实测是255000us。0 N- L8 j$ R; p/ @: m( A
下面的程序,x的10次循环怎么退出啊,想运行10次就让单片机休息,停止工作,怕一直工作下去累坏了,后面加了return 0程序出错,while循环还不会写。" w+ N/ T- [0 J* }8 c' ]
% o- r: A1 }8 ?0 a6 X
#include<reg52.h>/ ^$ N8 g# i4 c/ X' G# [8 m
8 X2 L7 F! y; E; w& O9 r& C
sbit LED0=P1^0;% W/ k c1 M4 c( A! L
void Delay_1s();
# `" X7 T1 b" X& h% `7 ?void Delay_10s();: O' p( m4 g N3 V. ^ R' _
unsigned int i,j,k;
6 W3 o x( I- x. D1 ?- w% ?
' b: y8 O0 Q& `0 v: ~- A& i6 C' Dvoid delay_1s()
$ I6 f5 `; ^4 S7 x- y0 ?: `. X! n{, T: ~7 x4 o+ B- F8 L: b8 D
for(i=95;i>0;i--)
[" G. G: }( f for(j=26;j>0;j--)" s: b4 m7 G) w# }
for(k=46;k>0;k--);
: }1 J' F: J6 o+ M" G/ r}
. K: _% T& _! q, `! W) F8 J( p9 f& Q9 i) |
void delay_10s(): N% @6 q% H) c7 k
{
5 i _* }# {9 n: e- l unsigned int i,j,k;
6 ?! q+ r) i- g B( C for(i=73;i>0;i--)5 N8 J8 t) I$ K8 Q
for(j=249;j>0;j--)
0 @9 I/ e8 E6 Z7 V$ ^+ l5 f. V9 M for(k=63;k>0;k--);
) F: H* {$ d4 t& C0 `2 p}
6 B) k4 j( |& O5 N
) M3 u4 R3 f6 ^( U- W. U5 r1 ~2 rvoid main (void)
: f& A+ j# F7 q' H{2 w1 \) z# S& S# X, ^8 Q/ A0 t
int x;
$ f$ x, S' B' X for (x=1; x<=10; x++)
, |2 T8 d2 m( t& v7 K; q% G {: B7 E1 o! r6 J7 i b4 S
LED0=0;
6 Z/ X; v' D2 t& } Delay_1s();( P# ^9 e0 C* i9 i9 Z3 z& H4 k
LED0=1;8 V6 u! v1 K! @$ U6 e8 W
Delay_10s();$ c! @& A: s6 Y/ x6 V) Z/ y+ B
}
; Y0 m# Q1 @ d4 b
; P7 a- _- T7 W. B& E5 h2 p}
0 _% {% b/ F+ Y0 {$ K9 ~ |
|