⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.txt

📁 上位机控制16路继电器源码
💻 TXT
字号:
/**************************************************
                失恋过度
	          QQ:175264198
			  TEL:13049829737
	          jcxyx@126.com
			  www.QINGHAI.com

	  >>>>>>>>>>>>>>>>>>>>>>>>>>>
***************************************************/
#include <reg51.h>
#include <intrins.h>
#define uint  unsigned int
#define uchar unsigned char

uchar a,b,c,d;
uchar buf;				// 接收数据暂存
sbit P33 = P3^3;		// 此引脚控制发光管
//sbit P32 = P3^2;		// 此引脚控制蜂鸣器
/********************HC138控制状态**********************/
sbit E1=P2^3;	
sbit C1=P2^2;	      
sbit B1=P2^1;	 
sbit A1=P2^0;	
 
sbit E2=P2^7;	 
sbit C2=P2^6;	
sbit B2=P2^5;	 
sbit A2=P2^4;
	
sbit A3=P1^7;	
sbit B3=P1^6;	      
sbit C3=P1^5;	 
sbit E3=P1^4;
	 
sbit A4=P1^3;	 
sbit B4=P1^2;	
sbit C4=P1^1;	 
sbit E4=P1^0;									                     
/********************延时函数****************************/
void delay(int ms)
{
    while(ms--)
	{
      uchar i;
	  for(i=0;i<250;i++)  
	   {
	    _nop_();			   
		_nop_();
		_nop_();
		_nop_();
	   }
	}
} 
/********************接收数据函数*************************/
void recvdata()
{

	    while(RI==0);
	    RI = 0;
	    buf = SBUF;
}								   
/********************串口初始化函数 **********************/
void init()
{	
	TMOD = 0x20;		    // 定时器T1使用工作方式2
	TH1 = 250;
	TL1 = 250;
	TR1 = 1;			    // 开始计时
  //PCON = 0x80;			// SMOD = 1
	SCON = 0xd0;			// 工作方式,9位数据位,波特率9600kbit/s,允许接收 
	EA = 1;					// 关闭所有中断
	P33 = 1;	
	P2=0x00;			    // 发光管不亮
	P1=0x00;
}
/**********************主程序*****************************/
void main()
{ 
	init();			        // 串口初始化  
	                        			  	
	while(1)				// 进入设备应答 
	{
		recvdata();		    //数据接收
		switch(buf)	       
  {	
  case '0': E1=0;a='0';break;//0	    //1组输出
  case '!': A1=1;B1=1;C1=1;E1=1;a='1';break;//1
  case '@': A1=0;B1=1;C1=1;E1=1;a='2';break;//2
  case '#': A1=1;B1=0;C1=1;E1=1;a='3';break;//3
  case '$': A1=0;B1=0;C1=1;E1=1;a='4';break;//4
  case '%': A1=1;B1=1;C1=0;E1=1;a='5';break;//5
  case '^': A1=0;B1=1;C1=0;E1=1;a='6';break;//6
  case '&': A1=1;B1=0;C1=0;E1=1;a='7';break;//7
  case '*': A1=0;B1=0;C1=0;E1=1;a='8';break;//8

  case 'A': E2=0;b='0';break;//0		//2组输出
  case 'B': A2=1;B2=1;C2=1;E2=1;b='1';break;//1
  case 'C': A2=0;B2=1;C2=1;E2=1;b='2';break;//2
  case 'D': A2=1;B2=0;C2=1;E2=1;b='3';break;//3
  case 'E': A2=0;B2=0;C2=1;E2=1;b='4';break;//4
  case 'F': A2=1;B2=1;C2=0;E2=1;b='5';break;//5
  case 'G': A2=0;B2=1;C2=0;E2=1;b='6';break;//6
  case 'H': A2=1;B2=0;C2=0;E2=1;b='7';break;//7
  case 'I': A2=0;B2=0;C2=0;E2=1;b='8';break;//8

  case 'J': E3=0;c='0';break;//		//3组输出
  case 'K': A3=1;B3=1;C3=1;E3=1;c='1';break;//1 
  case 'L': A3=0;B3=1;C3=1;E3=1;c='2';break;//2 
  case 'M': A3=1;B3=0;C3=1;E3=1;c='3';break;//3
  case 'N': A3=0;B3=0;C3=1;E3=1;c='4';break;//4 
  case 'O': A3=1;B3=1;C3=0;E3=1;c='5';break;//5 
  case 'P': A3=0;B3=1;C3=0;E3=1;c='6';break;//6 
  case 'Q': A3=1;B3=0;C3=0;E3=1;c='7';break;//7 									
  case 'R': A3=0;B3=0;C3=0;E3=1;c='8';break;//8 

  case 'S': E4=0;d='0';break;//0		//4组输出
  case 'T': A4=1;B4=1;C4=1;E4=1;d='1';break;//1
  case 'U': A4=0;B4=1;C4=1;E4=1;d='2';break;//2
  case 'V': A4=1;B4=0;C4=1;E4=1;d='3';break;//3
  case 'W': A4=0;B4=0;C4=1;E4=1;d='4';break;//4
  case 'X': A4=1;B4=1;C4=0;E4=1;d='5';break;//5
  case 'Y': A4=0;B4=1;C4=0;E4=1;d='6';break;//6
  case 'Z': A4=1;B4=0;C4=0;E4=1;d='7';break;//7
  case '9': A4=0;B4=0;C4=0;E4=1;d='8';break;//8
  
  case 'v':	SBUF =a; while(TI==0);TI = 0;;break;
  case 'x': SBUF =b; while(TI==0);TI = 0;;break; 
  case 'y': SBUF =c; while(TI==0);TI = 0;;break;	      
  case 'z': SBUF =d; while(TI==0);TI = 0;;break;
  
  		}		
	    P33 = 0;//绿灯亮,表示接收数据成功
		delay(2);
		P33 = 1;	 
	}	 
}
/**********************主程序END***********************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -