在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機控制HD61202液晶顯示C語言程序

            51單片機控制HD61202液晶顯示C語言程序

            作者: 時間:2016-11-28 來源:網(wǎng)絡(luò) 收藏

            //////////////////////////////////////////////
            // 從液晶片上讀數(shù)據(jù),保留在全局變量cbyte中 //
            //////////////////////////////////////////////
            void Rddata(void)
            {
            Locatexy(); //坐標(biāo)定位,返回時保留分區(qū)狀態(tài)不變 //
            Datalcm=0xFF;
            wtcom(); // waitting for enable //
            Dilcm = 1; //數(shù)據(jù)//
            Rwlcm = 1; //讀數(shù)據(jù)//
            Elcm = 1; //讀入到LCM//
            _nop_();
            cbyte = Datalcm; //虛讀一次 //
            Elcm = 0;
            Locatexy(); //坐標(biāo)定位,返回時保留分區(qū)狀態(tài)不變 //
            Datalcm=0xFF;
            wtcom(); // waitting for enable //
            Dilcm = 1; //數(shù)據(jù)//
            Rwlcm = 1; //讀數(shù)據(jù)//
            Elcm = 1; //讀入到LCM//
            _nop_();
            cbyte = Datalcm; //從數(shù)據(jù)口讀數(shù)據(jù),真讀 //
            Elcm = 0;
            }
            ///////////////////////////////////////////
            /// 數(shù)據(jù)寫入 //
            ///////////////////////////////////////////
            void Wrdata(Uchar X)
            {
            Locatexy(); ///坐標(biāo)定位,返回時保留分區(qū)狀態(tài)不變 //
            wtcom();
            Dilcm = 1; ///數(shù)據(jù)輸出//
            Rwlcm = 0; ///寫輸出 //
            Datalcm = X; ///數(shù)據(jù)輸出到數(shù)據(jù)口 //
            Elcm = 1; ////讀入到LCM//
            _nop_();
            Elcm = 0;
            }
            ///////////////////////////////////////////
            /// 清屏,全屏幕清零 //
            ///////////////////////////////////////////
            void Lcmcls( void )
            {
            for(row=0;row<8;row++)
            for(col=0;col
            }
            ///////////////////////////////////
            ///液晶屏初始化 //
            ///////////////////////////////////
            void Lcminit(void)
            {
            cbyte = DISPOFF; ///關(guān)閉顯示屏 //
            WrcmdL(cbyte);
            WrcmdR(cbyte);
            cbyte = DISPON; ///打開顯示屏 //
            WrcmdL(cbyte);
            WrcmdR(cbyte);
            cbyte = DISPFIRST; ///定義顯示起始行為零 //
            WrcmdL(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--;
            }
            }
            /////////////////////////////////////////////////////////
            // 半角字符(西文字符庫)點陣碼數(shù)據(jù)輸出16/16 //
            /////////////////////////////////////////////////////////
            void Putedot(Uchar Order)
            {
            Uchar i,bakerx,bakery; //共定義4個局部變量 //
            int x; //偏移量,字符量少的可以定義為UCHAR //
            bakerx = row; //暫存x,y坐標(biāo),已備下半個字符使用 //
            bakery = col;
            x=Order / 0x10; //半角字符,每個字符16字節(jié) //
            ///上半個字符輸出,8列 //
            for(i=0;i<8;i++)
            {
            cbyte = Ezk[x]; ///取點陣碼,rom數(shù)組 //
            Wrdata(cbyte); ///寫輸出一字節(jié) //
            x++;
            col++;
            } ///上半個字符輸出結(jié)束 //
            col = bakery; ///列對齊 //
            row = bakerx+1; ///指向下半個字符行 //
            ///下半個字符輸出,8列 //
            for(i=0;i<8;i++)
            {
            cbyte = Ezk[x]; ///取點陣碼 //
            Wrdata(cbyte); ///寫輸出一字節(jié) //
            x++;
            col++;
            } ///下半個字符輸出結(jié)束 //
            row=bakerx;
            } ///整個字符輸出結(jié)束 //
            /////////////////////////////////////////////////////
            /// 全角字符(漢字庫)點陣碼數(shù)據(jù)輸出16/32 //
            /////////////////////////////////////////////////////
            void Putcdot(Uchar Order)
            {
            Uchar i,bakerx,bakery; ///共定義3個局部變量 //
            int x; ///偏移量,字符量少的可以定義為UCHAR //
            bakerx = row; / / //暫存x,y坐標(biāo),已備下半個字符使用 //
            bakery = col;
            x=Order / 0x20; ///每個字符32字節(jié) //
            ///上半個字符輸出,16列 //
            for(i=0;i<16;i++)
            {
            Wrdata(Hzk[x]); / //寫輸出一字節(jié) //
            x++;
            col++;
            } ///上半個字符輸出結(jié)束 //
            ///下半個字符輸出,16列 //
            col = bakery;
            row = bakerx+1;
            for(i=0;i<16;i++) / //下半部分//
            {
            Wrdata(Hzk[x]);
            x++;
            col++;
            } //下半個字符輸出結(jié)束 //
            row = bakerx;
            } //整個字符輸出結(jié)束 //
            /////////////////////////////////////////////////////////////////////////////
            /// 一個字串的輸出.第一個參數(shù)為一個字符串,第二個參數(shù)為此字符串的字節(jié)數(shù) //
            /////////////////////////////////////////////////////////////////////////////
            void Putstr(Uchar /puts,Uchar i)
            {
            Uchar j,X;
            for (j=0;j
            {
            X = puts[j];
            if (X&0x80)
            {
            Putcdot(X&0x7f); / //只保留低7位//
            }
            else Putedot(X-0x20); / //ascii碼表從0x20開始//
            if (col==LCMLIMIT){col=0;row+=2;}; ///下一列,如果列越界換行//
            if (row>6) row=0; ///如果行越界,返回首行 //
            }
            }

            上一頁 1 2 下一頁

            關(guān)鍵詞: 51單片機HD61202液晶顯

            評論


            技術(shù)專區(qū)

            關(guān)閉