⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lcd显示c程序全解(hd61202).txt

📁 单片机实现的LCD显示。是基于HD61202模块的。我传完了
💻 TXT
📖 第 1 页 / 共 2 页
字号:
             Locatexy();    //定位坐标,返回时保留分区状态不变
             Datalcm = 0xFF;
             Dilcm = 1;
             Rwlcm = 1; //read data
             Elcm = 1;  //read data to LCM
             _nop_();
             cbyte = Datalcm;
             Elcm = 0;
             Locatey();
             Datalcm = 0xFF;
             _nop_();
             Dilcm = 1;
             Rwlcm = 1;
             Elcm = 1;
             _nop_();
             cbyte = Datalcm;  //从数据品读数据,真读
             Elcm = 0;
            }
            /************************数据写输出***************************/
            void Wrdata(uchar X)
            {
             Locatexy();
             Dilcm = 1;  //data out
             Rwlcm = 0;   //write out
             Datalcm = X;  //data out to dataport
             Elcm = 1;  //read to LCM
             _nop_();
             Elcm = 0;
            }
            /************************************命令输出到左区控制口**************************////
            void WrcmdL(uchar X)
            {
             lcdbusyL();    //确定分区,返回时保留分区状态不主变
             Dilcm = 0;
             Rwlcm = 0;
             Datalcm = X;
             Elcm = 1;
             _nop_();
             Elcm = 0;    //read to LCM
            }
            /*****************************命令输出到中区控制口********************************/
            void WrcmdM(uchar X)
            {
             lcdbusyM();
             Dilcm = 0;
             Rwlcm = 0;
             Datalcm = X;
             Elcm = 1;
             _nop_();
             Elcm = 0;
            }
            /*******************************命令输出到右区控制口************************************/
            void WrcmdR(uchar X)
            {
             lcdbusyR();
             Dilcm = 0;
             Rwlcm = 0;
             Datalcm = X;
             Elcm = 1;
             _nop_();
             Elcm = 0;
            }
            /*****************************分区操作允许等待,返回时保留分区选择状态************************************/
            void lcdbusyL(void)
            {
             CSALCM = 0;
             CSBLCM = 0;   //清0,CS,CSB,选择左区
             wtcom();
            }
            void lcdbusyM(void)
            {
             CSALCM = 0;
             CSBLCM = 1;   //清0,CS,CSB,选择左区
             wtcom();
            }
            void lcdbusyR(void)
            {
             CSALCM = 1;
             CSBLCM = 0;   //清0,CS,CSB,选择左区
             wtcom();
            }
            void wtcom(void)
            {
             Dilcm = 0;
             Rwlcm = 1;
             Datalcm = 0xFF;
             Elcm = 1;
             _nop_();
             while (Datalcm & Lcdbusy) ;
             Elcm = 0;
            }
            /*******************************根据设定的坐标数据,定位LCM上的下一个操作单元位置***********************/
            void Locatexy()
            {
             unsigned char x, y;
             switch (col & 0xco)
             {
              case 0:
               lcdbusyL();
               break;
              case 0x40: 
               lcdbusyM();
               break;
                 case 0x40: 
               lcdbusyM();
               break;
             }
             x = col & 0x3F | SETX;
             y = row & 0x07 | SETY;
             wtcom();
             Dilcm = 0;  //DI clear to 0
             Rwlcm = 0;  //RW clear to 0
             Datalcm = y;   //MOV P0, Y
             Elcm = 1;
             _nop_();
             Elcm = 0;
             wtcom();
             Dilcm = 0;
             Rwlcm = 0;
             Datalcm = x;
             Elcm = 1;
             _nop_();
             Elcm = 0;
            }
            /****************************液晶习屏初始化********************************/
            void Lcminit(void)
            {
             cbyte  DIPSOFF;
             WrcmdL(cbyte);
             WrcmdM(cbyte);
             WrcmdR(cbyte);
             cbyte = DISPON;
             WrcmdL(cbyte);
             WrcmdM(cbyte);
             WrcmdR(cbyte);
             cbyte = DISPFIRST;
             WrcmdL(cbyte);
             WrcmdM(cbyte);
             WrcmdR(cbyte);
             Lcmcls();
             col = 0;
             row = 0;
             Locatexy();
            }
            /****************************延时*******************************/
            void Delay(uchar MS)
            {
             uchar us, usn;
             while (MS!=0)
             {
              usn = 4;
              while (usn!=0)
              {
               us = 0xf0;
               while(us!=0)
               {
                us--;
               }
               usn--;
              }
              MS--;
             }
            }
            /********************************定义字符串数组***********************************/
            uchar code STR1[] = China Mobile;
            uchar code STR2[] = Communications;
            uchar code STR3[] = Corporation;
            uchar code STR4[] = Welcome you!;
            /********************************定义中文字库**************************************/
            uchar code Hzk[] = {
            0x00, 0xF8, 0X08, 0X08, 0X08, 0X08, 0X08, 0XFF, 0X08, 0X08, 0X08, 
            0X08, 0X08, 0XFC, 0X08, 0X00,
            0X00, 0X03, 0X01, 0X01, 0X01, 0X01, 0X01, 0XFF, 0X01, 0X01, 0X01, 
            0X01, 0X01, 0X03, 0X00, 0X00, //中
            OXOO, OXFE, OX02, OX0A, OX8A, OX8A, 0X8A, 0XFA, 0X8A, 0XCA, 0X8E, 
            0X0A, 0X02, 0XFF, 0X02, 0X00,
            0X00, 0XFF, 0X40, 0X50, 0X50, 0X50, 0X50, 0X5F, 0X50, 0X52, 0X54, 
            0X50, 0X40, 0XFF, 0X00, 0X00, //国
            0X24, 0X24, 0XA4, 0XFE, 0XA3, 0X22, 0X10, 0X88, 0X8C, 0X57, 0XE4, 
            0X24, 0X14, 0X0C, 0X00, 0X00,
            0X04, 0X02, 0X01, 0XFE, OX00, 0X83, 0X80, 0X88, 0X44, 0X46, 0X29, 
            0X31, 0x11, 0x0D, 0x03, 0x00,  //移
            0x20, 0x24, 0x24, 0xE4, 0x26, 0x34, 0x20, 0x10, 0x10, 0xFF, 0x10, 
            0x10, 0x10, 0xF8, 0x10, 0x00,
            0x08, 0x1C, 0x0B, 0x08, 0x08, 0x8A, 0x4C, 0x30, 0x0C, 0x03, 0x40, 
            0x80, 0x40, 0x3F, 0x00, 0x00,  //动
            0x40, 0x42, 0x44, 0xCC, 0x00, 0x00, 0xF1, 0x91, 0x95, 0xF9, 0x95, 
            0x93, 0xF9, 0x10, 0x00, 0x00,
            0x00, 0x40, 0x20, 0x1F, 0x20, 0x40, 0xBF, 0x84, 0x84, 0xBF, 0x94, 
            0xA4, 0x9F, 0xC0, 0x40, 0x00,  //通
            0x80, 0x40, 0x20, 0xF8, 0x07, 0x24, 0x24, 0x24, 0x25, 0x26, 0x24, 
            0x24, 0xb4, 0x26, 0x04, 0x00,  
            0x00, 0x00, 0x00, 0xff, 0x00, 0x01, 0xfd, 0x45, 0x45, 0x45, 0x45, 
            0x45, 0xfd, 0x01, 0x00, 0x00, //信
            0x20, 0x10, 0x08, 0xfc, 0x57, 0x54, 0x54, 0xfd, 0x56, 0x54, 0x54, 
            0x56, 0x04, 0x00, 0x00, 0x00,
            0x04, 0x44, 0x44, 0x27, 0x15, 0x0d, 0x05, 0xff, 0x05, 0x0d, 0x15, 
            0x25, 0x65, 0x24, 0x04, 0x00, //集
            0x00, 0xfe, 0x22, 0x22, 0x22, 0x22, 0xa2, 0x62, 0xfe, 0x22, 0x22, 
            0x32, 0x22, 0xff, 0x02, 0x00,
            0x00, 0xff, 0x48, 0x44, 0x42, 0x41, 0x50, 0x60, 0x5f, 0x40, 0x40, 
            0x40, 0x40, 0xff, 0x00, 0x00, //团
            0x00, 0x00, 0x80, 0x40, 0x30, 0x0c, 0x00, 0xc0, 0x06, 0x18, 0x20, 
            0x40, 0x80, 0x80, 0x80, 0x00,
            0x01, 0x01, 0x00, 0x30, 0x28, 0x24, 0x23, 0x20, 0x20, 0x28, 0x30, 
            0x60, 0x00, 0x01, 0x00, 0x00, //公
            0x10, 0x10, 0x92, 0x92, 0x92, 0x92, 0x92, 0x92, 0xd2, 0x9a, 0x12, 
            0x02, 0xff, 0x02, 0x00, 0x00,
            0x00, 0x00, 0x3f, 0x10, 0x10, 0x10, 0x10, 0x10, 0x3f, 0x00, 0x40, 
            0x80, 0x7f, 0x00, 0x00, 0x00, //司
            };
            /********************************定义ASCII字库 
            8列×16行***************************************/
            uchar code Ezk[] = {
            //文字:space--0x20//0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x, 0x, 
            0x, 0x, 0x, 0x, 
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 
            //!--0x21
            0x00, 0x00, 0x00, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x27, 0x00, 0x00, 0x00, 0x00, 
            //--0x22
            0x00, 0x08, 0x04, 0x02, 0x08, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 
            //#--0x23
            0x40, 0x40, 0xf8, 0x40, 0x40, 0xf8, 0x40, 0x00, 0x04, 0x3f, 0x04, 
            0x04, 0x3f, 0x04, 0x04, 0x00, 
            //$--0x24
            0x00, 0x70, 0x88, 0xfc, 0x08, 0x08, 0x30, 0x00, 0x00, 0x1c, 0x20, 
            0xff, 0x21, 0x22, 0x1c, 0x00, 
            //%--0x25
            0xF0, 0x08, 0xF0, 0x80, 0x70, 0x08, 0x00, 0x00, 0x00, 0x31, 0x0E, 
            0x01, 0x1E, 0x21, 0x1E, 0x00,
            //&--0X26
            0x00, 0xF0, 0x08, 0x88, 0x70, 0x00, 0x00, 0x1E, 0x21, 0x23, 0x24, 
            0x18, 0x16, 0x20, 0x00, 0x00,  
            //'--OX27
            0x20, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 
            //(--0X28
            0x00, 0x00, 0x00, 0x00, 0xC0, 0x30, 0x08, 0x04, 0x00, 0x00, 0x00, 
            0x00, 0x03, 0x0C, 0x10, 0x20, 
            //)--0X29
            0x04, 0x08, 0x30, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x10, 0x0C, 
            0x03, 0x00, 0x00, 0x00, 0x00,
            //*--0X2A
            0x40, 0x40, 0x80, 0xF0, 0x80, 0x40, 0x40, 0x00, 0x02, 0x02, 0x01, 
            0x0F, 0x01, 0x02, 0x02, 0x00, 
            //+--0X2B
            0x00, 0x00, 0x00, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 
            0x0F, 0x01, 0x01, 0x01, 0x00, 
            //,--0X2C
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x60, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 
            //---0X2D
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 
            0x01, 0x01, 0x01, 0x01, 0x00, 
            //.--0X2E
            0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 
            0x00, 0x00, 0x00, 0x00, 0x00, 
            ///--0X2F
            0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x18, 0x04, 0x00, 0x40, 0x30, 
            0x0C, 0x03, 0x00, 0x00, 0x00, 
            //0--0X30
            0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x0F, 0x10, 
            0x20, 0x20, 0x10, 0x0F, 0x00,
            //1--OX31
            0x00, 0x10, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x20, 
            0x3F, 0x20, 0x20, 0x00, 0x00, 
            //2--0X32
            0x00, 0x70, 0x08, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0x30, 0x28, 
            0x24, 0x22, 0x21, 0x30, 0x00,
            //3--0X33
            0x00, 0x30, 0x08, 0x88, 0x88, 0x48, 0x30, 0x00, 0x00, 0x18, 0x20, 
            0x20, 0x20, 0x11, 0x0E, 0x00,
            //4--0X34
            0x00, 0x00, 0xC0, 0x20, 0x10, 0xF8, 0x00, 0x00, 0x00, 0x07, 0x04, 
            0x24, 0x24, 0x3F, 0x24, 0x00,
            //5--0X35
            0x00, 0xF8, 0x08, 0x88, 0x88, 0x08, 0x08, 0x00, 0x00, 0x19, 0x21, 
            0x20, 0x20, 0x11, 0x0E, 0x00,
            //6--0X36
            0x00, 0xE0, 0x10, 0x88, 0x88, 0x18, 0x00, 0x00, 0x00, 0x0F, 0x11, 
            0x20, 0x20, 0x11, 0x0E, 0x00,
            //7--0X37
            0x00, 0x38, 0x08, 0x08, 0xC8, 0x38, 0x08, 0x00, 0x00, 0x00, 0x00, 
            0x3F, 0x00, 0x00, 0x00, 0x00,
            //8--0X38
            0x00, 0x70, 0x88, 0x08, 0x08, 0x88, 0x70, 0x00, 0x00, 0xEC, 0x22, 
            0x21, 0x21, 0x22, 0x1C, 0x00,
            //9--0X39
            0x00, 0xE0, 0x10, 0x08, 0x08, 0x10, 0xE0, 0x00, 0x00, 0x00, 0x31, 
            0x22, 0x22, 0x11, 0x0F, 0x00,
            //:--
            };


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -