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

📄 text1.c

📁 使用1602LCD和8051的串口调试程序。并带有仿真图
💻 C
字号:
#include<reg52.h>
#include<ABSACC.H>
#define uchar unsigned char
uchar	z,string1[]=" !! A M A Z I N G !! " ,
		string2[]=" A virtual LM032L... " ,
		string3[]="my name is xukun" ,
		string4[]="    8051 processor!"   ;
uchar pacmanopen[] = {0x0E,0x07,0x03,0x01,0x03,0x07,0x0E,0x00,'\n'}; 
uchar pacmanshut[] = {0x00,0x0F,0x1F,0x01,0x1F,0x0F,0x00,0x00,'\n'};
void wrcmd(uchar i);
void wrdata(uchar k);
void busy(void);
void delay(void);
main()
{ 	uchar h,sbuf_data;	
 TMOD=0X20;                         //确定定时器1工作模式 此处模式为方式2自动重装初值的方式
	 TH1=0XF3;               
	 TL1=0XF3;                          //定时初值  由此求的波特率近似为4800b/s
	 PCON=0X80;                         //SMOD=1波特率加倍; 此处不能用PCON&=0X80!!!!!!!
	 TR1=1;                             //开启定时器1	  
	 SCON=0X40;                           //串口工作方式1  	  		 
	 REN=1;                               //允许接收 	

	         /*************由单片机向PC机发送数据,可显示在串口调试助手的接收框***************/
	  
	   /* SBUF='W';
		while(!TI);	   
	     TI=0; 	
	   delay(1000);	
	   
	   
	    SBUF='A';
		while(!TI);	   
	     TI=0;		
	   delay(1000);	  
	   	
		if(key_data==0);	   
	   	 SBUF=key_data;
		while(!TI);	   
	     TI=0;
		 delay(1000);
		*/ 			  

		   /*************由PC机向单片机发送数据并显示的子程序***************/
		   /********注意由串口调试助手发送数据时,以"十六进制"输入时应以两位数形式发送,即1应写01*****/
		   /********若不以"十六进制"输入时,写入1或其它时,则显示相应的ASCII代码****/
	  






  wrcmd(0x01) ;
  wrcmd(0x3c) ;
  wrcmd(0x0e) ;
  wrcmd(0x06) ;
 //for(h=0;h<15;h++)
  //	{ 	delay();
  // 		wrdata(string3[h]) ;
//	} 
for(;;)
{	wrcmd(0x80)  ;
	for(h=0;h<16;h++)	   
	//if(RI)
	{ while(RI==0);
	   {  RI=0;
	       sbuf_data=SBUF;
		 wrdata(sbuf_data) ;
		 //h++  ;string3[h]	  
		}  ;
	}						   
 wrcmd(0xc0)  ;
 	for(h=0;h<16;h++)	   
	{ while(RI==0);
	   {  RI=0;
	       sbuf_data=SBUF;
		 wrdata(sbuf_data) ;
		}  ;
	}
  
 }

 for(h=0;h<32;h++)
  	{ 	delay();
   		wrdata('z') ;
	}
}

void wrcmd(uchar i)
{ busy(); 
//P0=0;
P0=i;
P2=0;
P2|=0X20;
z=z;z=z;z=z;z=z;
P2&=0XDF;
 }

void wrdata(uchar k)
{busy();
//P0=0;	
P0=k;
P2=1;
P2|=0X20;
z=z;z=z;z=z;z=z;
P2&=0XDF;
}
void busy(void)
{ uchar b;
do
{ P0=0XFF;
P2=2;
P2|=0X20;
b=P0 ;z=z;z=z;z=z;z=z;
P2&=0XDF;
}
while(b>=128) ;
}
void delay(void)
{uchar j,k,g;
for(j=0;j<16;j++)
for(k=0;k<16;k++)
for(g=0;g<10;g++) 
;
}

⌨️ 快捷键说明

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