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

📄 series_65535.c

📁 单片机实现接收从电脑发送过来的字符串的方法
💻 C
字号:
//16进制发送一个0-65536之间的任一数,
//当单片机收到后在数码管上动态显示出来,
//波特率9600
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
code unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00};
uchar flag,k;
uint receive[2]={0,0};
uint a;
uchar wan,bai,qian,ge,shi;
uchar num=0;
void delay(uint z);
void disp_num(uint num);
void seg7_disp(uchar aa);
void main()
{
	TMOD=0x20;//定时1工作方式2
	TH1=0Xd0;
	TH1=0Xd0;//波特率设置 600
	TR1=1;
	EA=1;//开总中断
	ES=1;	//开串口中断
   REN=1;//允许接收
	SM0=0;
	SM1=1;//设置串口工作方式1
	while(1)
	{
	 if(flag==1)
 	 	{ 
		 while(1)
		 {
		 disp_num(a); 
		 flag=0;
		 }
		}
	}
}

//中断函数
void seri() interrupt 4
{
    while(RI==1)
    {
    if(k==2){k=0;}
    receive[k]=SBUF;//数据缓存
    RI=0;
    k++;
    }
	a=(256*receive[1])+receive[0];//receive[1]数据高8位 receive[0]//数据低8位;
	flag=1;
}

void delay(uint z)//延时1ms
{
	uint x,y;
	for(x=z;x>0;x--)
	  for(y=110;y>0;y--);
}

void disp_num(uint num)	 //数据显示
{
 wan=num/10000;
 qian=num/1000%10;
 bai=num/100%10;
 shi=num/10%10;
 ge=num%10;
   		P1=0x03;
			seg7_disp(wan);
			delay(1);
			P1=0x04;
			seg7_disp(qian);
			delay(1);
			P1=0x05;
			seg7_disp(bai);
			delay(1);
			P1=0x06;
			seg7_disp(shi);
			delay(1);
			P1=0x07;
			seg7_disp(ge);
			delay(1);
}

void seg7_disp(uchar aa)
{
	switch(aa)
	{
	 case 0:P2=table[aa];break;
	 case 1:P2=table[aa];break;
    case 2:P2=table[aa];break;
	 case 3:P2=table[aa];break;
	 case 4:P2=table[aa];break;
    case 5:P2=table[aa];break;
	 case 6:P2=table[aa];break;
	 case 7:P2=table[aa];break;
    case 8:P2=table[aa];break;
	 case 9:P2=table[aa];break;
	 default:P2=table[aa];
	}

}

⌨️ 快捷键说明

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