找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1678|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

使用的是51+1602液晶,就是插上點陣后發(fā)現(xiàn)液晶就顯示不出相應(yīng)的數(shù)字了,求大佬指點...

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:345750 發(fā)表于 2018-7-20 08:52 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

        #include <reg52.h>
        typedef unsigned char uchar8;
        typedef unsigned int  uint16;
        uchar8 code TAB1[] = "l do what l do";
        uchar8 code TAB2[] = "1711";
       
        sbit RS = P3^5;           //數(shù)據(jù)or命令選擇端(H/L)
        sbit RW = P3^4;           //讀/寫選擇端(H/L)
        sbit EN = P3^3;           //使能信號(電平)
        sbit BIT_ = P1^6;
        sbit SEG_ = P1^7;

        void DelayMS(uint16 val)
        {
                uint16 i, j;
                for(i = 0; i < val; i++)
                        for(j = 0; j < 113; j++);
        }
       
        /*************************************
        *函數(shù)名稱:DectectBusyBit()
        *函數(shù)功能:檢測狀態(tài)標(biāo)志位(忙or閑)
        ***************************************/
        void DectectBusyBit(void)
        {
                P0 = 0xff;                         //讀取狀態(tài)值時,先賦高電平
                RS = 0;
                RW = 1;
                EN = 1;
                DelayMS(1);
                while(P0 & 0x80);         //若LCD忙,則停止在這里,否則走起
                EN = 0;                            //之后將EN初始化為低電平
        }
         
         /****************************************
         *函數(shù)名稱:WrComLCD()
         *函數(shù)功能:為LCD寫指令
         *入口參數(shù):指令(ComVal)
         *****************************************/
         void WrComLCD(uchar8 ComVal)
         {
                 DectectBusyBit();
                RS = 0;
                RW = 0;
                EN = 1;
                P0 = ComVal;
                DelayMS(1);
                EN = 0;
         }
         /*******************************************
         *函數(shù)名稱:WrDatLCD()
         *函數(shù)功能:為LCD寫數(shù)據(jù)
         *入口參數(shù): 數(shù)據(jù)(DatVal)
         ********************************************/
         void WrDatLCD(uchar8 DatVal)
         {
                 DectectBusyBit();
                RS = 1;
                RW = 0;
                EN = 1;
                P0 = DatVal;
                DelayMS(1);
                EN = 0;
         }
         /******************************************
         *函數(shù)名稱:LCD_Init()
         *函數(shù)功能:初始化LCD
         *******************************************/
         void LCD_Init(void)
         {
                 WrComLCD(0x38);
                DelayMS(1);
                WrComLCD(0x38);
                WrComLCD(0x01);
                WrComLCD(0x06);
                DelayMS(1);
                WrComLCD(0x0c);

         }
         void main(void)
         {
                 uchar8 ucval;
                SEG_ = 1;
                P0 = 0x00;
                SEG_ = 0;
                BIT_ = 1;
                P0 = 0xff;
                BIT_ = 0;
                LCD_Init();
                DelayMS(5);
                WrComLCD(0x80);
                while(TAB1[ucval] != '\0')
                {
                        WrDatLCD(TAB1[ucval]);
                        ucval++;
                }
                ucval = 0;
                WrComLCD(0xc0);
                while(TAB2[ucval] != '\0')
                {
                        WrDatLCD(TAB2[ucval]);
                        ucval++;
                }
                while(1);
         }

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表