• 51单片机 1602液晶显示



    1602的第1个管脚为VSS,VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压。

    15管脚为背光电源正极,为防止加5v电压烧坏背光灯,通常串接1个10Ω电阻限流。



    /*		1602静态显示 基本程序 		*/
    #include <reg51.h>
    #define LCD1602_DATAPINS P0
    #define uchar unsigned char
    #define uint unsigned int
    sbit LCD1602_E=P2^7;
    sbit LCD1602_RW=P2^5;
    sbit LCD1602_RS=P2^6;
    
    unsigned char table[]=" Lululu";
    void Lcd1602_Delay1ms(uint c);
    void LcdWriteCom(uchar com);
    void LcdInit();
    void LcdWriteData(uchar dat);
    
    void main(void)
    {
    	unsigned char i;
    	LcdInit();
    	LcdWriteCom(0x80+0x06);		  //定位数据指针,若从第一行第一位开始显示,可删去此句。(0x80+0x40):定位至第二行
    	for(i=0;i<7;i++)
    	{	
    		LcdWriteData(table[i]);	
    	}
    	while(1)
    	{
    	}				
    }
    
    
    void Lcd1602_Delay1ms(uint c)   //误差 0us
    {
        uchar a,b;
    	for (; c>0; c--)
    	{
    		 for (b=199;b>0;b--)
    		 {
    		  	for(a=1;a>0;a--);
    		 }      
    	}
        	
    }
    
    void LcdWriteCom(uchar com)	  //写入命令
    {
    	LCD1602_E = 0;     //使能
    	LCD1602_RS = 0;	   //选择发送命令
    	LCD1602_RW = 0;	   //选择写入
    	
    	LCD1602_DATAPINS = com;     //放入命令
    	Lcd1602_Delay1ms(1);		//等待数据稳定
    
    	LCD1602_E = 1;	          //写入时序
    	Lcd1602_Delay1ms(5);	  //保持时间
    	LCD1602_E = 0;
    }
    
    void LcdInit()						  //LCD初始化子程序
    {
     	LcdWriteCom(0x38);  //开显示
    	LcdWriteCom(0x0c);  //开显示不显示光标
    	LcdWriteCom(0x06);  //写一个指针加1
    	LcdWriteCom(0x01);  //清屏
    	LcdWriteCom(0x80);  //设置数据指针起点
    }
    
    
    void LcdWriteData(uchar dat)			//写入数据
    {
    	LCD1602_E = 0;	//使能清零
    	LCD1602_RS = 1;	//选择输入数据
    	LCD1602_RW = 0;	//选择写入
    
    	LCD1602_DATAPINS = dat; //写入数据
    	Lcd1602_Delay1ms(1);
    
    	LCD1602_E = 1;   //写入时序
    	Lcd1602_Delay1ms(5);   //保持时间
    	LCD1602_E = 0;
    }
    




  • 相关阅读:
    [转]XSLT <xsl:output> 元素
    XSLT教程
    [转]web.xml文件中配置<mimemapping>下载文件类型
    IntelliJ IDEA 付费版 免费版比较
    tomcat 显示隐藏目录结构
    XHTMLMP 7788
    [转]HttpSessionListener 和HttpSessionBindingListener的区别
    error LNK2005: _DllMain@12 已经在 LIBCMTD.lib(dllmain.obj) 中定义
    请确保在应用程序配置的 \\ 节中包括 System.Web.SessionStateMod 或自定义会话状态模块
    NuGet 是个什么玩意?
  • 原文地址:https://www.cnblogs.com/l20902/p/10610969.html
Copyright © 2020-2023  润新知