历史上的今天
返回首页

历史上的今天

今天是:2024年11月20日(星期三)

正在发生

2019年11月20日 | LCD1602在PIC单片机中的使用程序

2019-11-20 来源:51hei

#include

__CONFIG(0x1832);        

//芯片配置字,看门狗关,上电延时开,掉电检测关,低压编程关,加密,4M晶体HS振荡

#define rs RA1

#define rw RA2

#define e  RA3

const char web[ ]={' ','W','W','W','.','P','I','C','1','6','.','C','O','M',' ',' '};

//显示公司web地址

const char tel[ ]={'T','E','L','0','7','5','5','-','2','8','1','8','7','9','7','5'};

//显示公司电话号码

void init();                   //申明I/O口初始化函数

void lcd_init();               //申明LCD初始化函数

void write_web();              //申明显示公司web地址函数

void write_tel();              //申明显示公司tel函数

void write(char x);            //申明显示1字节数据函数

void lcd_enable();             //申明LCD显示设置函数

void delay();                  //申明延时函数

//---------------------------------------

//主函数

void main()

    while(1)

      {

        init();                //调用I/O口初始化函数

        lcd_init();            //调用LCD初始化函数

        write_web();           //调用显示公司web地址函数

        PORTD=0XC0;            //设置第2行显示地址

        lcd_enable();          //调用LCD显示设置函数

        write_tel();           //调用显示公司tel函数

      }

}


//---------------------------------------

//I/O口初始化函数

void init()

{

    ADCON1=0X07;               //设置A口为普通I/O口

    TRISA=0X00;                //设置A口为输出

    TRISD=0X00;                //设置D口为输出

}

//---------------------------------------

//LCD初始化函数

void lcd_init()

{

    PORTD=0X1;                 //清除显示

    lcd_enable();

    PORTD=0X38;                //8位2行5*7点阵

    lcd_enable();

    PORTD=0X0e;                //显示开,光标开,闪烁

    lcd_enable();

    PORTD=0X06;                //文字不动,光标右移

    lcd_enable();

    PORTD=0X80;                //公司web显示地址

    lcd_enable();

}


//--------------------------------------

//显示公司web地址

void write_web()

{

    int i;

    for(i=0;i<0x10;i++)        //一共16字节数据

       {

         write(web[i]);        //查表获取数据并调用写一个字节数据函数送LCD显示

       }

}

//--------------------------------------

//显示公司tel函数

void write_tel()

{

    int i;

    for(i=0;i<0x10;i++)       //一共显示16字节数据

       {

         write(tel);       //查表获取数据并调用写一个字节数据函数送LCD显示

       }

}

  

//--------------------------------------

//写一个字节数据函数  

void write(char x)

{

  PORTD=x;                   //待显示数据送PORTD口

  rs=1;                      //该字节数据为数据,而不是命令

  rw=0;                      //此次操作为写,而不是读

  e=0;                       //拉低使能信号

  delay();                   //保持使能信号为低一段时间

  e=1;                       //拉高使能信号,建立LCD操作所需要的上升沿

}

//--------------------------------------

//LCD显示设置函数

void lcd_enable()

{

   rs=0;                     //该字节数据为命令,而不是数据

   rw=0;                     //此次操作为写,而不是读

   e=0;                      //拉低使能信号

   delay();                  //保持使能信号为低一段时间

   e=1;                      //拉高使能信号,建立LCD操作所需要的上升沿

}

//--------------------------------------

//延时函数

void delay()

{

   int i;

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

}


推荐阅读

史海拾趣

格瑞宝(GP)公司的发展小趣事

格瑞宝公司致力于功率器件的研发与销售,其产品线不断丰富和完善。从最初的MOSFET产品系列,到后来逐渐扩展到DIODE、BJT、IC集成电路等多个领域,格瑞宝始终坚持技术创新,不断推出符合市场需求的新产品。特别是在SGT MOST工艺方面,格瑞宝达到了国内领先水平,这一技术突破不仅提升了产品的性能和质量,也进一步巩固了公司在行业内的地位。

AVG [AVG Semiconductors(HITEK)]公司的发展小趣事

AVG Semiconductors自创立之初,就始终坚持以技术创新为核心竞争力。公司不断投入研发资源,推出了一系列具有划时代意义的半导体产品。其中,AVG的某款高效能低功耗芯片在市场上引起了广泛关注,其独特的节能设计和卓越的性能使得AVG在激烈的市场竞争中脱颖而出。这款芯片的成功不仅提升了AVG的品牌形象,也为公司带来了可观的收益,进一步推动了公司的研发创新步伐。

Electromagnetic Industries Llp公司的发展小趣事

EMI公司深知产品质量对企业的重要性。因此,公司建立了严格的质量管理体系,从原材料采购到生产加工再到产品检验,每一个环节都严格把关。同时,公司还引进了先进的检测设备和技术手段,确保产品质量的稳定性和可靠性。这些措施的实施使得EMI公司的产品质量得到了客户的广泛认可。

博林(BL)公司的发展小趣事

随着全球环保意识的不断提高,博林公司积极响应号召,将绿色环保理念融入到产品设计和生产过程中。公司采用环保材料和节能技术,努力降低产品的能耗和排放。同时,博林公司还加强了对废弃电子产品的回收和处理工作,实现了资源的循环利用。这些举措不仅提升了博林公司的品牌形象,也为其在可持续发展的道路上奠定了坚实基础。

需要强调的是,以上故事是基于一般性的行业知识和假设构建的,并不直接代表博林公司的实际发展经历。博林公司的具体发展历程和故事可能涉及更多的细节和复杂性,需要进一步的了解和研究。

GE Power Electronics Inc公司的发展小趣事
在教育产品中引入声控技术,可以设计出声控故事机、声控学习机等,帮助儿童在玩耍中学习知识。
Cermetek Microelectronics公司的发展小趣事

在电子行业快速发展的背景下,Cermetek Microelectronics公司深知创新的重要性。公司不断加大对研发的投入,引进先进的研发设备和人才,持续推出具有创新性的微电子产品。这些新产品不仅具有更高的性能和更低的功耗,还更加符合市场需求,为公司带来了更多的商业机会。

问答坊 | AI 解惑

关于Linux嵌入式系统的培训效果!

想参加培训,但是不知道效果如何? 请大家来谈谈自己的经验吧~~ 谢绝销售…

查看全部问答>

串口接收问题

各位大侠好!请教一下,我利用C51的串口向S3C2440的串口1发数据,然后将该数据用串口0显示出来(串口调试工具),两个串口的波特率都是9600,奇偶校验都是一样的,为什么我收到的数据不是我发的数据,我用C51持续不断的发送十六进制的01,可我接受 ...…

查看全部问答>

一个例子看不明白

/* 打问号的地方不明白,希望大家给加下注释,谢谢了 这是一个蜂鸣器的程序(运行在arm9(mini2440)上的Linux下) */ #include #include #include #include #define PWM_IOCTL_SET_FREQ            &nb ...…

查看全部问答>

请教各位一个简单的问题,先谢谢了

请教大家一个问题,不是很难,但我不知道怎么做~ 就是用Protel绘图时,我用了一个或门,元件库里有的,但是是个两输出的,我的设计中需要用到三个输出,应该怎么做呢??不会是自己画好了再封装吧??谢谢各位大虾,我是菜鸟~~~呜啦啦啦\\(^o^)/~…

查看全部问答>

Secure Digital/Multimedia Card (SD/MMC) 上的图片带一个问号?

C:\\Documents and Settings\\Administrator\\桌面\\sd.bmp 请问为什么会有个问号?…

查看全部问答>

北京 诚聘 windows驱动软件开发工程师(兼或全职)

职位描述 Windows驱动程序设计和实现 职位要求 1.计算机、电子工程、通信、自动化等相关专业本科以上学历; 2.熟练掌握C/C++语言编程; 3.精通WDM, WDF编程,熟悉DriverStudio, WINDBG等开发工具; 4.深入理解Windows操作系统组成原理和内核 ...…

查看全部问答>

求教:ZEUS公司的NV-RAM,型号ZS8512的资料!

在baidu找不到,谁有资料给我传一个呀,用过这芯片的大虾能给我说说这芯片的优缺点吗?谢谢!散分了. EMAIL:xhbbit@yahoo.com.cn   QQ:472149942  MSN:xhbbit@yahoo.com.cn …

查看全部问答>

TI Sitrara平台Roadmap

未来 Sitara平台低端产品亦会演进到Cortex-A8核心,这对采用TI Sitara平台开发产品的客户而言,无疑是一个重大利好消息。…

查看全部问答>

keil编译mem.h报错 error: #40: expected an identifier

.\\third_party\\lwip-1.3.1\\src\\include\\lwip/mem.h(76): error:  #40: expected an identifier.\\third_party\\lwip-1.3.1\\src\\include\\lwip/mem.h(88): error:  #20: identifier \"mem_size_t\" is undefined keil 中这里已经 ...…

查看全部问答>