标题:
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; //ÑÓʱֵÉ趨
void ZD_Init();
void main()
{
ZD_Init();
while(1);
}
void ZD_Init()
{
EA=1; //´ò¿ª×ÜÖжϿª¹Ø
ET0=1; //´ò¿ª¶¨Ê±Æ÷0
TR0=1; //Æô¶¯¶¨Ê±Æ÷0¹¤×÷
TMOD=0X01; //Ñ¡Ôñ¶¨Ê±Æ÷0¹¤×÷ģʽ1£»16λ¶¨Ê±Æ÷
TH0=(65536-50000)/256; //¶¨Ê±Æ÷0¸ß8λװ³õÖµ£»¶¨Ê±50ºÁÃë
TL0=(65536-50000)%256; //¶¨Ê±Æ÷0µÍ8λװ³õÖµ£»¶¨Ê±50ºÁÃë
}
void Time0() interrupt 1 using 0 //????
{
TH0=(65536-50000)/256; //¶¨Ê±Æ÷0¸ß8Î»ÖØ×°³õÖµ
TL0=(65536-50000)%256; //¶¨Ê±Æ÷0µÍ8Î»ÖØ×°³õÖµ
i++;
if(i==100) //ÖжÏ20´ÎΪ1Ã룻ÖжÏ100´ÎΪ5Ãë;ÖжÏ200´ÎΪ10Ã룻
{
i=0;
LED0=~LED0;
}
}
哪位大侠指点指点?
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1