历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2019年11月26日 | 51单片机控制LCD12864显示汉字

2019-11-26 来源:51hei

程序:
#include
#define DATA_PORT P0
sbit LCD12864_EN   = P1^2;
sbit LCD12864_RSET = P1^3;
sbit LCD12864_RS   = P1^0;
sbit LCD12864_RW   = P1^1;
sbit LCD12864_PSB  = P1^6;


void delay(unsigned int xms)  //延时//
{
        unsigned char i,j;
        for(j = 0; j < xms; j++)
        {
                for(i = 0;i < 110;i++);
        }
}
bit LcdBusyCheck(){
          bit result;
          LCD12864_RS = 0;
          LCD12864_RW = 1;
          LCD12864_EN = 1;
          result = (bit)(DATA_PORT&0x80);
          LCD12864_EN = 0;
          return result;
}

void WriteCmdToLCD(unsigned char cmd)
{
                //        while(LcdBusyCheck());
        delay(10);
          LCD12864_RS = 0;
          LCD12864_RW = 0;
          LCD12864_EN = 1;
          DATA_PORT = cmd;
          delay(5);
        LCD12864_EN = 0;
        delay(5);
        LCD12864_EN = 1;

}




void WriteDatToLcd(unsigned char dat)
{
                //while(LcdBusyCheck());
                delay(10);
                LCD12864_RS = 1;
          LCD12864_RW = 0;
          LCD12864_EN = 1;
          DATA_PORT = dat;
          delay(5);
        LCD12864_EN = 0;
        delay(5);
        LCD12864_EN = 1;

}


void WriteStrToLcd(unsigned char *str)
{
        while(*str != '')
        {
                WriteDatToLcd(*str++);
                delay(5);
        }
}





void LcdPos(unsigned char x,unsigned char y)
{
        unsigned char pos;
        if(x == 1)
        {
                x = 0x80;
        }else if(x == 2)
        {
                x = 0x90;
        }else if(x == 3)
        {
                x = 0x88;
        }else if(x == 4)
        {
                x = 0x98;
        }
        pos = x + y - 1;
        WriteCmdToLCD(pos);
}


void LcdInit()
{
        LCD12864_PSB = 1;
         LCD12864_RSET = 0;
         delay(10);
        LCD12864_RSET = 1;

        WriteCmdToLCD(0x30);
        delay(5);
        WriteCmdToLCD(0x30);
        delay(5);
        WriteCmdToLCD(0x18);
        delay(5);
        WriteCmdToLCD(0x10);
        delay(5);
        WriteCmdToLCD(0x01);

        delay(5);
        WriteCmdToLCD(0x06);
        delay(5);
         WriteCmdToLCD(0x0c);
        delay(5);


}
int main()
{
                P0 = 0xff;
                P1 = 0xff;
           LcdInit();
           while(1)
           {
                     LcdPos(1,1);
                         WriteStrToLcd("  榆林学院  ");
                        delay(5);

                LcdPos(2,1);
                         WriteStrToLcd("能源工程学院");
                        delay(5);
                LcdPos(3,1);
                         WriteStrToLcd("51控制LCD12864");
                        delay(5);
                LcdPos(4,1);
                         WriteStrToLcd("加油吧朋友们!!!");
                        delay(500);
           }
}

推荐阅读

史海拾趣

GigPeak公司的发展小趣事

为了进一步增强市场地位和扩大产品线,GigPeak在2010年实施了一项重要的并购战略。公司成功收购了另一家在光纤通信领域具有深厚技术积累的企业,这次并购不仅为GigPeak带来了先进的产品线和研发资源,还显著提升了其在全球市场的份额。通过整合双方的优势资源,GigPeak在光纤通信领域的技术实力和市场份额均实现了质的飞跃。

Amphenol Piher公司的发展小趣事

GigPeak公司自成立之初,便专注于高速数据传输技术的研发。在2005年,公司研发团队成功开发出一种新型的光电转换器,该转换器能够在极低的功耗下实现前所未有的数据传输速率。这一技术创新迅速吸引了业界的关注,并成功应用于多个高端数据中心项目,帮助GigPeak在竞争激烈的市场中脱颖而出。随着技术的不断迭代和市场的广泛认可,GigPeak逐渐成为了高速数据传输领域的领军企业。

力芯微(ETEK)公司的发展小趣事

在2009至2012年的培育期,力芯微公司准确把握下游市场更迭,快速推出的双SIM卡电源控制芯片得到了三星电子的认可。此后,公司陆续开发了负载开关、电池开关和LDO等产品,并在三星电子的手机上得到广泛应用。这一合作不仅提升了力芯微在业界的知名度,也为公司带来了可观的订单和利润。

Akahane Electronics Ind Corp公司的发展小趣事

面对日益严重的环境问题,Akahane敏锐地捕捉到绿色电子产品的市场潜力。公司投入大量研发资源,开发出低能耗、环保的电子产品,并积极推广绿色生产和循环经济理念。这一举措不仅赢得了消费者的青睐,还为公司赢得了良好的社会声誉。同时,Akahane还积极参与国际环保组织的活动,推动电子行业的绿色化发展。

AURORA公司的发展小趣事

AURORA公司深知自动驾驶技术的商业化落地需要与汽车制造商紧密合作。因此,AURORA积极与大众汽车集团、现代汽车等多家知名汽车制造商建立合作关系。通过共同研发和推广自动驾驶技术,AURORA成功帮助这些汽车厂商加速各自自动驾驶汽车的商用计划。这种深度合作不仅提升了AURORA的市场影响力,也为公司的长期发展奠定了坚实基础。

Enterpoint公司的发展小趣事

作为一家有社会责任感的企业,Enterpoint公司始终关注可持续发展问题。他们积极推广绿色、环保的生产方式,减少对环境的影响。同时,公司还积极参与社会公益活动,通过捐赠物资、支持教育等方式回馈社会。这些举措不仅提升了公司的社会形象,也为公司的长期发展奠定了坚实的基础。

问答坊 | AI 解惑

戏法人人会变,各有巧妙不同--用有限状态机对键盘模块的另类实现

最近阿姨家里的几个表哥都在热烈的讨论着状态机,表弟我心痒,也想来凑凑热闹。要想加入他们的讨论,首先得明白什么是状态机,这是今天的主题之一,不过我会首先给出定义,然后谈谈我的浅薄的理解。另外,前些日子正在学习GOF的《设计模式》,其中 ...…

查看全部问答>

bootloader如何固化

文章说明:calmarrow(lqm)原创   关于bootloader,先简要地总结一下。经过了第一个阶段的学习,对bootloader有了一个整体的认识,其实把它当作一个功能单元就可以了,职责就是完成从硬件加电到操作系统内核运行之前的所有工作,这些工 ...…

查看全部问答>

贴片二三极管查询起来就是烦,有没有汇总查询手册,大家分享下

贴片二三极管查询起来就是烦,有没有汇总查询手册,大家分享下…

查看全部问答>

51的TTL串口能用哪种型号的多路复用器?

我找到似乎74451芯片可以,可以完全找不到资料,还有其他的吗?CMOS的倒是一堆,难道我要先转CMOS?…

查看全部问答>

高分求助,急!CE系统启动问题!

CE系统经常启动不起来,开始都能启动,断电后再隔上几秒系统就起不来了,原来给别人供过小批量,现在再供就出现这个问题,软件硬件都是原来的,这批板子把RTC晶振,音频模块,USB DEVICE去掉了,出现问题后又加上了,可还是有问题,请各位大哥大姐 ...…

查看全部问答>

请教SOPC Builder高手!

小妹高开始接触这个,请高手指点。SOPC Builder 系统生成的时候总是显示这个错误,不知道怎么回事呢? running generator program for cpu_0 always_encrypt in PTF file is 1 but can\'t read /cpu_core.ep1 error:generator program   ...…

查看全部问答>

杯具了

人生像茶几,虽然不大却充满杯具啊!我的LPC1114经过一阵紧锣密鼓的工作,我的POV旋转时钟突破不能识别,不运行下载出现等一箩筐的困难后终于呵呵显示了,就在我安心的睡去,打算第二天在改进程序实现更好的功能时,完了,第二天晚上当我通电运行时 ...…

查看全部问答>

请问如何在STM32中产生38khz的红外载波?

                                 在STM32中产生38khz的红外载波,大家都有什么方法?(先说声谢谢)…

查看全部问答>

哈哈,总算抢到一个811,大家都是神速啊

付款完毕回去一看就只剩8块了...第9个付款,嘿嘿 本来打算抢那个EZ430的...无奈网速不给力,有想换的筒子小生欢迎啊 对了,那个邮寄地址是不是按之前提交的信息里的啊,抢完才想起来忘了改地址了…

查看全部问答>