2-16.c

来自「D12USB开发板下位机固件源代码要下载的快!」· C语言 代码 · 共 80 行

C
80
字号
#include"reg51.h"
#include"address.h"

#define uchar unsigned char
void delay();
void initlcd();
void printf(const uchar *buff,uchar n);
void printscreen(const uchar *str1,const uchar *str2);
void printtext(uchar code *str);

void delay()
{
 while(LCDIACOM&0x80);
}

void initlcd()
{
 LCDICOM=0x01;delay();
 LCDICOM=0x38;delay();
 LCDICOM=0x0F;delay();
 LCDICOM=0x06;delay();
 LCDICOM=0x01;delay();
 LCDICOM=0x80;delay();
}
void printf(uchar *buff,uchar n)
{
 LCDICOM=0x80;delay();
 while(n--)
 {
  if(!(*buff)) LCDIDATA=' ';
  else  	LCDIDATA=*buff++;
  delay();

 }		  
}

void printscreen(uchar code  *str1, uchar code *str2)
{
 LCDICOM=0x01;delay();
 LCDICOM=0x80;delay();//回车,清零
 LCDIDATA=*str1; delay();
 while(*++str1) {LCDIDATA=*str1; delay();}


 LCDICOM=0xC0;delay();//回车,清零
 LCDIDATA=*str2; delay();
 while(*++str2) {LCDIDATA=*str2; delay(); }

}

void PrintUsb(uchar *buff,uchar n)
{
 uchar i;
 if(n==1){ LCDICOM=0x80;delay();}
 if(n==2){ LCDICOM=0xc0;delay();}
 for(i=0;i!=16;i++)
 {
  LCDIDATA=*buff++;
  delay();
 }		  

}

void printtext(uchar code *str)
{
 uchar y,i=16;
 unsigned int x;
 while(1)
 {
 LCDICOM=0x01;delay();
 LCDICOM=0x80;delay();//回车,清零
 while(*str){LCDIDATA=*str++;delay();if(--i==0)break;}
 i=16;
 LCDICOM=0xC0;delay();//回车,清零
 while(*str){LCDIDATA=*str++;delay();if(--i==0)break;}
 i=16;
 for(x=1000;x!=0;x--)for(y=200;y!=0;y--);
 if(!(*str))return;
 }
}

⌨️ 快捷键说明

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