单片机100分钟定时继电器程序

来源:本站
导读:目前正在解读《单片机100分钟定时继电器程序》的相关信息,《单片机100分钟定时继电器程序》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《单片机100分钟定时继电器程序》的详细说明。
简介:本文和大家分享一个单片机100分钟定时继电器的程序,感兴趣的朋友可以看看。

#include<reg51.h>sbit Key_UP=P1^0;sbit Key_DOWN=P1^1;unsigned char KeyV,TempKeyV;          sbit P25=P2^0;//数码管第1位sbit P26=P2^1;//数码管第2位sbit gang=P2^2;//分钟与秒的间隔符sbit P27=P2^3;//数码管第4位sbit P28=P2^4;sbit qian=P1^4;sbit bai=P1^5;sbit JDQ=P3^7;//继电器 unsigned int js; unsigned int ds,x,y;//倒计时初始时间,加时,减时 unsigned char jsflag;static unsigned int i;unsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF};void Delay(unsigned int ii) //1MS{unsigned int jj;for(;ii>0;ii--)for(jj=0;jj<125;jj++){;}}void main(){    EA = 1;     //允许CPU中断 ET0 = 1;     //定时器0中断打开 ET1=1;     //定时器1中断打开 TMOD = 0x11;   //设定时器0 1为模式1,16位模式 TH0=0xB8; TL0=0x00;    //设定时值为(20ms) TH1=0xdc;     //设定时值为(10ms) TL1=0x00; TR0 = 1; TR1=1; ds=9999; KeyV = 0; TempKeyV = 0; jsflag=0;while(1);}//定时器0中断外理中键扫描和显示void Key_Time0(void) interrupt 1 using 2{  TH0=0xB8; TL0=0x00;    //设定时值为20000us(20ms)  if (!Key_UP)    KeyV = 1;  if (!Key_DOWN)    KeyV = 2;   if (KeyV!= 0)      //有键按下    {      Delay(10);   //延时防抖  按下10ms再测      if (!Key_UP)        TempKeyV = 1;      if (!Key_DOWN)        TempKeyV = 2;   if (KeyV == TempKeyV)   //两次值相等为确定接下了键    {        if (KeyV == 1)     {                     jsflag=0;            if(ds==0)         {         ds=6000;         }        js=js+1;       JDQ=0;   //继电器吸合                              if(js==50)                            {                          js=0;                          ds=ds-1;                              }           }if(KeyV==2){   jsflag=1; }}}   if(jsflag==1)   {   JDQ=1;   }   if(ds==0)   {   JDQ=1;   jsflag=1;   KeyV=0;   } }void disp_Time1(void) interrupt 3 using 3{ TH1=0xdc; TL1=0x00; x=ds/1000;    P0=LEDDis[x];P25=0;  Delay(2);   P25=1;   y=(ds%1000)/100;      P0=LEDDis[y];      P26=0;      Delay(2);      P26=1;P0=0xbf;gang=0;Delay(2);gang=1;  P0=LEDDis[((ds%1000)%100)/10];  if(((ds%1000)%100)/10>=6)   //满60,百位减一  {  ds=ds-10;  P0=LEDDis[6];  }  P27=0;  Delay(2);  P27=1;  P0=LEDDis[((ds%1000)%100)%10];  P28=0;  Delay(2);  P28=1;}

提醒:《单片机100分钟定时继电器程序》最后刷新时间 2024-03-14 00:58:18,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《单片机100分钟定时继电器程序》该内容的真实性请自行鉴别。