/******************************************************************** 
                            汇诚科技 
 
实现功能:1对1输入输出互锁控制程序 
使用芯片:AT89S52 或者 STC89C52 
晶振:11.0592MHZ 
编译环境:Keil 
作者:zhangxinchunleo 
网站:www.ourhc.cn 
淘宝店:汇诚科技 http://shop36330473.taobao.com 
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!      
 
*********************************************************************/ 
/******************************************************************** 
程序说明: 
 
当IN0口与GND口接通后,对应的继电器K8吸合(即:COM7与CK接通CB断开); 
当IN1口与GND口接通后,对应的继电器K7吸合(即:COM6与CK接通CB断开); 
当IN2口与GND口接通后,对应的继电器K6吸合(即:COM5与CK接通CB断开); 
当IN3口与GND口接通后,对应的继电器K5吸合(即:COM4与CK接通CB断开); 
当IN4口与GND口接通后,对应的继电器K4吸合(即:COM3与CK接通CB断开); 
当IN5口与GND口接通后,对应的继电器K3吸合(即:COM2与CK接通CB断开); 
当IN6口与GND口接通后,对应的继电器K2吸合(即:COM1与CK接通CB断开); 
当IN7口与GND口接通后,对应的继电器K1吸合(即:COM0与CK接通CB断开); 
 
*********************************************************************/ 
#include<reg52.h>                 //库文件 
#define uchar unsigned char//宏定义无符号字符型 
#define uint unsigned int  //宏定义无符号整型 
/******************************************************************** 
                            初始定义 
*********************************************************************/ 
 
unsigned char dat; //用于存储单片机接收发送缓冲寄存器SBUF里面的内容 
 
/*定义八位输入为单片机P1口*/ 
sbit IN0=P1^0; 
sbit IN1=P1^1; 
sbit IN2=P1^2; 
sbit IN3=P1^3; 
sbit IN4=P1^4; 
sbit IN5=P1^5; 
sbit IN6=P1^6; 
sbit IN7=P1^7; 
 
/*定义八位输出为单片机P2口*/ 
sbit K1=P2^0; 
sbit K2=P2^1; 
sbit K3=P2^2; 
sbit K4=P2^3; 
sbit K5=P2^4; 
sbit K6=P2^5; 
sbit K7=P2^6; 
sbit K8=P2^7; 
 
 
/******************************************************************** 
                            延时函数 
*********************************************************************/ 
void delay(uchar t) 
{ 
  uchar i,j; 
   for(i=0;i<t;i++) 
   { 
            for(j=13;j>0;j--); 
         { ; 
         } 
   } 
} 
 
 
/******************************************************************** 
                            主函数 
*********************************************************************/ 
void main() 
{ 
while(1) 
{ 
if(IN0==0){delay(100);while(!IN0) 2=0X7F;} //当IN0与GND接通后,P2口输出01111111,继电器K8吸合其它继电器断开; 
if(IN1==0){delay(100);while(!IN1) 2=0XBF;} //当IN1与GND接通后,P2口输出10111111,继电器K7吸合其它继电器断开; 
if(IN2==0){delay(100);while(!IN2) 2=0XDF;} //当IN2与GND接通后,P2口输出11011111,继电器K6吸合其它继电器断开; 
if(IN3==0){delay(100);while(!IN3) 2=0XEF;} //当IN3与GND接通后,P2口输出11101111,继电器K5吸合其它继电器断开; 
if(IN4==0){delay(100);while(!IN4) 2=0XF7;} //当IN4与GND接通后,P2口输出11110111,继电器K4吸合其它继电器断开; 
if(IN5==0){delay(100);while(!IN5) 2=0XFB;} //当IN5与GND接通后,P2口输出11111011,继电器K3吸合其它继电器断开; 
if(IN6==0){delay(100);while(!IN6) 2=0XFD;} //当IN6与GND接通后,P2口输出11111101,继电器K2吸合其它继电器断开; 
if(IN7==0){delay(100);while(!IN7) 2=0XFE;} //当IN7与GND接通后,P2口输出11111110,继电器K1吸合其它继电器断开; 
} 
} 
         
/******************************************************************** 
                              结束 
*********************************************************************/ 
 
 
 
 
 |