?? 2-16.c
字號:
#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); //判斷LCD是否忙
}
//LCD初始化(外部函數)
void initlcd()
{
LCDICOM=0x01;delay();
LCDICOM=0x38;delay();
LCDICOM=0x0F;delay();
LCDICOM=0x06;delay();
LCDICOM=0x01;delay();
LCDICOM=0x80;delay();
}
//向LCD第一行發送n個字符 (外部函數)
void printf(const uchar *buff,uchar n)
{
LCDICOM=0x80;delay();//第一行
while(n--)
{
if(!(*buff)) LCDIDATA=' ';
else LCDIDATA=*buff++;
delay();
}
}
//向LCD第一行寫str1,向LCD第二行寫str2 (外部函數)
void printscreen(const uchar *str1,const uchar *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();
}
//向LCD發送一串字符 (外部函數)
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 + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -