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

📄 +

📁 设计仿真实例的运行文件及C程序
💻
字号:
#include<reg51.h>

sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;

unsigned char keyscan()	  //键盘扫描函数
{
  unsigned char keyscan_num,temp;

  P1=0xff;
  temp=P1;
  if(~(temp&0xff))
  {
    if(key0==0)
	{
	  keyscan_num=0;
	}
	else if(key1==0)
	{
	  keyscan_num=1;
	}
	else if(key2==0)
	{
	  keyscan_num=2;
	}
	else if(key3==0)
	{
	  keyscan_num=3;
	}
	else
	{
	  keyscan_num=1;
	}

	return keyscan_num;
  }
}

void spi_init1200()//波特率1200
{
  SCON=0x50;//8位异步收发,波特率可变,运行接收数据
  PCON=0x80;//波特率加倍
  TI=0;//软件清零,表示未发送完成
  EA=1;//开总中断
  ET1=1;//开T1
  TMOD=0x20;//8位自动装载模式
  TH1=0xe8;
  TL1=0xe8;
  TR1=1;//开启T1
}

void spi_init2400()//波特率2400
{
  SCON=0x50;//8位异步收发,波特率可变,运行接收数据
  PCON=0x80;//波特率加倍
  TI=0;//软件清零,表示未发送完成
  EA=1;//开总中断
  ET1=1;//开T1
  TMOD=0x20;//8位自动装载模式
  TH1=0xf4;
  TL1=0xf4;
  TR1=1;//开启T1
}

void spi_init4800()//波特率4800
{
  SCON=0x50;//8位异步收发,波特率可变,运行接收数据
  PCON=0x80;//波特率加倍
  TI=0;//软件清零,表示未发送完成
  EA=1;//开总中断
  ET1=1;//开T1
  TMOD=0x20;//8位自动装载模式
  TH1=0xfa;
  TL1=0xfa;
  TR1=1;//开启T1
}

void spi_init9600()//波特率9600
{
  SCON=0x50;//8位异步收发,波特率可变,运行接收数据
  PCON=0x80;//波特率加倍
  TI=0;//软件清零,表示未发送完成
  EA=1;//开总中断
  ET1=1;//开T1
  TMOD=0x20;//8位自动装载模式
  TH1=0xfd;
  TL1=0xfd;
  TR1=1;//开启T1
}

void main()
{
  unsigned char key_press;

  while(1)
  {
    key_press=keyscan();
	switch(key_press)
	{
	  case 0:
	    spi_init1200();
		break;
	  case 1:
	    spi_init2400();
		break;
	  case 2:
	    spi_init4800();
		break;
	  case 3:
	    spi_init9600();
		break;
	  default:
	    break;
	}
	while(RI==0);
  }
}

void receive() interrupt 4
{
   RI=0;
   P2=SBUF;
}

⌨️ 快捷键说明

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