电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

LCD1602 C程序

来源:-- 作者:-- 浏览:368

标签:

摘要: LCD基本显示程序 四条数据线输入:DB4—RB0,DB5—RB1,DB6—RB2,DB7—RB3 寄存器选择RS接RB4,为"L"指令寄存器,为"H"数据寄存器 读写使能控制线E,接RE2,每当E线向LCD模块发送一个正脉冲,LCD模块与 单片机 之间将进行一次数据交换; //**********定义与声明******************* #include<pIC.h> &n

LCD基本显示程序
四条数据线输入:DB4—RB0,DB5—RB1,DB6—RB2,DB7—RB3
寄存器选择RS接RB4,为"L"指令寄存器,为"H"数据寄存器
读写使能控制线E,接RE2,每当E线向LCD模块发送一个正脉冲,LCD模块与 单片机 之间将进行一次数据交换;
//**********定义与声明*******************
#include<pIC.h>
 

#define uchar unsigned char
#define uint unsigned int
#define E RE2
#define RS RB4
uchar i,num,byte,ys; uchar const table[]="  Shan qing gong  ";          //为什么2009前面要空开两个才能显示后空开1个儿呢?这个定义要小心!一定要用uchar const,不要丢了uchar,也不要用code
uchar const table1[]=" tong xin 06-2 ";    //4第二数组定义初值
void lcd_init(void);
void writecom(char);
void writEDAta(char); void delay(uint z)   //5延迟函数常用
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
} //***************主函数*****************
void main()
{
lcd_init();    while(1)
    {
      ;
   
    }
}
//*******lcd initial***************关于LCD的初始化
void lcd_init()
{
TRISB=0x00;
TRISE=0x00;
PORTB=0X00;
writecom(0x28);     //将LCD设置成4为数据方式,两行显示,5*7点阵
writecom(0x0C);     //显示控制:打开显示,
writecom(0x06);     //设置输入模式
writecom(0x01);     //清LCD
     writecom(0x80);
       for(num=0;num<16;num++)  //循环
                {
                        writedata(table[num]);
            
                        delay(1);
                }
        writecom(0x80+0x40);  //11液晶显示第二行时分秒
        for(num=0;num<15;num++)
                {
                        writedata(table1[num]);
         
                        delay(1);
                }
}
//********写命令控制*****************
void writecom(char i)
{
byte=i;
i=i>>4;
PORTB=i;
RS=0;
E=1;
for(ys=10;ys>0;ys--);
E=0; PORTB=byte;
RS=0;
E=1;
for(ys=10;ys>0;ys--);
E=0;
}
//********写数据控制*****************
void writedata(char i)
{
byte=i;
i=i>>4;
PORTB=i;
RS=1;
E=1;
for(ys=10;ys>0;ys--);
E=0; PORTB=byte;
RS=1;
E=1;
for(ys=10;ys>0;ys--);
E=0;
}
型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67