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

📄 main.c

📁 c51 霍尔开关 向PC机 发送数据 PROTEUS 仿真
💻 C
字号:
#include <reg51.h>
void delay(unsigned int i);
void send(unsigned char n );
void serial_init(void);
void sendstr(unsigned char *str);

main()
{ 
unsigned char k,a[]="hello world!\n";
serial_init();
delay(500);
sendstr(a);
sendstr("hello hello world!\n");
while(1)
{
P1=0xff;P2=0xff;P3=0xff;P0=0xff;
k=P1&P2&P3&P0;


while(k!=0xff)
	{  
	   switch(k)
	   {
       
	   case 0xfe: if(P2!=0xff)sendstr("01");if(P3!=0xff)send(0x41);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41);  break;
	   case 0xfd: if(P2!=0xff)sendstr("02");if(P3!=0xff)send(0x42);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41);  break;
	   case 0xfb: if(P2!=0xff)sendstr("03");if(P3!=0xff)send(0x43);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41);  break;
	   case 0xf7: if(P2!=0xff)send(0x34);if(P3!=0xff)send(0x44);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41);  break;
       case 0xef: if(P2!=0xff)send(0x35);if(P3!=0xff)send(0x45);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41);  break;
	   case 0xdf: if(P2!=0xff)send(0x36);if(P3!=0xff)send(0x46);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41);  break;
	   case 0xbf: if(P2!=0xff)send(0x37);if(P3!=0xff)send(0x47);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41);  break;
       case 0x7f: if(P2!=0xff)send(0x38);if(P3!=0xff)send(0x48);if(P1!=0xff)send(0x41);if(P0!=0xff)send(0x41);  break;

	   default: break;

	   }
       
       
	   while(k==P1||k==P2||k==P3||k==P0);
	   break;
	   
	}
  }
}
void send(unsigned char n )
{
  SBUF=n;
   while(!TI);
   TI=0;
}
void sendstr(unsigned char *str)
{
while(1)
{
 
	if(*str=='\0')
	{send('\r');
     send('\n');
         break;
      }
  send(*str++);delay(10000); 


}
}

void delay(unsigned int i )
{
   while(i--);
}
void serial_init(void)
 {
   TMOD = 0x20;  //MOV   89H,#20H  ;timer 1 mode 2: 8-Bit reload(定时器T1 模式2: 8位自动初值重装)
   TH1  = 0xfa;  //MOV   8DH,#0E8H
   TL1  = 0xfa;  //MOV   8BH,#0E8H ;1200bps, 11.059
   TR1  = 1;     //SETB  8EH       ;启动定时器1
   SCON = 0x58;  // mode 1: 10-bit UART, enable receiver(模式1: 10位异步发送/接收, 使能接收允许位)
   PCON=0x80;       /*串口波特率设置*/
  }

⌨️ 快捷键说明

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