长汀无线电厂交流论坛

 找回密码
 注册
查看: 2768|回复: 7
打印 上一主题 下一主题

发个小程序,单键操作,可以调节开关时间的

[复制链接]
跳转到指定楼层
楼主
发表于 2011-3-12 10:05:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个程序配合计数器使用,用来做零件寿命测试用的。
当然也可以做鱼缸定时充气,或者冰箱定时,外围加一些电路就可以了。
程序比较垃圾,见笑了.

#include <reg52.h>//p3.4接按键,切换模式,晶振8M
unsigned char ID; //P1.1&P1.2接LED指示,即同一时间内这两个脚只有一个脚 可以点亮,当然也可以驱动别的。
#define uint unsigned int;//OUT 根据指示灯P1.1或者P1.2那个亮决定开关时间,开关的时间在程序里面调整//
uint x,y,z,num,tt;//暂时只能设置两种开关时间  ,上电一种,按一下开关换另一种,再按循环。
sbit key=P3^4;
sbit dcfzs=P1^1;
sbit out=P1^3;
sbit cqzs=P1^2;
void delay10ms(void)
{
  unsigned char i,j;
  for(i=20;i>0;i--)
  for(j=110;j>0;j--);
}
void main()
{
TMOD=0x01;//设置定时器0为工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
   
key=1;//按键置1
ID=0;

//key-----------
while(1){
  if(key==0)
  {
  delay10ms();
  if(key==0)
   {
   num=0;
   ID++;
   if(ID==2)
    {ID=0;
    }
   while(key==0);//如果不是0才跳出,等待按键释放。
   }
  }
   
  
////////////////////////////////
switch(ID)//查询ID是几
  {
  case 0:
            cqzs=1;
   dcfzs=0;
   //num++;
   if(num==40)//12.5=1s 调整输出高电平时间
    {         
    out=1;
    }
   else{
      if(num==80)//调整输出低电平时间,注意,这里的数要减去高电平时间才是低电平时间
      {
      out=0;
      num=0;
      }
    }
            break;
   case 1:
   cqzs=0;
   dcfzs=1;
   if(num==145)//12.5=1s
      {
       out=1;
      }
    else{
     if(num==278)
      {
      out=0;
      num=0;
      }
      }
     break;
               
  
  }
  
  }
}
void T0_time () interrupt 1    // 定时器0中断
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
num++;
}

回复

使用道具 举报

沙发
发表于 2011-3-13 12:33:56 | 只看该作者
无私奉献!支持一下。
回复 支持 反对

使用道具 举报

板凳
发表于 2011-3-17 21:31:22 | 只看该作者
支持下!
回复 支持 反对

使用道具 举报

地板
发表于 2011-3-19 17:40:49 | 只看该作者
支持下,这就是C?
回复 支持 反对

使用道具 举报

5#
发表于 2013-3-3 22:29:28 | 只看该作者
谢谢分享,谢谢分享
回复 支持 反对

使用道具 举报

6#
发表于 2013-3-5 09:52:41 | 只看该作者
支持原创。
回复 支持 反对

使用道具 举报

7#
发表于 2013-3-5 21:41:59 | 只看该作者
高手!实在是高!来个硬件的图好不好!我们太菜!不懂!
回复 支持 反对

使用道具 举报

8#
发表于 2013-5-11 11:20:35 | 只看该作者
支持原创。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|Archiver|长汀无线电厂交流论坛  

GMT+8, 2024-5-5 05:57 , Processed in 0.406825 second(s), 16 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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