找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3290|回复: 5
收起左侧

我的笨法C语言延时>10分钟程序,大侠们不要笑,试过有效的

[复制链接]
ID:50765 发表于 2013-7-6 22:20 | 显示全部楼层 |阅读模式
本帖最后由 mfkjqkoooo 于 2013-7-6 22:36 编辑

/********************************************************************
实现功能:顺序控制程序
使用芯片:STC89C52RC
晶振:11.0592MHZ
编译环境:Keil
*********************************************************************/
/********************************************************************
四入四出继电器工控程序说明:
继电器K1闭合约>30秒后,继电器K1断开>10分钟,K3吸合,然后延时约>30秒,
继电器K3断开>30秒,如此循环!
*********************************************************************/
#include<reg52.h>          //库文件
#define uchar unsigned char//宏定义无符号字符型
#define uint unsigned int  //宏定义无符号整型
/********************************************************************
                            初始定义
*********************************************************************/
/*定义四位输入为单片机P1口*/
sbit IN0=P1^0;
sbit IN1=P1^1;
sbit IN2=P1^2;
sbit IN3=P1^3;

/*定义四位输出为单片机P2口*/
sbit K1=P2^0;
sbit K2=P2^1;
sbit K3=P2^2;
sbit K4=P2^3;
/********************************************************************
                            延时函数
*********************************************************************/
void delay(uchar t)  //当t等于20时,大概延时0.2秒;当t等于10时,大概延时0.1秒;
{
uchar m,n,s;
for(m=t;m>0;m--)
//for(m=t;m>0;m--)
for(n=500;n>0;n--)    //n=500"+"delay(500); //调用延时函数  为>30秒钟
for(s=248;s>0;s--);
}

/********************************************************************
                            主函数
*********************************************************************/
void main()
{
while(1)
{

K1=0; //继电器K1闭合
//K2=0; //继电器K2闭合
delay(500); //调用延时函数    //n=500"+"delay(500); //调用延时函数  为>30秒钟

K1=1; //继电器K1断开
//K2=1; //继电器K2断开
delay(500); //调用延时函数  //延时累计
delay(500); //调用延时函数  
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数  
delay(500); //调用延时函数  33*10=330秒=6分30秒
delay(500); //调用延时函数
delay(500); //调用延时函数  
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数  
delay(500); //调用延时函数  33*10*2=660秒=13分
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数
delay(500); //调用延时函数   累计15分钟

K3=0; //继电器K3闭合
//K4=0; //继电器K4闭合
delay(500); //调用延时函数

K3=1; //继电器K3断开
//K4=1; //继电器K4断开
delay(500); //调用延时函数

}
}

/********************************************************************
                              结束
*********************************************************************/

回复

使用道具 举报

ID:153199 发表于 2016-12-31 11:02 | 显示全部楼层
可以的不过代码长
回复

使用道具 举报

ID:52115 发表于 2013-7-28 19:53 | 显示全部楼层
延迟用的太多浪费cpu,感觉用定时器更精准。
回复

使用道具 举报

ID:52066 发表于 2013-7-27 00:23 | 显示全部楼层
哈哈,有意思
回复

使用道具 举报

ID:52211 发表于 2013-7-24 20:15 | 显示全部楼层
菜鸟前来观望
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表