标题: STC89C52RC控制气缸运行 [打印本页]

作者: asult    时间: 2016-6-27 14:03
标题: STC89C52RC控制气缸运行
我想用一个单片机(STC89C52RC单片机)控制一个气缸运行,气缸上有两个行程开关,分别接入单片机P1.0和P1.1端,输出端P2.0和P2.1为继电器,分别控制气缸两端的电磁阀。要求:回程延时10秒,推程延时1秒。
我写了两个简单的程序,但完整的控制程序不会写。

第一程序:通过P1.0端口判断高低电平(对应行程开关)来打开或关闭P2.0电磁阀。
#include <reg52.h>
sbit LED0=P2^0;
sbit PP0=P1^0;
void main()
{
if(PP0==1) LED0=0;else LED0=1;

}


第二程序:定时器延时5秒程序

#include <reg52.h>
sbit LED0=P2^0;
unsigned char i=0; //&Ntilde;&Oacute;&Ecirc;±&Ouml;&micro;&Eacute;è&para;¨
void ZD_Init();   
void main()
{
ZD_Init();      
while(1);      
}
void ZD_Init()      
{
EA=1;                     //&acute;ò&iquest;&ordf;×&Uuml;&Ouml;&ETH;&para;&Iuml;&iquest;&ordf;&sup1;&Oslash;
ET0=1;                   //&acute;ò&iquest;&ordf;&para;¨&Ecirc;±&AElig;÷0
TR0=1;                   //&AElig;&ocirc;&para;&macr;&para;¨&Ecirc;±&AElig;÷0&sup1;¤×÷
TMOD=0X01;                 //&Ntilde;&iexcl;&Ocirc;&ntilde;&para;¨&Ecirc;±&AElig;÷0&sup1;¤×÷&Auml;&pound;&Ecirc;&frac12;1&pound;&raquo;16&Icirc;&raquo;&para;¨&Ecirc;±&AElig;÷
TH0=(65536-50000)/256;       //&para;¨&Ecirc;±&AElig;÷0&cedil;&szlig;8&Icirc;&raquo;×°&sup3;&otilde;&Ouml;&micro;&pound;&raquo;&para;¨&Ecirc;±50&ordm;&Aacute;&Atilde;&euml;
TL0=(65536-50000)%256;        //&para;¨&Ecirc;±&AElig;÷0&micro;&Iacute;8&Icirc;&raquo;×°&sup3;&otilde;&Ouml;&micro;&pound;&raquo;&para;¨&Ecirc;±50&ordm;&Aacute;&Atilde;&euml;
}
void Time0() interrupt 1 using 0   //????
{
TH0=(65536-50000)/256;       //&para;¨&Ecirc;±&AElig;÷0&cedil;&szlig;8&Icirc;&raquo;&Ouml;&Oslash;×°&sup3;&otilde;&Ouml;&micro;
TL0=(65536-50000)%256;       //&para;¨&Ecirc;±&AElig;÷0&micro;&Iacute;8&Icirc;&raquo;&Ouml;&Oslash;×°&sup3;&otilde;&Ouml;&micro;
i++;
if(i==100)                  //&Ouml;&ETH;&para;&Iuml;20&acute;&Icirc;&Icirc;&ordf;1&Atilde;&euml;&pound;&raquo;&Ouml;&ETH;&para;&Iuml;100&acute;&Icirc;&Icirc;&ordf;5&Atilde;&euml;;&Ouml;&ETH;&para;&Iuml;200&acute;&Icirc;&Icirc;&ordf;10&Atilde;&euml;&pound;&raquo;
  {
   i=0;
   LED0=~LED0;
  }
}


哪位大侠指点指点?





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1