历史上的今天
返回首页

历史上的今天

今天是:2024年10月21日(星期一)

正在发生

2019年10月21日 | 单片机加个PCF8574模块,实现IIC方式驱动LCD1602

2019-10-21 来源:51hei

PCF8574模块使实现IIC驱动LCD1602成为现实。


下图是PCF8574模块与1602的连接电路图:


实物接法如下:

想要使用PCF8574模块来实现IIC驱动LCD1602,首先非常必要弄清楚IIC的时序、PCF8574设备地址、四线控制LCD1602方法。

下面是两个重要的h文件。通过修改这两个h文件中的部分代码(接线有所不同)即可移植到你的程序中去。

单片机源程序如下:

void delay1(uchar x)

{

        uchar a,b;

        for(a=x;a>0;a--)

         for(b=200;b>0;b--);

}


void write_com(uchar com)                //写命令函数

{        uchar com1,com2;

        com1=com|0x0f;

        write_add(com1&0xfc);

        delay1(2);

    write_add(com1&0xf8);

        com2=com<<4;

        com2=com2|0x0f;

        write_add(com2&0xfc);

        delay1(2);

    write_add(com2&0xf8);

        

}


void write_date(uchar date)                //写数据函数

{

        uchar date1,date2;

        date1=date|0x0f;

        write_add(date1&0xfd);

        delay1(2);

        write_add(date1&0xf9);

        date2=date<<4;

        date2=date2|0x0f;

        write_add(date2&0xfd);

        delay1(2);

        write_add(date2&0xf9);

                

}


void init_lcd()                                        //初始化函数

{                                                                                                  

        write_com(0x33); //显示模式设置

        delayms(6);

        write_com(0x32); //显示模式设置

        delayms(6);

        write_com(0x28); //4位总线,双行显示,显示5×7的点阵字符

        delayms(6);

        write_com(0x01); //清屏

        delayms(6);

        write_com(0x06); //字符进入模式:屏幕不动,字符后移

        delayms(6);

        write_com(0x0c); //显示开,关光标

        //write_LCD_Command(0x0f); //显示开,开光标,光标闪烁

        delayms(6);

}


//显示字符串:第x行第y列显示什么内容

void ShowString(unsigned char x,unsigned char y,unsigned char *str)

{

        

        if(x == 1)

        {

                write_com(0x80 | y-1); 

        }

        if(x == 2)

        {

                write_com(0xc0 | y-1);

        }

        //输出字符串

        

        while(*str!='')

        {

                write_date(*str);

                str++;

        }


}


推荐阅读

史海拾趣

Flambeau公司的发展小趣事

在追求经济效益的同时,Flambeau公司始终不忘履行社会责任和环保使命。公司积极响应全球可持续发展号召,将环保理念融入产品研发、生产和销售的各个环节。通过采用环保材料、优化生产工艺、推广循环经济等措施,Flambeau有效降低了产品生命周期中的环境影响。此外,公司还积极参与环保公益活动和社会责任项目,为推动电子行业的绿色可持续发展贡献力量。

Easy Magnet Corp公司的发展小趣事

随着市场需求的不断变化,Easy Magnet Corp公司意识到,只有不断创新才能保持竞争优势。因此,公司加大了研发投入,不断推出具有创新性的产品。其中,一款集成了微型化、高性能和高稳定性的磁性传感器,因其独特的优势,在智能手机、平板电脑等电子产品中得到了广泛应用。这一技术突破不仅提升了公司的知名度,也为公司带来了可观的收益。

FTCAP Fischer & Tausche Capacitor Group公司的发展小趣事

随着市场需求的不断变化,Easy Magnet Corp公司意识到,只有不断创新才能保持竞争优势。因此,公司加大了研发投入,不断推出具有创新性的产品。其中,一款集成了微型化、高性能和高稳定性的磁性传感器,因其独特的优势,在智能手机、平板电脑等电子产品中得到了广泛应用。这一技术突破不仅提升了公司的知名度,也为公司带来了可观的收益。

蓝箭(BLUE ROCKET)公司的发展小趣事

蓝箭电子的前身是佛山市无线电四厂,创建于七十年代初。随着时代的变迁和市场的需求,该厂在1998年成功转制为有限责任公司,迈出了向现代化企业转型的重要一步。这次转型不仅为公司注入了新的活力,也为后续的发展奠定了坚实的基础。

Ememory Technology Inc公司的发展小趣事

除了自主研发外,eMemory还积极寻求与外部合作伙伴的联合研发。在2016年,eMemory与马来西亚的半导体晶圆代工厂Silterra联合宣布,基于Silterra 0.18微米CMOS制程技术的一次性可编程(OTP)存储器已经通过了验证。这一合作不仅证明了eMemory技术的先进性和可靠性,还为双方带来了新的市场机遇。

AXTAL公司的发展小趣事

近年来,电子行业面临着诸多市场挑战与机遇。在这场全球供应链的博弈中,AXTAL公司展现出了敏锐的市场洞察力和应变能力。面对中国发布的镓锗禁令,AXTAL巧妙地抓住了第一个漏洞,通过在中国设立的子公司申请出口镓锗的许可证,成功绕过了禁令的限制。这一睿智之举不仅为公司打开了新的市场窗口,也彰显了公司在应对市场挑战时的灵活性和创造力。

问答坊 | AI 解惑

dsp builder的安装问题

装了一天的dsp builder,都没有安装成功。网上有个安装说明照着做了,但是在MATLAB中运行setup_dspbuilder时出现了错误,屏幕上显示:???Undefined function or variable \'setup_dspbuilder\'.:\'( MATLAB是R2009版本,quartus,modelsim是8.1 ...…

查看全部问答>

ARM处理器系统初始化过程

本问节选自《嵌入式系统Linux内核开发实战指南(ARM平台)》一书      每次系统上电/复位启动时,处理器都处于一种最低性能即只有最基本功能的状态,此时它只能从复位向量地址处去读取指令,其他功能模块都处于禁止或者不可 ...…

查看全部问答>

sw笨笨的STM32学前班教程之五:给等待入门的人一点点建议

入门必须阅读的相关文档1、    几个重要官方文档的功能:a)    Datasheet——芯片基本数据,功能参数封装管脚定义和性能规范。b)    固件函数库用户手册——函数库功能,库函数 ...…

查看全部问答>

那个能破解STM8S103K3程序 我出3万大洋

那个能破解STM8S103K3程序  我出3万大洋 联系13358052018…

查看全部问答>

ccs controlsuite

在ccs中的TIresource explorer中没有controlsuit,已经在  安装了controlsuite。。。而且是在TI那个安装目录下。。。请问大家有没有遇到这个情况?求解释。。。…

查看全部问答>

iar编译问题

用iar编译程序时出现如下问题 Error[e46]: Undefined external \"sensors\" referred in sensors ( E:\\新建文件夹\\ contiki-2.6\\Debug\\Obj\\sensors.r43 ) Error[e46]: Undefined external \"sensors_flags\" referred in sensors ( E:\\ ...…

查看全部问答>

能让芯片睡死的一段程序??!!

前几天刚接触430吧,属于菜鸟,然后就想把各个模块过一遍,心里有个大概,然后写了一段程序:如下 #include void main(void) {    WDTCTL=WDTPW+WDTHOLD+WDTNMI+WDTNMIES;    //RST/NMI引脚为非屏蔽中断输入, 时钟禁止输 ...…

查看全部问答>

BoosterPack 是否通用

Boost英语解释是:VT 促进 增加;支援,pack是包果.自然是增强包了. 今天在网上看到Hercules TMS570LS04x/03x and RM42x LaunchPads 的原理图,为了方便传一下,我看到有BoosterPack的接口,也传一下,我想是否同那个风火轮能接下呢,大家有没有试过的呢? ...…

查看全部问答>

到底是我们在玩手机,还是手机在玩我们?

http://tc.people.com.cn/n/2013/1108/c183175-23479227.html 原标题:调查显示多数人成为手机奴隶:手机不见感到恐慌   到底是我们在玩手机,还是手机在玩我们?《南都周刊》的调查显示,14%的人夜间醒来的第一件事就是去看手机,11%的人甚至 ...…

查看全部问答>

通宵画pcb.

本帖最后由 ienglgge 于 2014-4-8 21:43 编辑 昨天,通宵画这个电路图。今天又画半天,才画完,还不算之前花的时间,真的是太慢了。用的是pads-9.3. 现将电路图献上。期待各位的指教。 …

查看全部问答>