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

📄 max232.c

📁 max232与上位机通信程序
💻 C
字号:
#include <reg51.h>
//#include <string.h>
#define uchar unsigned char
#define uint unsigned int
//#define LENGTH 4;
//uchar con=0;
uchar sbu[4]={0};
uchar LED[4];
char f=4;
uchar counter=0,counter2=0;
char hour=0,min=0;
bit flag=0;
uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

/*--------初始化程序-------*/
void init(void)
{
  SCON=0x50;
  PCON=0x00;
  TMOD=0x21;
  TL1=0xFD;
  TH1=0xFD;
  TR1=1;
  EA=1;
  ES=1;
  TH0=0X3c;
  TL0=0xb0;
  TR0=1;
  ET0=1;
}

/*------向串口发送一个字符-----*/
/*void send_char(uchar i)
{
  SBUF=i;
  while(TI==0);
  TI=0;
}*/

/*-----向串口发送一个字符串-----*/
/*void send_string(uchar *str,uint length)
{
  uint k=0;
  do 
  {
    send_char(*(str+k));
	k++;	   
  }while(k==length);
}*/



/*--------延时8us子程序----------*/
void delay8us(uint t)
{
  while(--t);  
}

/*--------数据更新程序---------*/
void updata()
{
  LED[0]=table[sbu[0]];
  LED[1]=table[sbu[1]];
  LED[2]=table[sbu[2]];
  LED[3]=table[sbu[3]];
}

/*---------发送函数----------*/
void send(void)
{
  char l;
  for(l=3;l>=0;l--)
  {
  	SBUF=sbu[l]+0x30;
  	while(TI==0);
	TI=0;
  }
} 

/*-----------显示函数----------*/  
void D_display(void)
{
  uchar h,i;
  P2=0xff;
  i=0x01;
  for(h=0;h<4;h++)
   { 
    P1=LED[h];
    P2=P2^i;
	i=i<<1;
    delay8us(125);
	P2=0xff;
  }
} 

/*----------主函数-----------*/
void main(void)
{ 
  init();
  updata();	  //初始化显示0000
  while(1)
  {	 
    D_display();		
    if(flag==1)
	{
	  updata();
	  flag=0;
	}	
  }
}

 /*----串口接收中断程序--------*/
void receive(void) interrupt 4
{
  if(RI)
  {	
    f--;
    sbu[f]=SBUF-0x30;
	
	if(f==0)
	{
	  f=4;
	  min=sbu[0]+sbu[1]*10;
	  hour=sbu[2]+sbu[3]*10;
	  flag=1;
	}
   }
  RI=0;
}

/*--------定时器T0中断程序-------*/
void intt0(void) interrupt 1
{
 
  TH0=0X3c;
  TL0=0xb0;  
  counter2++;
  counter++;
  				
  if(counter2==10)	
  {
   counter2=0;
   LED[2]=LED[2]^0x80;	//小数点闪烁
  }

  if(counter==20)
    {
	 	min++;
	    counter=0;

	    if(min>=60)
	   	{
	      hour++;
		  min=0;

		  if(hour>=24)
		   {
		     hour=0;
			}
  		  }	
		  sbu[0]=min%10;
		  sbu[1]=min/10;
		  sbu[2]=hour%10;
		  sbu[3]=hour/10;
		  updata();
		  send();
		}	
}











⌨️ 快捷键说明

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