📄 ap66c.c
字号:
//-------------------------------------------------------------------------
// Filename : ap066c.c
// Language : C for AT89c52
// Revision :
// Initial Date : 10/02
// Last Modify : Tom
// System clock : 24.00MHZ
// Description : for 3p slot liner machine
//-------------------------------------------------------------------------
//--------------------test dn-----------------------------------------------------
#pragma pr(xq_ap66c.lst) pl(24) pw(119) //lc //sb
#pragma object(xq_ap66c.obj)
#pragma mod517(noau,nodp8)
//--------------------test up-----------------------------------------------------
#include <reg52.h>
#include <absacc.h>
#include "PC16BIOS.h"
// define constant for input of the main control board
#define p_pusher_fd 1
#define p_pusher_bd 2
#define index_up 3
#define index_dn 4
#define detect 5
#define alarm 6
#define start1 7
#define start2 8
#define workhd_up 9
#define workhd_dn 10
#define ck_pap 11
//#define 12
//#define 13
//#define 14
#define manual 15
#define reset 16
//-------------------------------------------------------------------------
// define constant for output of the main control board
#define p_pusher_1 1
#define p_pusher_2 2
#define index 3
#define workhd_1 4
#define workhd_2 5
#define reset_lp 6
//#define 7
#define buzzer 8
//-------------------------------------------------------------------------
// function prototype
//void ck_home (void);
void manual_pro (void);
void auto_pro (void);
//void sin_mo_wa (void); //in single step mode wait
//void sin_mo_pro (void); //in single step mode wait
void on_p_pusher (void);
void off_p_pusher (void);
void on_workhd (void);
void off_workhd (void);
//-------------------------------------------------------------------------
char p_pushermem;
char indexmem;
char workhdmem;
//-------------------------------------------------------------------------
main ()
{
init_system ();
delay (900); //delay 1 sec
p_pushermem = 0;
indexmem = 0;
workhdmem = 0;
// ck_home ();
while (1)
{
if ( input_port ( manual ) )
manual_pro ();
else
{
if ( (input_port (start1) + input_port (start2)) == 2 )
auto_pro ();
if ( input_port (reset) )
{
output_port (buzzer,ON);
off_workhd ();
while ( !input_port (workhd_dn) );
off_p_pusher ();
while ( !input_port (p_pusher_bd) );
output_port (buzzer,OFF);
}
}
}
}
//-------------------------------------------------------------------------
void manual_pro ()
{
char a;
while (input_port (manual) )
{
switch ( scan_manual() )
{
case 1 :
if ( input_port (p_pusher_bd) == 1 )
output_port (reset_lp,OFF);
else
output_port (reset_lp,ON);
if ( input_port (reset) )
{
while ( input_port (reset) );
if ( input_port (p_pusher_bd) == 0 )
{
off_p_pusher ();
p_pushermem = 0;
}
else
{
on_p_pusher ();
p_pushermem = 1;
}
}
break;
case 2 :
if ( input_port (index_up) == 1 )
output_port (reset_lp,OFF);
else
output_port (reset_lp,ON);
if ( input_port (reset) )
{
while ( input_port (reset) );
if ( input_port (index_up) == 0 )
{
output_port (index,OFF );
indexmem = 0;
}
else
{
output_port (index,ON );
indexmem = 1;
}
}
break;
case 3 :
if ( input_port (workhd_dn) == 1 )
output_port (reset_lp,OFF);
else
output_port (reset_lp,ON);
if ( input_port (reset) )
{
while ( input_port (reset) );
if ( input_port (workhd_dn) == 0 )
{
off_workhd ();
workhdmem = 0;
}
else
{
on_workhd ();
workhdmem = 1;
}
}
break;
}
delay (300); }
a = p_pushermem+indexmem+workhdmem;
if ( a != 0 )
{
output_port (buzzer,ON);
while ( !input_port (manual) );
delay (100);
output_port (buzzer,OFF);
}
}
//-------------------------------------------------------------------------
void auto_pro ()
{
char a;
char b;
char c;
// char d;
unsigned int job_time;
unsigned int job_time_temp;
delay (398);
a = input_port(start1);
a += input_port(start2);
if ( a == 2 )
{
delay (383);
while ( input_port (start1) );
while ( input_port (start2) );
if ( input_port (ck_pap ) == 1 )
{
output_port (buzzer,ON);
delay (883);
output_port (buzzer,OFF);
return;
}
a = scan_manual ();
on_workhd ();
while ( !input_port (workhd_up) );
delay (263);
if ( input_port (detect) == 0 )
{
output_port (buzzer,ON);
delay (883);
output_port (buzzer,OFF);
return;
}
output_port (index,ON);
while ( !input_port (index_dn) );
delay (23);
output_port (index,OFF);
while ( !input_port (index_up) );
delay (23);
b = a;
while (b)
{
output_port (index,ON);
while ( !input_port (index_dn) );
delay (23);
output_port (index,OFF);
while ( !input_port (index_up) );
delay (23);
on_p_pusher ();
c = 1;
while (c)
{
job_time = _current_time ();
while (c)
{
if ( input_port(p_pusher_fd) == 1 )
c = 0;
job_time_temp = _current_time ();
if ( job_time == job_time_temp - 936 )
{
output_port (buzzer,ON);
off_p_pusher ();
off_workhd ();
while (1);
}
}
}
delay (33);
off_p_pusher ();
while ( !input_port (p_pusher_bd) );
delay (63);
b--;
}
off_workhd ();
while ( !input_port (workhd_dn) );
}
delay (23);
}
//-------------------------------------------------------------------------
void on_p_pusher ()
{
output_port (p_pusher_1,ON);
output_port (p_pusher_2,OFF);
}
//-------------------------------------------------------------------------
void off_p_pusher ()
{
output_port (p_pusher_1,OFF);
output_port (p_pusher_2,ON);
}
//-------------------------------------------------------------------------
void on_workhd ()
{
output_port (workhd_1,ON);
output_port (workhd_2,OFF);
}
//-------------------------------------------------------------------------
void off_workhd ()
{
output_port (workhd_1,OFF);
output_port (workhd_2,ON);
}
//-------------------------------------------------------------------------
// end of file
/*
void sin_mo_wa ()
{
char a;
a = 1;
if ( input_port (auto) == 0 )
{
while (a)
{
if ( input_port (start1) )
{ if ( input_port (start2) )
a = 0;
}
if ( input_port (manual) )
break;
}
}
while ( input_port (start1) );
while ( input_port (start2) );
}
*/
//-------------------------------------------------------------------------
/*
void ck_home ()
{
char a;
char b;
b = 1 ;
while ( b )
{
a = input_port(wguide_bd) ;
a = a + input_port(feed1_dn) ;
a = a + input_port(feed2_up) ;
if ( a != 3 )
{ output_port (alarm,ON);
b = 1;
}
else
{ b = 0;
output_port (alarm,OFF);
}
} //for the while (b)
} //for the function
*/
//-------------------------------------------------------------------------
/*
void sin_mo_pro ()
{
// char a;
output_port (lock,ON);
lockmem = 1;
while ( !input_port (lock_fd) ) ;
sin_mo_wa ();
if ( input_port (manual) )
return;
output_port (oil_pump,ON);
oil_pumpmem = 1;
sin_mo_wa ();
// while ( !input_port (oil_lvl_ck) ) ;
output_port (tr1,ON);
while ( !input_port (timer1) ) ;
delay (238);
output_port (tr1,OFF);
output_port (oil_pump,OFF);
oil_pumpmem = 0;
while ( !input_port (timer3) ) ; //soak time
output_port (oil_drain,ON);
oil_drainmem = 1;
while ( !input_port (timer4) ) ; //drain time
output_port (rotate_mot,ON);
rotate_motmem = 1;
output_port (tr2,ON);
while ( !input_port (timer2) ) ;
output_port (tr2,OFF);
output_port (rotate_mot,OFF);
rotate_motmem = 0;
sin_mo_wa ();
if ( input_port (manual) )
return;
output_port (oil_drain,OFF);
delay (1630);
oil_drainmem = 0;
sin_mo_wa ();
if ( input_port (manual) )
return;
output_port (lock,OFF);
lockmem = 0;
}
*/
//-------------------------------------------------------------------------
// end of file
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -