51单片机c语言程序是一个灯亮灭,需要一个C语言程序。51单片机控制:按键按一下,延迟1分钟后开灯,灯亮半个小时就熄灭的程序?急需!...

满意答案

02ae427d08e371d7e90d5b995e828d6d.png

roselz216

2020.05.01

02ae427d08e371d7e90d5b995e828d6d.png

采纳率:43%    等级:9

已帮助:411人

如果对时间要求不精确,用软延时即可。

#include

#define uchar unsigned char

#define uint unsigned int

sbit s=P1^0;

sbit led=P1^1;

void delayms(uint i) //1ms延时程序

{

uchar j;

for(;i>0;i--)

{

for(j=0;j<125;j++)//如果延时时间误差较大,可按比例改变125这个数

//取值范围0-255,数值越大,延时越长

{;}

}

}

void delay1s(uint i) //1s延时程序

{

for(;i>0;i--){delay1ms(1000);}

}

void main()

{

led=0;

while(1)

{

if (s==0)

{

delayms(20);

if (s==0);{delay1s(60);led=1; }

}

if(led==1){delay1s(1800);led=0; }

}

}

如果对时间要求精确,则要用到定时器,还要确保电路外接有晶振,并已知晶振频率

00分享举报

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值