• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

51单片机怎么驱动LCD1602

辛迪可乐 2017-09-09 浏览量:1677
51单片机怎么驱动LCD1602
-2 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案

其他答案 数量:10
  • 首先明白LCD1602显示原理及时序图,然后用51单片机驱动吧
    • 发布于2017-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • QQ图片20170909145854.png

    这是1602的引脚功能图,根据引脚的功能来驱动相应的引脚就好

    这是我麒麟座里面附加的中文资料,里面详细介绍了他的时序和控制方式,

    希望对你有帮助哦

    SMC1602A.pdf

    • 发布于2017-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 首先,你应该看看1602的数据手册,明白要求是什么。

    之后硬件和程序可以参考这个链接http://www.51hei.com/mcu/3306.html

    • 发布于2017-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 网上好多,可以找个例程看看驱动部分程序
    • 发布于2017-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • QQ图片20170909211749.png

    QQ图片20170909211815.png

    测试代码

        #include<reg52.h>  
        #define uchar unsigned char  
        #define uint unsigned int  
        sbit lcden=P3^2;     //使能端  
        sbit lcdrs=P3^0;     //数据命令选择端  
        sbit rw=P3^1;  
        uchar code table[]="xian shi 1";  //输入的字符  
        uchar code table1[]="xian shi 2";  //输入的字符  
        uchar num=0;  
          
        void delay(uint z)  
        {  
            uint x,y;  
            for(x=z;x>0;x--)  
            for(y=110;y>0;y--);  
        }  
          
        void write_com(uchar com)//根据写时序图写出指令程序  
        {  
            lcdrs=0;  
            rw=0;  
            P1=com;  
            delay(5);  
            lcden=1;  
            delay(5);  
            lcden=0;  
        }  
          
        void write_data(uchar date)//根据写时序图写出数据程序  
        {  
            lcdrs=1;  
            rw=0;  
            P1=date;  
            delay(5);  
            lcden=1;  
            delay(5);  
            lcden=0;  
        }  
          
        void init()  
        {  
            lcden=0; //使能端为低电平  
            write_com(0x38);  
            /*显示模式设置  00111000  设置16*2显示  5*7点阵  8位数据接口*/  
            write_com(0x0f);  
            /*显示开关及光标设置   00001DCB 
            D=1,开显示     D=0, 关显示 
            C=1,显示光标   C=0,不显示光标 
            B=1,光标闪烁   B=0,光标不闪烁*/  
            write_com(0x06);//地址指针自动+1且光标+1,写字符屏幕不会移动  
            write_com(0X01);  
            write_com(0X80);   
        }  
          
          
        void main()  
        {  
          
            init();  
            for(num=0;num<10;num++)    //输入的字符数量,修改  
            {  
                write_data(table[num]);  
                delay(50);  
            }  
            write_com(0X80+0x40);  
            for(num=0;num<10;num++)  //输入的字符数量,修改  
            {  
                write_data(table1[num]);  
                delay(50);  
            }  
            while(1);  
        }  

    • 发布于2017-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 论坛里搜1602,好多帖子呢!你可以参考一下的
    • 发布于2017-09-09
    • 举报
    • 评论 0
    • 0
    • 0

  • 看接口说明和时序图就成了


    • 发布于2017-09-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

51单片机怎么驱动LCD1602