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

📄 单片机双机通信.c

📁 单片机 双机通讯 单片机双机通讯单片机 双机通讯 单片机双机通讯
💻 C
字号:
#include<at89x51.h>
/***********整体变量定义************/

int KEY1;
int KEY2;
int KEYCODE;
/*
int move1;
int move2;
unsigned char displaycode[]={0,0,0,0,0,0};
/*******数码管显示相关定义**********/
/*
unsigned char p2key[]={0xfe,0xfd,
                       0xfb,0xf7,
                       0xef,0xdf};    
unsigned char p0key[]={0x3f,0x06,0x5b,0x4f,
                       0x66,0x6d,0x7d,0x07, 
                       0x7f,0x6f};
/*******键盘识别相关定义***********/
unsigned char KEYCODETABLE[]={0xee,0xed,0xeb,0xe7,
							  0xde,0xdd,0xdb,0xd7,
							  0xbe,0xbd,0xbb,0xb7,
							  0x7e,0x7d,0x7b,0x77};
/*********延迟程序****************/
delay(int x)
{	
	int i;
	while(x--)
	{
		for(i=20;i>0;i--)
		{};
	}
}
/*********键盘识别程序**********/
int readkey(void)
{   
	int j;
	P1=0x0f;
	while(1)
   	{	
		while(P1!=0x0f)
		{   
			delay(50);
			if(P1!=0x0f)
			{
	  			KEY1=P1;
			}		
			P1=0XF0;
			while(P1!=0XF0)
			{
				delay(50);
				if(P1!=0XF0)
				{
					KEY2=P1;
				}		
				KEYCODE=KEY1|KEY2;
	   		}
			for(j=15;j>=0;j--)
			{
				if(KEYCODETABLE[j]==KEYCODE)
				return j;
			}
       	P1=0X0F;
		}
	}		
}
/**********串口初始化***************/
void setcom(void)
{
	TMOD = 0x21;   //使用T1计数器
	TL1 = 0xfd;    //波特率为9600bps
	TH1 = 0xfd;
	SCON = 0x50;   //串口模式1,允许接收SM1=1,REN=1
	PCON = 0x00;   
	ES = 1;        //开串口中断
	EA = 1;        //总中断有效
	TR1 = 1;       //TI计数开始
}
/********初始化定时器0用以数码显示****/
/*
void time0(void)
{
	TL0= ( 65536-400 ) % 256 ;
	TH0= ( 65536-400 ) / 256 ;
    TR0=1;
	ET0=1;
}
/*******主函数*********************/
main()
{   
	setcom();
//	time0();
	while(1)
	{	
		SBUF= readkey()+0X30;
	}
}
/********串口中断程序****************/
void com(void) interrupt 4
{   
	if(RI==1)
	{
		RI=0;
		displaycode[move2++]=SBUF-0X30;
		if(move2==6)move2=0;
	}
	if(TI==1)
	{
		TI=0;
	}
}
/************动态数码显示程序**************/
/*void display(void) interrupt 1
{
	TL0= ( 65536-400 ) % 256 ;
	TH0= ( 65536-400 ) / 256 ;
	P2=p2key[move1];
	P0=p0key[displaycode[move1]];
	move1++;
	if(move1==6)
	{
		move1=0;
	}
}
*/

⌨️ 快捷键说明

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