历史上的今天
返回首页

历史上的今天

今天是:2024年12月06日(星期五)

正在发生

2019年12月06日 | 2864串口接线方式与实例程序

2019-12-06 来源:51hei

百度了好长时间都没有找到带字库的12864使用串口如何接线,后来参阅了一下12864的产品说明,终于摸索出来了,本人是刚入门单片机,还有好多的不懂的,我把接线的方式还有实例程序分享出来,只要对大家有一丁点的帮助就满足了。首先看引脚定义
LCD12864屏.jpg?imageView2/2/w/550FlYPYXpuGG09vRwwdDgSafa2VOaG.png?imageView2/2/w/550 
  RS=CS;   R/W=SID;  E=CLK; FSB高电平为并行接口,用并口时接高电平,FSB接低电平时为串口,高低电平可以直接接VCC或者GND也可以用软件去控制,实现并口和串口的切换。RET不接线也能使用,用串口时除了DB0--DB7就不再使用外,其他的接口按手册上说明使用。下面是测试代码,也是参阅从51黑电子论坛的不过有些错误无法显示,已经更改。


#include

#include

#define uchar unsigned char

#define uint  unsigned int

sbit CS=P3^5;     //片选信号

sbit SID=P3^6;  //数据信号

sbit SCLK=P3^4;  //时钟信号

sbit RST=P2^2;  //复位信号

sbit CH = P3^7;  //并行、串行选择信号

/********************************************************************

* 名称 : delay()

* 功能 : 延时,延时时间为 100us * t。这是通过软件延时,有一定误差。

* 输入 : t

* 输出 : 无

***********************************************************************/

void delay(unsigned int t)

{

unsigned int i,j;

for(i=0; i    for(j=0; j<10; j++);

}

/********************************************************************

* 名称 : sendbyte()

* 功能 : 按照液晶的串口通信协议,发送数据

* 输入 : zdata

* 输出 : 无

***********************************************************************/

void sendbyte(unsigned char zdata)

{

unsigned int i;

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

{

  if((zdata << i) & 0x80)

  {

   SID = 1;

  }

  else

  {

   SID = 0;

  }

  SCLK = 0;

  SCLK = 1;

}

}

/********************************************************************

* 名称 : write_com()

* 功能 : 写串口指令

* 输入 : cmdcode

* 输出 : 无

***********************************************************************/

void write_com(unsigned char cmdcode)

{

CS = 1;

sendbyte(0xf8);

sendbyte(cmdcode & 0xf0);

sendbyte((cmdcode << 4) & 0xf0);

delay(2);

}

/********************************************************************

* 名称 : write_data()

* 功能 : 写串口指令

* 输入 : cmdcode

* 输出 : 无

***********************************************************************/

void write_data(unsigned char Dispdata)

{

CS = 1;

sendbyte(0xfa);

sendbyte(Dispdata & 0xf0);

sendbyte((Dispdata << 4) & 0xf0);

delay(2);

}

/********************************************************************

* 名称 : lcdinit()

* 功能 : 初始化函数

* 输入 : cmdcode

* 输出 : 无

***********************************************************************/

void lcdinit()

{  

RST = 0;

delay(100);

RST = 1;

delay(20000);

write_com(0x30);

delay(50);

write_com(0x0c);

delay(50);

}

/********************************************************************

* 名称 : hzkdis()

* 功能 : 显示字符串

* 输入 : *s

* 输出 : 无

***********************************************************************/

void hzkdis(unsigned char code *s)

{  

while(*s > 0)

    {

  write_data(*s);

  s++;

  delay(50);

    }

}


/********************************************************************

* 名称 : Test()

* 功能 : 显示子函数

* 输入 : 无

* 输出 : 无

***********************************************************************/

void Test()

{  

write_com(0x03);

delay(50);   


write_com(0x80);

hzkdis("铅酸电池放电仪");

write_com(0x90);

hzkdis("电压");

write_com(0x92);

hzkdis("16.8v 13.2v");

write_com(0x98);

hzkdis("  电子爱好者");

}


/********************************************************************

* 名称 : Main()

* 功能 : 主函数

* 输入 : 无

* 输出 : 无

***********************************************************************/

void Main()

{

CH = 0;

delay(1);

lcdinit();

delay(10);

while(1)

{

  Test();  a++;

  delay(5000);

}

}



推荐阅读

史海拾趣

AMOTECH(阿莫泰克)公司的发展小趣事

在多年的发展中,AMOTECH始终坚持以技术创新为核心竞争力。除了压敏电阻技术的突破外,公司还在多个领域取得了显著成果。例如,在LED照明和传感器领域,AMOTECH通过不断研发和创新,成功在韩国安山建立了第四工厂,进一步提升了公司的技术实力和产能规模。这些技术的不断突破和创新,使得AMOTECH在电子行业中始终保持领先地位。

Chyao Shiunn Electronic Industrial Ltd公司的发展小趣事

在追求经济效益的同时,Chyao Shiunn也注重履行社会责任。公司积极参与公益事业,为当地社区的发展做出贡献。同时,公司还注重环境保护和可持续发展,通过采用环保材料和节能减排技术等方式降低生产过程中的环境污染。这些举措不仅提升了公司的社会形象,也为公司的长远发展奠定了坚实基础。

请注意,这些故事都是虚构的,并不针对任何真实存在的公司。在现实中,每个公司的成长和发展都有其独特的故事和经历。如果您需要了解特定公司的真实发展历程,建议查阅相关资料或咨询相关人士。

艾吉芯(Agertech)公司的发展小趣事

随着公司业务的不断扩展,艾吉芯公司积极寻求与行业内其他企业的战略合作。通过与国内外知名电子企业的合作,艾吉芯成功将其产品应用于更广泛的领域,进一步拓宽了市场渠道。这些合作不仅提升了艾吉芯的品牌影响力,还为其带来了更多的商业机会和发展空间。

ALLTHREAD公司的发展小趣事

ALLTHREAD深知品牌建设的重要性。他们注重提升品牌形象和知名度,积极参加各类行业展会和论坛,与业界同仁交流学习。同时,他们还建立了完善的客户服务体系,为客户提供及时、专业的技术支持和售后服务。这些举措有效提升了ALLTHREAD的品牌影响力和客户满意度。

Hirosugi-Keiki公司的发展小趣事

ALLTHREAD公司最初由一群对螺纹轧制技术充满热情的工程师创立。他们看到了电子行业对高精度螺栓的迫切需求,于是决定专注于这一领域。经过不断的研发和创新,ALLTHREAD成功推出了首款高精度、高可靠性的螺纹轧制螺栓,迅速在市场上获得了认可。

API Delevan公司的发展小趣事

品质是API Delevan公司的生命线。公司建立了严格的质量管理体系,从原材料采购到产品出厂的每一个环节都进行严格把控。同时,公司还注重持续改进,通过引入先进的生产设备和技术手段,不断提高生产效率和产品质量。这种对品质的执着追求使得API Delevan的产品在市场上具有很高的声誉。

问答坊 | AI 解惑

郑铁职院无线电协会09年全国大学生电子设计竞赛全纪录——《破茧成蝶》

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 郑州铁路职业技术学院无线电协会在07年“全国大学生电子设计竞赛”中获得最高奖“索尼杯”、 “全国一等奖”后,在09年度“全国大学生电子设计竞赛”中再创佳绩:荣获全国一等奖一个、全国二等奖一个 ...…

查看全部问答>

短信猫在气象行业应用

短信猫在气象行业应用 气象信息采集系统利用实时采集的气象资料,对未来一定时段内的气象情况作出较为精确的预测和报警,包括进行短期的降雨预报、中期降水预报和洪水的预警预报,是防汛工作中非常重要的环节构建气象信息采集传输系统要求数据通信 ...…

查看全部问答>

新手: 独立按键问题。按下键松手后 接口的电位自动回复高电平???

就是 独立按键 按下键后 接口置零电位,松手后 ,接口回复高电位?? 是自动回复的么?…

查看全部问答>

RasSetEntryProperties()函数问题?

函数原型 DWORD RasSetEntryProperties(   LPWSTR lpszPhoneBook,   LPWSTR szEntry,   LPRASENTRY lpbEntry,   DWORD dwEntrySize,   LPBYTE lpb,   DWORD dwSize ); ...…

查看全部问答>

WinCE5中要禁止打开控制面板,有办法吗?

WinCE5中要禁止打开控制面板,有办法吗?…

查看全部问答>

嵌入式学什么?

我是一名学习软件工程嵌入式软件开发的学生,在大学4年应该掌握那些技术才更好的为将来有好的工作?…

查看全部问答>

各位大哥,我需要给2812外扩AD,请帮忙一下.

由于我要采样11路,所以问两个问题: 一\\\\请帮忙推荐一个比较适合的AD采样芯片 二,AD采样结果用SPI接收好,还是多通道缓冲接收好呢…

查看全部问答>

wince6 gpio读数据的驱动问题

小弟做毕设遇到个棘手问题,望各位好心人帮助小弟用的arm开发板是友坚恒天的S3C6410,将GPIO的GPK的15-8位和GPL的7-0位从高到低组合成16位数据,但在编写驱动时报错,可能是XXX_read函数有问题,代码如下:驱动部分代码:DWORD GIO_Init(LPCTSTR PC ...…

查看全部问答>

51做的俄罗斯方块游戏,有图有真相!

51做的俄罗斯方块游戏,有图有真相!…

查看全部问答>

二级引导文件没有被生成在out文件中

昨天更换了最新的ccs3.3。奇怪的是这个编译器没有把我用来做二级引导的boot.c文件生成在out文件中。 因为看.map文件时,内存的0至0x400没有使用。请问这是什么情况。 不能自启动很是着急,请问各位高手这应该怎么处理? 是不是编译器优化的问题 ...…

查看全部问答>