最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

LCD1602简单显示程序(单片机)

来源:动视网 责编:小OO 时间:2025-09-24 05:28:23
文档

LCD1602简单显示程序(单片机)

#include#defineucharunsignedchar#defineuintunsignedintsbitLCD_E=P3^5;//定义接口sbitLCD_RW=P3^6;sbitLCD_RS=P3^7;#defineLCD_DataP1//数据接口ucharup[]={"IvU,hupeixian"};ucharcodedown[]={"_byfu"}/*************************延时函数*****************************/voidDe
推荐度:
导读#include#defineucharunsignedchar#defineuintunsignedintsbitLCD_E=P3^5;//定义接口sbitLCD_RW=P3^6;sbitLCD_RS=P3^7;#defineLCD_DataP1//数据接口ucharup[]={"IvU,hupeixian"};ucharcodedown[]={"_byfu"}/*************************延时函数*****************************/voidDe
#include

#define uchar unsigned char 

#define uint unsigned int 

sbit LCD_E=P3^5;               //定义接口 

sbit LCD_RW=P3^6; 

sbit LCD_RS=P3^7; 

#define LCD_Data P1            //数据接口

uchar up[]={"IvU,hupeixian"};

uchar code down[]={"_by fu "}

/*************************延时函数*****************************/

void Delay_ms(uint time)

{

    uint i,j;

for(i = 0;i < time;i ++)

     for(j = 0;j < 930;j ++);

}

/**********************检测状态************************************/

uchar LCD_ReadStatus(void) 

    LCD_Data = 0xFF;         

    LCD_RS = 0;         

    LCD_RW = 1;        

     LCD_E = 1;         

    LCD_E = 1;         

    LCD_E = 0; 

    while (LCD_Data & 0x80);                //检测忙信号         

    return(LCD_Data); 

}

/************************写数据***********************************/

void LCD_WriteData(uchar WDLCD)

    LCD_ReadStatus();//检测忙 

    LCD_Data = WDLCD 

    LCD_RS = 1;         

    LCD_RW = 0; 

    LCD_E = 1;//若晶振速度太高可以在这后加小的延时 

    LCD_E = 1;//延时         

    LCD_E = 0;

}

/************************写指令********************************/

void LCD_WriteCommand(uchar WCLCD,BuysC)  //BuysC为0时忽略忙检测 

    if (BuysC) 

        LCD_ReadStatus();     //根据需要检测忙        

    LCD_Data = WCLCD;         

    LCD_RS = 0;         

    LCD_RW = 0;         

    LCD_E = 1;         

    LCD_E = 1;         

    LCD_E = 0; 

}

/*****************初始化***********************************/

void LCD_Init(void) 

    LCD_Data = 0; 

    LCD_WriteCommand(0x38,0);//三次显示模式设置,不检测忙信号         

    Delay_ms(5); 

    LCD_WriteCommand(0x38,0);         

    Delay5Ms(); 

    LCD_WriteCommand(0x38,0);         

    Delay_ms(5);          

    LCD_WriteCommand(0x38,1);          //显示模式设置,开始要求每次检测忙信号 

    LCD_WriteCommand(0x08,1);             //关闭显示         

    LCD_WriteCommand(0x01,1);           //显示清屏 

    LCD_WriteCommand(0x06,1);            // 显示光标移动设置  

    LCD_WriteCommand(0x0C,1);           // 显示开及光标设置 

}

/***********************显示一个字符********************************/

void DisplayOneChar(uchar X, uchar Y, uchar DData)

    Y &= 0x1; 

    X &= 0xF;            //X不能大于15,Y不能大于1         

    if (Y) X |= 0x40;       //当要显示第二行时地址码+0x40;         

    X |= 0x80;                     // 算出指令码 

    LCD_WriteCommand(X, 0);     //这里不检测忙信号,发送地址码         

    LCD_WriteData(DData);

}

/************************显示一串字符*******************************/

void DisplayListChar(uchar X, uchar Y, uchar code *DData) 

    uchar ListLength;         

    ListLength = 0;         

    Y &= 0x1; 

    X &= 0xF;                          //X不能大于15,Y不能大于1 

while (DData[ListLength]>0x20) //若到达字串尾则退出         

        { 

         if (X <= 0xF) //X坐标应小于0xF                 

                { 

                    DisplayOneChar(X, Y, DData[ListLength]);  //显示单个字符 

                    ListLength++;                         

                    X++;             

                }         

        } 

}

/******************************************************************/

void main(void) 

    Delay_ms(400);           //启动等待,等LCD讲入工作状态         

    LCD_Init();             //LCD初始化         

    Delay_ms(5);           //延时片刻(可不要)

    DisplayListChar(0, 1, up);         

    DisplayListChar(6, 0, down);                 

    LCD_Data=0xff;         

    while(1); 

}

文档

LCD1602简单显示程序(单片机)

#include#defineucharunsignedchar#defineuintunsignedintsbitLCD_E=P3^5;//定义接口sbitLCD_RW=P3^6;sbitLCD_RS=P3^7;#defineLCD_DataP1//数据接口ucharup[]={"IvU,hupeixian"};ucharcodedown[]={"_byfu"}/*************************延时函数*****************************/voidDe
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top